facebook LinkedIN LinkedIN - follow
PříLOHA 7-8/2003

Plánování výroby s genetickými algoritmy v praxi

Michal Nekvinda





Tímto příspěvkem navazujeme na předešlé články popisující metodu genetických algoritmů, které byly v časopise IT System publikovány v loňském roce. V současné době již lze předložit konkrétní zkušenosti s použitím genetických algoritmů v plánování a řízení výroby. Jednotlivé poznatky a zkušenosti budeme prezentovat na příkladu projektu, který již byl zaveden. Jedná se o aplikaci v oblasti služeb praní, sušení a žehlení, konkrétně nasazenou ve firmě Inprokom Bratislava.

Popis výrobního systému
Jedná se o dávkový vícestupňový výrobní proces. Na příjem přicházejí zakázky se špinavým prádlem, které je nutné do předem stanoveného termínu vyprat, vysušit a případně vyžehlit (záleží na zákazníkovi a typu sortimentu).


Obr.1: Výpis technologického postupu vybraného sortimentu

Zvláštním specifikem je nejednoznačnost technologických postupů zpracování jednotlivých druhů sortimentu. Tato nejednoznačnost spočívala v závislosti parametrů jedné operace na místě provedení operace předchozí. Mohlo se stát, že určitý sortiment, byl-li vyprán na jedné z praček, postupoval dále na sušení a posléze na žehlení. Ale proběhlo-li vyprání na ostatních pračkách, operace sušení se vynechala (protože prádlo po vyprání mělo mnohem nižší vlhkost než v předchozím případě) a následovala ihned operace žehlení. Dokonce existoval sortiment, pro který se v některých případech přidávala ještě druhá sušicí operace (z důvodu velké zbytkové vlhkosti po první sušicí operaci). Jiným příkladem byla doba trvání operace v závislosti na velikosti dávky, avšak s určením minimálního a maximálního rozmezí, takže nebylo možné použít pro výpočet doby trvání prostou přímou úměru (např. 1min/1kg). Výkonnost pracích strojů byla určena fixní dobou trvání na jednu dávku bez ohledu na její velikost (pračka na daný program prala stejnou dobu při maximální náplni nebo při poloviční náplni), naopak výkonnost žehlicích strojů byla definována udáním množství zpracovaného prádla za časovou jednotku. V případě pracích a sušicích strojů navíc připadal v úvahu postoperační čas představující dobu potřebnou na vyložení prádla ze stroje (přípravný čas na naložení stroje se spojoval s konkrétní dobou trvání operace).

Jedním ze strojů byla kontinuální pračka, která se skládá z 16 komor (plus 4 předřazené části pásového dopravníku a 1 část lisování po výstupu z pračky), které jsou řazeny sériově (v podstatě šlo o výrobní linku). Složitost problému zvyšovala skutečnost, že takt této pračky závisel na použitém pracím programu, který byl závislý na typu sortimentu. Ke změně taktu však mohlo dojít jen při vstupu do určité komory a rovněž záleželo na aktuální náplni pračky. Dalším specifikem byla změna teploty (a s tím související časová prodleva), opět závislá na typu pracího programu, která se však nastavovala při vstupu do jiné komory a rovněž záleželo na aktuální náplni pračky. Chod celé pračky byl však ovlivněn ještě návaznými sušičkami, které se podle celkové situace v provozu využívaly obě nebo jenom jedna. Některé prací stroje se navíc dělily do několika paralelních částí, které zpracovávaly sortiment ve stejnou dobu. To umožňovalo smíchat různé sortimenty do jednoho stroje (avšak podle omezujících kritérií, která dovolovala spojovat jen vybrané podmnožiny sortimentu - něco lze prát spolu, něco zkrátka ne).


Obr. 2: Hlavní výpočetní okno, řízení výpočtu

Globální definice
Aby bylo možné provádět vlastní plánování výrobního procesu, bylo nejprve nutné vytvořit korektní globální definice. Některé údaje byly zadávány ručně (definice směn, názvy plánovaných přerušení, základní názvy operací apod.), většina dat však byla pořízena automatickým importem ze zdrojových souborů typu xls. Výhodou takto vytvořených automatických importů je možnost provádět změny a uchovávat aktuální stav dat ve zdrojových souborech a v rámci plánovacího systému provádět jen následnou aktualizaci. Definiční aparát technologických postupů umožňoval z údajů zadaných číselně v tabulkách sestavit ucelený technologický předpis pro zpracování jednotlivého sortimentu (obr. 1).

Vytvoření definic globálního prostředí je jednorázová záležitost. Vlastní plánování vychází z těchto definic, přičemž je možné podle potřeby většinu parametrů v rámci každého plánu modifikovat.

Vlastní plánování
Místo popisu jednotlivých funkcí plánovacího systému bude nejlepší přímo popsat práci tak, jak se v praxi provádí.

