Vous êtes sur la page 1sur 13

Piotr Waragolis

Systemy hybrydowe
(Al.gorytmy genetyczne)
Przedstawienie problemu.
Na typowy problem rozwizywany algorytmem genetycznym skadaj si nastpujce rzeczy:

Problem optymalizacyjny - zadanie wyszukania najlepszego rozwizania spord wszystkich dopuszczalnych. Zbir dopuszczalnych rozwiza - czyli zbir wszystkich moliwych rozwiza zadania (nie tylko optymalnych). Funkcja oceny (dopasowania) - funkcja, ktra okrela jako kadego dopuszczalnego rozwizania. Ustanawia relacj porzdkow na zbiorze rozwiza dopuszczalnych (czyli dziki tej funkcji moemy wszystkie rozwizania uporzdkowa od najlepszych po najgorsze). Sposb kodowania - funkcja, ktra kade dopuszczalne rozwizanie reprezentuje w postaci cigu(acucha) kodowego. Czyli w postaci chromosomu. Zasadniczo bardziej interesuje nas funkcja odwrotna: funkcja, ktra na podstawie chromosomu tworzy nam dopuszczalne rozwizanie. Na dobr spraw tylko ta druga jest nam potrzebna. Analogicznie jak w przyrodzie: natura posiada skomplikowan "wiedz" na temat, jak z zarodka stworzy dorosego osobnika. Nie musi wiedzie, jak z danego osobnika stworzy jego genotyp. Wystarcza, e kady osobnik przechowuje pami o genotypie, na podstawie ktrego powsta. Operatory genetyczne - operacje, ktre mona wykona na chromosomach, np. krzyowanie, mutacja.

Oglny schemat algorytmu genetycznego.

Klasyczny algorytm genetyczny.


Wyrnikiem k.a.g. jest prostota: prosty sposb kodowania ("intuicyjny" z punktu widzenia maszyn cyfrowych), proste operatory, proste reguy tworzenia populacji i oceniania osobnikw. Std zwany jest on take pod nazwami: prosty algorytm genetyczny, elementarny algorytm genetyczny. Chromosom jest to po prostu cig bitw. Kady pojedynczy bit jest odpowiednikiem pojedynczego genu. Operacja krzyowania polega na losowym przeciciu dwch chromosomw (cigw bitw) w jednym punkcie i zamianie podzielonych czci midzy chromosomami. Powstaj dwa nowe chromosomy. Operacja mutacji polega na zamianie na przeciwny losowo wybranego bitu. Selekcja osobnikw do krzyowania nastpuje na drodze losowania metod koa ruletki, ktra przydziela prawdobodobiestwa wylosowania kadego osobnika bezporednio na podstawie jednej funkcji oceny. Populacja ma stay rozmiar, a w kolejnych cyklach ewolucji wszystkie chromosomy podlegaj wymianie na nowe (dzieci cakowicie zastpuj rodzicw). Rozwizaniem problemu jest najlepiej przystosowany osobnik z ostatniej wygenerowanej populacji. Naley doda, e musimy z gry okreli warunek zatrzymania ewolucji (np. uzyskanie osobnika o wystarczajco dobrych parametrach albo po z gry okrelonej maksymalnej liczbie iteracji).

Sposoby budowania chromosomu


Do charakteru rozwizywanego problem moemy dopasowa rne sposoby budowania chromosomu (rne sposoby kodowania parametrw zadania w postaci chromosomu). Ze wzgldu na sposb uoenia genw w chromosomie mona wyrni trzy podstawowe sposoby kodowania:

Klasyczne uoenie genw

