Genetické algoritmy. a jejich praktické využití. Pavel Šturc. průmyslu, stejně tak je zde uvedeno i několik případů jejich úspěšné implementace.

Podobné dokumenty
Genetické algoritmy a jejich praktické využití

Evoluční výpočetní techniky (EVT)

Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví

1. Úvod do genetických algoritmů (GA)

Jak se matematika poučila v biologii

Informační strategie. Doc.Ing.Miloš Koch,CSc.

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

CONCURRENT ENGINEERING (PARALELNÍ INŽENÝRSTVÍ) - optimalizace zavádění PLM systémů do podniků pomocí genetických algoritmů


Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

Téma 8: Optimalizační techniky v metodě POPV

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

Václav Jirchář, ZTGB

Genetické programování

Ústav automobilního a dopravního inženýrství. Datové sběrnice CAN. Brno, Česká republika

Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na:

A0M33EOA: Evoluční optimalizační algoritmy

Modelování a simulace Lukáš Otte

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Řízení rizik. Ing. Petra Plevová.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy

Mechanika s Inventorem

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

KANBAN Autopal s.r.o., závod HLUK

Mechanika s Inventorem

4EK201 Matematické modelování. 2. Lineární programování

Infor APS (Scheduling) Tomáš Hanáček

Numerické metody a programování. Lekce 8

Řízení rizik. Ing. Petra Plevová.

Úvod do optimalizace, metody hladké optimalizace

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

ELEKTRONICKÉ DOKUMENTACE PŘI VÝVOJI NOVÝCH

Podniková logistika 2

Metody síťové analýzy

5.5 Evoluční algoritmy

Automatizace je naší motivací

PLM řešení pro průmysl výroby strojů a strojního zařízení

GENETICKÉ ALGORITMY VE ZVOLENÉM SOFTWAROVÉM PROSTŘEDÍ

Datové struktury 2: Rozptylovací tabulky

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ BAKALÁŘSKÁ PRÁCE Jan Šulc

Gramatická evoluce a softwarový projekt AGE

Emergence chování robotických agentů: neuroevoluce

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Grafové algoritmy. Programovací techniky

MODELY ŘÍZENÍ ZÁSOB nákladově orientované modely poptávka pořizovací lhůta dodávky předstih objednávky deterministické stochastické

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

S T R A T E G I C K Ý M A N A G E M E N T

VYUŽITÍ METOD PŘÍMÉHO HLEDÁNÍ OPTIMA PŘI PREDIKTIVNÍM ŘÍZENÍ

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Úvod do informatiky. Miroslav Kolařík

Princip optimalizačních metod inspirovaných přírodou

PŘEDNÁŠKA 03 OPTIMALIZAČNÍ METODY Optimization methods

Lineární programování

5 Orientované grafy, Toky v sítích

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

RFID laboratoř Ing. Jan Gottfried, Ph.D.

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Grafové algoritmy. Programovací techniky

JAK MĚNÍ ADITIVNÍ TECHNOLOGIE VÝUKU?

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

ití empirických modelů při i optimalizaci procesu mokré granulace léčivl ková SVK ÚOT

1 Úvod do celočíselné lineární optimalizace

Teorie systémů TES 5. Znalostní systémy KMS

Zada nı bakala r ske pra ce

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Informace o studijním oboru M/01 Strojírenství

Profilová část maturitní zkoušky 2017/2018

Vstup a úkoly pro 1. kapitolu VYMEZENÍ POJMÚ. CÍLE VÝROBNÍ LOGISTIKY.

Pokročilé operace s obrazem

TGH12 - Problém za milion dolarů

Kombinatorická minimalizace

Povolání Vyšší odborné vzdělání; Bakalářský studijní program

Hardy-Weinbergův zákon - cvičení

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího:

Cvičeníč. 9: Dědičnost kvantitativních znaků; Genetika populací. KBI/GENE: Mgr. Zbyněk Houdek

Operační výzkum. Síťová analýza. Metoda CPM.

Obr. P1.1 Zadání úlohy v MS Excel

Univerzita Pardubice Fakulta ekonomicko-správní. Návrh a realizace systému pro genetické programování Bc. Petr Sotona

