280 likes | 489 Views
Algorytmy Genetyczne. Wybrane zastosowania genetycznych systemów uczących się. Początki systemów GMBL Schematy procesorów. Twórca - John Holland
E N D
Algorytmy Genetyczne Wybrane zastosowania genetycznych systemów uczących się
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.
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ł.
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).
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 .
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.
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).
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.
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ę.
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.
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.
System klasyfikujący ANIMATPrzykład B T T B * F B B B
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:
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 kierunkó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.
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ę.
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 nagrody środowiska są pośrednio rozprowadzane wzdłuż „łańcuszka" odpalających reguł. Mechanizm podziału pozwala kontrolować wielkość podpopulacji klasyfikatorów.
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 swoje normalne działania.
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
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.
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 )
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 ) ) )
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.
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
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.
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.
Bibliografia • D. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1998