GLOBÁLNÍ OPTIMALIZACE S VYUŽITÍM SOFTWARU MATHEMATICA

Podobné dokumenty
Jak se matematika poučila v biologii

Genetické programování 3. část

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

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

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

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

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

A0M33EOA: Evoluční optimalizační algoritmy

Grammar-based genetic programming

Seminář z umělé inteligence. Otakar Trunda

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

Úvod do optimalizace, metody hladké optimalizace

Markov Chain Monte Carlo. Jan Kracík.

Základy umělé inteligence

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Analytické programování v C#

Genetické programování

Modelování a simulace Lukáš Otte

Evolučníalgoritmy. Dále rozšiřována, zde uvedeme notaci a algoritmy vznikléna katedře mechaniky, Fakulty stavební ČVUT. Moderní metody optimalizace 1

Gramatická evoluce a softwarový projekt AGE

Umělá inteligence a rozpoznávání

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

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

Kombinatorická minimalizace

Datové struktury 2: Rozptylovací tabulky

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.

Biologicky inspirované výpočty. Schématické rozdělení problematiky a výuky

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

PARAMETRICKÁ STUDIE VÝPOČTU KOMBINACE JEDNOKOMPONENTNÍCH ÚČINKŮ ZATÍŽENÍ

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

Složitost Filip Hlásek


Algoritmy pro spojitou optimalizaci

Metaheuristiky s populacemi

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

MOŽNOSTI OPTIMALIZACE VE STAVEBNICTVÍ

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

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

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

Simulační modely. Kdy použít simulaci?

Umělá inteligence aneb co už není sci -fi

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

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

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Struktury a vazebné energie iontových klastrů helia

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Moderní systémy pro získávání znalostí z informací a dat

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Časová a prostorová složitost algoritmů

OPTIMALIZACE. (přehled metod)

Státnice odborné č. 20

ADAPTIVNÍ ALGORITMUS PRO ODHAD PARAMETRŮ NELINEÁRNÍCH REGRESNÍCH MODELŮ

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

Optimalizační metody v CFD diferenciální evoluce

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D.

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

Václav Matoušek KIV. Umělá inteligence a rozpoznávání. Václav Matoušek / KIV

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

4EK213 Lineární modely. 10. Celočíselné programování

UČENÍ BEZ UČITELE. Václav Hlaváč

Formální jazyky a gramatiky Teorie programovacích jazyků

11. Tabu prohledávání

Dynamické programování

VÝBĚR A JEHO REPREZENTATIVNOST

U Úvod do modelování a simulace systémů

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

Markovovy modely v Bioinformatice

SOUBĚŽNÉ UČENÍ V KARTÉZSKÉM GENETICKÉM PROGRAMOVÁNÍ CO-LEARNING IN CARTESIAN GENETIC PROGRAMMING

Úvod do celočíselné optimalizace

APLIKACE UMĚLÉ INTELIGENCE V EKONOMICKÉ OBLASTI THE APPLICATION OF ARTIFICIAL INTELLIGENCE IN THE FIELD OF ECONOMICS

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Zada ní 1. Semina rní pra ce z pr edme tu Matematický software (KI/MSW)


01 Teoretické disciplíny systémové vědy

Popis zobrazení pomocí fuzzy logiky

EVOLUČNÍ ALGORITMY A NEURONOVÉ SÍTĚ

13. Lineární programování

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

7. Rozdělení pravděpodobnosti ve statistice

Architektura počítačů

Úvod do informatiky. Miroslav Kolařík

Optimalizační metody v CFD

OBJEKTOVÁ KNIHOVNA EVOLUČNÍCH ALGORITMŮ

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Úvod do stochastických optimalizačních metod (metaheuristik) Moderní metody optimalizace 1


Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

APLIKACE ÚHOLY OBCHODNÍHO CESTUJÍCÍHO PRO VÝBĚR OPTIMÁLNÍHO POŘADÍ FÁZÍ SVĚTELNĚ ŘÍZENÝCH KŘIŽOVATEK

Optimalizační algoritmy inspirované chováním mravenců

