1 / 28

Algorytmy Genetyczne

Algorytmy Genetyczne. Wybrane zastosowania genetycznych systemów uczących się. Początki systemów GMBL Schematy procesorów. Twórca - John Holland

cyrah
Download Presentation

Algorytmy Genetyczne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorytmy Genetyczne Wybrane zastosowania genetycznych systemów uczących się

  2. Początki systemów GMBLSchematy procesorów • Twórca - John Holland • Idea - realizowane w 4 etapach złożoność prototypów wzrasta począwszy od prototypu I, jako prostego urządzenia działającego na zasadzie bodziec-reakcja, do protptypu IV przedstawiającego złożony automat o wielu stanach wewnętrznych i zdolnych do modyfikacji detektorach i efektorach.

  3. Początki systemów GMBLJęzyk przekazu • Twórca - John Holland • Działa na zasadzie systemu produkcji • Reguły, zwane jednostakmi przekazu, składają się z jednego lub dwóch poprzedników (warunków) i jedego następnika (akcji). • Reguły i komunikaty, w postaci pzodbioru słów języka przekazu, miały współistnieć w obrębie systemu z mechanizmem równoległego sterowania wykonywaniem reguł.

  4. Początki systemów GMBLJęzyk przekazu Alfabet języka przekazu: ={0,1,*,:, , ,▼, ,p ,`}, gdzie 0,1 – służą do zapisywania sygnałów, * -służy jako ogranicznik jednostek przekazu, wszystkie symbole znajdujące się między parą gwiazdek są interpretowane jako jednostka przekazu. : - oddziela warunki i akcje wewnątrz jednostki przekazu. •  - symbol uniweraslny – pasuje do dowolnego pojedynczego symbolu (a na pozycji końcowej do dowolnego podciągu symboli), •  - symbol uniwersalny pasujący do dowolnego przedrostka lub końcówki (na innych pozycjach ignorowany) o własności przenoszenia podciągów (np. jednostka przekazu *11: w obecności komunikatu 11010 wysyła komunikat 010) • ▼ „zapasowy” symbol ; umożliwia łączenie dwóch przenoszonych podciągów, •  symbol uniwersalny pasujący do dowolnego pojedynczego symbolu, o własności przenoszenia • p komunikat poprzedzony symbolem p pozostaje na trwałe w systemie, póki nie zostanie usunięty przez jednostkę przekazu typu 3, • ` symbol poprzedzony znakiem ` zostaje zinterpretowany literalnie (dosłownie).

  5. Początki systemów GMBLJęzyk przekazu • Istnieją 4 typy jednostek przekazu: • * I1:I2 – jeżeli pewien komunikat pasuje do I1 to wyślij komunikat I2, • * :I1:I2 – jeżeli żaden komunikat nie pasuje do I1 to wyślij komunikat I2. • *I1::I2 - jeżeli pewien komunikat pasuje do I1, to usuń trwały element postaci I2, • *I1:I2:I3 – jeżeli pewien komunikat pasuje do I1 i pewien komunikat pasuje do I2, to wyślij komunikat I3. • Podciągi I1, I2, I3, są słowami utworzonymi z dowolnych symboli alfabetu .

  6. Pierwszy system klasyfikujący CS-1 • System Kongnitywny 1 (CS-1) został zaprezentowany przez Hollanda i Reitmana. • System składa się z: - układu wykonawczego, który zawiera reguły (klasyfikatory) o prostej składni, - interwałowy algorytm oceniający, - algorytm genetyczny.

  7. Pierwszy system klasyfikujący CS-1

  8. Pierwszy system klasyfikujący CS-1 • Parametry decyzyjne to przewidywane wysokości wypłat u dotyczące każdego zasobu istotnego dla systemu (w przykładzie żywności i woda). • Wskaźnik odpowiedniości  dla każdego klasyfikatora zgodnie ze wzorem: • ui- przewidywane wysokości wypłat klasyfikatora • di- bieżące potrzeby systemu • Zwycięzca zostaje wyłoniony losowo, za pomocą mechanizmu ruletki o sektorach proporcjonalnych od iloczynu wskaźnika odpowiedniości  i wskaźnika zgodności M (będącego miarą szczegółowości reguły).

  9. Pierwszy system klasyfikujący CS-1 • W kolerjnych procesach uzgadniania i uaktywnianai reguł, interwałowy algorytm oceniający śledzi trafność prezewidywań klasyfikatorów, wykorzystując trzy parametry: • -wiek – zwiększa się lub zmniejsza wraz z każdym cyklem obliczeniowym w zależności czy klasyfikator się „starzeje” czy „dostaje nagrodę”. • -częstość - zwiększa się przy każdym uaktywnieniu reguły , jest używana przy określaniu wag klasyfikatorów w celu uprzywilejowania często używanych reguł • - tłumienie – jego wartości zawarte są między 0 a 1; na początku ma wartość 1 ale zmniejsza się, gdy okazuje się, że dana reguła przewidziała wypłatę wyższą niż następna.

  10. Działanie systemu CS-1 • System CS-1 zaprogramowano w Fortranie na maszynie IBM 1800 należącej do Uniwersytetu Michigan. • W implementacji przyjęto: • 25 pozycji na warunek, w tym 8 bitów na środowisko, 1 bit na ostatnią akcję oraz 16bitów na komunikaty wewnętrzne. • Jeden efektor o dwóch stanach (akcjach), 0 i 1. • Dwa rezerwuary zasobów. • Ośmiobitowe nazwy węzłów labiryntu. • 100 klasyfikatorów, po 50 na każdą akcję.

  11. Działanie systemu CS-1Zadanie

  12. Działanie systemu CS-1Wyniki • Zaobserwowano że względu, że nagroda żywnościowa była dwa razy niższa (18 jednostek żywności w poró­wnaniu do 36 jednostek wody) system poszukiwał żywności dwa razy częściej niż wody. • W przypadku drugiego zadania wiedza zdobyta w pierwszym eksperymencie jest wykorzystywana przy zadaniu o większym stopniu trudności, co powoduje natychmiastową zbieżność do niemal optymalnego zachowania.

  13. System klasyfikujący ANIMAT • Zaprojektowany przez Wilsona • Działanie: po dwuwymiarowym lesie wędruje system klasyfikujący poszukujący pożywienia i unikający przeszkód w postaci drzew. • Las przedstawiony w postaci regularnej siatki prostokątnej 18x58, gdzie drzewa oznaczone są jako (T) a żerowiska, rozrzucone regularnie, jako (F). • ANIMAT oznaczony jako(*) porusza się w swoim otoczeniu.

  14. System klasyfikujący ANIMATPrzykład B T T B * F B B B

  15. System klasyfikujący ANIMATPrzykład • Wzorzec można zapisać jako komunikat • TTFBBBBB • przez odczytanie symboli poczynając od punktu położonego na północ i posuwając się zgodnie z ruchem wskazówek zegara. • Komunikat w postaci binarnej • 0101110000000000 • Powstał przyjmując: T->01, F->11, B->00 (pierwszą pozycję można uważać za binarny detektor „zapachu", a drugą za binarny detektor „zacienienia"), otrzymamy komunikat:

  16. System klasyfikujący ANIMATPrzykład • ANIMAT reaguje na komunikaty zewnętrzne, używając zwykłych klasyfikatorów z 16-pozycyjnymi warunkami (co odpowiada 16-pozycyjnym komunikatom) i ośmioma akcjami (akcje 0-7), z których każda reprezentuje pojedynczy ruch w jednym z ośmiu kie­runków (0 = północ, 1 = północny wschód, 2 = wschód itd.). • Reguła • 0#011#00000#0#:2 • jest zgodna z poprzednim przykładem i wskazuje kierunek wschodni, gdzie znajduje się pożywienie.

  17. System klasyfikujący ANIMATInnowacje • grupa zgodna, grupa wykonawcza i podział nagród; • operacja kreacji; • operacja częściowego przecięcia; • szacowanie czasu oczekiwania na wypłatę.

  18. ANIMAT: grupa zgodna, grupa wykonawcza i podział nagród; • Grupa zgodna M - określana w trakcie procesu uzgadniania, skłąda ze wszystkich klasyfikatorów pasujących do komunikatu zewnętrznego. Następnie przy pomocy mechanizmu ruletki wykalibrowanej wg siły zostaje podjęta decyzja o następnej akcji. • Grupa wykonawcza A - to podzbiór tych reguł z [M], które specyfikują tę samą akcję • Siła klasyfikatorów z A zostaje zredukowana o pewien procent, a otrzymany w ten sposób zasób siły rozdziela się następnie pomiędzy elementy poprzednio aktywnej grupy wykonawczej [A]t-1. Dzięki temu na­grody środowiska są pośrednio rozprowadzane wzdłuż „łańcuszka" odpalających reguł. Mechanizm podziału pozwala kontrolować wielkość podpopulacji klasyfikatorów.

  19. ANIMAT: operacja kreacji • zostaje uruchomiona kiedyANIMAT odbiera ze środowiska komunikat nie pasujący do żadnego klasyfikatora. • wykonuje odbitkę komunikatu i „uogólnienie" każdej pozycji odbitki z zadanym prawdopodobieństwem (tzn. że zera i jedynki zostają zastąpione symbolem uniwersalnym #). • Tak zostaje utworzony takson, który z definicji pasuje do komunikatu zewnętrznego. Następnie zostaje wylosowana jedna z dopuszczalnych akcji (od 0 do 7) i dołączona do nowego taksonu. Powstały w ten sposób nowy klasyfikator zastępuje któryś ze słabych klasyfikatorów przechowywanych w pamięci i system kontynuuje swo­je normalne działania.

  20. ANIMAT: operacja częściowego przecięcia • To kombinacja między operacją krzyżowania a operacją przecięcia. Przykład • Niech będą dane dwie następujące reguły: 1 0 0 # # 0 0 1:6 0 1 # 1 1 0 1 #:6 A A • W wyniku klasycznego przecięcia powstanie reguła: #####0##:6 • W operacji częściowego przecięcia najpierw losowo wybiera się dwie pozycje w obrębie warunków. Następnie przeprowadza się operację przecięcia tylko w wyznaczonej przez nie strefie. Reszta materiału genetycznego zostaje skopiowana od pierwszej z wybranych reguł rodzicielskich • W wyniku operacji częściowego przecięcia powstanie reguła: • 1####001:6

  21. Przetwarzanie genetyczne programów sekwencyjnych • Alternatywa dla systemu produkcji • Cramer wprowadził adaptację programu sekwencyjnego modyfikując uniwersalny język PL i po usunięciu instrukcji skoku doszedł do prostego języka (PL-) służącego do obliczania funkcji pierwotnie rekurencyjnych. • Cramer opracował dwie metody kodowania programów napisanych w języku PL: JB i TB - oraz użył zmodyfikowanych operacji genetycznych w procesie automatycznego generowania elementarnego algorytmu mnożenia.

  22. Język PL- zapis w składni naśladującej język LISP: • ( : INC VAR) ; Zwiększ wartość zmiennej VAR o 1 (pierwotna) • (:ZEROVAR); Wyzeruj zmienną VAR (pierwotna) • 3 . ( :LOOP VAR STAT) ; Powtórz instrukcję STAT VAR razy (pierwotna) • ( :SET VAR1 VAR2) ; Nadaj zmiennej VAR1 wartość VAR2 (pochodna) • ( : BLOCK STAT1 STAT2) ; Wykonaj sekwencyjnie instrukcje STAT1 i STAT2 (pochodna )

  23. Język PL- przykład • Mnożenie V5 = V4 * V3 w języku PL- może być zaimplementowane następująco: • ( : ZERO V5) ( : LOOP V3 ( : LOOP V4 ( : INC V5 ) ) )

  24. Język PL- kodowanie JB • instrukcja języka PL- to uporządkowana trójek liczb całkowitych (xyz) gdzie • x jest kodem operacji, • y - pierwszym argumentem, a • z - drugim argumentem. Kody pięciu powyższych operacji są następujące: :BLOCK = 0 :LOOP = 1 :SET = 2 :ZERO = 3 :INC = 4 • W kodzie JB zmienne są reprezentowane przez swoje indeksy, a etykiety instrukcji - przez numery odpowiednich trójek. Ponadto zbędne argumenty i niekompletne trójki liczb są ignorowane.

  25. Język PL- kodowanie JB przykład • Ciąg (0 013581321434599 2) • zostanie zinterpretowany następująco: (0 0 1); instrukcja główna -> ( : BLOCK STAT1 STAT2) (3 5 8) ; instrukcja 0 -> ( : ZERO V5 ) ; argument 8 ignorowany (13 2); instrukcja 1 -> ( :LOOP V3 STAT2) (14 3); instrukcja 2 -> ( :LOOP V4 STAT3) (4 5 9) ; instrukcja 3 —> (INC V5) ; argument 9 ignorowany nadmiarowe liczby 9 i 2 ignorowane

  26. Język PL- kodowanie TB • Zaimplementowany w postaci kodu drzewiastego, co pozwala uniknąć nieskończonych pętli. • Stosuje się nawiasy w celu zagnieżdżania instrukcji do dowolnej skończonej głębokości. • Używa się tych samych kodów operacji, co w JB, • Liczba argumentów musi odpowiadać rodzajowi operacji. • Poprzedni przykład można zapisać jako: (0(3 5) (1 3) (1 4(4 5) ) ) ) • Wykorzystuje się tu zmodyfikowane operacje genetycznych. Podczas krzyżowania partnerów wymienia się dwa losowo wybrane poddrzewa. Mutacja polega na losowej zmianie liczby całkowitej. • Musi być zachowana zgodność między operacją a liczbą jej argumentów.

  27. Język PL- kodowanie TB • Cramer stworzył mechanizm częściowego nagradzania mający faworyzować „zachowania quasi-multyplikatywne". • Nagradzane były trzy rodzaje programów: • programy zmieniające wartości zmiennych wyjściowych; • programy korzystające ze zmiennych wejściowych; • programy, które nadawały zmiennej wyjściowej wartość równą wielokrotności zmiennej wejściowej. • Stosowano również kary dla programów o zbyt długim kodzie. Natomiast każdy program, który przekroczył określony limit czasu wykonania, był przerywany i poddawany ocenie.

  28. Bibliografia • D. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1998

More Related