SZTUCZNA INTELIGENCJA ARTIFICIAL INTELLIGENCE WYKŁAD 10 ALGORYTMY GENETYCZNE Dr hab. inż. Barbara Dębska, prof. PWSZ KROSNO Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
METODY NATURALNE: algorytmy genetyczne sieci neuronowe logika rozmyta Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
ALGORYTMY GENETYCZNE - wstęp Przez miliony lat ewolucji natura stworzyła ogromną różnorodność form i zachowań organizmów żywych, często doprowadzonych do perfekcji. Od zarania dziejów fascynuje to człowieka i jest dla niego wciąż niedoścignionym wzorem do naśladowania. Źródłem inspiracji w rozwiązywaniu problemów stała się również sama ewolucja i właśnie na jej mechanizmach oparte są algorytmy genetyczne. Za ich twórcę uważa się Johna Hollanda z Uniwersytetu w Michigan, który w1975 roku opublikował książkę na temat algorytmów genetycznych pt. Adaptation in Natural and Artificial Systems. W książce Holland opisał wyniki badań, których celem było: opisanie i wyjaśnienie w sposób ścisły istoty systemów adaptacyjnych występujących w świecie przyrody, oraz stworzenie oprogramowania, które odtwarzałoby podstawowe mechanizmy rządzące systemami biologicznymi. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Wstęp c.d. Działanie algorytmów genetycznych zaczyna się od stworzenia losowej populacji algorytmów, które mogą być rozwiązaniem jakiegoś problemu, bądź przepisem na jego rozwiązanie. Następnie tworzone są nowe populacje poprzez wybranie z poprzedniej algorytmów lepszych i ich modyfikowanie przez operatory genetyczne: krzyżowanie, mutację i reprodukcję w ten sposób, aby nowa populacja miała średnio lepsze własności. Proces tworzenia następnych populacji kończy się, jeżeli najlepszy osobnik w populacji spełnia określone kryteria. Algorytmy genetyczne znalazły zastosowanie do rozwiązywania problemów optymalizacji, w tym również NP-trudnych problemów optymalizacji kombinatorycznej, przewidywania ruchów na giełdzie, rozpoznawania obrazów, tworzenia grafiki oraz projektowania budynków i maszyn. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Globalna metoda optymalizacji Funkcja jednej zmiennej Funkcja odpowiedzi parametr Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Globalna metoda optymalizacji c.d. Funkcja odpowiedzi w przestrzeni 2 parametrów Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Wstęp c.d. Algorytmy genetyczne są przykładem procedury używającej wyboru losowego jako „przewodnika” we prowadzeniu wysoce ukierunkowanego poszukiwania w zakodowanej przestrzeni rozwiązań – szczególnie w takich przypadkach, gdy analityczne metody poszukiwania są mało odporne (np. podczas rozwiązywania zadań optymalizacji). Różnice pomiędzy metodami tradycyjnymi, a algorytmami genetycznymi są następujące: 1. AG nie przetwarzają bezpośrednio parametrów zadania, ale ich zakodowaną postać, 2. AG prowadzą poszukiwania, wychodząc nie z pojedynczego punktu, lecz z pewnej ich populacji, 3. AG korzystają tylko z funkcji celu, nie zaś jej pochodnych lub innych pomocniczych informacji, 4. AG stosują probabilistyczne, a nie deterministyczne reguły wyboru. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
ALGORYTM GENETYCZNY oparty na darwinowskiej teorii ewolucji - pracuje na populacji możliwych rozwiązań - wymaga binarnego kodowania rozwiązań Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
populacja chromosomy Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 ALGORYTM GENETYCZNY chromosom kod binarny 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Reprezentacja populacji chromosomy Reprezentacja populacji Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
ALGORYTM GENETYCZNY reprodukcja Krzyżowanie Mutacje Nowa Populacja początkowa Nowa generacja Funkcja dopasowania reprodukcja Operację reprodukcji można najprościej zrealizować za pomocą symulacji odpowiednio wykalibrowanej tarczy obrotowej (ruletki), gdzie każdemu ciągowi kodowemu z populacji odpowiada sektor o rozmiarze proporcjonalnym do wartości funkcji dopasowania, czyli wskaźnik przystosowania osobnika. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
reprodukcja ALGORYTM GENETYCZNY Populacja początkowa Funkcja dopasowania Losowanie wg funkcji dopasowania Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
OPERACJE GENETYCZNE: krzyżowanie rodzice 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 dzieci 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
OPERACJE GENETYCZNE: mutacje 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
FUNKCJA DOPASOWANIA - zależy od problemu - powinna być łatwa (szybka) do obliczenia Funkcja dopasowania przez matematyków nazywana jest funkcją celu. Stanowi ona pewien miernik użyteczności chromosomu (ciągu kodowego), który chcemy maksymalizować. Jest to zgodne z teorią Darwina w myśl, której przeżywają osobniki najlepiej przystosowane. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
REASUMUJĄC: Algorytm genetyczny operuje na populacji jednostek. Każda jednostka należąca do populacji, w zależności od problemu, może być wyrażona dowolną, często skomplikowaną strukturą. Reprezentuje ona potencjalne rozwiązanie, posiadające pewną miarę swojej wartości, wyliczaną przy pomocy funkcji dopasowania. Po obliczeniu tej miary dla każdej jednostki w populacji tworzona jest nowa generacja. Odbywa się to poprzez eliminację jednostek o najniższej wartości funkcji dopasowania, pozostawienie jednostek o wartości pośredniej oraz promowanie tych z najwyższą wartością. Taki schemat postępowania za końcowy rezultat uznaje najlepszą jednostkę z pierwszej generacji. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Algorytmy genetyczne uwzględniają dodatkowo możliwość doskonalenia rozwiązań. Osiągają to dzięki zastosowaniu operatorów genetycznych: krzyżowania i mutacji. Krzyżowanie: tworzy dwie nowe jednostki poprzez wymieszanie informacji z dwóch jednostek rodzicielskich Mutacja: modyfikuje jednostkę poprzez losową zmianę pewnej części jej informacji Operatory genetyczne modyfikują tylko jednostki o najwyższej wartości funkcji dopasowania. Należy podkreślić, że klasyczne algorytmy genetyczne w żaden sposób nie wykorzystują wiedzy o rozwiązywanym problemie. To, że znajdują rozwiązanie wynika z faktu, że do każdej następnej generacji przedostają się lepsze jednostki z generacji poprzedniej, a operatory genetyczne wymieniają informacje zawarte w tych jednostkach tworząc nowe, potencjalnie doskonalsze rozwiązania. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Proces tworzenia nowej populacji przedstawiony jest na rysunku: Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
y X = = X X* PRZYKŁAD ZASTOSOWANIA AG Problem: y = f(X) y = f(X*) Redukcja liczby mierzonych parametrów: = = X X* Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
PRZYKŁAD ZASTOSOWANIA GA Możliwe rozwiązania dopasowanie 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
SYMULACJA DZIAŁANIA ALGORYTMU GENETYCZNEGO Przykład. Wyznaczyć maksimum funkcji f(x)=x2, dla x przybierającego wartości od 0 do 31.. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Do kodowania chromosomów wykorzystany zostanie pięciobitowy kod, co umożliwi operowanie na liczbach całkowitych od: 0 (00000) do 31 (11111). Funkcją celu jest określenie maksimum funkcji. Symulację rozpoczyna się od wyboru losowego początkowej populacji złożonej z czterech ciągów kodowych. W tym celu wykonuje się dwadzieścia rzutów symetryczną monetą (czterokrotne powtórzenie pięciu rzutów), przy umowie orzeł = 1 reszka = 0. Otrzymuje się cztery losowo utworzone liczby binarnych, np. następującą populację: 01101, 11000, 01000, 10011. Wskaźnik przystosowania, dla danego ciągu kodowego, wylicza się zamieniając ciąg na liczbę dziesiętną i obliczając dla niej wartość funkcji f(x), np.: 01101 x = 13 f(x) = x2 = 169. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
WSTĘPNE WYNIKI SYMULACJI AG Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Działanie algorytmu genetycznego rozpoczyna się od reprodukcji Działanie algorytmu genetycznego rozpoczyna się od reprodukcji. Pulę rodzicielską do następnego pokolenia dobiera się kręcąc czterokrotnie tarczą ruletki. Podczas symulacji tego procesu otrzymano jedną kopię ciągu nr 1 i nr 4, dwie kopie ciągu nr 2 i 0 kopii ciągu nr 3 (co potwierdza, że najlepsi zwiększają swą reprezentację, średni wychodzą na swoje, a najgorsi wymierają). Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
WYNIKI REPRODUKCJI Uwaga: - krzyżowanie losowe, 2 rzuty monetą (RR = 002 = 0 = punkt krzyżowania 1; ...; OO = 112 = 3 = punkt krzyżowania 4) - np., założone prawdopodobieństwo mutacji = 0,001; oczekiwana liczba mutacji = 5 4 0,001 = 0,02. Praktycznie nie wystąpi mutacja. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Podsumowanie Po zakończeniu reprodukcji, krzyżowania i mutacji nowe pokolenie ciągu osobników musi zostać poddane ocenie. W tym celu dekoduje się otrzymane ciągi i oblicza dla nich wskaźniki przystosowania (dwie ostatnie kolumny tabeli). Można zaobserwować, że zmieniły się wskaźniki przystosowania w nowej populacji. Średni wskaźnik przystosowania wzrósł z 293 do 439, a maksymalny z 576 do 729. Najlepszy ciąg kodowy z pierwszego pokolenia (11000) otrzymał dwie kopie dzięki wysokiej ocenie. Kiedy jedna z nich została losowo skojarzona z drugim pod względem wyników partnerem (10011) krzyżując się z nim od (również losowo ustalonej) pozycji 2, jeden z otrzymanych w ten sposób potomków (11011) okazał się być naprawdę dobrym rozwiązaniem. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
UWAGI PRAKTYCZNE PROJEKTOWANIA AG A. Definiowanie chromosomu 1. Szczegółowy opis elementów algorytmu genetycznego powinniśmy rozpocząć od opisu najmniejszego elementu algorytmu, czyli od opisu pojedynczego osobnika. 2. Projektowanie osobnika jest najważniejszą częścią projektowania całego algorytmu genetycznego. 3. Ze względu na niepowtarzalność gatunku nie ma „ogólnej” zasady definiowania osobnika – należy kierować się cechami, które tworzony przez nas gatunek powinien spełniać. 4. Należy pamiętać, że w algorytmie genetycznym bierze udział bardzo wiele osobników (kilkadziesiąt/set/tysięcy), dlatego ważną cechą osobnika jest długość jego reprezentacji. 5. Liczba osobników jest sztywno ograniczana liczbą dostępnej pamięci (komputera), dlatego im mniejsza będzie reprezentacja gatunku tym więcej osobników będzie mogło brać udział w ewolucji (a co za tym idzie większe będą szanse znalezienia globalnego optimum). Poza tym inne elementy algorytmu (krzyżowanie, mutacja...), będą działać dużo szybciej gdy poszczególne osobniki będą miały mniejszą wielkość. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
· Płeć (kobieta / mężczyzna) Przykład 1. Zakładamy, że naszym gatunkiem jest homo sapiens charakteryzujący się następującymi cechami: · Płeć (kobieta / mężczyzna) · Kolor oczu (niebieskie, piwne, brązowe i czarne) · Wzrost (poniżej 140, 141-150, 151-160, 161-170, 171-180, 181-190, 191-200, powyżej 200) · Narodowość (Polak, Niemiec, Czech, Rosjanin) Najprostszą reprezentacją osobnika homo sapiens wydaje się być struktura, w której będą zapamiętywane wartości poszczególnych atrybutów. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
MOŻNA PRZYJĄĆ NASTĘPUJĄCE REPREZENTACJE: a. Na każdy atrybut przeznacza się zmienną typu char (string). b. Dla przechowywania wartości atrybutów wykorzystane zostaną zmienne liczbowe (integer, byte...) c. Do opisu osobnika homo sapiens wykorzystuje się reprezentację bitową. Ad. a. Zaletą takiego podejścia jest: - 'bezpośredniość', wszystkie pola struktury pamiętają konkretną wartość atrybutu. Wadą takiego podejścia jest: - „duży” rozmiar osobnika, - duża niewygoda krzyżowania i mutacji. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
REPREZENTACJE C.D. : b. Dla przechowywania wartości atrybutów wykorzystane zostaną zmienne liczbowe (integer, byte...) Zaletą takiego podejścia jest: - rozmiar struktury opisującej człowieka zmniejszy się do 4 bajtów, - reprezentacja jest niewielka i wygodna podczas wykonywania przekształceń, Wadą takiego podejścia jest: nie będziemy mieli w strukturze natychmiastowej informacji o wartościach atrybutów i w związku z tym należy stosować oznaczenia, np.: dla płci: 0 oznacza kobietę, 1 oznacza mężczyznę, dla koloru oczu: 0 - oznacza niebieskie, 1 - oznacza piwne, 2 - oznacza brązowe, 3 - oznacza czarne. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
REPREZENTACJE C.D. : c. Do opisu osobnika homo sapiens wykorzystuje się reprezentację bitową. Zaletą takiego podejścia jest: - rozmiar struktury opisującej człowieka zmniejszy się do jednego bajtu (8 bitów). Do reprezentacji: płci wystarczy jeden bit (0-kobieta,1-mężczyzna), koloru oczu dwa bity (00-niebieskie, 01-piwne, 10-zielone, 11-czarne), wzrostu trzy bity (000, 001, 010, 011, 100, 101, 110, 111), oraz narodowości dwa bity (00-Polak, 01-Niemiec, 10-Czech, 11-Rosjanin). - reprezentacja jest niewielka i wygodna podczas wykonywania przekształceń, - przy tej reprezentacji należy na początku przyjąć w jakiej kolejności poszczególne atrybuty będą występowały w reprezentacji osobnika, np. że pierwszy bit będzie – informował o płci, następne o kolorze oczu, wzroście i narodowości. Dla przykładu chromosom: 00000000 reprezentuje niebieskooką Polkę o wzroście nie przekraczającym 140cm, a chromosom 11011001 reprezentuje wysokiego (190-200) Niemca o brązowych oczach. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Przykład 2. Poszukiwanie ekstremów funkcji. Załóżmy, że mamy do rozwiązania problem znalezienia takiego x dla którego funkcja postaci y=f(x) ma minimum (maksimum). a.) można do tego celu użyć zmiennej typu float (real), jednak wtedy trudno jest wymyślić jakiś rozsądny sposób krzyżowania takich osobników. b.) wygodniejszym sposobem kodowania zmiennej niezależnej x jest zastosowanie reprezentacji bitowej. W tym wypadku traci się jednak na maksymalnej rozdzielczości. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
(max_x-min_x)/(2^(liczba_bitów)-1)=(3-1)/(2^4-1)=2/15=0.1333 Przykład 2. c.d. Dla przykładu jeśli badamy funkcję w przedziale <1 - 3> i reprezentujemy x na 4 bitach to otrzymujemy maksymalną rozdzielczość równą: (max_x-min_x)/(2^(liczba_bitów)-1)=(3-1)/(2^4-1)=2/15=0.1333 Oznacza to, że najmniejsza możliwa różnica pomiędzy analizowanymi wartościami x jest równa 0,13333. Następujące wartości bitów odpowiadają następującym wartościami x : 0000 - 1.0 0001 - 1.1333 0010 - 1.2666 0011 - 1.4 itd. Jeśli mamy już zaprojektowany chromosom (krótki i wygodny w obsłudze) możemy zająć się samym algorytmem. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Dziękuję za uwagę Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno