Gramatická evoluce a softwarový projekt AGE



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

Genetické programování

Grammar-based genetic programming

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

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

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

Analytické programování v C#

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Genetické algoritmy a jejich praktické využití

A0M33EOA: Evoluční optimalizační algoritmy


VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Fakulta informačních technologií. Zbyšek Gajda

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

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

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

5.5 Evoluční algoritmy

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

Metaheuristiky s populacemi

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

Paralelní gramatická evoluce pro optimalizaci elektronických obvodů

Vizuální programovací jazyk

Jarníkův algoritmus. Obsah. Popis

Přírodou inspirované metody umělé inteligence

ANALYTICKÉ PROGRAMOVÁNÍ

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

DETEKCE DISKREDIBILITY SENZORU U KOTLE NA BIOMASU OPTIMALIZAČNÍMI ALGORITMY


Informatika Algoritmy

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

Algoritmy na ohodnoceném grafu

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

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

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. dubna Filip Železný (ČVUT) Vytěžování dat 9.

Dynamické datové struktury III.

Zadání úlohy do projektu z předmětu IPP 2013/2014

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

Matematické modelování evoluce infekčních chorob

Jak se matematika poučila v biologii

Evoluční algoritmy I - poznámky

Databázový systém Matylda

Herní engine. Co je Engine Hotové enginy Jemný úvod do game designu

Stromy, haldy, prioritní fronty

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Neposkytujeme technickou podporu k Blaster modulu! Avšak budeme-li mít volný čas, s radostí Vám poradíme. Obsah. 1. Základní informace...

PRG036 Technologie XML

IB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D.

FACULTY OF MECHANICAL ENGINEERING INSTITUTE

Implementace algoritmu matching pursuit pomocí genetických algoritmů

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Algoritmy pro spojitou optimalizaci

Základní datové struktury III: Stromy, haldy

PLÁNOVÁNÍ CESTY MOBILNÍHO ROBOTU POMOCÍ MRAVENČÍCH ALGORITMŮ MOBILE ROBOT PATH PLANNING BY MEANS OF ANT ALGORITHMS

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: :01:48

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Zabezpečení datových přenosů pomocí CRC

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

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

ŘEŠENÍ PROBLÉMU LOKACE HUBŮ POMOCÍ GENETICKÉHO ALGORITMU SOLVING THE SINGLE ALLOCATION HUB LOCATION PROBLEM USING GENETIC ALGORITHM

KONSTRUKCE (DESIGN) Ing. Lukáš Procházka. Střední průmyslová škola na Proseku. Novoborská 2, Praha 9. 1S Design výrobků 5-1.

Cluster Analysis based on Bio-Inspired Algorithms

České vysoké učení technické v Praze Fakulta elektrotechnická. Diplomová práce Přepínání metaheuristik. Aleš Kučík

Rozhraní pro práci s XML dokumenty. Roman Malo

Využití metod strojového učení v bioinformatice David Hoksza

Rekurzivní algoritmy

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Algoritmy a datové struktury

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Geneticky vyvíjené strategie Egyptská hra SENET

Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA VÝPOČETNÍ A DIDAKTICKÉ TECHNIKY

Genetické programování 3. část


Testování prvočíselnosti

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

Umělá inteligence I. Roman Barták, KTIML.

Obsah. Seznámení s prostředím Excelu. Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27

Automatická segmentace slov s pomocí nástroje Affisix. Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz

Program a životní cyklus programu

AKCELERACE EVOLUCE PRAVIDEL CELULÁRNÍCH AUTOMATŮ NA GPU

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

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.

Operační systémy. Přednáška 8: Správa paměti II

GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK)

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

Statistika. Program R. popisná (deskriptivní) statistika popis konkrétních dat. induktivní (konfirmatorní) statistika. popisná statistika

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

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ BAKALÁŘSKÁ PRÁCE. 2016/2017 Monika Knolová

Analýza dat na PC I.

Programování. Debugging a testování. Martin Urza

Popis zobrazení pomocí fuzzy logiky

Poslední nenulová číslice faktoriálu

Markov Chain Monte Carlo. Jan Kracík.

1. Minimální kostry Od mìsteèka ke kostøe

RETAIL PROCESS TRACKER VIZUALIZACE OBCHODNÍCH PROCESŮ VAŠEHO INFORMAČNÍHO SYSTÉMU