Geny s heterogeniczne, tzn. geny na rnych pozycjach w chromosomie przechowuj informacje rnego typu. Kada kodowana cecha fenotypu ma cile przypisan na stae pozycj w chromosomie. W wyniku krzyowania i mutacji geny nie przemieszczaj si wic, natomiast zmieniaj wartoci (mutujc, bd wymieniajc je z odpowiadajcymi genami drugiego osobnika). Takie kodowanie ma zastosowanie wszdzie tam, gdzie mamy cile okrelone (niejednorodne) cechy osobnika (parametry problemu) i chcemy im dobra optymalne wartoci. Np. w kolejnych genach zapisujemy rne cechy pewnego urzdzenia: wysoko, szeroko, moc silnika, zasig ramienia operacyjnego, typ kocwki umieszczonej na ramieniu itp. Inny przykad: mamy pewn rodzin funkcji jednej zmiennej y=F(A,B,C,x), np. wielomiany postaci A*x*x+B*x+C. Z tej rodziny funkcji chcemy wybra tak, ktra najlepiej przybliy nam pewne empirycznie zgromadzone w czasie obserwacji dane (np. temperatury powietrza w rnych porach dnia). W chromosomie ukadamy po kolei parametry A,B,C.

Permutacyjne uoenie genw


Geny s homogeniczne, tzn. przechowuj podobne informacje, s wymienialne. W wyniku krzyowania i mutacji geny nie zmieniaj wartoci, natomiast zmieniaj pozycje (czyli w chromosomie wystpuj w rnych permutacjach). Tego typu kodowanie stosuje si do rozwizywania problemw kombinatorycznych, np. do podanego w przykadzie problemu komiwojaera, czyli wtedy, gdy interesuje nas bardziej wzajemne uoenie i powizania midzy pewnymi elementami, a nie optymalizacja wartoci cech.

Drzewiasta budowa chromosomu


Chromosom nie jest liniowym cigiem genw, ale zoon struktur drzewiast, posiadajc korze, wzy i licie. Istotne jest to, e podobnie jak w kodowaniu permutacyjnym, w wyniku stosowania operatorw genetycznych (krzyowania i mutacji) geny zmieniaj pozycje, ale dzieje si to w sposb bardziej wyrafinowany, ni przy kodowaniu liniowym - przesuniciom i wymianie podlegaj cae gazie pospinanych genw. Jednoczenie te zazwyczaj ewolucji podlegaj take zapisane w nich wartoci, nie tylko uoenie. Kodowanie drzewiaste znajduje zastosowanie w tzw. programowaniu genetycznym, czyli wszdzie tam, gdzie ewolucji podlegaj reguy matematyczne (np. wzory interpolujce nieznane funkcje lub nawet zoone procedury w programach komputerowych). W reguach tych ewoluuje zarwno drzewiasta struktura wywoa funkcji (std taki ksztat chromosomu), jak te stae wartoci przekazywane do nich jako parametry (m. in. std ewolucja wartoci genw).

Ze wzgldu na wartoci przechowywane w genach mona wyrni trzy podstawowe sposoby kodowania:

Geny binarne
Genami s poszczeglne bity. Moe mie to zastosowanie w problemach, w ktrych poszukujemy jednej liczby, np. przy znajdowaniu ekstremum funkcji.

Geny przechowujce liczby cakowite


Genami s liczby cakowite. Idealnie pasuj przy kodowaniu permutacyjnym do rozrniania (numerowania) permutowanych elementw (np. numeracja miast w problemie komiwojaera) lub reprezentowania cakowitych wag elementw (np. w problemie plecakowym).

Geny przechowujce liczby rzeczywiste (zmiennoprzecinkowe)


Genami s liczby rzeczywiste. Przydaje si to we wszelkich problemach w ktrych trzeba precyzyjnie dobra parametry (np. dobieranie wag w sieciach neuronowych, dobieranie parametrw urzdze produkcyjnych dla podniesienia ich wydajnoci, dobieranie parametrw krzywych ekonomicznych i wszelkich innych funkcji modelujcych obserwowane zjawiska rzeczywiste). W zalenoci od wartoci przechowywanych w genach i przyjtego sposobu ich ukadania w chromosomie rnie definiuje si operatory genetyczne.