Metoda Monte Carlo, simulované žíhání

Lekce 01 Úvod do algoritmizace

Analytické metody v motorsportu

VYUŽITÍ SOFTWARU MATHEMATICA VE VÝUCE PŘEDMĚTU MATEMATIKA V EKONOMII 1

OPTIMALIZACE CHEMICKÝCH STUPŇOVÝCH PROCESŮ POMOCÍ MATLAB SYMBOLIC MATH TOOLBOXU. Vladimír Hanta

STOCHASTICKÉ ALGORITMY V ODHADU PARAMETRŮ REGRESNÍCH MODELŮ

Vyhněte se katastrofám pomocí výpočetní matematiky

Algoritmizace prostorových úloh

Transkript:

GLOBÁLNÍ OPTIMALIZACE S VYUŽITÍM SOFTWARU MATHEMATICA Barbora Tesařová Univerzita Hradec Králové, Fakulta informatiky a managementu Abstrakt: Mnoho úloh reálné praxe může být definována jako optimalizační úlohy. Řešený problém se převede na matematickou úlohu danou vhodným funkčním předpisem, jejíž optimalizace vede k nalezení argumentů účelové funkce. Řešení analytickou cestou může být značně komplikované nebo nemožné. Tedy je nutné hledat algoritmy, které jsou pro řešení konkrétních problému použitelné. Tento příspěvek se zabývá gramatickou evolucí, která může generovat a optimalizovat strukturu reálných modelů včetně jeho parametrů v softwaru Mathematica. Klíčová slova:genetické algoritmy, Globální optimalizace, Gramatická evoluce, Mathematica. Global optimization using the software Mathematica Abstract: In this paper we discuss optimization problems solved by genetic algorithms. Genetic algorithms are optimizing methods based on a group of individuals, which are evolving in time. This work provides an introduction to grammatical evolution that can evolve complete models real world for using for example symbolic regression. Finally, this paper brings new principles to the population reproduction and the representation of individuals in this algorithm in software Mathematica. Key words: Genetic algorithms, Global optimization, Grammatical evolution, Mathematica. 1. Globální optimalizace Většina úloh inženýrské praxe může být definována jako optimalizační úlohy. Úlohu nalezení globálního minima můžeme formulovat takto: Máme-li účelovou funkci f : D R, D d R (1) 368

pak globální minimum je jeden bod nebo více bodů z D s nejmenší funkční hodnotou. Chceme-li nalézt globální maximum, pak jej nalezneme jako globální minimum funkce ( ) ( ). Řešení analytickou cestou může být značně komplikované nebo nemožné, zvláště když účelová funkce má mnoho extrémů nebo má další nepříjemné vlastnosti. Analýza problému globální optimalizace ukazuje, že neexistuje deterministický algoritmus řešící obecnou úlohu globální optimalizace v polynomiálním čase, tzn. problém globální optimalizace je NPobtížný. Přitom globální optimalizace je úloha, kterou je nutno řešit v mnoha praktických problémech. Tedy je nutné hledat algoritmy, které jsou pro řešení konkrétních problému použitelné. (2) 2. Rozdělení optimalizačních algoritmů Optimalizační algoritmy slouží k nalezení extrému dané účelové funkce. Tyto algoritmy lze rozdělit dle různých kritérií jako například dle principů jejich činnosti, podle složitosti, podle problémů, které řeší atp. Dle vlastností je můžeme rozdělit například do následujících kategorií (Obrázek 1) [11]: Enumerativní - Úplný faktoriální experiment. Algoritmus provede výpočet všech možných kombinací daného problému. Je vhodný pouze při malém počtu faktorů a jejich úrovní. Pro obecné použití by výpočet nemusel byt časově uskutečnitelný. Deterministické - Tato skupina algoritmů vychází z klasických matematických metod. Předpokladem je malý a spojitý prohledávaný prostor, nejlépe unimodální účelová funkce, analyticky definovaný problém. Výsledkem těchto algoritmů je jediné řešení. Stochastické Tyto algoritmy využívají náhodné procesy, heuristicky prohledávají prostor. Heuristikou rozumíme postup, ve kterém se využívá náhoda, intuice, zkušenost. Rozdíl mezi heuristikou a deterministickým algoritmem je v tom, že na rozdíl od deterministického algoritmu heuristika nezajišťuje nalezení řešení. Smíšené Tyto algoritmy představují kombinaci algoritmů stochastických i deterministických. Jednotlivé metody spolu vzájemně kooperují a touto vzájemnou spoluprácí vytvářejí algoritmus nový. Takovýto algoritmus pak může být velmi kvalitní a výkonný, schopný nalézt dostatečně dobré řešení v relativně malém počtu ohodnocení účelové funkce. Nebývají také tak náročné na předběžné informace. Také nám dovolují nalézt více než jedno řešení během jednoho spuštění. Smíšená optimalizace je vhodná k řešení problémů, kde je velký prohledávaný prostor možných řešení. 369