Efektivnost informačních systémů. strategické řízení taktické řízení. operativní řízení a provozu

ŘETĚZCOVÉ EFEKTY A PROBLÉMY OPTIMALIZACE

Povolání Vyšší odborné vzdělání; Bakalářský studijní program

Úvod do úloh plánování rozvozu (Vehicle Routing Problems)

Centrální mazací systémy 4.0

Popis zobrazení pomocí fuzzy logiky

Metaheuristiky s populacemi

OPTIMALIZACE. (přehled metod)

Řízení projektů. Konstrukce síťového grafu pro řízení projektů Metoda CPM Metoda PERT

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Simulace na modelu firmy v prostředí Witness

Algoritmizace prostorových úloh

STRATEGIE A CÍLE LOGISTIKY

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

Transkript:

Genetické algoritmy a jejich praktické využití Pavel Šturc Úvod Cílem této práce je seznámit čtenáře se základním principem funkce genetických algoritmů a nastínit jejich možné aplikování do různých odvětví průmyslu, stejně tak je zde uvedeno i několik případů jejich úspěšné implementace. Podle Darwinovy teorie přírodního výběru má vznik většího množství jedinců, než je okolí schopné uživit, za následek vznik konkurence a boj o nejvyšší pozici ve smečce. To znamená, že přežijí pouze jedinci ve výborné fyzické kondici a budou se dále rozmnožovat na úkor jedinců slabších. Právě tato teorie inspirovala ke vzniku a k principu fungování genetických algoritmů. Na principu evolučního vývoje (též genetických algoritmů) je dnes možné optimalizovat procesy, řídit systémy a selektovat ty nejvhodnější varianty z nepřeberného množství řešení. Platí pravidlo, že čím je zadaná úloha složitější, tím kvalitnější řešení dostaneme. Výhoda genetických algoritmů je nejenom v rychlosti výpočtu dané úlohy, ale také v možnosti pracovat s obrovským množstvím položek s desítkami či stovkami podmínek. Počet podmínek je pro genetické algoritmy v podstatě neomezený. Princip fungování genetických algoritmů Pro realizaci genetického algoritmu je potřeba definovat dvě základní věci: Genetickou reprezentaci řešeného problému Hodnotu funkce Fitness pro splnění ukončovací podmínky[1] 1

Standardní reprezentaci může tvořit např. řetězec či pole bitů. V praxi je velmi často využíváno binárních řetězců. Kódování řetězci má také svou analogii v genetice, kdy v podstatě řetězce odpovídají chromozómům, jednotlivé pozice v řetězci jednotlivým genům a konkrétní hodnoty na těchto pozicích pak alelám. Ve chvíli, kdy jsou definované obě podmínky, je možné postoupit k inicializaci počáteční generace. Počáteční generace je generována náhodně tak, aby byla rovnoměrně pokryta všechna možná řešení. Velikost počáteční populace může být různá, většinou se však jedná o stovky až tisíce možných řešení. Všechny generace neboli všechna možná řešení se nazývají stavový prostor.[2] Na začátku (tzn. v první generaci) je populace složena z naprosto náhodných členů. Pro každého jedince se spočítá tzv. fitness funkce, která vyjadřuje kvalitu řešení reprezentovaného tímto jedincem. Podle této kvality jsou vybráni jedinci, kteří jsou poté upravováni (pomocí mutací a křížení), čímž vznikne nová populace. Tento postup se cyklicky opakuje, díky čemuž se kvalita řešení v populaci postupně vylepšuje. Celý proces se zastaví až při dosažení postačující kvality řešení, případně po předem dané době. Vlastní genetický algoritmus tedy můžeme shrnout do sedmi kroků: 1. Návrh struktury 2. Inicializace 3. Ohodnocení 4. Selekce 5. Křížení 6. Mutace 7. Reprodukce 1. Návrh struktury Je nutné navrhnout strukturu jedince tak, aby se snadno vyjadřovala jeho kvalita a zároveň se dobře provádělo křížení. Pro tento účel je zvolena generace osmi řetězců délky 8 reprezentovaná binárním kódem. 2

