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?
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.
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.
"é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.
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!
Cutting stock problemnek hívják, ami kell neked, erre a kifejezésre keresve találsz sok infót.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!