Optimalizace Enumerativní Deterministické Stochastické Smíšené Greedy Náhodné prohledávání Matematické programování Branch and Bound Simulované žíhání Diferencialní evoluce Depth First Monte Carlo Evoluční algoritmy Broadth First Tabu Search Memetické algoritmy Simplexová metoda Stochastický horolezecný algoritmus ACO a další a další Metody imunitního systému a další Obrázek 1 - Rozdělení optimalizačních metod upraveno z [11] Hlavní motivací pro výzkum jsou metody, které vznikají v posledních několika desetiletích a jsou inspirovány přírodními procesy evoluční algoritmy. Mají několik zvláštností, které je činí široce použitelnými pro řadu problémů a jejich cílem je hledání nejlepšího řešení. Takového řešení vždy závisí na parametrech, jejichž optimální hodnoty hledáme. Jde vlastně o optimalizaci parametrů automaticky generovaných modelů reálných systémů. Vedle optimalizace spojitých parametrů modelů je však zajímavá i současná optimalizace samotné 370

struktury modelu. Tato optimalizace na druhou je hlavní náplň výzkumu za použití softwaru Mathematica. Tyto modely vznikají samoorganizací z funkčních bloků pomocí evolučních technik. Samoorganizací generované modely mění svou strukturu a to i strukturu funkcí v modelu použitých, mění se tedy nejenom hodnoty parametrů, ale i parametry samotné. Procesem optimalizace se učí fungovat tak, aby co nejlépe napodobovaly chování reálných systémů. Problémů je v tomto případě celá řada a klasické metody optimalizace zde nejsou přímo použitelné. Model - Struktura - Parametry Vstupní proměnné (gramatiky, pravidla apod.) Výstup navržený optimalizovaný model OPTIMALIZACE Obrázek 2 Optimalizace struktury a parametrů induktivních modelů 3. Gramatická evoluce Jednou z nejnovějších metod spadajících do evolučních výpočetních technik je tzv. gramatická evoluce [5]. Gramatická evoluce je metoda, která spojuje možnosti genetických algoritmů a genetického programování. Oproti genetickému programování je gramatická evoluce obecnější, protože není závislá na konkrétním programovacím jazyku. Genetické algoritmy rozšiřuje o překladač bezkontextové gramatiky a díky tomu má schopnost generovat složité struktury. Může být použita k popisu výrazu, grafu, sítí, programu apod. Pro zápis bezkontextové gramatiky je použita Backus-Naurova forma. 3.1. Backus-Naurova forma Backus-Naurova forma (BNF) se využívá k vyjádření bezkontextové gramatiky, která se používá pro popis formálních jazyků. Popisuje jazyk formou produkčních pravidel, ve kterých vstupují atomické symboly, kterým říkáme terminály a neterminály. Ty jsou dále rozvinuty v jeden nebo více neterminálů a terminálů. Každý neterminál může mít více alternativních pravidel pro expandování [5]. 371