2. Inicializace Inicializace znamená počáteční nastavení vektorů tvořících daného jedince. Většinou se jedná o náhodné hodnoty. První generace je vytvořena pomocí generátoru náhodných čísel a vypadá takto: Obrázek 1: Náhodná generace[2] 3. Ohodnocení Jedná se o výpočet kvality jedince (v případě binární reprezentace čísla se jedná o jeho dekadické vyčíslení). Popřípadě u řešení úloh s omezením špatným jedincům kvalitu penalizujeme. Tím je pro ně snížena šance dostat se do další populace, popřípadě se zvýší šance na nahrazení novým jedincem. Funkce f vypočítá, jak kvalitní řetězce máme k dispozici: Obrázek 2: Fitness jedinců[2] 3

Jak je vidno z obrázku, máme tři poměrně silné řetězce 2, 5, 6, na druhou stranu také tři řetězce s horšími výsledky (1, 7 a 8). Cílem našeho snažení bude na základě této znalosti vytvořit novou generaci, která se bude skládat z kombinace těch nejsilnějších řetězců (2, 5, 6). Proces tvorby nové generace se skládá z následujících tří kroků. 4. Selekce V tomto kroku se kopírují vybrané řetězce ze staré generace do generace nové. Výběr závisí na pravděpodobnosti vylosování řetězce při tzv. vážené ruletě. Tu si můžeme představit jako obyčejnou ruletu avšak s tím rozdílem, že nemáme pro každý řetězec stejnou pravděpodobnost vylosování. Pravděpodobnost pro daný řetězec se vypočítá tak, že se sečtou všechny fitness hodnoty a tímto číslem hodnotu fitness pro určitý řetězec podělíme. Tabulku s výpočtem pravděpodobnosti pro naše řetězce a graf můžeme vidět na obrázcích níže. Obrázek 3: Výpočet pravděpodobnostních hodnot pro ruletu[2] Obrázek 4: Graf vypočtené pravděpodobnosti pro ruletu[2] 4

Pokud tedy ruletu osmkrát roztočíme, vylosujeme si osm členů nové generace. Ta může vypadat následovně: Obrázek 5: Nová generace[2] Tímto způsobem však není možné získat lepší generaci, čili množinu kvalitnějších řešení, než tu, kterou jsme měli k dispozici na začátku. Tato generace se liší od té původní pouze tím, že se zde s největší pravděpodobností nevyskytují nejslabší jedinci. Proto je zapotřebí zapojit do vývoje ještě dva následující operátory. 5. Křížení Při této operaci dochází k výměně informací mezi dvěma řetězci. Proces započíná tak, že jsou vybrány dva náhodné řetězce z nové generace, mezi kterými bude probíhat výměna. Tento postup je možno přirovnat ke zplození dvou potomků, kteří si rozdělí části genu svých rodičů. v tomto kroku tudíž rodičovským řetězcům jasně určíme, kterou část řetězce bude potomek od daného rodiče dědit (v našem případě třetí možná dělicí pozice). Oba potomci budou také v podstatě naprosto odlišní. (viz. Obrázek 6) 5

Obrázek 6: Schéma křížení[2] Křížením vznikají dva nové řetězce, jež vlastní některé informace od svých předků. Kvalita fitness jednotlivých potomků je poté následovná: 1. f(00000000) = 0 2. f(01100111) = 9, 631 Z výsledku je zjevné, že první vytvořený potomek nemá žádnou šanci dostat se opětovně zapojit do procesů selekce, křížení a také tzv. mutace, jejíž funkce je popsána níže. 6. Mutace Mohlo by se zdát, že při vhodném výběru jedinců v generaci je možné selekcí a křížením dosáhnout velmi kvalitních výsledků. V reálných situacích ale tomu tak vždy není - např. můžeme mít podmínku, která nám říká, že velmi kvalitní řetězec obsahuje na čtvrté pozici jedničku. Pokud ale žádný z takových řetězců nemáme k dispozici, je nemožné dosud dostupnými kroky takový řetězec vytvořit. Pokud tedy zmutuje např. řetězec 01100111 na čtvrté pozici, dostaneme 01110111. V tomto případě je zjevné, že nám mutace v tvorbě kvalitnějšího řetězce pomohla. 7. Reprodukce Závěrečnou operací v tvorbě nové generace je reprodukce. V této fázi jsou vybrány pro procesy opětovné selekce, křížení a mutace ty řetězce, jejichž fitness hodnota je nejvyšší. Naopak řetězce, které by do další fáze nebyly přínosem, se jednoduše nahradí kopiemi silnějších jedinců. 6