W teorii algorytmw genetycznych sformuowano pewne fundamentalne twierdzenie, zwane twierdzeniem o schematach. Jest ono znaczce, poniewa na nim bazuje tzw. hipoteza cegieek (inaczej: hipoteza blokw budujcych). Ma ona spore znaczenie praktyczne, co postaram si przedstawi na przykadach.

Co to jest schemat ?
Wyobramy sobie pana Genia, ktry rozwizuje krzywk i krzyczy do ony (pani Geni) przez korytarz: - Rybko, potrzebuj wyraz na cztery litery, druga litera to 'T' a ostatnia, czyli czwarta 'K'. Jak wida, zapomnia poda opis, ale pani Genia nie przeja si tym tylko woa: - Oczywicie, nawet nie jeden: "PTAK", "ATAK", "STEK", "STYK", "WTYK" ... Nie bdziemy wnika, czy ta odpowied zadowolia pana Genia. Nas interesuje to, e pan Genio poda pewien wzorzec, albo powiedzmy wprost: schemat, a pani Genia dopasowaa do tego schematu kilka moliwoci. Istotnymi cechami schematu podanego przez pana Genia jest to, e na konkretnych pozycjach (druga i czwarta) zawiera ustalone wartoci (litery 'T' i 'K'). Symbolicznie moemy zapisa ten schemat tak:
*T*K

Gwiazdki oznaczaj pozycje nieustalone, a litery zajmuj pozycje ustalone w tym schemacie. Sowa, ktre dopasowaa pani Genia nazywamy reprezentantami tego schematu. Oczywicie schemat *T*K ma duo wicej reprezentantw, a zdecydowana wikszo z nich nie tworzy

poprawnych wyrazw i jest dla pana Genia nieprzydatna. Np. taki znany skrt czteroliterowy PTTK (Polskie Towarzystwo Turystyczno Krajoznawcze) te jest reprezentantem schematu *T*K, tak samo jak cig YTWK (ktremu trudno nada jaki sens). Kolejne definicje pomocnicze:

Rzd schematu
lub inaczej liczno schematu to liczba ustalonych pozycji w schemacie. U nas jest to liczba konkretnych liter, ktre pan Genio poda swojej onie, czyli 2. Schemat *T*K ma wic rzd 2.

Rozpito schematu
lub inaczej dugo schematu to odlego miedzy skrajnymi ustalonymi pozycjami. Formalnie rozpito oblicza si odejmujc od numeru pozycji ostatniej litery numer pozycji pierwszej. Std rozpito schematu *T*K to 4-2=2. Moe bardziej intuicyjne byoby tutaj okrelenie rozpitoci jako 3, ale nie kmy si z definicjami matematycznymi. Nie jest to specjalnie istotne, wany jest fakt, e schematy mog mie bardzo rne rozpitoci, nawet jeli maj ten sam rzd. Spjrzmy na wyrazy dziewicioliterowe. W tabeli mamy kilka schematw i ich cechy: Schemat
123456789

Rzd Rozpito 9-3=6 8-5=3 9-6=3 9-1=8

Przykadowi reprezentanci
CHOMICZEK PROMYCZEK STOLICZEK KOSZYCZEK PROMYCZEK CHOMICZEK KOSZYCZEK PROMYCZEK STOLICZEK PROMYCZEK

(a)

4 **O***ZEK (b)
****YCZE*

4 3 9

(c)
*****CZ*K

(d)
PROMYCZEK

Zauwamy, e schematy (a) i (b) maj ten sam rzd (ta sama liczba ustalonych liter), ale zupenie rne rozpitoci. Zauwamy te, e cay wyraz te jest schematem (d) i wtedy schemat taki ma tylko jednego reprezentanta.

