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(b4)
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 ac
+
+

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)/(aba5.8)
(aba5.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