V manažeru jednotlivých plánů zvolíme funkci Založit nový prázdný plán (rovněž je možné založit nový navazující plán, který přímo navazuje na vybraný plán. Návaznost se projeví tím, že se automaticky převezmou nedokončené zakázky a jednotlivé úrovně rozpracovaností na všech technologických stupních). Je třeba zvolit název plánu a období, na které chceme plánování provést. Protože se jedná o operativní plánování, je vhodné volit kratší období zhruba v rozsahu jednoho dne až jednpho měsíce (doba jeden měsíce je hraniční z důvodu rychlosti výpočtu a přehlednosti - jinak lze samozřejmě plánovat na libovolně dlouhé období).

Vstoupíme do hlavního výpočetního okna, ze kterého se řídí výpočetní proces. Nyní je třeba nadefinovat seznam zakázek, které mají být splněny (půjde o zakázky, které jsou v daný čas již známé - zakázky, které budou během zvoleného plánovacího období přicházet, budeme přidávat až tehdy, když skutečně přijdou). Každou zakázku lze identifikovat číslem, názvem, zkráceným názvem a lze pro ni definovat termín zahájení (tím lze danou zakázku odsunout na další dny), termín dokončení (datum a čas, kdy musí být celá zakázka dokončena), časové rozmezí (jak dlouho má maximálně trvat plnění dané zakázky) a případně i prioritu, která může zajistit přednostní nasazení do výroby.


Obr.3: Rozvržení výroby na jednotlivé stroje včetně zobrazení cesty dávky prádla výrobním procesem

Každá zakázka se skládá z definované podmnožiny výrobků, které se vybírají z celkové množiny dostupných technologických postupů (dostupnost konkrétního technologického postupu je zajištěna mnoha interními kontrolami na integritu dat). Ke každému výrobku definujeme plánované množství. V každém konkrétním plánu lze částečně modifikovat technologický postup - maximální počet strojů pro danou operaci, parametry výrobní dávky, vyřazení některých strojů pro danou operaci. Pokud neprovedeme žádný zásah, přebírá se technologický postup definovaný v globálních definicích.

Po nadefinování zakázek je možné dále modifikovat některá nastavení - aktuální dostupnost pracovišť, jejich směnnost, dostupnost operací, omezenost zdrojů, počáteční stavy zdrojů a další. Rovněž lze nastavit parametry genetického algoritmu, který bude vyhledávat řešení. Je třeba určit kritéria, podle kterých bude vedena optimalizace a vyhodnocování fitness funkce algoritmu (což je vlastně zpětná vazba, aby algoritmus "věděl", zda to, co dělá, dělá dobře, či naopak). Dále lze nastavit parametry výpisu informací o systému během vyhledávání řešení.

Vlastní spuštění výpočtu a jeho další řízení se provádí pomocí třech tlačítek Spustit, Přerušit a Reset (obr. 2).

V kterémkoliv okamžiku lze výpočet pozastavit a prohlédnout si řešení odpovídající nejlepší variantě, která byla do této chvíle dosažena. Vyhledávání řešení probíhá formou simulace výrobního procesu v reálném čase, která je řízena genetickým algoritmem. Tato technologie zajišťuje neustálé přibližování dosud nalezeného řešení optimálnímu stavu. Nalezené řešení se může podle použitých kritérií lišit, protože např. kritérium minimalizace nákladů může být v rozporu s kritériem nejkratší doby výroby. Ale toto všechno lze vyzkoušet a následně posoudit, která varianta je pro danou chvíli vyhovující.


Obr.4: Příklady rozpisu činností pro jednotlivá pracoviště

Vygenerované řešení lze zhodnotit prohlížením výstupních informací, kterých se nabízí obrovská škála. Protože jsou výsledky získány simulací navrženého řešení, lze z nich vytvořit libovolný výstup formou tabulky, grafu nebo animace.

Vytvořený plán můžeme zhodnotit podle celkového pohledu na rozvržení výroby pro jednotlivé stroje, umístění jednotlivých zakázek do výroby, spotřeby zdrojů a jejich promítnutí do jednotlivých výrobků, podle nákladů na jednotlivé výrobky, využití pracovišť a detailní analýzu výrobních a nevýrobních časů. Dále lze sledovat spotřebu libovolného zdroje nebo nárůst rozpracovanosti během celého období, rozpis činností pro jednotlivá pracoviště s uvedením veškerých činností během vybraného časového úseku.

Za podrobnější zmínku stojí úplná identifikace výrobních dávek ve výrobním procesu (obr. 3). To znamená, že známe přesné umístění v prostoru a v čase pro každou výrobní dávku a můžeme zjistit její cestu od počátečních úrovní technologického procesu až k finální operaci. Víme, na kterém stroji v kolik hodin a v jaké velikosti vstoupila do výroby, a tyto informace se opakují pro následující technologické stupně (tzn. v našem příkladu víme, kdy se které prádlo vypralo, na jaké pračce, v kolik hodin se začalo sušit na vybrané sušičce a v kolik hodin opustilo žehlicí stroj).

Pokud se nám navržené řešení líbí a vyhovuje po všech stránkách, je možné jej realizovat v praxi. K tomu slouží některé výstupy popisující např. soupis veškerých činností na jednotlivých pracovištích pro daný den (obr.4). Mezi požadavky zákazníka patřila možnost exportu získaných dat do firemního systému pro další zpracování. Součástí programu je univerzální exportní modul umožňující data z kterékoliv tabulky v programu převést do tvaru doc, xls, txt, dbf nebo html. Samozřejmostí je možnost tisku libovolné tabulky nebo grafu.