Schemat a chromosom
Skoro ju wiemy, co to jest schemat, to moemy wrci do algorytmw genetycznych. Wyobramy sobie, e litery, ktrymi si posugiwalimy speniaj funkcj genw, a wyrazy ktre tworz to nic innego jak chromosomy. Czyli rne wyrazy dziewicioliterowe to rne chromosomy skadajce si z dziewiciu genw. Czy moemy tak konstruowa chromosomy ? Oczywicie tak, z punktu widzenia teorii AG nie ma przeszkd, z tym, e nie jest to konstrukcja klasyczna. W klasycznym AG mamy chromosomy skadajce si tylko z zer i jedynek (funkcj genw peni pojedyncze bity).

Naley jednak pamita, e nie musimy ogranicza si do konstrukcji klasycznych, w wielu problemach jest to po prostu niepraktyczne. Kiedy planujemy budow chromosomu, wane jest to, by dobrze przeanalizowa problem, ktremu ma on suy i czsto okae si, e genami w takim chromosomie bd nie bity, ale np. liczby cakowite, liczby rzeczywiste lub nawet zoone struktury danych zawierajce w sobie wiele rnych parametrw. Mog to te by litery, cho trudno poda przykadowe zastosowanie. Niezalenie jednak od tego, jak zdefiniujemy gen, pojcie schematu pozostaje aktualne. Przy reprezentacji klasycznej, bitowej, mamy nastpujce przykadowe schematy (gdzie chromosom ma 8 genw): Schemat Rzd Rozpito Przykadowi 12345678 reprezentanci (a) 4 10****01 (b)
01**1*11

7 7 2 7

10111101 10000001 10101001 01111111 01001011 00001000 11101011 00001011 11101000 10010101

5 3 8

(c)
***010**

(d)
10010101

atwo zauway, e kady chromosom jest reprezentantem (pasuje do) bardzo wielu schematw. Jeli mamy rnorodn populacj wielu chromosomw to liczba schematw, do ktrych one pasuj jest ogromna, nieporwnywalnie wiksza od samej liczby chromosomw.

Przystosowanie schematu
Podobnie jak w przypadku chromosomw, take w przypadku schematw moemy mwi o ich przystosowaniu, klasyfikowa je na "lepsze" i "gorsze". W przypadku chromosomu (genotypu) budujemy na jego podstawie fenotyp (osobnika), a ten moemy oceni za pomoc funkcji przystosowania (funkcji oceny). W przypadku schematu (ktry ze wzgldu na nieustalone pozycje jest swego rodzaju niepenym chromosomem) nie moemy zbudowa osobnika, ani go oceni. Aby dokona oceny oceniamy wic reprezentantw tego schematu i uredniamy ocen. Tak wic przystosowanie schematu moemy zdefiniowa jako rednie przystosowanie obliczone na podstawie przystosowania wszystkich jego reprezentantw. Zaznaczam, e definicja przystosowania schematu suy rozwaaniom teoretycznym, w praktyce si tego nie liczy (jest to bardzo kosztowne ze wzgldu na liczno schematw i liczno pasujcych do kadego schematu chromosomw). Jeli istnieje potrzeba liczenia przystosowania schematu, to zazwyczaj posugujemy sie terminem przystosowania schematu w populacji.

Przystosowanie schematu w populacji


to rednie przystosowanie wszystkich reprezentantw danego schematu wybranych z konkretnej populacji. Ta wielko te ma raczej znaczenie teoretyczne, ni praktyczne. Ale spjrzmy na przykad. Mamy populacj skadajc si z szeciu osobnikw o podanych niej genotypach (tu

genotyp stanowi jeden chromosom) i przykadowych wartociach funkcji przystosowania (nie jest istotne, jak ona dokadnie wyglda): Genotyp Ocena
12345 11010 10111 11100 00101 00011 10000

(a)26 (b)23 (c)28 (d)5 (e)3 (f)16

rednie przystosowanie osobnikw w tej populacji wynosi 16,8. Najlepiej przystosowany jest osobnik (e) z ocen 3 (minimalizujemy funkcj oceny), a najgorzej osobnik (c) z ocen 28. Obliczmy przystosowanie kilku schematw w tej populacji: Schemat Reprezentanci w populacji Ocena
12345 1***0 *0**1 **1** 00*** 0*1*0 a,c,f b,d,e b,c,d d,e -

