A beágyazási probléma egy NP-teljes optimalizálási probléma , amely lényegében hátizsákos problémára redukálható . A probléma egy egészszámú lineáris programozási probléma . A probléma az ipar számos területén felmerül. Képzelje el, hogy Ön egy cellulóz- és papírgyárban dolgozik, és számos rögzített szélességű papírtekercse van, de a különböző ügyfeleknek különböző számú, különböző szélességű tekercsre van szüksége. Hogyan vágjunk papírt a hulladék minimalizálása érdekében?
Az Európai Papírgyártók Szövetsége [1] adatai szerint 2012-ben a régióban 1331 papírgép egyenként átlagosan 56 millió euró (körülbelül 73 millió USD) hulladékot termel. Még 1% megtakarítás is nagyon jelentős lesz.
A beágyazási probléma szabványos megfogalmazása (de nem az egyetlen) egy m rendelésből álló listát feltételez, minden sorrendhez darabokra van szükség. Megalkotjuk az összes lehetséges egymásba ágyazási kombinációt ("vágótérképeket"), és minden térképhez egy pozitív egész változót rendelünk , amely jelzi, hogy a térképet hányszor használták. Írjuk fel a lineáris programozási feladatot:
, egész számahol - hányszor jelenik meg a megbízás a kártyán és - a kártya (gyakran elveszett) ára . A megszorítások pontos természete némileg eltérő matematikai jellemzőket eredményezhet. A megadott limitek minimum limitek ( legalább egy adott mennyiséget kell előállítani, de nem kizárt, hogy több is lesz). Ha , akkor minimálisra kell csökkenteni a forrásanyag vágott darabjainak számát. Ha az egyenlőtlenségekből eredő kényszereket egyenlőségekkel helyettesítjük, a problémát konténerezésnek nevezzük . Általánosabb megfogalmazásban a korlátok kétoldalúak (és ebben az esetben a veszteségminimalizálási megoldás eltérhet a minimális alapanyag darabszámú megoldástól):
A probléma e megfogalmazása nem csak az egydimenziós esetre alkalmazható. Sok variáció lehetséges, például nem a hulladék minimalizálása a cél, hanem az össztermékszám maximalizálása.
Általában a lehetséges kártyák száma exponenciálisan növekszik m -vel , a megbízások számával. A megrendelések számának növekedésével nem feltétlenül célszerű felsorolni a lehetséges egymásba ágyazási mintákat.
Alternatív megoldásként utólagos generálás is használható . Ez a módszer néhány kártyával kezdődően megoldja a beágyazási problémát. A módszer szükség esetén új térképeket generál a megoldási folyamat során. Az egydimenziós esetben új térképek jelennek meg egy további optimalizálási probléma, a hátizsák probléma megoldása során, amely egy lineáris programozási probléma kettős változóira vonatkozó információkat használ fel . A hátizsák-probléma jól ismert megoldási módszerekkel rendelkezik, mint például az elágazó és kötött módszer és a dinamikus programozás . A lusta oszlopgenerálás sokkal hatékonyabb lehet, mint az eredeti megközelítés, különösen a feladat méretének növekedésével. A beágyazási problémára alkalmazott késleltetett oszlopgenerálást először Gilmour és Gomory alkalmazta az 1960-as években megjelent cikkeiben [2] [3] . Megmutatták, hogy ez a megközelítés garantáltan (töredékes) optimális megoldáshoz vezet anélkül, hogy az összes lehetséges térképet előzetesen számba kellene venni.
Gilmour és Gomory eredeti módszere nem egész, így a megoldás tört komponenseket is tartalmazhatott, például egy bizonyos térképet 3,67-szer kellett használni. A legközelebbi egész számra való kerekítés gyakran nem működik, abban az értelemben, hogy az optimálisnál szuboptimális megoldást és alul- vagy túltermelést eredményez bizonyos rendeléseknél (és esetleges megszorítások megsértése esetén, ha kétoldalas). Ezt a hiányosságot az új algoritmusok küszöbölték ki, amelyek lehetővé teszik az optimális megoldások megtalálását (a minimális pazarlás melletti megoldás megtalálása értelmében) nagyon nagy (általában a gyakorlatban szükségesnél nagyobb) problémákra [4] [5] ).
A beágyazási probléma gyakran rendkívül degenerált, hiszen azonos veszteséggel számos megoldás lehetséges. Ez a degeneráció az alkatrészek átrendezésének képességéből adódik, új egymásba ágyazási mintákat hozva létre, de nem változtatja meg az ebből eredő veszteségeket. Ez a kapcsolódó feladatok teljes gyűjteményét adja, amelyek ugyanazoknak a korlátoknak felelnek meg, mint például:
A papírgép korlátlan számú, egyenként 5600 mm széles tekercset (nyersdarabot) képes gyártani. A következő 13 utolsó tekercset kell megszereznie:
Szélesség | Rolls |
---|---|
1380 | 22 |
1520 | 25 |
1560 | 12 |
1710 | tizennégy |
1820 | tizennyolc |
1880 | tizennyolc |
1930 | húsz |
2000 | tíz |
2050 | 12 |
2100 | tizennégy |
2140 | 16 |
2150 | tizennyolc |
2200 | húsz |
Ehhez a kis feladathoz 308 lehetséges beágyazási minta létezik. Az optimális megoldáshoz 73 eredeti tekercs szükséges, és 0,401% hulladékot tartalmaz. Kimutatható, hogy ehhez a hulladékmennyiséghez a minimális fészkek száma 10. Az is kiszámítható, hogy 19 ilyen különböző megoldás létezik, mindegyikben 10 fészek és 0,401% hulladék. Egy ilyen megoldás látható az alábbiakban és az ábrán:
Kártyák száma | vágások |
---|---|
2 | 1820 + 1820 + 1820 |
3 | 1380 + 2150 + 1930 |
12 | 1380 + 2150 + 2050 |
7 | 1380 + 2100 + 2100 |
12 | 2200 + 1820 + 1560 |
nyolc | 2200 + 1520 + 1880 |
egy | 1520 + 1930 + 2150 |
16 | 1520 + 1930 + 2140 |
tíz | 1710 + 2000 + 1880 |
2 | 1710 + 1710 + 2150 |
73 |
Az egymásba ágyazási feladatok többféleképpen osztályozhatók [9] . Az egyik lehetőség a dimenziók egymásba ágyazása: a fenti példa az egydimenziós beágyazást (1D) szemlélteti. Az 1D beágyazás egyéb ipari felhasználásai a csövek, kábelek és acélrudak vágása. A bútorok, ruházati cikkek és üveggyártás során a kétdimenziós problémákat alkalmazzák. Nem sok 3D-s egymásba ágyazó alkalmazás létezik, de a kapcsolódó 3D-s csomagolási problémáknak számos ipari alkalmazása van, különösen az objektumok szállítási konténerekbe való elosztása ( lásd például Kepler hipotézisét .
A fészkelő probléma ipari alkalmazása a tömeggyártó üzemekben akkor fordul elő, amikor az alapanyagot nagy tekercsekben állítják elő, majd kisebb darabokra vágják (lásd: hasítás ). Ez előfordul például papír- és polimer fóliák, valamint lapos fém (vas vagy bronz) lemezek gyártásánál. Számos változat és további megkötés létezik a gyártási vagy folyamati korlátok, a vevői követelmények és a minőségi problémák miatt. Néhány példa:
A papíripar számára beágyazott szoftvereket az ABB Group , a Greycon , a Honeywell és a Tieto szállítja .
Az acélipar beágyazási algoritmusát Robert Gongorra fogalmazta meg 1998-ban, és a SONS (Steel Optimization Nesting Software) szoftvert fejlesztett ki az acéllemezek felhasználásának javítására és a hulladék csökkentésére.
A guillotine vágás feladata, hogy az üveglapokat meghatározott méretű téglalapokká vágják, csak a lap teljes hosszában (vagy szélességében) futó vágásokkal.
Az ehhez kapcsolódó probléma (egydimenziós esetben) az eredeti tekercs legjobb méretének meghatározása, amely megfelel a követelményeknek; szortiment problémaként ismert [10] .
A vágási problémát először Kantorovich fogalmazta meg 1939-ben [11] . L. V. Kantorovich és V. A. Zalgaller 1951-ben, még azelőtt, hogy a számítógépek széles körben elérhetővé váltak volna, egy módszert javasoltak [12] a vágás során az anyag gazdaságos felhasználásának problémájának lineáris programozással történő megoldására. A javasolt technikát később oszlopgenerációs módszernek nevezték el .
Név | Engedély | Rövid leírás |
---|---|---|
VP Megoldó | GPL | Ingyenes "Vector Packing Solver" ( VPSolver ) szoftver, amellyel optimalizálható az 1D egymásba ágyazás. A megoldási módszer az áramlás grafikonon történő megfogalmazásán alapul. |