KOEVOLUČNÍ ALGORITMUS V FPGA

Transkript:

Gramatická evoluce a softwarový projekt AGE Adam Nohejl Matematicko-fyzikální fakulta Univerzita Karlova v Praze http://nohejl.name/ 4. 4. 2010 Poznámka: Prezentace založené na variantách těchto slajdů proběhly na MFF UK 10. 11. 2009 v rámci semináře Rozpoznávání a syntaktická analýza a 3. 3. 2010 v rámci přednášky Evoluční algoritmy II (bez úvodní sekce o EA).

Přehled Evoluční algoritmy, genetické programování Gramatická evoluce Softwarový projekt AGE: Algorithms for Grammatical Evolution Postřehy a nápady Shrnutí

Motivace: optimalizační problém Složitý optimalizační problém: 1. prohledávání velkého prostoru s lokálními extrémy, 2. omezený čas. (Ilustrace z J. R. R. Tolkien: The Hobbit, reprodukce v nízké kvalitě v rámci fair use.)

Motivace: evoluční algoritmy Jak obecně řešit optimalizační problémy: 1. pro něž není známý algoritmus, 2. pro něž je známý algoritmus pomalý, 3. pro něž se nám nechce nad algoritmem přemýšlet. Nepožadujeme-li za každou cenu přesné (optimální) řešení, nabízí se použití nějaké metaheuristiky: heuristické metody, nebo sady metod, řešící širokou třídu problémů. Jedna z možností jsou evoluční algoritmy.

Evoluční algoritmy, evoluční výpočty: idea Inspirace Darwinovou evoluční teorií: 1. Pokusy o simulace evoluce na počítači 2. Nápad využití simulované evoluce jako optimalizačního algoritmu: Idea: Zvolíme-li vhodnou reprezentaci kandidátů na řešení, můžeme je křížit, mutovat a podrobovat přirozenému výběru. Věříme-li, že to funguje v přírodě, proč by to nemělo fungovat v počítači... (Lawrence J. Fogel 60s, John Holland 70s.)

Evoluční algoritmus: náčrt kostry Pracujeme s populací velikosti p jedinců, kandidátů na řešení, po nejvýše n generací: 1. Inicializuj náhodně populaci P 0 velikosti p. Initilisation. 2. Opakuj pro i = 0... n 1 nebo dokud není nejlepší řešení dost dobré: 1. Ohodnoť každého jedince v populaci P i. Fitness evaluation. 2. P i+1 nechť je pro začátek prázdná. 3. Opakuj pro j = 1... p: 1. Na základně ohodnocení vyber náhodně dva jedince z P i. Selection. 2. S pravděpodobností p c je zkřiž. Crossover. 3. S pravděpodobností p m na nich proveď mutaci. Mutation. 4. Přidej tyto jedince do populace P i+1 (Replacement.)

Problém EA č. 1: Co je to fitness? Fitness má v evolučních algoritmech centrální úlohu, je to pojítko mezi konkrétní aplikací a obecným algoritmem. Co je tedy fitness? V přírodě: Úspěšnost jedince v boji o přežití a při reprodukci: počet přeživších potomků. Tautologická definice! V počítači: Námi zvolené ohodnocení jedince. Nabývá významu až ve spojení se selekční metodou a případným škálováním. Přestože existuje mnoho vyzkoušených technik, volbu metody ohodnocení, škálování a selekce nelze nikdy oddělit od aplikace.

Problém EA č. 2: Reprezentace a operátory Jedince je třeba nějak reprezentovat a s těmito reprezentacemi umět dále pracovat. Kdy pracujeme přímo s jedinci? při ohodnocování (přiřazení fitness), při aplikaci operátorů (inicializace, mutace, křížení). Tyto elementy algoritmu jsou tedy nutně alespoň zčásti závislé na aplikaci.

Genetické algoritmy 60. léta: John Holland; později David Goldberg. Reprezentace: Jedinci jsou vektory bitů (čísel). Operátory: Náhodná inicializace, jednobodové křížení, bitová mutace. Zbývá: Interpretovat binární vektory.

Genetické programování 80. léta: prvopočátky; 90. léta: John Koza. Reprezentace: Jedinci jsou stromy programů (v podmnožině LISPu). Operátory: Složitější operace na těchto stromech. (Jsou dané sady funkcí a terminálů.) Zbývá: Interpretovat výstup.

