410 likes | 487 Views
GA s reálnou reprezentací (RCGA). Výhody reálné reprezentace: Přirozené pro parametrické optimalizace v reálném oboru Přesnost omezena přesností aritmetiky počítače Délka chromozomů = počtu patametrů úlohy Genotyp = fenotyp jednodušší výpočet Jak udělat efektivní křížení?
E N D
GA s reálnou reprezentací (RCGA) • Výhody reálné reprezentace: • Přirozené pro parametrické optimalizace v reálném oboru • Přesnost omezena přesností aritmetiky počítače • Délka chromozomů = počtu patametrů úlohy • Genotyp = fenotyp jednodušší výpočet • Jak udělat efektivní křížení? • střední hodnota proměnné přes celou populaci se nemění • rozptyl vzdáleností jedinců v populaci roste
RCGA – operátory křížení • Rodiče:R1 = (r11, ..., r1n), R2 = (r21, ..., r2n) • Potomek: P = (p1, ..., pn) • Flat x-over: pi = rand(r1i ,r2i) • Simple x-over (1-bodové): P = (r11, r12,r13, r24, r25, r26) • Discrete x-over (uniform): pi = r1i nebo r2i • Arithmetical x-over: pi = ·r1i + (1 - )·r2i, (0.0, 1.0) • BLX- x-over: pi = rand(rmin- I·,rmax + I·) rmin = min(r1i ,r2i), rmax = max(r1i ,r2i) I = rmax– rmin
RCGA: Mean-centric operátory UNDX – unimodal normal distribution x-over BLX- SPX – sipmlex x-over
UNDX SPX RCGA: Mean-centric operátory • Pozice potomků závisí na vzdálenosti rodičů
RCGA - Simulated binary x-over • SBX – používá rozložení p-sti v okolí rodičů • Rodiče: xi(1,t) a xi(2,t)Potomci:xi(1,t+1) a xi(2,t+1) • Faktor rozptýlení:
RCGA - Simulated binary x-over • Vzdálenost potomků je úměrná rozložení rodičů • Vzorky bližší rodičům jsou více pravděpodobnější než ty vzdálenější • Samoadaptace • Začátek výpočtu • Konec výpočtu
Evoluční strategie • I. Rechenberg TU Berlín, 1964 • Parametrické optimalizace • Hydrodynamické optimalizační úlohy – optimalizace potrubí • Řízení – optimalizace PID regulátorů v nelineárních systémech • „2-členné“ populace vektorů reálných čísel • Jediný rekombinační operátor je mutace • Dvoučlenná populace • jeden rodičovský vektor • a jeho potomek vzniklý přidáním náhodných čísel s normálním rozložením • lepší z těchto dvou jedinců přežívá jako rodič do další generace
Evoluční strategie: Model (1+1)-ES • Model (1+1)-ES : (1+1)-ES = (P0, m, s, cd , ci , f, g, t) P0 = (x0, 0) IpopulaceI = n n m : I Imutační operátor s : I I Iselekční operátor cd , ci parametry řídící velikost změny f : n nfitness funkce gj : n n omezení t : I I {0, 1}ukončovací podmínka
Mutace u modelu (1+1)-ES • Mutace se aplikuje na všechny složky vektoru x najednou tak, že • nový jedinec je podobný původnímu • menší změny se vyskytují častěji než ty větší xp = xr + N0() • xr … rodič, xp … potomek • N0 je vektor náhodných čísel s gaussovským rozložením s nulovou střední hodnotou a standardní odchylkou • n , 1 = i = n = konst. • pro regulární optimalizační problémy je zaručena konvergence k optimu
Mutace u modelu (1+1)-ES • Pro dva problémy bylo odvozeno: • optimální hodnota je nepřímo úměrná počtu proměnných • při optimálním nastavení je pravděpodobnost úspěšných mutací psucc 0.2 pravidlo 1/5 úspěšnosti [Rechenberg]:podíl úspěšných mutací ze všech provedených mutacích by měl být 1/5; pokud je větší, tak zvyš , když je nižší, tak sniž mutační parametr . • Dynamická úprava vektoru : t +n = cd t , if pst <1/5 ci t , if pst <1/5 t , if pst =1/5 pst … četnost úspěšných mutací n … počet mutací po kterých se provádí úprava doporučené hodnoty: cd = 0.82 cd = 1/0.82
Vícečlenné ES: (+1)-ES • Z > 1 rodičů je generován jeden potomek a = (xa, a), b = (xb, b) … rodiče xp= (xp, p) … potomek xpi =xai , ifrand 0.5 xbi , ifrand >0.5 pi =ai , ifrand 0.5 bi , ifrand >0.5 • Nový jedinec xp= (xp, p) podstoupí standardní mutaci a nejlepších jedinců postupuje do další populace
EAs operating on trees • The power resides in the ability of adaptation to the problem • the considerations on the size, the complexity or the form of the solution should emerge during the own evolution process • Used for learning programs, learning decision trees, learning rules, learning strategies, ... • Applications -symbolic regression, classifiers, learning strategies for agents in complex, dynamic systems (e.g. inventory management, production planning, investment decisions and logistic systems, prediction, data mining, ...
Genetické programování • Struktury podstupující adaptaci v GP jsou stromy proměnné velikosti a tvaru, které reprezentují hierarchické programy. • Stromy jsou tvořeny z funkcí (vnitřní uzly) a terminálů (listové uzly), zvolených pro danou úlohu: • terminály T- vstupní proměnné programu, reálné, celočíselné nebo logické konstanty, funkce bez argumentů mající nějaký efekt • funkce F • aritmetické funkce (+, -, *, / ) • algebraické funkce (sin, cos, exp, log) • logické funkce (AND, OR, NOT) • podmíněné operátory (If-Then-Else, cond?true:false) • jiné operace specifické pro daný problém • Uzavřenost - je nutné, aby výstup libovolné funkce či terminálu mohl figurovat jako argument jiné funkce
Genetické programování Př.: Stromová reprezentace LISPovského S-výrazu0.23Z+X-0.78
Geneticképrogramování - inicializace • Metody generování stromů při zadané max. hloubce Dinit: • Úplné generování - pro uzly na úrovni < Dinit omezujeme volbu následníků na prvky F a v poslední úrovni na T. • Růstové generování - kdy žádná omezení neklademe a stromy jsou pak nerovnoměrně hluboké • Lineární půl na půl - Dinit= 6 a generuje 20% stromů s hloubkou 2, 20% s hloubkou 3, atd., z čehož je vždy polovina vytvářena úplným a polovina růstovým generováním
GP: Mutation and Others • Mutationreplaces selected subtree with a randomly generated new one • Permutation, editing, encapsulation, decimation ...
Fuzzy Classifier System • Linguistic terms - small, medium small, medium, medium large, large • Fuzzy membership functions- approximate the confidence with which a numerical value is described by a linguistic term
Fuzzy Rule Base Representation • EA used to extract the set of fuzzy-rules of the type • IF (x1 is low) and (x2 is medium) THEN class = c1 with cf = 0.7
GP: Illegal Tree Expression • Does not represent a proper rule base
Strongly typed GP • Resolves the problem of the generation of illigal trees • Significant overhead when generating new trees • x-over becomes inefficient for large trees
Problém umělého mravence – Santa Fe mřížka 32x32, 89 návnad Překážky – {1x, 2x} rovně, {1x, 2x, 3x} do zatáčky Úkolem jenajít konečný automat, který by simuloval chování mravence tak, aby v "rozumném" počtu kroků našel a zkonzumoval co nejvíce potravy.
Problém umělého mravence • Mravenec umí: • detekovat, zda je před ním potrava (vstup automatu – 0/1) • vidí pouze na nejbližší políčko před sebou • udělat následující akce • krok vpřed a sníst potravu (je-li tam) – akce MOVE • „vlevo v bok“ o 90°– akce LEFT • „vpravo v bok“ o 90° – akce RIGHT • NO-OP– no operation • krokem se zde rozumí zevně pozorovatelná akce mravence, např. obrat "vlevo v bok"
Problém umělého mravence • Příklad konečného automatu • Když mravenec narazí na překážku, začne se točit dokola • Mravenec • uspěje, pouze když bude cestička s návnadami bez překážek • v opačném případě se před překážkou zasekne a do konce života se bude rozhlížet • Co stav 10?
Problém umělého mravence – reprezentace • Collins a Jefferson 1991, klasické genetické algoritmy • Reprezentace: binární chromozomy pevné délky • chromozomy reprezentují tabulku přechodů a počáteční stav • příklad pro maximálně 4-stavový automat (32 bitů)
Problém umělého mravence - řešení • Reprezentace • umožňující až 32 stavů • 453 bitů = 64 x 7 + 5 • Fitnesszískaná na základě 400 kroků • PopSize 65 536 !!! • Počet generací 200
Genetické programování - mravenec • Stanovení množiny terminálů • příkazy pro motorickou sekci • T = { MOVE, LEFT, RIGHT } • Stanovení množiny neterminálů • tímto stanovujeme možné tvary generovaných programů • IF-FOOD-AHEAD– detekce potravy • 2 argumenty – je / není potrava • PROG2, PROG3-sekvence 2/3 akcí • Fitness - počet snědených návnad v nějakém rozumném čase - 400 kroků • Pozn.:Mravenec se chová tak, že cyklicky opakuje „svůj program“, dokud mu nevyprší jeho čas nebo dokud nepozře všech 89 návnad
PROG2 RIGHT LEFT Mravenec – průběh experimentu • Typická individua v počáteční populaci jsou např: neboli v LISP-ovské notaci (PROG2 (RIGHT) (LEFT)) • nic nesnědlfitness=0 • podobně (IF-FOOD-AHEAD(LEFT) (RIGHT)) • tento (PROG2 (MOVE) (MOVE))čistě náhodou pozří 3 návnady
Mravenec – průběh experimentu • prošívač (quilter) (PROG3 (RIGHT) (PROG3 (MOVE) (MOVE) (MOVE)) (PROG2 (LEFT) (MOVE))) • Systematické prohledávání při dostatku času najde všechny návnady
Mravenec – průběh experimentu • Tento mravenec (IF-FOOD-AHEAD (MOVE) (RIGHT)) pracuje velmi dobře, dokud nenarazí na chybějící návnadu na cestě; pak se „zacyklí“
Mravenec – průběh experimentu • Tento mravenec se dokonale vyhýbá předložené potravě (I-F-A(RIGHT)(I-F-A(RIGHT)(PROG2 (MOVE)(LEFT) ) ) )
GP Mravenec – průběh experimentu • Průměrná fitness v počáteční populaci 3,5 • V generaci 21 byl ve studovaném běhu poprvé nalezen jedinec, který byl schopen nalézt všech 89 (I-F-A (MOVE) (PROG3 (I-F-A (MOVE) (RIGHT) (PROG2 (RIGHT) (PROG2(LEFT) (RIGHT) ) ) ) (PROG2 (I-F-A (MOVE) (LEFT) )(MOVE) ) ) ) • Tento „program“ řeší průchod každou stezkou s týmž typem iregularit jako stezka Santa Fe.
GP - hledání trigonometrické identity • Úkolem je najít pravou stranu rovnosti • Množina terminálů: T = {X, konstanta 1,0} • Množina funkcí: F = {+, -, , %, SIN} • Testovací případy: 20 párů hodnot (xi, yi), kde xi jsou náhodně vybrané hodnoty z intervalu 0, 2 ayi = cos 2 xi • Fitness: Součet 20 absolutních hodnot diferencí mezi yi a hodnotou generovanou testovaným výrazem pro dané xi. • Zastavovací pravidlo: Nalezen jedinec, jehož hodnota fitness je menší než 0,01 cos 2x ?
GP - hledání trigonometrické identity • Ve 13. generaci byl nalezen jedinec ve tvaru (v prefixové notaci): (- (- 1 (* (sin X) (sin X)))) (* (sin X) (sin X))) což odpovídá výrazu (po editaci) 1 – 2 sin2x. • V jiném běhu byl ve 34. generaci nalezen jedinec (- 1 (* (* (sin X) (sin X)) 2)) • Zajímavý výsledek vyšel v dalším běhu ve 30. generaci, a to: (sin(- (- 2 (* X 2))(sin(sin(sin(sin(sin(sin(* (sin(sin1))(sin1)) ))))))))) Po podrobnější numerické analýze výrazu na druhém a třetím řádku zjistíme, že dává hodnotu přibližně /2, takže odhalená identita je cos 2x = sin(/2 – 2x)
N = {S, Rule, Cond} T = {cl, cf, att, lt} S – starting symbol P: (1) S ::= Rule Rule [0] (2) Rule ::= Cond cl cf [0] | Rule Rule [1] (3) Cond ::= att lt [0] | Cond Cond [1] Grammatical Evolution (GE) • Designed to evolve programs in any language, that can be described by a context free grammar • Backus Naur Form (BNF) • production rules P • terminals T – non-expandable items • non-terminals N – can be expand into one or more items N T
Grammatical Evolution - representation • GE does not work with a natural tree representation • It runs the evolution on binary strings • Genotype – phenotype mapping • Binary string is translated into a sequence of integers (codons) 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 11 4 10 5 7 • Each codon specifies the production rule to be applied for currently expanded non-terminal choice = codon MOD number_of_rules • Mapping finishes as all of the N have been expanded • Multiple codon values can select the same rule • Useful redundancy in genetic code !!! Only syntactically correct programs can be generated !!!
N = {S, Rule, Cond} T = {cl, cf, att, lt} S – starting symbol P: (1) S ::= Rule Rule [0] “OR” (2) Rule ::= Cond cl cf [0] “IF” | Rule Rule [1] “OR” (3) Cond ::= att lt [0] “IS” | Cond Cond [1] “AND” Grammatical Evolution - example The prefix string IF IS OR IF IS IF AND IS IS is represented by the codons 6 4 9 4 8 12 15 6 2 as a sequence of choices 0 0 1 0 0 0 1 0 0
Grammatical Evolution - recombination • Simple 1-point crossover (riple x-over) 3 2 11 7 6 9 12 5 2 3 8 4 6 6 4 9 4 8 12 15 6 2 • The head sequence of codons does not change its meaning • the tale sequence may or may not change its interpretation • Good generative and explorative characteristics
GE – bidirectional representation • Each individual has two chromosomes • one expresses the program in a prefix notation and the other one in a postfix notation • Crossover is applied on both the prefix and postfix chromosomes
N = {expr, op, pre-op, var} T = {+, −, , /, sin, cos, exp, log, X} S = exprstartovní symbol P: (1) <expr> ::= <expr><op><expr> [0] | <pre-op> <expr> | <var> (2) <op> ::= + [0] | − [1] | [2] | / [3] (3) <pre-op> ::= sin [0] | cos [1] | exp [2] | log [3] (4) <var> ::= X [0] GE – symbolická regrese
GE – symbolická regrese Kromě správné funkce byly nalezeny i tyto varianty