PROGRAMOWANIE GENETYCZNE
Transkrypt
PROGRAMOWANIE GENETYCZNE
PROGRAMOWANIE GENETYCZNE (ang. Genetic Programming GP) Programowanie genetyczne (GP) • Przedstawiciel metod przetwarzania ewolucyjnego • Pierwsze badania dotyczyły automatycznego generowania tekstów programów na podstawie znanych kryteriów oceny prawidłowości ich działania GP 3 Programowanie genetyczne (GP) • Parametry zadania optymalizacji są reprezentowane (kodowane) w postaci drzewiastych struktur • W węzłach drzewa mogą występować: – symbole – wartości liczbowe – funkcje lub zmienne GP 4 Programowanie genetyczne (GP) • Krawędzie drzew opisują wzajemne relacje pomiędzy węzłami • W drzewach takich mogą występować: – węzły terminalne (nie mające węzłów podrzędnych), tzw. liście – pośrednie (nieterminalne) – dokładnie jeden węzeł nadrzędny tzw. korzeń drzewa GP 5 Programowanie genetyczne (GP) • LISP - najbardziej powszechny język programowania do implementacji programowania genetycznego • Programy komputerowe mogą być łatwo zapisane w postaci drzew • Konstruowanie drzew za pomocą listy podstawowej struktury danych LISP-a GP 6 Programowanie genetyczne (GP) • Przykładowa drzewiasta struktura osobnika + × 2 b IF sin a 1.5 > c GP 0.5 8 7 Programowanie genetyczne (GP) • Osobnik zapisany w języku C oraz LISP-ie float program (float a, float b, int c) { float x; if (c > 8) x = 1.5; else x = 0.5; return (2*sin(a)+b+x); } (+ (* 2 (sin a)) b (if (> c 8) 1.5 0.5)) GP 8 Programowanie genetyczne (GP) • Dla danego problemu optymalizacyjnego należy określić a priori skończony zestaw wartości stałych, zmiennych oraz funkcji • Przykładowy zbiór funkcji (węzłów pośrednich) F={+,-,*,/,IF-THEN,AND,sin(), FOR} • Przykładowy zbiór T węzłów terminalnych T={x,y,a,b,wartości stałe} GP 9 LISP 10 Schemat algorytmu GP Operacja krzyżowania w GP + + / 3.2 sin a 5 b cos c b 4 0.1 a + c GP 2 11 Operacja mutacji w GP • Mutacja osobnika kodowanego drzewem może być przeprowadzona w następujących trzech odmianach poprzez: – zmianę poddrzewa – zmianę węzła pośredniego – zmianę węzła terminalnego – reorganizację drzewa GP 12 Zmiana poddrzewa + + / / log mutacja 3.2 sin 5 a b c 3.2 4 sin a a osobnik ( + ( / 3.2 ( sin b ) ) ( 5 ( b 4 ) c ) ) osobnik zmutowany ( + ( / 3.2 ( sin b ) ) ( log a ) ) 3.2/sin(b)+5c(b4) 3.2/sin(b)+log(a) GP 13 Zmiana węzła terminalengo + + + a 5 2 mutacja b a osobnik (+(+a2)(5b)) + b 2 b osobnik zmutowany (+(+a2)(bb)) (a+2)+b2 (a+2)+5b GP 14 Zmiana węzła nieterminalengo + + cos cos mutacja 0.1 b + a 0.1 b c a 2 c osobnik ( + ( cos b ) ( 0.1 a ( + c 2 ) ) ) osobnik zmutowany ( + ( cos b ) ( 0.1 a c ) ) (a) cos(b)+ 0.1 a(c+2) cos(b)+ 0.1 ac + + cos IF cos mutacja b 0.1 + a c osobnik ( + ( cos b ) ( 0.1 a ( + c 2 ) ) ) cos(b)+ 0.1 a(c+2) b 0.1 ≥ a 2 c (b) osobnik zmutowany ( + ( cos b ) ( IF ( ≥ c 2) 0.1 a ) ) cos(b)+0.1 jeżeli c≥2 cos(b)+a jeżeli c<2 2 15 Zmiana węzła terminalengo / / log log mutacja a a a 5.8 5.8 b a b a a osobnik ( / ( log a ) ( ( a b ) a 5.8 ) ) osobnik zmutowany ( / ( 5.8 a ( b a ) ) ( log a ) ) log(a)/(aba5.8) (aba5.8)/log(a) GP 16 Ocena osobników w GP • Poszukiwania optymalnych osobników w programowaniu genetycznym mogą być prowadzone według : – skalarnej funkcji kryterialnej – wektorowej funkcji kryterialnej GP 17 Selekcja osobników w GP • Selekcja przeprowadzana według mechanizmów stosowanych w GA tzn.: – metody proporcjonalnej – metody turniejowej – metody rankingowej GP 18