Genetické programování s gramatikou 90. léta: první pokusy o užití gramatik v GP. Různé motivace: rozšíření GP, přidání flexibility nebo naopak omezení GP. Různé prostředky: doplnění vs. nahrazení stromové struktury. 2003: Michael O Neill, Conor Ryan: Grammatical Evolution: Reprezentace: Inspirace přírodoupřírodou genetikou a molekulární biologií: Oddělení genotypu a fenotypu, ovšem pomocí formální gramatiky. + CFG Operátory: Stejně jako v obyčejném GA. (Zkusme to!) Zbývá: Interpretovat program a jeho výstup.

Přehled Evoluční algoritmy, genetické programování Gramatická evoluce Softwarový projekt AGE: Algorithms for Grammatical Evolution Postřehy a nápady Shrnutí

GE: Příklad mapování Kodony: 10 11 99 62 33 22 (případné další by byly ignorovány) Počet pravidel: n Pravidlo: r codons: 10 11 99 62 33 22 n = 2; r = 10 mod 2 = 0 <expr> codons: 10 11 99 62 33 22 n = 3; r = 62 mod 3 = 2 codons: 10 11 99 62 33 22 n = 2; r = 11 mod 2 = 1 <expr> <op> <expr> codons: 10 11 99 62 33 22 n = 2; r = 33 mod 2 = 1 codons: 10 11 99 62 33 22 n = 2; r = 99 mod 2 = 1 <var> * <var> codons: 10 11 99 62 33 22 n = 2; r = 22 mod 2 = 0 1 x Gramatika: <expr> ::= ( <expr> <op> <expr> ) <var> <op> ::= + - * <var> ::= x 1.0

GE: Zhodnocení Co jsme získali? Větší volnost formy (a snadnost její specifikace) oproti GA a GP. Snadnou implementaci operátorů nezávisle na aplikaci. Problémy? 1. Někteří jedinci jsou stále neplatní. 2. Nevyužívá se nutně celá informace jednotlivých kodonů. 3. Nevyužívají se nutně všechny kodony.

GE: Druhý pohled na problémy 1. Někteří jedinci jsou stále neplatní. Když dorazíme na konec chromosomu, pokračujeme od začátku, jako by byl kruhový, ne lineární. Opakujeme nejvýše n-krát. Wrapping (zarolování). 2. Nevyužívá se nutně celá informace jednotlivých kodonů. Díky rolování můžeme kodon interpretovat vícekrát: vzhledem k různým sadám pravidel. 3. Nevyužívají se nutně všechny kodony. Nepoužité kodony, i různé části informace obsažené v těch použitých, se mohou uplatnit v dalších generacích po aplikaci genetických operátorů. Paralely s přírodou : gene overlapping, genetic code degeneracy.

GE: Základní postřehy Nešikovnost/pomalost implementací (modul existujícího EA prostředí, interpretace). Nedaří se reprodukovat pěkné výsledky autorů. Stále není úplně jasné, jaký efekt mají (mít) operátory a jiné parametry.

GE: Aplikace na problém Santa Fe ant trail (1) Cíl: Navigovat umělého mravence aby našel všechno jídlo ležící na čtvercové mřížce do časového limitu. Akce: Left otočí mravence doleva o 90 bez pohybu, Right otočí mravence doprava o by 90 bez pohybu, Move pohne mravencem vpřed na pole ve směru, kterým se dívá, a sní případné jídlo na něm, Food-Ahead testuje jídlo na poli, na které se mravenec dívá.

GE: Aplikace na problém Santa Fe ant trail (2) Všechny akce vyjma testu zaberou jednotku času. Mřížka je nabalená kolem toroidu, aby mravenec nespadl z okraje. Počáteční konfigurace Santa Fe ant trail: Empty squares Food Ant Pozorování: Posloupnost mezer a zatáček má stoupající náročnost.

GE: Aplikace na problém Santa Fe ant trail (3) Různé gramatiky mohou dávat různé výsledky: Gramatika 1: <code> <line> <if-statement> <op> ::= <line> <code> <line> ::= <if-statement> <op> ::= if (foodahead(h)==1) then <line> else <line> end ::= left(h) right(h) move(h) Gramatika 2: <prog> <code> <line> <condition> <op> <opcode> ::= <code> ::= <line> <code> <line> ::= <condition> <op> ::= if (foodahead(h)==1) then <opcode> else <opcode> end ::= left(h) right(h) move(h) ::= <op> <opcode> <op>