Pravidla se zapisují ve tvaru: <symbol> ::= <možnost1> < možnost2>... <možnost-n> Každá možnost je řetězec terminálů a neterminálů, který je možnou substitucí neterminálů na levé straně pravidla. 3.2. Mapování z genotypu do fenotypu Gramatická evoluce je genetický algoritmus s odděleným fenotypem a genotypem. Pro jedince se používá označení fenotyp a je reprezentován tzv. genotypem. Fenotyp je množina vnějších znaku a vlastností jedince. Z hlediska optimalizace matematického modelu se tedy jedná o vlastní řešení úlohy. Řešení může být reprezentováno různě, je však jednoznačně určeno genotypem. Během kódování nabývají geny hodnot z odpovídajících domén tak, aby genotyp mohl být v dekódovacím procesu transformován na příslušný fenotyp. Genotyp v gramatické evoluci může být stejně jako u klasických genetických algoritmů binární řetězec a říká se mu chromozom. V gramatické evoluci má chromozom takovou funkci, že reprezentuje posloupnost pravidel tak, jak budou postupně aplikována během generování programu. Chromozomy mohou mít proměnnou délku. Celkový řetězec je rozdělen například na osmibitové podřetězce kódující čísla 0-255, které se nazývají kodony. Kodony jsou postupně čteny od začátku chromozomu a na základě jejich hodnoty je použito odpovídající pravidlo pro nahrazení neterminálu. Protože pravidel je většinou méně než 256, je číslo pravidla, které se pro rozvinutí neterminálu použije stanoveno takto: (3) Je zřejmé, že toto zakódování umožňuje reprezentaci jednoho pravidla několika různými řetězci. Následující příklad ukazuje proces přepisu genotypu na fenotyp: Budeme uvažovat výrazy, ve kterých se mohou vyskytovat operace { }, proměnné a celá čísla 0-9. Množina terminálů je tedy: { } Množina neterminálů je: (4) { } (3) 372

kde je výraz (expression) je operátor (operator) je proměnná (variable) je číselná konstanta (number) Počáteční startovací neterminál. Množina přepisovacích pravidel pak může vypadat například takto: (A) <expr> :== <op> <expr> <expr (A0) <var> (A1) <num> (A2) (B) <op> :== + (B0) (B1) * (B2) / (B3) ^ (B4) (C) <var> :== X (C0) Y (C1) (D) <num> :== 0 1 2 3 4 5 6 7 8 9 (C0,, C9) (6) Celý proces sestavení programu si ukážeme na následujícím chromozomu: 00001100 00100100 01100000 01000011 00000100 11101000 00101111 01100111 01111111 00010011 12 36 96 67 4 232 47 103 127 19 Tabulka 1 Příklad chromozomu sestaveného z deseti osmibitových podřetězců Generování programu začíná rozvinutím počátečního startovacího symbolu, pro který jsou definovány tři pravidla. Protože první kodon chromozomu má hodnotu 12 a dle pravidla, se bude přepisovat pomocí pravidla (A0) na. Následuje rozvinutí neterminálu hodnotou 36 pravidlo (B1) a. Z pěti možných pravidel vybereme pro druhý kodon s přepíšeme na (minus). Analogicky pokračujeme rozvíjením dalších neterminálů, dokud není celý program hotov. Na obrázku 3 a 4 je zobrazeno schéma odvození výrazu na stromovém grafu. 373

expr op expr expr - op exp exp var * var num Y X 2 Obrázek 3 Stromová struktura vytvořená postupnou expanzí pravidel - * Y X 2 Obrázek 4- Stromová struktura s výsledným výrazem Velkou výhodou takto zvolené reprezentace je to, že explicitně odděluje prohledávaný prostor (binární řetězce) od prostoru řešení (programy). Touto reprezentací se tak více blíží přirozenému genetickému kódování. 4. Problém generování parametrů Gramatická evoluce je metoda vhodné pro vytváření komplexních struktur, které bývají parametrizované. Například při řešení symbolické regrese obsahuje výstupní matematický model parametry, které bývají často z oboru reálných čísel. Příklad, který byl uveden, řešil pouze existenci celočíselných konstant v rozsahu 0 9. To má však v praxi jen velmi omezené použití, protože většina modelů potřebuje pracovat s mnohem větším rozsahem parametrů. V gramatické evoluci i genetickém programování je generování číselných konstant, zejména v oboru reálných čísel, značně náročný proces. Problém spočívá především v neúměrné komplexnosti vytvářených řešení. Protože každý prvek výsledného řešení je určen právě 374