(26+28+16)/3=23,3 (23+5+3)/3=10,3 (23+25+28)/3=25,3 (5+3)/2=4 ---

Jak wida, niektre schematy maj przystosowanie wiksze ni rednie przystosowanie osobnikw w populacji, a niektre mniejsze. A wiele schematw w ogle w populacji nie wystpuje. Zauwamy, e najlepsze przystosowanie otrzymaj te schematy, do ktrych pasuj najlepsze osobniki w populacji i jednoczenie nie pasuj gorsze. W przykadzie np. schemat 00*** wypada bardzo dobrze, poniewa pasuj do niego dwa najlepsze osobniki i jednoczenie nie pasuje aden ze sabo ocenianych. Mona si wic pokusi o przypuszczenie, e dobrze przystosowany schemat pokazuje "dobre geny", czyli na pozycjach ustalonych zawiera wartociow informacj genetyczn. W przeciwiestwie do schematw sabo przystosowanych, ktre daj widok na kiepskie zestawy genw. Trzeba by jednak bardzo ostronym, szczeglnie, kiedy mamy tak mao liczn populacj jak powysza. W naszym wypadku wyciganie zbyt daleko idcych wnioskw byoby bdem. W kadym bd razie intuicja podpowiada nam, e po etapie selekcji, krzyowania i mutacji w nowej populacji pewne schematy si powtrz, a inne zanikn. W szczeglnoci, skoro krzyujemy gwnie najlepsze osobniki to powtrz si schematy do ktrych one pasuj, czyli schematy najlepiej przystosowane w populacji rodzicielskiej. Natomiast schematy najgorzej przystosowane bd stopniowo zanika (razem z zanikaniem swoich sabych reprezentantw, ktre nie dostaj szansy na rozmnaanie). I okazuje si, e nasza intuicja jest mniej wicej zgodna z teori i praktyk. Uywajc niezbyt skomplikowanego aparatu

matematycznego (opartego na rachunku prawdopodobiestwa) zbadano dokadnie, w jaki sposb schematy przenosz si z populacji rodzicielskiej do potomnej.

Twierdzenie o schematach (twierdzenie Hollanda)


Schematy maego rzdu, o maej rozpitoci i o przystosowaniu powyej redniej otrzymuj rosnc wykadniczo liczb swoich reprezentantw w kolejnych generacjach algorytmu genetycznego. Czyli nasza intuicja bya dobra w odniesieniu do schematw maego rzdu i maej rozpitoci (ktre nazwijmy po prostu "maymi schematami"). Schematy takie, jeli s dobrze przystosowane, to w kolejnych iteracjach (krokach ewolucji) szybko rozprzestrzeniaj si na ca populacj. I jednoczenie bardzo szybko wypieraj mae schematy sabo przystosowane. Ale dlaczego w twierdzeniu jest mowa tylko o schematach maego rzdu i maej rozpitoci ? Tego wczeniej nie przewidywalimy. Ale ten dodatkowy warunek te jest zgodny z intuicj. Pomylmy: wemy dwa przykadowe schematy rzdu 2 i zamy, e maj one takie samo, dobre przystosowanie:
12345678901234567890 (a)********11********** (b)****1**********1****