Přehled Evoluční algoritmy, genetické programování Gramatická evoluce Softwarový projekt AGE: Algorithms for Grammatical Evolution Postřehy a nápady Shrnutí

Cíle softwarového projektu AGE Východisko: Literatura. Existující implementace. Cíle: Čistá, ucelená implementace standardních algoritmů. Modularita. Kvalitní dokumentace. Dobře využitelné výstupy. Reprodukovatelné výsledky. Přijatelný výkon.

Výsledky softwarového projektu Cíle splněny. Implementace algoritmů: Ve větším rozsahu a kvalitě než GEVA. Konsistentnost. Citace zdrojů. Modularita: I na uživatelské úrovni. Demonstrovaná implementovanými elementy algoritmů. Dokumentace: Pokrývá uživatelské rozhraní včetně API, použité algoritmy i podstatné implementační detaily. Výstup: Textový. Mezivýsledky (user feedback), konečné výstupy v XML, statistiky jako textová tabulka. Reprodukovatelnost: Viz výše; náhodný generátor; přenositelnost; ukládání paramerů. Výkon: Možnost více paralelních běhů. Rychlý interpret (Lua). V testech řádově vyšší výkon než GEVA.

Srovnání výkonu Benchmarkové aplikace symbolická regrese a mravenčí cesta (Santa Fe ant trail): 10 29krát rychlejší se stejným nastavením. Výsledky stejné nebo lepší. CPU time in seconds consumed by 1000 runs 0 2000 4000 6000 8000 10000 GEVA (1) GEVA (2) GEVA (3) AGE (1) AGE (2) 5685.48 s 10333.13 s 5941.33 s 613.41 s 618.2 s Symbolická regrese (časy) CPU time in seconds consumed by 200 runs 0 2000 4000 6000 8000 10000 GEVA (s) GEVA (r) AGE (s 1) AGE (s 2) AGE (r 1) AGE (r 2) 11953.18 s 10772.04 s 410.52 s 405.95 s 406.07 s 400.31 s Santa Fe ant trail (časy)

Web projektu Výsledky projektu, včetně softwaru ke stažení, najdete na webu: http://nohejl.name/age/

Přehled Evoluční algoritmy, genetické programování Gramatická evoluce Softwarový projekt AGE: Algorithms for Grammatical Evolution Postřehy a nápady Shrnutí

GE: Inicializace Problém: Náhodná inicializace nedává dost reprezentativní vzorek různě košatých stromů. Řešení: Možnost inspirace GP: Co odpovídá funkcím a terminálům? Rekurzivní a nerekurzivní pravidla.

GE: Mutace Jak se mutace projeví ve fenotypu? Efekt buď a nebo (není lokální). Po bitech: Efektivní pravděpodobnost mutace závisí na degeneraci (redundanci). Po kodonech?

GE: Crossover Problém(?): Vlnkový efekt. Destruktivní? Řešení: Lepší analýza? Možnost inspirace GP?

GE: Možnosti práce s gramatikou Pozorování: Ekvivalentní gramatiky kódují preferenci určitých struktur a podstatně ovlivňují chování operátorů. Jak se s tím vypořádat nebo toho využít? Dynamická koevoluce gramatik. Vynucení nějakého předem daného tvaru gramatiky. Obojí.

GE: Proces mapování Možnosti úpravy: Přímo: Představený algoritmus nemá žádné teoretické opodstatnění. Nepřímo prostřednictvím gramatiky (a velikosti kodonů).

Přehled Evoluční algoritmy, genetické programování Gramatická evoluce Softwarový projekt AGE: Algorithms for Grammatical Evolution Postřehy a nápady Shrnutí

Shrnutí GE je praktická. Může nám usnadnit práci v mnoha aplikacích vhodných pro EA. GE nemá žádnou použitelnou implementaci. To už není pravda. Pěkné výsledky autorů nelze reprodukovat. Škoda. Můžeme teď ale zkusit získat jiné, zajímavější. Užití GE může mít netriviální důsledky. Dobře, že jsme si toho aspoň všimli. Je mnoho, co zlepšovat. Mám o čem psát diplomovou práci. Další vývoj projektu můžete sledovat na http://nohejl.name/age/.