jedním genem, komplexita řešení přímo odpovídá počtu genu v chromozomu. Vždy je nutné stanovit horní mez délky chromozomu, a tedy i maximální velikost prohledávaného prostoru. Pro zvýšení výkonu algoritmu je vhodné stanovit tuto mez co nejnižší tak, aby se jednak zmenšil prohledávaný stavový prostor a aby algoritmus negeneroval zbytečně složitá řešení. Současně však je nutné ponechat prostor dostatečně velký, aby obsahoval i stav, nebo stavy, které reprezentují řešení úlohy. 4.1. Generování parametrů pomocí matematických operátorů Stejně v gramatické evoluci jako v genetickém programování lze číselné konstanty generovat pomocí matematických operací. Jde ovšem o velice složitou operaci. Chceme-li například dostat konstantu 0,2, lze ji generovat například jako zlomek. Pokud použijeme stejnou gramatiku jako v předešlém příkladu, můžeme tuto konstantu vygenerovat například pomocí aplikace pravidel, kterou znázorňuje stromová struktura na obrázku 5. expr op exp expr / num op exp exp 1 + num num 3 2 Obrázek 5 Stromová struktura znázorňující aplikaci pravidel gramatiky při generování číselné konstanty Pro vygenerování konstanty 0,2 musí být při minimálním odvození použito deset genů. Při tomto způsobu generování konstant se může snadno stát, že jedna konstanta bude mít větší komplexitu než celý zbytek řešení. Dalším problémem je pak velká nestabilita takovéto generované konstanty při použití operátorů křížení a mutace. Operátory mohou působit nekontrolovatelně i při velmi malé změně genotypu. Prakticky nelze zajistit to, aby byl docílen nějaký plynulý přechod mezi jednotlivými blízkými konstantami. Pokud se chceme například přesunout ze stavu, kde má konstanta hodnotu 0,2, do stavu, kde má konstanta hodnotu 0,3, nelze tak učinit žádným přirozeným způsobem evoluce, protože konstanta 0,3 se generuje za pomoci zcela jiné struktury jedince. 4.2. Generování symbolických parametrů Jak bylo uvedeno, gramatická evoluce umožňuje generovat konstanty z oboru reálných čísel, jedná se však o velmi neefektivní postup. Další možností, jak vygenerovat strukturu modelu i s jejími parametry a zároveň se vyhnout výše popsaným problémům, je oddělit obě tyto části generování. 375