Pierwszy ma rozpito 1 (maa) a drugi 11(dua). Zauwamy, e np. w procesie krzyowania istnieje duo wiksze ryzyko rozcicia schematu (b) ni schematu (a). Innymi sowy: schemat (a) ma duo wiksze szanse wejcia do populacji potomnej w caoci razem z ktrym z wysoko ocenianych rodzicw, natomiast schemat (b) bdzie czsto rozcinany i do populacji potomnej bdzie trafia w powkach, zestawiony z innymi dobrze ocenianymi schematami, ktre jednak mog mie 0 na pozycjach 5 lub 16. Tak wic pomimo tak samo dobrej oceny i takiego samego rzdu, schematy te maj rne szanse przetrwania, na niekorzy tego o wikszej rozpitoci, ktry nawet jeli nie zaniknie, to bdzie si najprawdopodobniej wolniej rozprzestrzenia w kolejnych populacjach. Podobn analiz mona przeprowadzi dla rzdu, ale jest to mniej istotne. Do cikich rozwaa teoretycznych, czas na jakie konkretne, praktyczne wnioski, czyli trzeba si zaznajomi z hipotez cegieek budujcych, ktra pokazuje, jaki wpyw na proces ewolucji ma odpowiednia budowa chromosomu.

Hipoteza cegieek
Na podstawie twierdzenia o schematach wysnuto hipotez, e algorytmy genetyczne opieraj sw si na skadaniu rnych kombinacji krtkich cigw genowych - zwanych cegiekami. Tak wic w praktyce okazuje si, e analizujc proces ewolucji nie moemy poprzesta na analizie pojedyczych genw, ale musimy obserwowa ich grupy. Nie wystarczy, e znajdziemy dobry sposb kodowania parametrw zadania w postaci genw - powinnismy (o ile to moliwe) take zaplanowa ich wzajemne uoenie, odpowiednio podobiera geny blisko ze sob ssiadujce. Powiedziaem: "o ile to moliwe". Zalet algorytmw genetycznych jest m.in. prostota i elastyczno zastosowa - atwo je adaptowa do najrozmaitszych zada. Jednake czsto istotnym

problemem jest znalezienie sposobu kodowania takiego zadania w postaci genw. Samo rozbicie parametrw na poszczeglne geny ju moe by nie lada amigwk, do tego dochodzi krzyowanie w wyniku ktrego chcemy uzyskiwa rozwizania dozwolone, a nie zupenie nieprzydatne. A c dopiero mwi o gbszej analizie. Warto jednak zastanowi si nad kilkoma sprawami. Ot najtrudniej budowa chromosom wtedy, gdy rne geny s ze sob silnie powizane, tzn. koduj parametry zadania, ktre s ze sob silnie powizane. Wtedy wanie operacja krzyowania najbardziej si komplikuje. Innymi sowy: jeli w wyniku prostego krzyowania klasycznego z dwch poprawnych fenotypw (osobnikw) moemy otrzyma osobnika niedozwolonego, to oznacza to, e midzy genami istniej zalenoci. Przykad takiej sytuacji przedstawiem w przykadzie sposobu kodowania dla algorytmu komiwojaera. Przy kodowaniu pseudoklasycznym po skrzyowaniu dwch poprawnych cykli miast otrzymujemy grafy niecykliczne. Istnieje bowiem silna zaleno midzy genami kodujcymi poczenia poszczeglnych miast: jeli jakie miasto X czy si z innym miastem Y to oznacza, e adne inne miasto nie moe si ju poczy z miastem Y. Czyli wystpienie jakiej wartoci w jednym genie ogranicza wszystkie inne geny, w ktrych warto ta staje si niedozwolona. Jednoczenie zalenoci midzy genami s podstaw do zastosowania hipotezy cegieek budujcych. Jeli midzy genami nie ma zalenoci (koduj one zupenie niezalene parametry zadania) to hipoteza cegieek nie ma zastosowania. W takiej sytuacji sposb rozmieszczenia genw w chromosomie (kolejno, ssiedztwo) nie ma adnego znaczenia. Konkluzja: Jeli chcemy zoptymalizowa budow chromosomu pod ktem szybkoci ewolucji (czyli zastosowa wiedz zawart w hipotezie cegieek budujcych) warto prac t wykona na etapie planowania operacji krzyowania, poniewa wtedy wanie jestemy czsto zmuszeni do przeprowadzenia analizy zalenoci midzy genami. Oba tematy s ze sob cile powizane. Sama zasada optymalizacji budowy chromosomu jest do prosta: geny silnie od siebie zalene naley rozmieszcza blisko siebie. Dziki temu, zgodnie z twierdzeniem o schematach, dzieci dziedzicz po rodzicach nie tylko informacj zawart w samych genach, ale cae kompozycje genw, ktre dopiero zestawione razem, dziki ukrytym zalenociom, nios wartociow informacj. Odnoszc to do problemu komiwojaera: cenniejsze jest przekazywanie potomkom cigw skadajcych si z wielu miast (czyli duych fragmentw spjnych rozwiza), ni wielu pojedynczych informacji o poczeniach midzy odrbnymi parami tych miast, ktre zestawione razem mog w ogle do siebie nie pasowa.

