Vytvoření řezného plánu je docela zajímavá logická úloha. Na nedávné konzultaci jsme ji řešili s jedním zákazníkem, a vzešlo z toho jednoduché, nicméně vcelku funkční řešení, které by byla škoda nepublikovat.
Co je to řezný plán
Představte si, že máte tyče (dráty, prkna...) o určité délce (třeba 600 cm). A potřebujete z nich nařezat určité kusy (např. 2 x 230 cm, k tomu 1 x 30 cm, k tomu...) Pak je otázka, jak kusy rozvrhnout na jednotlivé tyče tak, abyste mohli koupit co nejméně tyčí. Jinými slovy aby vám toho po nařezání zbylo co nejméně. Je-li tyčí a kusů málo, je to hračka. Je-li jich hodně, je to běžnými výpočty prakticky neřešitelné.
Jak řešit v Excelu
Pro řešení použijeme doplněk Řešitel / Solver, ale ne úplně typickým způsobem.
V tomto návodu nechci vysvětlovat princip Řešitele, takže jen ve zkratce.
Příprava tabulky
1) Zadám délky tyčí (světle zelená oblast)
2) Zadám, kolik a jak dlouhých kusů chci nařezat (žlutá oblast)
3) V šedých buňkách bude řešitel dosazovat počty skutečně nařezaných kusů z určité tyče
Na ostatní výpočty se podívejte do vzorečků přímo v souboru - není tam nic složitého, méně známá je snad jen funkce SUMPRODUCT.
Optimalizuji (v tomto případě minimalizuji) buňku A17 - počet skutečně spotřebovaných (nebo přinejmenším načatých) tyčí.
(Obrázek můžete kliknutím zvětšit)
Nastavení řešitele
Takto nastavím řešitele:
- Podmínky říkají, že řádek 13 a 14 obsahují stejné hodnoty (nařezám tolik kusů, kolik jsem chtěl) a sloupec H musí být stejný nebo menší než sloupc A (součet délek všech kusů nařezaných ze jedné tyče nemůže být delší než délka tyče). Navíc počty nařezaných kusů musí být, logicky, celá čísla.
- Vybral jsem model Evolutionary (simplexovou tabulku nemohu použít protože se nejedná o lineární programování).
Výsledek
Spustím Řešitele, ten chvilku přemýšlí, a pak vyhodí třeba toto řešení:
Budou použité čtyři tyče - ty, u kterých je jednička v pravém sloupci (u mě, kde jsou všechny tyče stejně dlouhé, je samozřejmě jedno, kterou konkrétní použiji - jde jen o počet).
V šedé oblasti pak jsou počty konkrétních kusů, které z dané tyče nařežu.
Pokud máte nějaké robustnější excelové řešení řezného plánu, budu rád, když o něm napíšete do diskuse.
Žádné komentáře:
Okomentovat