Grammar-based genetic programming



Podobné dokumenty
Gramatická evoluce a softwarový projekt AGE

Genetické programování


Genetické programování 3. část

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

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

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

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

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

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

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

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

A0M33EOA: Evoluční optimalizační algoritmy

7. Rozdělení pravděpodobnosti ve statistice

ANALYTICKÉ PROGRAMOVÁNÍ

Funkcionální programování. Kristýna Kaslová


Jak se matematika poučila v biologii

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

Digitální učební materiál

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

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

Logika a logické programování

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

Algoritmizace prostorových úloh

Algoritmizace a programování

Semestrální úloha č. 1 z předmětu Moderní programovací postupy Studenti:...

Typované funkcionální genetické programovaní

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Základy fuzzy řízení a regulace

Analytické programování v C#

Digitální učební materiál

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

Datové struktury 2: Rozptylovací tabulky

COMPLEXITY

bfs, dfs, fronta, zásobník, prioritní fronta, halda

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

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

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

IB013 Logické programování I Hana Rudová. jaro 2011

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

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk

RELATIONAL DATA ANALYSIS

Popis zobrazení pomocí fuzzy logiky

Elegantní algoritmus pro konstrukci sufixových polí

Přijímací zkouška na navazující magisterské studium 2017

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

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 jara 2016

Doba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji?

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

/01: Teoretická informatika(ti) přednáška 5

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

Algoritmy I, složitost

Maturitní otázky z předmětu PROGRAMOVÁNÍ

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

Základy umělé inteligence

Automatická oprava textu v různých jazycích

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

Dynamické programování

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

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Algoritmy a datové struktury

Geneticky vyvíjené strategie Egyptská hra SENET

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

5.5 Evoluční algoritmy

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 jara 2017

Paradigmata programování 1

Logika pro sémantický web

OBJEKTOVÁ KNIHOVNA EVOLUČNÍCH ALGORITMŮ

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 2016

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Znalostní technologie proč a jak?

POUŽITÍ GENETICKÝCH ALGORITMŮ PRO ANALÝZU NÁVŠTĚVNOSTI WWW PORTÁLU

FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 3. CVIČENÍ

PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

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

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

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

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

/1: Teoretická informatika(ti) přednáška 4

4.2 Syntaxe predikátové logiky

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

Zobrazte si svazy a uspořádané množiny! Jan Outrata

Výroková a predikátová logika - III

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

Složitosti základních operací B + stromu

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

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

Stromy, haldy, prioritní fronty

11. Číselné a mocninné řady

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

Logické programování

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

Prohledávání do šířky = algoritmus vlny

Transkript:

Grammar-based genetic programming Obhajoba diplomové práce Adam Nohejl Vedoucí práce: RNDr. František Mráz, CSc. Katedra software a výuky informatiky, MFF UK Praha 2011

1 Úvod do problematiky: genetické programování 2 Cíle práce 3 Výsledky práce 4 Reference

Genetické programování (tradiční verze) Genetické programování jako druh evolučního algoritmu: Reprezentace: stromy programů v podmnožině LISPu. GP strom: Odpovídající derivační strom: E * (* E E) m expt m (expt E E) c 2 GP funkce: *, expt (binární) GP terminály: 2, c, m c Odpovídající pravidla gramatiky: E (* E E) E (expt E E) E 2 E c E m Reprezentovaný výraz: (* m (expt c 2)) Operátory: na stromech; respektují množiny funkcí a terminálů. Zbývá: interpretovat výstup programů, přiřadit fitness. 2

Genetické programování: problémy Jazyk jedinců Je vše vhodné programovat v LISPu? Typy Co když problém zahrnuje více datových typů? obecněji: Uzávěr (closure) Může být každý GP terminál a výstup každé GP funkce libovolným argumentem libovolné GP funkce? Dostatečnost (sufficiency) Umožňují zvolené GP funkce a GP terminály vyřešit problém? obecněji: Deklarativní reprezentace znalostí Jak zachytit jemnější znalosti o problému a zefektivnit tak jeho řešení? (Obrázek z webového komiksu xkcd.com v licenci Creative Commons.)

Genetické programování založené na gramatice Změny oproti tradičnímu GP: místo GP stromů: derivační stromy, místo množin funkcí a terminálů: pravidla formální gramatiky. Přínos: lze popsat jazyk, typový systém i znalosti o problému. Trade-off: vyjadřovací schopnost efektivita operátorů GP. CFG-GP (Whigham 95): bezkontextová gramatika (CFG), operace na derivačních stromech. LOGENPRO (Wong & Leung 95): logická gramatika, potenciálně Turingovsky úplná, operace na deriv. stromech. Grammatical Evolution (Ryan & O Neill 98): CFG, ale stromy zakódované jako řetězce čísel výběrů v pořadí nejlevější derivace, operace na nich.

1 Úvod do problematiky: genetické programování 2 Cíle práce 3 Výsledky práce 4 Reference

Cíle práce V literatuře chybí srovnání mezi CFG-GP, GE, LOGEPRO. LOGENPRO a GE byly aplikovány především svými autory. Operátory GE na číselných řetězcích: efekt na stromy? Vyplatí se silný formalismus LOGENPRO? Cíle: Popsat, srovnat a (vyjma LOGENPRO) implementovat. Porovnat výsledky experimentů v různých aplikacích. Důraz kladen na kvalitní implementaci, reprodukovatelnost výsledků, ověření proklamovaných výhod metod, alespoň empirické zhodnocení efektů operátorů GE.