Problem komiwojaera - przykad rozwizania za pomoc AG


Problem komiwojaera - o co chodzi
W skrcie: mamy pask map a na mapie wiele miast. Chcemy odwiedzi wszystkie te miasta, a jednoczenie ponie jak najmniejsze koszty podry, czyli wybra najkrtsz drog. Moemy dowolnie wybiera kolejno odwiedzania miast, midzy ktrymi poruszamy si po liniach

prostych (czyli moliwie najkrcej), ale na kocu chcielibymy wrci do punktu wyjcia. Moemy wic zacz od dowolnego miasta. Dla kilku miast problem jest prosty, natomiast bardzo si komplikuje przy wikszej ich iloci. cile rzecz biorc matematyk-informatyk powie, e problem ten jest NP-zupeny, co oznacza, e komplikacja problemu szybko wzrasta. Oglnie uwaa si, e dla odpowiednio duej iloci miast znalezienie optymalnej drogi jest praktycznie niemoliwe, nawet dla bardzo szybkich komputerw. Dodatkowo dodanie do mapy jednego miasta komplikuje problem WIELOKROTNIE, proporcjonalnie do liczby wszystkich miast, a wic dzisiejsze komputery, jeli poradz sobie nawet z bardzo du iloci miast, to dodanie jednego, dwch kolejnych do mapy definitywnie pooy obliczenia. My take nie liczymy na to, e algorytm genetyczny bdzie nam znajdowa rozwizanie optymalne. Chcemy za pomoc algorytmu genetycznego znale rozwizanie suboptymalne, czyli moliwie jak najlepsze. Na pocztek zamy, e mamy 7 miast. Przykadowa mapa moe wyglda tak jak na rysunku poniej.

Fenotyp
Fenotypem w naszym zadaniu jest ... mapa. Mapa z zaznaczonymi drogami, ktre daj przykadow drog komiwojaera (o dowolnej dugoci - tym si na razie nie przejmujemy). Moemy j narysowa w postaci grafu z jednym, duym cyklem spinajcym wszystkie miasta. Cykl ten moe by dowolny, w szczeglnoci tak pogmatwany, e w ogle nie bdzie wyglda jak cykl, ale jak popltana sie. Fenotyp, czyli pewne rozwizanie naszego problemu jest dozwolony, jeli spina wszystkie miasta jednym cyklem (ale kade miasto tylko raz). I to wszystko. Moe wyglda to np. jak na rysunku poniej. Pod spodem pokazany jest cykl, w jaki ukadaj si miasta.

Funkcja oceny
A funkcj oceny jest po prostu droga, czyli dugo caego cyklu w grafie. Jak wida, funkcja oceny jest bardzo prosta (cho oczywicie moemy wymyli bardziej zoon) - nie analizujemy jakoci pojedynczych pocze ani kolejnoci miast, ani czy drogi midzy miastami si nie przecinaj. Po prostu liczymy dugo caej drogi i otrzymujemy konkretn liczb. Im mniejsz, tym lepiej.

Genotyp, czyli budowa chromosomu


Jak graf z drogami zapisa w postaci genw upakowanych w chromosom ?

Sposb pierwszy - oparty o klasyczne rozmieszczenie grafw