Využití genetických algoritmů Podmínky pro aplikaci GA Genetických algoritmů je možno využít k řešení širokého spektra úloh. Jak již bylo zmíněno výše, základní podmínkou je definice funkce, kterou je třeba minimalizovat nebo maximalizovat. Při minimalizaci se zpravidla jedná o snižování odchylky od požadovaného stavu, o minimalizaci spotřeby energie, paliva, ztrát, nákladů, minimalizaci nežádoucích účinků atd. Při maximalizaci se zpravidla jedná o zvyšování účinnosti, výkonu, zisku atd.[3] Další podmínkou k úspěšné implementaci genetických algoritmů je zabezpečit, aby byl optimalizovaný problém kvalitně počítačově reprezentován. To znamená, že pro každý bod prohledávaného stavového prostoru neboli každé potenciální řešení bude možné počítačem ohodnotit míru (ne)úspěšnosti splnění daného cíle. Přitom naprosto nezáleží na typu daného procesu, který může být např. ekonomického, společenského, fyzikálního, chemického nebo třeba biologického charakteru.[3] Výhody genetických algoritmů Jedna z velmi výhodných vlastností řešení založených na genetických algoritmech je možnost v průběhu výpočtu sledovat, který z parametrů nebo která z podmínek se stává omezující, popř. naopak kterého parametru není dosahováno a řešení začíná konvergovat mimo pásmo přípustnosti. Lze pak operativně a velmi jednoduše zasáhnout formou změny priorit, termínů nebo změnou podmínek a ve vyhledávání přípustného řešení pokračovat bez jakékoliv ztráty informací z dosavadního průběhu výpočtu. U klasických metod řešení problému je při jakékoli změně výchozích podmínek potřeba celý výpočet opakovat od začátku. Datová náročnost, doba řešení problému a snadnost ovládání realizovaných programů je na takové úrovni, že je bez problémů možno zařadit tyto systémy do dílenského plánování. Na druhé straně výkonnost a dosahované výsledky předurčují systémy využívající genetické algoritmy k přehodnocení mnoha přístupů vrcholového managementu a k nahrazení dosavadních velmi drahých a náročných systémů v kvalitě i v čase.[3] Existují problémy, které jsou s použitím konvenčních optimalizačních přístupů a metod řešitelné jen těžko nebo dokonce vůbec. V takovém případě lze využít genetických algoritmů. Mezi takové problémy patří např. hledání 7