1 Úvod do problematiky: genetické programování 2 Cíle práce 3 Výsledky práce 4 Reference

Logická gramatika: zbytečný luxus Při pečlivém čtení publikovaných výsledků LOGENPRO se ukazuje, že logické predikáty i unifikace se užívají triviálně zbývá: CFG. Dva experimenty podle Wanga & Leunga (2000) s jejich implementací LOGENPRO a mojí implementací CFG-GP a GE: Konečný typový systém lze snadno popsat CFG. Generování náhodných konstant pomocí logického predikátu lze nahradit sadou pravidel, navíc je v dané aplikaci zbytečné. Celkově: slabší metody CFG-GP a GE dávají podobné výsledky jako LOGENPRO.

Operátory GE: většinou stejné nebo horší výsledky Srovnával jsem statistiky výšky a košatosti stromů během generací evoluce u GE a CFG-GP. GE má tendenci produkovat nižší stromy, méně košaté, méně různorodých tvarů menší prohledávaný prostor. Přitom jsou operátory poměrně destruktivní. Ve speciálních případech může být chování GE výhodné. Ve většině experimentů to však vedlo k až o řád horším výsledkům. Příklad špatného fungování: automaticky definované funkce ( stavební bloky ): podstromy se řídí odlišnými částmi gramatiky. Obrázek: proměnná z v ADF; funkce f a proměnné x, y v hlavním programu. ADF f(z) = π z 2 hl. program f(x) + 2f(y)

GE není nutně časově efektivnější Nejnáročnější je operace křížení, při které se vyměňují kompatibilní podstromy dvou stromů: GE: jednoduchá implementace, navíc asymptoticky: O(m + n), kde m, n jsou počty vrcholů stromů. CFG-GP: náročnější implementace, asymptoticky O(mn), ale pokud se implementuje dobře, je praktický rozdíl malý, navíc podstatně náročnější je pak vyhodnocování jedinců. LOGENPRO: asymptoticky O(mn log m) s vysokou multiplikativní konstantou (unifikace) a za předpokladu vyvážených stromů (logaritmická hloubka). LOGENPRO: velmi náročné pro pravé logické gramatiky, zbytečná režie pro CFG. U GE ale může být celkový běh algoritmu delší než u CFG-GP (uvidíme později).

Rozvrhování zkoušek: pěkné výsledky CFG-GP i GE Bader-El-Den et al. (2009): článek o zajímavé aplikaci GP s gramatikou (varianta CFG-GP) skoro z reálného světa: rozvrhování zkoušek. Zavedený problém (Carter 96) s mnoha vyzkoušenými heuristikami. Hyperheuristický přístup. Mé výsledky pro 5 datových sad z 10, kde CFG-GP a GE dopadly zvlášť dobře: car91 car92 tre92 uta92 yor83 Bader-El-Den 5.12 4.46 8.62 3.47 40.56 CFG-GP 5.11 4.44 8.78 3.49 40.73 GE 5.15 4.44 8.63 3.51 40.60 CFG-GP* 5.13 4.37 8.63 3.44 40.94 GE* 5.22 4.51 8.79 3.44 41.47 Nejlepší jiná Fuzzy Fuzzy Fuzzy TM Fuzzy 5.20 4.52 8.67 3.04 40.66 *: mnou zvolená gramatika. Nejlepší jiná: z konstruktivních heuristik, podle Bader-el-Den et al. (2009). 1. a 2. nejlepší výsledek. TM: Tabu-Multi-stage.

Shrnutí výsledků Efektivní implementace GE a CFG-GP: o řád rychlejší než jiné. Rozsáhlé srovnání těchto metod a LOGENPRO. Ve vybraných úlohách (používaných i autory LOGENPRO) se neprokázala výhodnost logických gramatik. GE dosahovala obvykle horších výsledků: rozbor příčin. V reálné aplikaci rozvrhování zkoušek: podobné výsledky jako Bader-El-Den et al. (2009), s některými sadami dat i lepší (CFG-GP). Ukázal jsem, že lze zvolit výhodnější gramatiku. Výsledky naznačují, že přínosnější než sofistikované metody GP založeného na gramatikách by mohly být metody generování (evoluce) gramatik vhodných pro úlohu.

1 Úvod do problematiky: genetické programování 2 Cíle práce 3 Výsledky práce 4 Reference

Reference Mohamed Bahy Bader-El-Den, Riccardo Poli, and Shaheen Fatima. Evolving timetabling heuristics using a grammar-based genetic programming hyperheuristic framework. Memetic Computing, 1(3):205 219, 2009. Michael W. Carter, Gilbert Laporte, and Sau Yan Lee. Examination timetabling: Algorithmic strategies and applications. J Oper Res Soc, 47(3):373 383, 03 1996. Michael O Neill and Conor Ryan. Grammatical Evolution: Evolutionary Automatic Programming in an Arbitrary Language. Springer, 2003. Peter Whigham. Inductive bias and genetic programming. In First International Conference on Genetic Algorithms in Engineering Systems: Innovations and Applications, GALESIA, pages 461 466, 1995. Man Leung Wong and Kwong Sak Leung. Data Mining Using Grammar-Based Genetic Programming and Applications. Kluwer Academic Publishers, Norwell, MA, USA, 2000.