Pro parametrizaci modelů existuje celá řada optimalizačních metod. Některé z nich byly představeny v kapitole Gramatická evoluce. Pokud tedy vygenerujeme model, kde budou parametry pouze symbolicky vyjádřené, můžeme model postoupit druhé části evoluce, kde některý z algoritmů globální optimalizace zajistí jejich optimalizaci [8]. Z hlediska algoritmu gramatické evoluce nejsou pro takovéto použití ani žádné speciální úpravy algoritmu nutné. Proces generování modelu je zde pozměněn pouze tak, aby se místo konkrétních čísel generovaly symbolické konstanty. Tato změna nevyžaduje žádnou úpravu algoritmu samotného, jedná se pouze o změnu gramatiky. Takto vygenerovaný model je předán do optimalizačního procesu například genetickému algoritmu, diferenciální evoluci, simulovanému žíhání nebo podobně. Zde jsou za symbolické konstanty nalezeny konkrétní parametry a model i s parametry se vrací zpět do cyklu gramatické evoluce, kde už může být ohodnocen. Takto vygenerovaná struktura pak představuje jedno z možných řešení úlohy a algoritmus může dále pokračovat stejně, jako je tomu při generování modelu přímo s parametry. Tato metoda ovšem přináší také řadu problémů [10]. Je například nutné, aby se pro každý model hledaly optimální parametry. Model se ovšem v průběhu evoluce vyvíjí a některá řešení jsou (zvláště na začátku evolučního procesu) zcela nesmyslné a stejně nepřežijí do dalších generací. Ovšem i takovéto modely budou parametrizovány a hodnoceny. Protože jednou z nemilých vlastností evolučních algoritmů je, že jsou časově velmi náročné, může tato zbytečná parametrizace každého (i zjevně nevyhovujícího) modelu přinést velké časové ztráty a s tím i spojené problémy s konvergencí. Může zde také nastat například to, že gramatická evoluce vygeneruje nesmyslný model, jehož parametry budou úspěšně optimalizovány a tedy i přes nevyhovující strukturu může uspět v dalších fázích evoluce lépe než model, který má strukturu vyhovující, ale optimalizace parametrů neproběhla ideálně. Model by potřeboval další šanci v evolučním procesu, aby svou dobře vytvořenou strukturu také vhodně optimalizoval. Jedná se tedy v podstatě o problém přeučení. A problém dále narůstá, protože se může objevit v každém cyklu pro každou optimalizovanou strukturu. Celou řadu problémů také přináší samotná implementace tohoto řešení. Oba algoritmy spolu musí úzce spolupracovat a kromě modelu, parametrů a testovacích dat si musí předávat i řadu řídících parametrů. Dopředu také není znám počet symbolických parametrů a algoritmus na straně optimalizace parametrů tak musí polohu a počet těchto parametrů nejprve zjistit. Celá implementace tedy přináší celou řadu další technických úprav. 5. Evoluce na druhou Stejně jako je nepřeberné množství úloh, které se pomocí optimalizace řeší, je nepřeberné množství algoritmů, které se optimalizací zabývají. Pro řadu problémů je třeba navrhnout model, který obsahuje různé parametry, které se právě pomocí optimalizačních algoritmů hledají. Vedle optimalizace spojitých parametrů modelů je však zajímavá i současná optimalizace samotné struktury modelu. Jen málo algoritmů se zabývá optimalizací modelu i jeho parametrů najednou, byť se jedná o neoddělitelné spojení. 376

Cílem výzkumu je vývoj evolučního algoritmu, který bude schopen automaticky samoorganizací generovat modely reálných systémů a tyto modely současně optimalizovat a to včetně optimalizace jeho parametrů. V tomto novém algoritmu je struktura modelu postavena odděleně od optimalizovaných parametrů tohoto modelu. Obě optimalizace však běží ve stejnou dobu v jednom hlavním evolučním procesu, ale pomocí různých metod. Po studiu této problematiky z různých zdrojů vyplývá, že pro hlavní evoluční proces bude použit genetický algoritmus, pro generování struktury se nejlépe jeví gramatická evoluce. Vhodná metoda pro optimalizaci parametrů pak bude zvolena po dalším zkoumání a základna těchto metod by měla být širší, protože pro každý problém by mohla být vhodná metoda jiná. Tato myšlenka bude vyžadovat obecnost a variabilitu zamýšleného evolučního algoritmu. Nový algoritmus přináší také novou reprezentaci jedince a jeho řídících parametrů. Řešení je reprezentováno genotypem, který je tvořen čtyřmi chromozomy: inicializační vektor (instinkt), nezávislý na věku jedince strukturální vektor model se symbolickými parametry parametrický vektor vyčíslené parametry modelu vektor pomocných parametrů (věk, pravděpodobnost reprodukce, pravděpodobnost úmrtí). V běžných algoritmech se může stát, že je vygenerován velmi dobrý model, ale nejsou mu vygenerovány optimální parametry. Takový jedinec by byl odstraněn z dalšího reprodukčního procesu. Nový přístup mu však dává šanci na další školení pomocí optimalizačních metod v dalších několika krocích evoluce. Pokud však nedojde ke zlepšení jedince v několika následujících krocích, pravděpodobnostní funkce na základě kontrolního procesu takového jedince z populace stejně odstraní. Inspirace z přírody přichází také v parametru věk. Všichni jedinci mají omezenou dobu života, tato hodnota je pro každého jedince různá a částečně závisí na kvalitě tohoto jedince a částečně na konfiguraci dalších parametrů. Dalším kontrolním parametrem je pravděpodobnost reprodukce, která reprezentuje, že jedinec s věkem a fitness se může účastnit reprodukce a příští generace bude obsahovat jeho genetický materiál. Pravděpodobnost reprodukce může být definována: ( ) ( ( )) (7) Stejně jako v přírodě může jedinec umřít (bude odstraněn z populace), tato skutečnost je reprezentována pomocí parametru pravděpodobnost úmrtí : ( ) ( ( )) (5) Tyto dva parametry budou dále zkoumány a upraveny tak, aby odrážely další vlastnosti populace. 377