globálních extrémů nelineárních multimodálních funkcí, těžké kombinatorické nebo grafově orientované problémy (zde řadíme např. problém obchodního cestujícího), mnohaparametrové problémy, úlohy s kombinovanými typy proměnných (binární, celočíselné, symbolové atd.), úlohy s velkým počtem různých typů omezení (nerovnosti, rovnosti, logické podmínky) a úlohy s výpočetně náročným vyhodnocením účelové funkce (konstrukční výpočty, počítačové simulace). Konkrétní aplikace GA Ve světě existuje již řada praktických využití genetických algoritmů téměř ve všech oblastech lidského podnikání. Například v oblasti výroby zemědělských strojů, ve střední Americe, určitá firma vyrábí různé zemědělské stroje na zakázku podle přání jednotlivých zákazníků. Dá se tedy říci, že každý dodaný stroj je unikátní a tedy velikost výrobní dávky je velmi blízká 1. Při rozsahu sortimentu a krátkých termínech dodávek všechny klasické metody řízení výroby selhávaly, docházelo k neustálým posuvům termínů a hromadění zásob a výroba se potýkala s neúměrně velkou rozpracovaností. Vzhledem ke stále se měnícím podmínkám a novým objednávkám se objevila potřeba každý den upravovat operativní plán výroby. Genetické algoritmy zde našly uplatnění v nástroji pro sestavení a doplnění operativního plánu výroby. Centrální počítač po skončení každého pracovního dne předá potřebné údaje do výroby, kde přímo na hale běžně dostupné PC přes noc projde tisíce přípustných operativních plánů a připraví je pro zahájení příští směny. Tak je nalezeno přijatelné řešení z hlediska současného stavu výroby a nových podmínek a požadavků.[4] Významným polem působnosti jsou inženýrské aplikace. Genetické algoritmy jsou silným nástrojem při optimalizaci elektrických obvodů, optimalizace provozu vlakové sítě, návrhu antén, filtrů, technologických procesů, regulačních obvodů atd. V oboru stavebnictví je možné genetickými algoritmy optimalizovat konstrukce budov, dopravních komunikací, inženýrských sítí atd. Další obecně využívané řešení je v oblasti distribučních a dopravních úloh, kde hovoříme především o hledání nejkratší nebo nejlevnější cesty. V oboru strojírenství lze řešení najít v oblasti návrhu převodovek nebo řezných plánů. Dalším příkladem je využití genetických algoritmů při optimalizaci motorů Boeingu 777, kde se zdánlivě malou konstrukční optimalizací získala na dané poměry mimořádně významná úspora paliva cca 2,5%. Převedeno na 8

finanční ukazatele představuje tato úspora při celoročním provozu jednoho letadla 2 miliony amerických dolarů. Další zajímavou aplikací je využití genetických algoritmů pro vyšlechtění nového typu monopostu stájemi BMW Williams a Jordan. Na vozech formule F1 se upravují tisíce parametrů, které jsou v závodech rozhodujícím faktorem úspěchu (velikost zadních křídel, výběr pneumatik, nastavení výšky sedadla, úpravy rychlostních stupňů atd.). Požadavek kladený na genetický algoritmus byl jednoznačný vytvořit monopost s takovými aerodynamickými vlastnostmi, aby zajetí jednoho kola bylo co nejrychlejší. Na začátku se vzala dvojice stávajících vozů a vědci Peter Bentley a Krysztof Wloch z londýnské Univerzity College vybrali hodnoty 68 náhodných parametrů, které užili při optimalizaci. Po 40 generacích výpočtů byly vyvinuté vozy mnohem rychlejší než auta braná jako Adam a Eva. Konkrétně se jednalo o zkrácení času potřebného pro zajetí okruhu v Nürburgringu o sedm sekund, což je při závodech vozů F1 velmi podstatná úspora.[3] Závěr Z textu je patrné, že se genetické algoritmy již dnes úspěšně používají v několika praktických aplikacích. V dnešní době umožňují řešení prakticky jakékoli výpočetní úlohy, ale největší efektivitu od genetických algoritmů lze očekávat pouze tam, kde je znám dostatečný počet podmínek a jednotlivých řešení. Proto nemá smysl implementovat genetické algoritmy do těch typů úloh, které je možné vyřešit klasickou metodou. Genetické algoritmy zkrátka nacházejí uplatnění snad ve všech oblastech, kde selhává klasická metoda řešení problému, tudíž je zapotřebí jiného přístupu. 9

Použitá literatura [1] D. Miček, Genetické algoritmy, diplomová práce, Fakulta elektrotechniky a komunikačních technologií, Ústav automatizace a měřicí techniky, VUT, Brno, 2009 [2] M. Maděrová, Genetické algoritmy ve zvoleném softwarovém prostředí, bakalářská práce, Fakulta ekonomicko správní, Ústav systémového inženýrství a informatiky, UP, Pardubice, 2007 [3] J. Špaček, Optimalizace zavádění PLM systémů do podniků pomocí genetických algoritmů, pojednání ke státní doktorské zkoušce, Fakulta strojního inženýrství, Ústav konstruování, VUT, Brno, 2006 [4] M. Nekvinda, Genetické algoritmy a jejich využití v řízení výroby, II. část, Dostupné z www.system.ccb.cz/site/trendy/sys2 2.htm, 7. 11. 2006. 10