• Nie Znaleziono Wyników

Semantyki w programowaniu genetycznym Nowe podejścia i wyniki Krzysztof Krawiec Bartosz Wieloch 12 kwiecień 2011

N/A
N/A
Protected

Academic year: 2021

Share "Semantyki w programowaniu genetycznym Nowe podejścia i wyniki Krzysztof Krawiec Bartosz Wieloch 12 kwiecień 2011"

Copied!
45
0
0

Pełen tekst

(1)

Semantyki w programowaniu genetycznym

Nowe podejścia i wyniki

Krzysztof Krawiec Bartosz Wieloch

12 kwiecień 2011

(2)

Plan

1 Wprowadzenie Programowanie genetyczne Semantyki 2 Zastosowania Mutacja Krzyżowanie Problemy pokrewne

(3)

Wprowadzenie Programowanie genetyczne

Wprowadzenie

Programowanie genetyczne

(4)

Wprowadzenie Programowanie genetyczne

Programowanie genetyczne

Co to jest?

metoda ewolucyjna której celem jest znalezienie pewnego

programu komputerowego rozwiązującego pewien zadany problem

(np. klasyfikacji)

program (rozwiązanie) — wyrażenie reprezentowane w postaci drzewa

ewolucja osobników w (dużej) populacji potencjalnych rozwiązań operacje:

(5)

Wprowadzenie Programowanie genetyczne

GA ↔ GP

Główne różnice pomiędzy algorytmami genetycznymi (GA) a programowaniem genetycznym (GP):

różnica metodyczna

GA: szukamy rozwiązania konkretnej instancji konkretnego problemu GP: szukamy algorytmu rozwiązującego dowolne instancje

konkretnego problemu różnica praktyczna

GA: stała długość genotypu (łańcuch genów)

GP: zmienna (z reguły ograniczona) wielkość programu – genotyp w formie drzewa

(6)

Wprowadzenie Programowanie genetyczne

Budowa programu w GP

Program w GP ma formę drzewa: terminale:

argumenty – dane które chcemy przetwarzać (np. w klasyfikacji to atrybuty obiektu) inne – np. stałe numeryczne, logiczne itp.

nieterminale – funkcje (instrukcje) przetwarzające, zwracające wartość na podstawie wartości wyliczonych przez swoje poddrzewa (np. add, sin, if-then-else, itp.)

Typy węzłów:

wszystkie węzły mają taki sam typ (zwracają np. liczby rzeczywiste) różne węzły mogą mieć różne typy (np. część zwraca wartości

(7)

Wprowadzenie Programowanie genetyczne

Problem

W programowaniu genetycznym problem definiuje się przez podanie: funkcji oceniającej rozwiązanie (obliczającej fitness) – pośrednio również zbioru danych uczących / testów na których programy będą sprawdzane

zbioru dostępnych terminali

zbioru dostępnych funkcji (nieterminali)

ewentualnych ograniczeń (np. na maksymalną głębokość akceptowalnego drzewa)

(8)

Wprowadzenie Programowanie genetyczne

Wyzwania dla GP

chaotyczne odwzorowanie budowy programu na jego działanie (mapowanie genotyp  fenotyp)

wysoka epistaza — różne, oddalone od siebie geny bardzo mocno wzajemnie na siebie oddziaływują

zmiana pojedynczej instrukcji może zupełnie zmienić zachowanie całego programu

kolejność instrukcji determinuje ich znaczenie

duży odsetek mutacji obojętnych (introny) w szczególności dla dużych programów boolowskich

(9)

Wprowadzenie Semantyki

Wprowadzenie

Semantyki

(10)

Wprowadzenie Semantyki

Semantyka programu

Semantyka

pewna forma opisu działania i/lub właściwości programu Przykładowe rodzaje semantyk:

fitness – skrajnie uproszczony przypadek opisu poprzez jedną liczbę wektor odpowiedzi programu na pewien zbiór testów (semantyka częściowa) — ocena rozwiązania (fitness) może być liczony jako odległość semantyki programu od pożądanej semantyki

forma kanoniczna programu (semantyka zupełna), np. w funkcjach logicznych ROBDD (reduced ordered binary decision diagrams) lista cech wyliczanych na podstawie działania programu, niekoniecznie związanych bezpośrednio z funkcją oceny (np.

(11)

Wprowadzenie Semantyki

Przykład

x wynik -0.5 0.5 1.0 2.0 1.5 4.5 2.0 8.0 semantyka=[0.5, 2.0, 4.5, 8.0]

(12)

Wprowadzenie Semantyki

Zastosowania semantyk

Semantyki można zastosować na wszystkich etapach ewolucji, czyli tam gdzie zwykle uwzględniało się tylko składnię lub fitness:

generowania populacji początkowej podczas selekcji

mutacji krzyżowania

(13)

Zastosowania Mutacja

Zastosowania

Mutacja

(14)

Zastosowania Mutacja

(15)

Zastosowania Mutacja

Jak działa mutacja GROW

(16)

Zastosowania Mutacja

(17)

Zastosowania Mutacja

Jak działa mutacja GROW

(18)

Zastosowania Mutacja

(19)

Zastosowania Mutacja

Jak działa mutacja GROW

(20)

Zastosowania Mutacja

(21)

Zastosowania Mutacja

Semantyczna mutacja

Problem

Standardowa metoda generowania losowych poddrzew często tworzy programy o pewnych semantykach a bardzo rzadko programy o innych.

0 2000 4000 6000 8000 10000

1e+01

1e+03

1e+05

Rozklad semantyk miliona losowo wygenerowanych drzew

semantyka

ile r

azy wyloso

w

ana

(22)

Zastosowania Mutacja

Semantyczna mutacja

Idea

Zmienić rozkład prawdopodobieństwa semantyk generowanych poddrzew na bardziej równomierny.

Motywacja

Krzyżowanie osobników z poddrzewami o rzadziej występujących semantykach daje większą szansę na otrzymanie potomka o nowej, jeszcze nie spotkanej semantyce.

(23)

Zastosowania Mutacja

Algorytm

zapamiętuj wszystkie minimalne poddrzewa o unikalnych semantykach jakie pojawią się podczas ewolucji

zliczaj liczbę wystąpień każdej unikalnej semantyki (tylko raz na jednego osobnika)

zamiast generować losowe poddrzewo w trakcie mutacji wybierz jedno z wcześniej zapamiętanych

losowanie odbywa się wg. rozkładu “geometrycznego” –

prawdopodobieństwo wylosowania i -tej najczęstszej semantyki P(si)

jest równe q · P(si −1)

Właściwości:

rozkład prawdopodobieństwa zmienia się w trakcie ewolucji mutacja wstawia tylko takie poddrzewa które już wcześniej się pojawiły

(24)

Zastosowania Mutacja

Zadania

Zadanie regresji symbolicznej: Sextic: x6− 2x4+ x2 Septic: x7− 2x6+ x5− x4+ x3− 2x2+ x Nonic: x9+ x8+ x7+ x6+ x5+ x4+ x3+ x2+ x R1: (x + 1)3/(x2− x + 1) R2: (x5− 3x3+ 1)/(x2+ 1) R3: (x6+ x5)/(x4+ x3+ x2+ x + 1)

(25)

Zastosowania Mutacja

Rozkłady prawdopodobieństwa

0 20 40 60 80 100 0.01 0.05 0.50 5.00 50.00 najczestsze semantyki pr a wdopodobienstw o wyloso w ana [%] zwykla mutacja q=0.8 q=0.999

(26)

Zastosowania Mutacja

Rozkłady prawdopodobieństwa

1e−02 1e+00 1e+02 pr a wdopodobienstw o wyloso w ana [%] zwykla mutacja q=0.8 q=0.999

(27)

Zastosowania Mutacja

Wyniki

Prawdopodobieństwo sukcesu (success rate) [%]:

Problem q ctrl 0.8 0.85 0.9 0.95 0.99 0.999 Sextic 80 79 83 80 79 78 81 Septic 37 33 33 31 32 24 32 Nonic 46 47 46 42 45 37 40 R1 3 3 4 4 4 3 4 R2 6 7 7 12 8 8 5 R3 18 21 22 22 18 15 20

(28)

Zastosowania Mutacja

Wyniki

Minimalna liczba osobników potrzebna do znalezienia idealnego rozwiązania z prawdopodobieństwem 99% (computational effort):

Problem q ctrl 0.8 0.85 0.9 0.95 0.99 0.999 Sextic 49629 52647 44919 50999 55365 54655 53611 Septic 395213 410476 466163 488859 506387 750395 475250 Nonic 291522 289768 262723 290758 265365 354466 378030 R1 3513140 2268111 5193086 4918395 2810512 9853360 8485079 R2 4215954 3282170 3011396 1940097 2237037 2574205 4536222

(29)

Zastosowania Krzyżowanie

Zastosowania

Krzyżowanie

(30)

Zastosowania Krzyżowanie

(31)

Zastosowania Krzyżowanie

Jak działa krzyżowanie

(32)

Zastosowania Krzyżowanie

(33)

Zastosowania Krzyżowanie

Krzyżowanie semantyczne

Uy et al. opisał dwie proste metody krzyżowania które wykorzystują informacje o semantykach poddrzew:

Semantic Aware Crossover (SAC) – zabrania wymiany poddrzew o takich samych (bardzo podobnych) semantykach co powodowałoby wygenerowanie potomków o semantykach identycznych z

semantykami rodziców

Semantic Similiarity-based Crossover (SSC) – zabraniaj wymiany poddrzew zarówno zbyt podobnych jak i zbyto różnych semantykach co powodowałoby wygenerowanie potomków bardzo podobnych lub zupełnie różnych od rodziców (metoda minimalizuje destrukcyjne działanie zwykłej mutacji)

(34)

Zastosowania Krzyżowanie

Zadania

Zadanie regresji symbolicznej:

F 1 = x3+ x2+ x F 2 = x4+ x3+ x2+ x F 3 = x5+ x4+ x3+ x2+ x F 4 = x6+ x5+ x4+ x3+ x2+ x F 5 = sin(x2)cos(x ) − 1 F 6 = sin(x ) + sin(x + x2) F 7 = log (x + 1) + log (x2+ 1) F 8 =x

(35)

Zastosowania Krzyżowanie

Wyniki

Prawdopodobieństwo sukcesu: F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 SC 48 22 7 4 20 35 35 16 7 18 SAC2 53 25 7 4 17 32 25 13 4 4 SAC3 56 19 6 2 21 23 25 12 3 8 SAC4 53 17 11 1 20 23 29 14 3 8 SAC5 53 17 11 1 19 27 30 12 3 8 SSC8 66 28 22 10 48 56 59 21 25 47 SSC12 67 33 14 12 47 47 66 38 37 51 SSC16 55 39 20 11 46 44 67 29 30 59 SSC20 58 27 10 9 52 48 63 26 39 51

(36)

Zastosowania Problemy pokrewne

Zastosowania

(37)

Zastosowania Problemy pokrewne

Idea

Mamy trudny problem dla GP którego ewolucja nie potrafi rozwiązać — co można zrobić?

Przekształć dany problem w inny tak aby był on potencjalnie prostszy (przez zmianę krajobrazu przystosowania na łatwiejszy do przeszukania dla GP)

Jak to zrobić (pół)automatycznie? — można wykorzystać funkcje (instrukcje) które są dane w definicji problemu

(38)

Zastosowania Problemy pokrewne

Problemy pokrewne

Oryginalny problem dany jest jako zbiór testów C0= {(xi, yi)}

Problem pokrewny dany jest jako zbiór testów Ct = {(xi, t(xi, yi))}

powstały z przekształcenia oryginalnego zbioru C0

Transformer t jest to wyrażenie zbudowane z tych samych funkcji (instrukcji) co dopuszczalne rozwiązania

Transformer powinien być odwracalny

x1 t(x1,y1) x1 y1 t(x,y) RELATED PROBLEM ORIGINAL PROBLEM TRANSFORMER

(39)

Zastosowania Problemy pokrewne

Problemy pokrewne - wykorzystanie

PROBLEM RELATEDPROBLEM

#1

...

EVOLUTION PROBLEM SOLUTION

#k

SOLUTION transformer #1 transformer #T inverter #k RELATED PROBLEM

#T

(40)

Zastosowania Problemy pokrewne

Algorytm NA

Dla każdego problemu Ci przypisz osobną populacja Pi.

Utwórz nowe pokolenie osobników (przez krzyżowanie i mutację) w każdej populacji z osobna.

Dla każdej z populacji Pi wykonaj:

stwórz listę Ai składającą się ze wszystkich osobników

z pozostałych populacji Pj, j 6= i

oceń osobniki z listy Ai na problemie Ci

zastąp najgorsze α|Pi| osobników w populacji Pi najlepszymi

(41)

Zastosowania Problemy pokrewne

Eksperyment

Zadanie regresji symbolicznej: Sextic: x6− 2x4+ x2 Septic: x7− 2x6+ x5− x4+ x3− 2x2+ x Nonic: x9+ x8+ x7+ x6+ x5+ x4+ x3+ x2+ x R1: (x + 1)3/(x2− x + 1) R2: (x5− 3x3+ 1)/(x2+ 1) R3: (x6+ x5)/(x4+ x3+ x2+ x + 1) Zbiór siedmiu transformerów:

T = {x ∗ y , x /y , y /x , x + y , x − y , y − x , 1/y }

(42)

Zastosowania Problemy pokrewne

Problemy

−1.0 0.0 1.0 0.00 0.10 −1.0 0.0 1.0 −0.05 0.05 −1.0 0.0 1.0 −2000 0 2000 −1.0 0.0 1.0 −0.3 0.0 0.2 −1.0 0.0 1.0 −1.0 0.0 1. 0 −1.0 0.0 1.0 −1.0 0.0 1. 0 −1.0 0.0 1.0 −1.0 0.0 1. 0 −1.0 0.0 1.0 0 4000 1000 0 −1.0 0.0 1.0 −8 −4 0 −1.0 0.0 1.0 0 4 8 −1.0 0.0 1.0 0 400 800 −1.0 0.0 1.0 0 4 8 −1.0 0.0 1.0 −10 −6 −2 −1.0 0.0 1.0 0 2 4 6 8 −1.0 0.0 1.0 −8 −4 0 −1.0 0.0 1.0 0 500 −1.0 0.0 1.0 0 4 8 −1.0 0.0 1.0 0 2 4 6 8 −1.0 0.0 1.0 0.5 1. 0 1.5 −1.0 0.0 1.0 2 4 6 8 −1.0 0.0 1.0 −2 2 6 10 −1.0 0.0 1.0 −8 −4 0 −1.0 0.0 1.0 0 2 4 6 8 −1.0 0.0 1.0 −100 0 50 −1.0 0.0 1.0 0 2 4 6 8 −1.0 0.0 1.0 0 2 4 6 8 −1.0 0.0 1.0 −3000 000 −500000 −1.0 0.0 1.0 −100 0 50 −1.0 0.0 1.0 0 4 8 −1.0 0.0 1.0 −7 −5 −3 −1 −1.0 0.0 1.0 1 3 5 7 −1.0 0.0 1.0 0 150 0000 1. 5 Se xt ic Sep ti c No n ic R1

(43)

Zastosowania Problemy pokrewne

Wyniki

GP1 GP8

NA.00 NA.01 NA.02 NA.03 NA.05 NA.10 NA.20 NA.25 NA.50 NA.75 NA.80 NA.90 NA.95 NA.98 NA.99 NA1.0

FR

Success ratio of Sextic

0

40

80

GP1 GP8

NA.00 NA.01 NA.02 NA.03 NA.05 NA.10 NA.20 NA.25 NA.50 NA.75 NA.80 NA.90 NA.95 NA.98 NA.99 NA1.0

FR

Success ratio of Septic

0 20 40 60 80 GP1 GP8

NA.00 NA.01 NA.02 NA.03 NA.05 NA.10 NA.20 NA.25 NA.50 NA.75 NA.80 NA.90 NA.95 NA.98 NA.99 NA1.0

FR

Success ratio of Nonic

0

40

80

GP1 GP8

NA.00 NA.01 NA.02 NA.03 NA.05 NA.10 NA.20 NA.25 NA.50 NA.75 NA.80 NA.90 NA.95 NA.98 NA.99 NA1.0

FR Success ratio of R1 0 10 20 30 40 GP1 GP8

NA.00 NA.01 NA.02 NA.03 NA.05 NA.10 NA.20 NA.25 NA.50 NA.75 NA.80 NA.90 NA.95 NA.98 NA.99 NA1.0

FR Success ratio of R2 0 5 15 25 GP1 GP8

NA.00 NA.01 NA.02 NA.03 NA.05 NA.10 NA.20 NA.25 NA.50 NA.75 NA.80 NA.90 NA.95 NA.98 NA.99 NA1.0

FR

Success ratio of R3

0

40

80

(44)

Zastosowania Problemy pokrewne

Wyniki

Częstość znalezienia idealnego rozwiązania w poszczególnych populacjach – wyniki uśrednione po wszystkich eksperymentach

NA i wszystkich wartościach α

Problem Transformer

y x*y x/y y/x x+y x-y y-x 1/y Sextic 36.7 19.9 2.1 34.2 4.6 5.8 3.6 2.1 Septic 25.4 9.9 1.4 21.3 14.0 14.6 12.1 0.7 Nonic 13.9 9.3 1.2 16.3 8.1 7.6 40.6 1.7 R1 13.0 9.0 32.1 4.9 1.5 2.5 2.1 33.7 R2 29.5 13.4 1.7 17.7 18.6 5.6 10.3 2.3

(45)

Podsumowanie

Podsumowanie

W podejściach semantycznych widać możliwość przezwyciężenia słabości GP:

trudności z mapowaniem genotyp – fenotyp

słabej skalowalności – GP zawodzi dla “dużych” problemów Plany na przyszłość:

opracowanie innych mechanizmów, np. generycznego tworzenia programów (np. semantic building blocks)

zbadanie “semantycznego GP” integrującego podejścia semantyczne na każdym etapie ewolucji

Cytaty

Powiązane dokumenty

książka zawierająca podsta­ w o w e wiadomości i zasady wiary, 64 cykl pastiszów fil­ m ó w kryminalnych z udzia­ łem Leslie Nielsena 2 słowa, 67 włoska miasto słynące z

ZABEZPIECZENIA Kiedy już mamy wymarzony dwukołowiec, chcielibyśmy by został z nami jak najdłużej. Niestety na łatwy łup liczą złodzieje, dlatego warto pomyśleć o

Góra jest dość duża, więc trzeba się na nią wspiąć, a potem można zbiec - mówi nieświadomy nie­..

tegii Rozwoju Obszarów Rybackich 2007-2013.0 dotacje mogą starać się nie tylko rybacy, ale również inne osoby, które chcą otworzyć swoją firmę.. Pieniądze należą

Osoby fizyczne zobowiązane są do osobistego stawiennictwa w dniu przetargu z dowodem tożsamości lub mogą być reprezentowanie przez pełnomocnika na podstawie

Jeśli zdarzy się, że mimo to dziecko ma objawy alergii pokarmowej, mama musi wyeliminować ze swego jadłospisu produkty, które mogą być tego przyczyną -

szone przez nas na uroczystą galę, która odbędzie się na kilka dni przed Dniem Dziecka. Wielka gala z nagrodami dla

Zespół prowadzony przez Apę - prawdziwego rekordzistę, który już 20 razy wspiął się na szczyt - za­.. mierza uprzątnąć podczas