Kezdőoldal » Számítástechnika » Programozás » Vasdarabolás (kicsit hasonló...

Vasdarabolás (kicsit hasonló talán, mint a hátizsák probléma???), van-e rá nem teljes kipróbálással működő módszer?

Figyelt kérdés

Szükségem van adott darabszámú, adott hosszúságú vasdarabra (pl. 358mm hosszúból 10 db, 550mm hosszúból 9 db, 870mm hosszúból 6 db. stb.). Ez így összesen 13,750mm (plusz a vágási veszteség). A vastelepről 6m-es szálban tudom megvenni a vasat. Ebből adódik, hogy nekem ehhez legalább 3 darab szálat meg kell vegyek, akárhogyan is darabolom. Ennek eredménye lesz, hogy a végén összesen marad kb. 4250mm vasam /amit asszonynak valahogy meg kell magyarázni, hogy az még jó lesz valamire/.


Idáig a probléma egyszerű, mert néhány szorzás és néhány összeadással megvan. És ehhez még számítógép sem kell. A vasat meg is rendeltem már a vastelepről.


Olyan megoldást keresnék, hogy megadom a programnak, hogy milyen hosszúságú darabból, hány darabra van szükségem, hogy hány darab milyen hosszú vasat vettem a vastelepen /esetleg korábbról maradt még valami vasam/, és milyen széles a vágókorong /mennyi a vágási veszteség/. És akkor a programnak ki kéne "számolnia", hogy hogyan a legoptimálisabb felvágni a vasakat. Akkor optimális egy vágás ha a végén megmaradó darabok a leghosszabbak (egyenként), ha egy megmaradó darab rövidebb mint egy megadott hossz akkor azt vegye úgy, hogy nincs maradék (pl. azt mondom, hogy ami 30mm-től rövidebb azt vegye úgy, hogy sikerült elhasználni az egész szálat és nincs maradék). És pl. írja ki a képernyőre a három "legjobb" vágási elrendezést.


A programozás részét meg tudom oldani, de nem találtam jobb algoritmust mint a teljes kipróbálást, és már közel 1,5 órája számolom, hogy hogyan vágjam fel a vasaimat (most egy kispolcot akarok csinálni a sufniba, de később lesz még kis kerti asztal, meg kerti grill, meg kapuhoz is lesz ez a probléma). Ezért jutott eszembe, hogy ha lenne ilyen program, vagy legalább eljárás nem kéne kézzel számolgatni és tologatni "gondolatban" a vasakat, hogy hogyan daraboljam fel, ha már félig programozó vagyok, erre a problémára való a számítógép. De nem találtam ilyen algoritmust (igaz nem ez a szakterületem, de láttam már programot, mikrokontrollereket programozok, és ott az ilyen algoritmusok elég ritkák), és ha csak egyszer kéne nem írnék rá programoit, de most a nyáron elég sok vasat kell daraboljak, és lusta vagyok.



#algoritmus #darabolás #Hátizsákprobléma
2022. jún. 15. 19:24
 1/8 anonim ***** válasza:
A vágási veszteséget algoritmikusan úgy kezelném, hogy a levágandó darabokhoz és a szálhosszhoz is hozzáadnám. Így tehát 2mm-es veszteségnél 10x360+9x552+6x872+at próbálok levágni 3x6002-es szálakból. A teljes kipróbálásnál jobbat most nem tudok.
2022. jún. 15. 20:15
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
71%
bin pack
2022. jún. 15. 22:04
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
Optimalizálási feladatnak hangzik így első blikkre, amit lineáris programozással lehet legkönyebben megoldani. Erre külön célszoftvert szoktak használni, pl. GUSEK, ha ingyenes kell. Excelhez is van LP megoldó bővítmény, az Excel Solver.
2022. jún. 16. 01:22
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Egyébként a harmadik bekezdésben leírtakat nem teljesen értem.


Azt írod az elején, hogy:

"A vastelepről 6m-es szálban tudom megvenni a vasat."


...majd később már különböző hosszúságú vasak megadásáról értekezel:

"Olyan megoldást keresnék, hogy megadom a programnak, hogy [...] hány darab milyen hosszú vasat vettem a vastelepen"


Ha fixen 6m-es szálakat tudsz vásárolni, akkor miért akarnál bármilyen más méretet megadni? Szerintem csak a darabszám érdekes fix hosszok esetén, de azt nem kell megadnod, mert maga a program számolja ki, hogy hány szálat kell majd rendelned. Ha a vásárolható szálhossz variálható, akkor is csak a választható hosszok érdekelnek, a program majd megmondja, hogy melyik hosszúságúból mennyi kell.


" Akkor optimális egy vágás ha a végén megmaradó darabok a leghosszabbak (egyenként)"


Nem inkább akkor, hogy ha az alapanyagból a legkisebb hossz marad meg? Tehát pl. hogyha a 6 méteres szálból sikerül 5,7 méternyi hasznos anyagot levágni.

2022. jún. 16. 01:36
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
34%

"és ha csak egyszer kéne nem írnék rá programoit, de most a nyáron elég sok vasat kell daraboljak, és lusta vagyok."


Ennek már-már szaga van.

Tudod, a lapszabászatok elég szép pénzeket tolnak ki ehhez hasonló, jogtiszta applikációért. Igaz, azok 2D-ben dolgoznak.

2022. jún. 16. 06:25
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:

4:

Azért adnék meg más méretet is mert, pl. most is van egy 3,5m-es előző hasonlóból megmaradt vasam. Amit jó lenne elhasználni.


"Nem inkább akkor, hogy ha az alapanyagból a legkisebb hossz marad meg?" Én úgy gondolom, hogy ha pl. mindegyikből marad kb. 10cm-es darab amvel már semmit nem tudok kezdeni (és most át se veszi tőlem a MÉH mert nem vagyok vállalkozó szóval ilyen 5-8-10cm-es darab vasak egyre csak gyűlnek). De ha úgy jön ki, hogy az egyikből marad egy 25cm-es vas a többiből meg kevesebb akkor nekem optimálisabb, mert egy 25cm-es darab vasat nagyobb eséllyel elhasználok mint egy 10cm-es vasat. Bár lehet ez nem volt egyértelmű.


5: Soha nem gondoltam, hogy eladjam bárkinek is és főleg nem lapszabászatnak. Mint írtam idén nyáron szeretnék csinálni egy kis kerti asztalt, egy polcot a sufniba, egy kerti grillezőt, meg ha marad időm és nem lesz az egészből elegem akkor egy kis előtetőt a sufnihoz. Ez nekem ilyen "hobby" a gép elött ülés után jól esik "barkácsolni" és most megkaptam a házi feladatot asszonytól, hogy "ha már ennyit barkácsolsz, legyen valami hasznos is..."


Jelenleg úgy szoktam "optimalizálni", hogy kinyomtatom a megfelelő hosszúságú (hosszra arányosan kicsinyített) "vasakat" körbevágom ollóval és addig tologatom a papirokat a vonalak között amíg egy jó megoldást nem találok. Ezt gondoltam gépesíteni, de ahogy néztem amit a fentiek ajánlottak pl. LP meg a binpack probléma, marad a hagyományos módszer. Mert az LP-hez nem értek, és most ennyit nem ér, hogy még azt is megtanuljam. Azt hittem van valami egyszerű megoldás. Egyébként mindenkinek köszönök mindent!

2022. jún. 16. 13:34
 7/8 anonim ***** válasza:

Cutting stock problemnek hívják, ami kell neked, erre a kifejezésre keresve találsz sok infót.

[link]

2022. jún. 18. 07:06
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:
7: Nagyon szépen köszönöm!
2022. jún. 18. 20:07

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!