Další inspirace z přírody přichází v inicializačním vektoru, který je nezávislý na průběhu evoluce, stejně jako se jedinec v přírodě rodí s nějakými definovanými vlastnostmi, které mu zůstávají po celý životní cyklus. Pomocí tohoto vektoru budou možno zhodnotit pokrok jedince v evoluci. Tyto dílčí parametry nabízejí tedy také velký prostor pro další výzkum. Algoritmus je implementován v systému Mathematica. Mathematica je komplexní systém, který obsahuje stovky funkcí pro vykonávání různých úkolů ve vědě, matematice a inženýrství včetně výpočtů, programování, analýzy dat, strukturování znalostí a vizualizaci informací. Mathematica má rozsáhlý soubor nástrojů, které umožňují rychle a přirozeně přeložit formulace problému do programu. Silnou stránkou tohoto systému je vlastní programovací jazyk na bázi jazyků umělé inteligence. Pomocí tohoto systému je nový evoluční algoritmus také testován a porovnáván s klasickými metodami, které se pro dané účely běžně používají. Literatura: [1] Ali, M. M., Torn, A.: Population set based global optimization algorithms: Some modifications and numerical studies. Computers and Operations Research 31, 2004. stránky 1703-1725. [2] Dorigo, M., Corne, D. a Glover, F.: New Ideas In Optimisation. US : McGraw-Hill Inc., 1999. 0077095065. [3] Dorigo, M.: Optimization, Learnig and Natural Algorithms. PhD Thesis. Italy : Politecnico di Milano, 1992. [4] Haupt, R. L., S. E. Haupt: Practical Genetic Algorithms. Chichester: John and Sons Inc., 2004. [5] O'Neill, M. a Ryan, C.: Grammatical Evolution: Evolutionary automatic programming in an arbitrary language. Kluwer Academic publishers, 2003. 1-4020-7444-1. [6] O'Neill, M. a Ryan, C.: Automatic Generation of Programs with Grammatical Evolution. In Proceeings of Artificial Intelligence and Cognitive Science. [Online] 1999. www.grammatical-evolution.org/papers/iacs99.ps.gz. [7] Popelka, O. : Použití evolučních a genetických algoritmů v ekonomických aplikací. Dizertační práce. Brno, 2009. [8] Price, K.: An Introduction to Differential Evolution. V New Ideas in Optimization, autor: D. Corne, Doringo M. a F. Glover, 79-108. London: McGraw-Hill, 1999. 378

[9] Tesařová, B.: Genetické algoritmy pro úlohy optimalizace. Sborník příspěvků z 9. mezinárodní konference IMEA 2009. Hradec Králové: Univerzita Hradec Králové, 2009. [10] Tesařová, B.: Gramatická evoluce a evoluce na druhou. Sborník příspěvků z 10. mezinárodní konference IMEA 2010. Pardubice: Univerzita Pardubice, 2010. [11] Zelinka, I.: Umělá inteligence v problémech globální optimalizcace. Praha: BEN - technická literatura, 2002. Barbora Tesařová Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informatiky a kvantitativních metod Rokitanského 62 500 03 Hradec Králové barbora.tesarova@uhk.cz 379