SZTUCZNA INTELIGENCJA ARTIFICIAL INTELLIGENCE WYKŁAD 11 ALGORYTMY GENETYCZNE II Dr hab. inż. Barbara Dębska, prof. PWSZ KROSNO Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
UWAGI PRAKTYCZNE PROJEKTOWANIA AG c.d. B. Losowanie populacji Należy ustalić jak wielka będzie tworzona populacja. Jeśli populacja będzie zawierała zbyt mało osobników to algorytm może zatrzymać się w jakimś minimum lokalnym, np. gdy jakieś niezłe (ale nie najlepsze) rozwiązanie zdominuje całą populację. Zbyt duża liczebność populacji zmniejsza szybkość działania algorytmu. Po ustaleniu wielkości populacji należy stworzyć wszystkie osobniki uwzględniając: - fakt, że początkowa populacja powinna być jak najbardziej różnorodna każdy osobnik powinien być tworzony całkowicie losowo. (W tym miejscu widać korzyści wynikające z reprezentacji bitowej, gdzie bez względu na rodzaj problemu nowo tworzony osobnik zawiera n losowo wygenerowanych bitów.) - każde pole reprezentujące pojedynczego osobnika należy wypełnić osobno. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Uwaga: Trzeba pamiętać, aby tworzone osobniki były poprawne to znaczy reprezentowały obiekty należące do dziedziny problemu (!!!) Np. przy tworzeniu zbioru elementów x (problem znajdowania ekstremum) w przedziale 1-3 wygenerowany chromosom nie może reprezentować x o wartości np. 5. W przypadku reprezentacji bitowej ten problem pojawia się wtedy, gdy do reprezentowania jakiegoś atrybutu nie są wykorzystywane wszystkie kombinacje bitów. Np. dla przykładu chromosomu opisującego osobnika homo sapiens, jeśli nie uwzględniano by Rosjan (byłyby tylko trzy narodowości) to chromosom 000000011 nie byłby poprawny. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
C. Ocena osobników - W tym kroku badana jest 'dobroć' poszczególnych osobników. - W zależności od rodzaju problemu stosuje się różne funkcje sprawdzające przystosowanie osobników. (1) W przypadku ekstremum funkcji 'dobrocią' jest po prostu wartość funkcji f(x) w zadanym punkcie x. (2) W przypadku rozwiązywania problemu komiwojażera jest to długość trasy jaka jest reprezentowana przez danego osobnika. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
UWAGA: Dla prawidłowej oceny osobników można wprowadzić tzw UWAGA: Dla prawidłowej oceny osobników można wprowadzić tzw. funkcję kary za niedopuszczalne rozwiązanie. Uwzględnia ona fakt, że o poprawne osobniki należy zadbać podczas tworzenia populacji. Niepoprawne osobniki, które też mogą powstawać w krokach krzyżowania i mutacji, należy eliminować. Czasami jest to jednak trudne do wykonania i dlatego przy losowaniu można te osobniki zaakceptować, a w etapie oceny dodać funkcję kary. Spowoduje ona dużo mniejsze prawdopodobieństwo przejścia przez danego osobnika kroku selekcji. W zależności od tego czy funkcję dopasowania ('dobroć') minimalizujemy czy maksymalizujemy wartość funkcji kary należy do niej dodać bądź odjąć. D. Selekcja - Podczas selekcji tworzona jest nowa populacja na podstawie już istniejącej. - W zależności od wartości funkcji oceny (obliczanej w poprzednim kroku) dany osobnik ma większe (gdy jest 'dobry') lub mniejsze (gdy jest 'słaby') szanse na znalezienie się w kolejnym pokoleniu. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
(Wartość przystosowania danego osobnika)/ Najczęściej stosowane sposoby obliczania 'szansy' poszczególnych osobników: Koło ruletki Polega na n krotnym losowaniu (n - liczba osobników w populacji) ze starej populacji osobników, które zostaną przepisane do nowej populacji. Oczywiście wszystkie osobniki mają różne prawdopodobieństwa wylosowania. Prawdopodobieństwo to jest liczone z następującego wzoru: (Wartość przystosowania danego osobnika)/ (suma wartości przystosowania wszystkich osobników) Powyższy wzór jest poprawny tylko wtedy, gdy maksymalizuje się funkcję oceny. Do minimalizacji funkcji oceny można zastosować następujący wzór: (Wartość najgorszego osobnika - Wartość danego osobnika + 1/ (suma wartości wszystkich osobników + 1) Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Przykład. (Koło ruletki ) Najczęściej stosowane sposoby obliczania 'szansy' poszczególnych osobników: c.d. Przykład. (Koło ruletki ) Dane są trzy osobniki (w postaci ciągu kodowego - chromosomu) o następujących wartościach przystosowania: 5, 1, 2. Suma wartości przystosowania wynosi 8. Odpowiadające im wartości prawdopodobieństwa są równe: * Pierwszy osobnik: 5/8, czyli 62,5% * Drugi osobnik: 1/8, czyli 12,5% * Trzeci osobnik: 2/8, czyli 25% Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Najczęściej stosowane sposoby obliczania 'szansy' poszczególnych osobników: c.d. Ranking liniowy - Selekcja tą metodą jest bardzo podobna do selekcji metodą koła ruletki. Modyfikacja polega jedynie na zmianie funkcji określającej prawdopodobieństwo wyboru danego osobnika. - Przed przystąpieniem do tej selekcji należy nadać każdemu z osobników pewną wartość (przystosowanie) równa jego położeniu (numerowi) na liście posortowanej względem wartości funkcji oceny. - Gdy chcemy maksymalizować to wartości powinny być posortowane rosnąco, w przypadku minimalizacji wartości powinny być posortowane malejąco. - Aby obliczyć prawdopodobieństwo wybrania każdego osobnika można skorzystać ze wzoru: Prawdopodobieństwo = Przystosowanie/Suma przystosowania wszystkich osobników Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Przykład. (Ranking liniowy) Najczęściej stosowane sposoby obliczania 'szansy' poszczególnych osobników: c.d. Przykład. (Ranking liniowy) Dla powyższego przykładu wartości prawdopodobieństw wyglądałyby następująco: * Pierwszy osobnik: 3/6, czyli 50% * Drugi osobnik: 1/6, czyli 16,7% * Trzeci osobnik: 2/6, czyli 33,3% Uwaga: Ten sposób wyliczania prawdopodobieństw zmniejsza przewagę, jaką mają najlepsze rozwiązania, gdy ich przewaga jest b. duża i zwiększa przewagę, gdy jest ona b. mała. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Najczęściej stosowane sposoby obliczania 'szansy' poszczególnych osobników: c.d. Turniej - Metoda jest zupełnie różna od powyższych i polega na losowym wyborze z całej populacji kilku osobników (jest to tzw. grupa turniejowa), a później z tej grupy wybierany jest osobnik najlepiej przystosowany i on przepisywany jest do nowo tworzonej populacji. - Losowanie grup turniejowych oraz wybieranie z nich najlepszego osobnika należy powtórzyć aż do utworzenia całej nowej populacji (populacji o zadanej liczebności). - Selekcja metodą turniejową jest pozbawiona niedogodności metody koła ruletki, gdzie wymagana jest maksymalizacja funkcji oceny, w turnieju ważna jest jedynie informacja o tym, że jedno rozwiązanie jest 'lepsze' od innego rozwiązania. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
E. Krzyżowanie Zadaniem kroku krzyżowania jest wymiana "materiału genetycznego" pomiędzy dwoma rozwiązaniami w populacji. W wyniku krzyżowania na podstawie dwóch rozwiązań (rodzice) tworzone są dwa nowe osobniki (dzieci). - Po wykonaniu krzyżowania dzieci zastępują w populacji rodziców. - Oczywiście w tym kroku nie wszystkie rozwiązania muszą się ze sobą krzyżować. Liczbę krzyżowań określa tzw. współczynnik krzyżowania (o wartości od 0 do 1), który: * pokazuje jaka liczba osobników powinna być w jednej iteracji skrzyżowana, bądź * określa prawdopodobieństwo z jakim każde rozwiązanie może wziąć udział w krzyżowaniu. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Krzyżowanie osobników homo sapiens może wyglądać następująco: Przykład. Krzyżowanie osobników homo sapiens może wyglądać następująco: Pierwszy rodzic: 00000000 - niebieskooka Polka o wzroście do 140cm Drugi rodzic: 11011001 - wysoki (190-200) Niemiec o brązowych oczach. Punkt podziału ustala się losowo pomiędzy czwartym a piątym bitem. Dzieci powstałe w wyniku skrzyżowania będą wyglądać następująco: 00001001 - Niemka o niebieskich oczach i wzroście 150-160cm 11010000 - Polak o brązowych oczach i wzroście 160-170cm Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
00000000 (płeć, kolor oczu, wzrost, narodowość) 11011001 Rozszerzeniem tego krzyżowania jest krzyżowanie wielopunktowe, gdzie chromosomy rodziców dzieli się na kilka części, a później dzieci tworzy się na podstawie przeplatanych wycinków rodziców. Tutaj sensownym będzie podział na cztery części: 00000000 (płeć, kolor oczu, wzrost, narodowość) 11011001 co prowadzi do wygenerowania różnych potomków, np. 01000001 11000001 - W przypadku nie binarnej reprezentacji gatunku należy wymyślić krzyżowanie stosowne do zastosowanej reprezentacji. Gdy np. dane trzymane są w strukturze to można podmieniać pomiędzy rodzicami zawartości poszczególnych pól struktur. W tym wypadku jednak dzieci będą zawsze zawierały wartości występujące przynajmniej u jednego z rodziców. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
F. Mutacja Mutacja, podobnie jak krzyżowanie, zapewnia dodawanie do populacji nowych osobników. W odróżnieniu od krzyżowania, w przypadku mutacji modyfikowany jest jeden a nie dwa osobniki. Podobnie jak w przypadku krzyżowania istnieje tzw. współczynnik mutacji, który określa ile osobników z populacji będzie ulegało mutacji w jednej iteracji generowania nowej populacji. W przypadku reprezentacji binarnej sprawa mutacji jest bardzo prosta, np. wystarczy zanegować jeden bit w chromosomie, aby otrzymać zupełnie nowego osobnika. - W przypadku osobnika homo sapiens negacja pierwszego bitu powoduje zamianę kobiety na mężczyznę lub odwrotnie. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
F. Mutacja c.d. G. Powrót do punktu 2 Można stosować bardziej urozmaicone mutacje, np.: * negacja losowo ustalonej liczby bitów, * odwracanie kolejności losowo wybranej liczby bitów, * przesunięcie losowej liczby bitów i inne., - W przypadku nie binarnej reprezentacji chromosomu mutacja może polegać np. na wpisaniu losowej wartości (oczywiście przewidzianej przez gatunek !!!) do wylosowanego pola w strukturze chromosomu. G. Powrót do punktu 2 W zasadzie algorytm genetyczny powinien działać w nieskończoność jednak dobrze jest zapewnić jakieś rozsądne wyjście z pętli. Może to być np. pewna liczba iteracji, wartość osiągniętego najlepszego rozwiązania, czas, brak poprawy wyniku przez pewną ilość iteracji lub inny zdefiniowany jednoznacznie punkt stopu, w zależności od rodzaju zadania. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Rozwiązanie PROBLEMU KOMIWOJAŻERA. Przykład. Rozwiązanie PROBLEMU KOMIWOJAŻERA. Komiwojażer musi odwiedzić wszystkie miasta z zadanego regionu i wrócić do miasta początkowego (jest to problem szukania cyklu). Wszystkie miasta są ze sobą połączone (mamy do czynienia z grafem pełnym, czyli kliką). Mając do dyspozycji macierz odległości pomiędzy poszczególnymi miastami należy znaleźć cykl o najmniejszym koszcie przy założeniu, że każde miasto nie może być odwiedzone więcej niż jeden raz. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Rozwiązanie metodą I. Mamy płaską mapę, a na mapie wiele miast. 1. Chcemy odwiedzić wszystkie te miasta, a jednocześnie ponieść jak najmniejsze koszty podróży, czyli wybrać najkrótszą drogę. 2. Możemy dowolnie wybierać kolejność odwiedzania miast, między którymi poruszamy się po liniach prostych (czyli możliwie najkrócej), ale na końcu chcielibyśmy wrócić do punktu wyjścia. Możemy zacząć swą podróż od dowolnego miasta. 3. Dla kilku miast problem jest prosty, natomiast bardzo się komplikuje przy większej ich ilości. Ściśle rzecz biorąc matematyk-informatyk powie, że problem ten jest NP-zupełny, co oznacza, że komplikacja problemu szybko wzrasta. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Najczęściej przyjmuje się następujące założenie, że: UWAGA !! Ogólnie uważa się, że dla odpowiednio dużej ilości miast znalezienie optymalnej drogi jest praktycznie niemożliwe, nawet dla bardzo szybkich komputerów. Dodatkowo dodanie do mapy jednego miasta komplikuje problem WIELOKROTNIE, proporcjonalnie do liczby wszystkich miast, a więc dzisiejsze komputery, jeśli poradzą sobie nawet z bardzo dużą ilością miast, to dodanie jednego, dwóch kolejnych do mapy definitywnie położy obliczenia. Najczęściej przyjmuje się następujące założenie, że: - algorytm genetyczny będzie sam znajdował rozwiązanie optymalne, lub - chcemy za pomocą algorytmu genetycznego znaleźć rozwiązanie sub-optymalne, czyli możliwie jak najlepsze. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Przykładowa mapa dla siedmiu miast może wyglądać tak jak na rysunku poniżej. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
FENOTYP FUNKCJA OCENY Przykład cyklu, w jaki układają się miasta. Fenotypem (czyli pewnym rozwiązaniem naszego problemu) w naszym zadaniu jest mapa z zaznaczonymi drogami, które pokazują przykładową drogę komiwojażera. Można ją narysować w postaci grafu z jednym, dużym cyklem spinającym wszystkie miasta. Cykl ten może być dowolny. Fenotyp jest dozwolony, jeśli łączy wszystkie miasta w jeden cykl (każde miasto występuje tylko raz). FUNKCJA OCENY Funkcją oceny jest droga, czyli długość całego cyklu w grafie. Jak widać, funkcja oceny jest liczbą - nie analizujemy jakości pojedynczych połączeń ani kolejności miast, ani czy drogi między miastami się nie przecinają. Im długość drogi jest mniejszą, tym lepiej. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Genotyp, czyli budowa chromosomu Sposób pierwszy: 1. Numerujemy wszystkie miasta, czyli wierzchołki naszego grafu. 2. Tworzymy chromosom o długości takiej, jaka jest liczba miast (czyli 7) każde miasto ma swój gen. W genie danego miasta zapisujemy numer innego miasta, do którego chcemy przejść z danego. Czyli jeśli 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 stąd wiemy, że z miasta numer Y mamy iść do miasta numer Z. Zatem w chromosomie mamy zapisaną informację o następnikach wszystkich miast. I tak dla wszystkich miast. W ten sposób kodujemy całą mapę z przykładową drogą komiwojażera. Chromosom opisujący podaną w przykładzie trasę będzie wyglądał tak: Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Sposób drugi (tzw. naturalny): 1. Numerujemy wszystkie miasta. 2. Tworzymy chromosom o długości takiej, jaka jest liczba miast 3. W kolejnych genach zapisujemy kolejne miasta na drodze. Czyli, jeśli w genie numer 1 wpisane jest miasto X a w genie numer 2 miasto Y to oznacza to, że idziemy z miasta X do Y. W ten sposób geny w chromosomie układają się dokładnie tak, jak miasta w cyklu. W tym wypadku nie ma stałego przypisania miasta do genu, więc każda przykładowa trasa może być zapisana na wiele sposobów. Dla podanych siedmiu miast połączonych drogą dwa przykładowe chromosomy odwzorowujące ten sam cykl mogą wyglądać tak: Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Operatory genetyczne Krzyżowanie i mutacja. Problem komiwojażera wraz z zaproponowanymi dwoma sposobami kodowania to typowy przykład problemu, do którego trzeba indywidualnie zaprojektować operację krzyżowania. Przyjrzyjmy się pierwszemu sposobowi kodowania. Weźmy dwa przykładowe chromosomy i odpowiadające im cykle na dwóch mapach: Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Teraz dokonamy krzyżowania tych dwóch chromosomów postępując zgodnie z regułami klasycznymi: wybieramy jeden punkt krzyżowania i wymieniamy kawałki chromosomów. Powstają dwa nowe: Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
A tak wyglądają zakodowane w tych chromosomach "mapy": Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
- Musimy więc jeszcze porozcinać cykle i połączyć je ze sobą. Jak widać, po takim krzyżowaniu uzyskaliśmy dwa niedozwolone rozwiązania - drogi na mapach nie tworzą cykli, tylko chaotyczne powiązania między miastami. Możemy zaradzić temu problemowi dokonując korekt w chromosomach otrzymanych w wyniku krzyżowania. W tym celu: - Wyszukujemy wszystkie miasta, których w chromosomie brakuje i te, które występują wielokrotnie. - Losowo zamieniamy powtarzające się na brakujące. Po takim losowym łączeniu może się okazać, że miasta dalej nie tworzą jednego cyklu, ale np. są spięte w kilku rozłącznych cyklach. - Musimy więc jeszcze porozcinać cykle i połączyć je ze sobą. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Odl(a,b) = sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)) PROBLEM KOMIWOJAŻERA Rozwiązanie metodą II. - Na wejściu mamy informację o odległościach pomiędzy miastami, a na wyjściu należy wygenerować najlepszą kolejność odwiedzanych miast. - Jeśli dane o miastach zapisane są w postaci listy miast wraz z ich współrzędnymi macierz odległości musi zostać wyliczona. - Do wyznaczenia macierzy odległości należy wykorzystać wzór na odległość Euklidesową pomiędzy dwoma punktami (pierwiastek z sumy kwadratów różnic odległości dla poszczególnych współrzędnych): Odl(a,b) = sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)) Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Lista miast i ich współrzędnych: ...oraz odpowiadająca im mapa: Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Macierz odległości obliczona na podstawie listy współrzędnych (wyniki zaokrąglono do części całkowitej): Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Dla n miast liczba możliwych tras wynosi n Dla n miast liczba możliwych tras wynosi n! (dodanie i-tego miasta powoduje zwiększenie liczby możliwych tras i-krotnie). Sprawdzenie wszystkich możliwych tras jest zadaniem bardzo czasochłonnym. Do znalezienia najlepszej drogi dla komiwojażera wykorzystane zostaną algorytmy genetyczne. Populacja początkowa będzie składała się z pewnej liczby tras wygenerowanych zupełnie losowo. Aby wyeliminować tworzenie nieprawidłowych osobników należy odpowiednio dobrać reprezentację pojedynczego chromosomu. Jako sposób reprezentacji cyklicznego grafu, buduje sie listę pokazującą kolejność pobierania miast do tworzonej trasy. Punktem odniesienia dla tej reprezentacji jest lista kolejnych miast: 1-2-3-4-5. Pojedynczy osobnik np. 4-4-1-2-1 pokazuje, w jakiej kolejności wybierane są kolejno odwiedzane miasta. Na początku jest czwórka (4), więc pierwszym odwiedzanym miastem będzie miasto umieszczone na czwartej pozycji w liście odniesienia, czyli czwórka (4). Czwórkę tą usuwa się z listy odniesienia (pozostają na niej miasta 1-2-3-5), natomiast lista indeksów miast, które zostały już odwiedzone, wygląda następująco: 4 Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Analizowany element osobnika Lista odniesienia Kolejnym indeksem odwiedzanego miasta jest ponownie czwórka. W tej chwili na czwartym (4) miejscu listy odniesienia jest piątka, więc kolejnym odwiedzanym miastem będzie miasto nr 5, a lista odniesienia zostanie skrócona i będzie wyglądała następująco: 1-2-3. W kolejnych krokach otrzymujemy: Analizowany element osobnika Lista odniesienia Tworzona lista odwiedzanych miast 1 1-2-3 4-5-1 2 2-3 4-5-1-3 4-5-1-3-2 Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Reprezentacja ta wprowadza spore utrudnienie przy przekształcaniu na reprezentację wykorzystywaną przy ustalaniu wartości funkcji oceny, jednak kłopoty te rekompensuje podczas wykonywania operacji krzyżowania i mutacji. Cechą charakterystyczną tej reprezentacji jest fakt, że na i-tej pozycji jest liczba z przedziału od 1 do n-i+1 (gdzie n to liczba wszystkich miast). Ze względu na to wymiana materiału genetycznego między dwoma osobnikami za pomocą standardowego krzyżowania x-punktowego zawsze da dopuszczalne potomstwo. Kolejnym elementem algorytmu genetycznego jest ocena osobników. Oczywiście w przypadku problemu komiwojażera oceną poszczególnych osobników jest długość trasy jaką reprezentują. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
0-6-5-2-1-3-4-8-7-9 Wartość funkcji oceny: 0-6 -> 79 6-5 -> 78 5-2 -> 9 2-1 -> 43 1-3 -> 7 3-4 -> 19 4-8 -> 43 8-7 -> 39 7-9 -> 59 9-0 -> 65 Suma: 441 Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
KRZYŻOWANIE. Dla problemu komiwojażera (i innych jemu podobnych) opracowano kilka innych rodzajów krzyżowań, które zawsze dają rozwiązania dopuszczalne. Poniżej przedstawiono dwa z nich: Krzyżowanie z częściowym odwzorowaniem (PMX) Przy tym krzyżowaniu wybiera się losowo pewną podtrasę w obu rodzicach i przekazuje się ją do potomka (podtrasa pierwszego rodzica trafia do drugiego potomka i na odwrót): rodzic pierwszy: 1-2-3-4-5, rodzic drugi: 2-4-3-5-1, pozostawiana podtrasa: miasta od 2 do 4: Pierwsze dziecko: x-4-3-5-x, Drugie dziecko: x-2-3-4-x. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Pierwsze: 1-4-3-5-2, Drugie: 5-2-3-4-1. Teraz uzupełnia się te trasy tak żeby nie powstał konflikt (dwa takie same miasta w trasie): Pierwsze dziecko: 1-4-3-5-x, drugie dziecko x-2-3-4-1 (do dzieci nie można dodać miasta 5 (do pierwszego) ani 2 (do drugiego), ponieważ pojawiłyby się dwa takie same miasta w trasie) Następnie tworzone są odwzorowania (na podstawie wymienianych podtras): 2<->4, 3<->3, 4<->5 i za ich pomocą uzupełniane są dzieci: W pierwszym potomku brakuje piątego miasta, więc na to miejsce wstawiamy miasto nr 2 (5<->4 i 4<->2), natomiast w drugim dziecku brakuje pierwszego miasta, więc wstawimy miasto nr 5 (2<->4 i 4<->5). Wygenerowane w ten sposób dzieci będą wyglądały następująco: Pierwsze: 1-4-3-5-2, Drugie: 5-2-3-4-1. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Krzyżowanie z porządkowaniem (OX) W tym krzyżowaniu potomków tworzy się na podstawie podtras pobranych z rodziców (podtrasa pierwszego dziecka pobierana jest z drugiego rodzica natomiast podtrasa drugiego dziecka z pierwszego). Następnie uzupełnia się trasy miastami pobranymi z drugiego rodzica z zachowaniem porządku z pominięciem miast już wykorzystanych. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Przykład c.d. Rodzic pierwszy: 3-2-1-4-5, rodzic drugi: 2-4-3-5-1, pozostawiana podtrasa: miasta od 2 do 4. Pierwsze dziecko: x-4-3-5-x, drugie dziecko x-2-1-4-x Uzupełnia się kod pierwszego dziecka: x-4-3-5-2 (pominieto 4, 5 i 3 ponieważ te miasta już występują) -> 1-4-3-5-2. I kod drugiego dziecka: x-2-1-4-3 (pominieto 1, 2 i 4 ponieważ te miasta już występują) -> 5-2-1-4-3. Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
MUTACJA W zależności od rodzaju reprezentacji chromosomu, można zastosować standardowe operatory mutacji, bądź jakieś bardziej wyrafinowane. - W przypadku reprezentacji 'naturalnej' najprostszym rodzajem mutacji jest wymiana ze sobą dwóch miast w rozwiązaniu. Np.: 1-2-3-4-5 -> wymiana miast 2 i 4 -> 1-4-3-2-5 - Można również zmieniać kolejność przechodzenia miast. Np.: 1-2-3-4-5 -> Zmiana kolejności w obrębie miast 1 i 4 -> 4-3-2-1-5 - Można również przesunąć jakieś miasto (lub grupę miast) w ramach rozwiązania. Np.: 1-2-3-4-5 -> Wstawienie miasta 1 pomiędzy 4 i 5 -> 2-3-4-1-5 - Dla drugiej reprezentacji mutacja sprowadza się do zamiany wartości z pozycji i losową wartością z przedziału od 1 do n-i+1 (n - liczba wszystkich miast). Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno
Dziękuję za uwagę Dr hab. inż. Barbara Dębska, prof. PWSZ Krosno