Tím jsme provedli první část celého procesu plánování a řízení výrobního procesu. Máme hotový plán, který se schválí a začíná jeho realizace. Avšak jak to v praxi bývá, velmi brzy se začne skutečnost lišit od plánu. Objeví se poruchy strojů, neplánované odstávky, přijdou další zakázky apod. Proto přichází ke slovu další funkce plánovacího systému.


Obr.5.: Volba plánu a nastavení režimu práce se systémem

Porovnání plánu a skutečnosti, provedení změn
Je třeba vstoupit do právě realizovaného plánu v reálném čase. Otevřeme daný soubor plánu, nastavíme aktuální datum a čas a vybereme možnost Sestavení nového plánu od … (obr. 5).

V hlavním výpočetním okně máme možnost provádět korekce, které se vztahují k aktuálnímu času (rovná se datumu a času vstupu do systému). Chceme-li například promítnout skutečnou výrobu do plánu, využijeme funkci Porovnání plánu a skutečnosti, kde je možné přepisovat jednotlivé výrobní nebo nevýrobní události na vybraných strojích. Zásah lze provést ručně, nebo s využitím speciálně vytvořeného importu automaticky (obr. 6).

Tabulka zobrazuje jen ty události, které začaly před aktuálním časem (aktuální datum a čas je v levém dolním rohu okna). Lze zrušit libovolnou událost, přidat další (výrobní i nevýrobní), změnit množství daného výrobku, počáteční a koncový čas události, a dokonce lze změnit i samotný výrobek. Události, jejichž začátek byl plánován v čase větším než čas aktuální, zde zobrazeny nejsou, protože se vygenerují v závislosti na novém stavu výrobního procesu, který je definován buďto změnami v dokončené výrobě nebo dalšími změnami (porucha pracoviště, přidání nové zakázky apod.).

Významnou změnou může být přidání nové zakázky (obr. 7). Může dojít ke změnám ve vygenerovaném řešení. Pokud bychom pro novou zakázku přiřadili prioritu 1 (nejvyšší priorita), došlo by k přednostnímu přiřazování výrobků nové zakázky na úkor doposud umístěných. Výhodou je, že v rámci tohoto systému můžete zkoušet různé varianty a sledovat, jaký vliv mají na plnění ostatních zakázek, výši nákladů a další kritéria.


Obr.6.: Korekce plánovaného stavu podle skutečné výroby

Po provedení potřebných změn můžeme spustit výpočet. Události, které spadají do období před aktuálním časem, se přehrají tak, jak existovaly v dosud uloženém řešení (pokud nebyly změněny vnějším zásahem pomocí funkce Porovnání plánu a skutečnosti). Naproti tomu události spadající do časového období po aktuálním čase se vygenerují v závislosti na nových podmínkách a omezeních. Tím vznikne nové řešení, které se opět snaží co nejvíce přizpůsobit aktuálnímu stavu výrobního procesu a postupně směřuje k optimální variantě. K hodnocení navrženého plánu lze opět využít dostupné výstupní informace. Vyhovující řešení uložíme a máme opět plán vycházející ze skutečnosti, který se může realizovat (s využitím denních rozpisů činností apod.).

Vyskytne-li se potřeba dalšího vstupu do systému (nová zakázka, porucha stroje atd.), postupujeme opět stejným způsobem (otevření plánu v konkrétním čase, provedení změn, přeplánování, uložení schválené varianty, realizace).

Po ukončení plánovaného období vyvstane potřeba vytvoření plánu na další plánovací období. Protože již existuje plán popisující období předchozí, zvolíme v manažeru plánů možnost Založit plán navazující na uložený plán (obr. 5), čímž dojde k převzetí nedokončených zakázek do nového plánu spolu s dalšími údaji popisujícími ukončení předchozího období (aktuální dostupnost strojů, úrovně rozpracovanosti apod.). Dále už postupujeme stejným způsobem jako v případě založení nového plánu.


Obr.7.: Přidání nové zakázky do již běžícího plánu

Závěr
Z uvedeného popisu je patrné, že se jedná o jednoduchou a příjemnou práci spočívající v modelování a simulaci výrobního procesu. Uživatel může zkoušet různé varianty výroby s okamžitým vyhodnocením a zjištěním jejich důsledků. Systém ECON Operativní plánování je pružný přizpůsobivý systém, který je založen na principech evolučního algoritmu, jehož metody jsou prověřeny miliardami let zkušeností. Do této doby příroda nic lepšího nevymyslela.

Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.


Inzerce

Automatizace ve výrobě potravin není výsadou jen velkých firem. Jak na to krok za krokem s ERP systémem?

Stejně jako většina podniků, čelí i potravinářská výroba v dnešní době řadě výzev: nedostatku kvalitních zaměstnanců, vyso­kým cenám energií i zdražování surovin. K tomu se přidává velmi přísná legislativa a nutnost hlídat řadu ukazatelů u surovin i hotových výrobků.