1. Numerujemy wszystkie miasta, czyli wierzchoki naszego grafu. 2. Tworzymy chromosom o dugoci takiej, jaka jest liczba miast (czyli 7) - kade miasto ma swj gen. 3. W genie danego miasta zapisujemy numer innego miasta, do ktrego chcemy przej z danego. Czyli jeli w chromosomie gen numer X ma warto Y oznacza to, e z miasta numer X idziemy do miasta Y. W genie Y mamy warto Z i std wiemy, e z miasta numer Y mamy i do miasta numer Z. I tak dla wszystkich miast. W ten sposb kodujemy ca map z przykadow drog komiwojaera. Inaczej mwic w chromosomie mamy zapisan informacj o nastpnikach wszystkich miast. Chromosom opisujcy podan w przykadzie tras bdzie wyglda tak:

Sposb drugi kodowanie permutacyjne


Jest to kodowanie bardziej intuicyjne dla problemu komiwojaera, ktry jest typowym problemem kombinatorycznym. Postpujemy nastpujco: 1. Numerujemy wszystkie miasta. 2. Tworzymy chromosom o dugoci takiej, jaka jest liczba miast (znw ...). 3. W kolejnych genach zapisujemy kolejne miasta na drodze. Czyli, jeli w genie numer 1 siedzi miasto X a w genie numer 2 miasto Y to oznacza to, e idziemy z miasta X do Y. W ten sposb geny w chromosomie ukadaj si dokadnie tak, jak miasta w cyklu. W tym wypadku nie ma staego przypisania miasta do genu, wic kada przykadowa trasa moe by zapisana na wiele sposobw. Dla podanych siedmiu miast poczonych drog dwa przykadowe chromosomy odwzorowujce ten sam cykl mog wyglda tak:

Operatory genetyczne czyli o gwnie o krzyowaniu i nieco o mutacji

Problem komiwojaera wraz z zaproponowanymi dwoma sposobami kodowania to typowy przykad problemu, do ktrego trzeba indywidualnie zaprojektowa operacj krzyowania. Istniej bowiem powane ograniczenia przy nadawaniu wartoci genw. Przyjrzyjmy si pierwszemu sposobowi kodowania. Wemy dwa przykadowe chromosomy i odpowiadajce im cykle na dwch mapach:

Teraz dokonamy krzyowania tych dwch chromosomw postpujc zgodnie z reguami klasycznymi: wybieramy jeden punkt krzyowania i wymieniamy kawaki chromosomw. Powstaj dwa nowe:

A tak wygldaj zakodowane w tych chromosomach "mapy":

Jak wida, rezultat nie jest zbyt ciekawy. Po takim krzyowaniu uzyskalimy dwa niedozwolone rozwizania - drogi na mapach nie tworz cykli tylko chaotyczne powizania midzy miastami. Moemy zaradzi temu problemowi dokonujc korekt w chromosomach. Wyszukujemy wszystkie miasta, ktrych w chromosomie brakuje i te, ktre wystpuj wielokrotnie. Losowo zamieniamy powtarzajce si na brakujce. Jest z tym troch roboty i w dodatku pozostaje inny problem: po takim losowym czeniu moe si okaza, e miasta dalej nie tworz jednego cyklu, ale np. s spite w kilku rozcznych cyklach. Musimy wic jeszcze porozcina cykle i poczy je ze sob.

Bibliografia
1. Mulawka J.J.: Systemy ekspertowe. WNT Warszawa 1996 2. , Wydawnictwa Naukowo-Techniczne, Warszawa 1995. 3. http://sound.eti.pg.gda.pl/rekonstrukcja/algorytmy_genetyczne.html 4. http://www.ekspert.wsi.edu.pl/ 5. http://wombat.ict.pwr.wroc.pl/nauczanie/prezentacja/flash/ag/index1.html 6. http://panda.bg.univ.gda.pl/~sielim/genetic/

Vous aimerez peut-être aussi