5. Algorytm genetyczny przykład zastosowania

Podobne dokumenty
6. Algorytm genetyczny przykłady zastosowań.

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Klient-Serwer Komunikacja przy pomocy gniazd

ALGORYTMY GENETYCZNE ćwiczenia

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Aplikacja Sieciowa wątki po stronie klienta

Strategie ewolucyjne (ang. evolu4on strategies)

6. Klasyczny algorytm genetyczny. 1

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Kolejki FIFO (łącza nazwane)

Algorytmy genetyczne

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Mechanizmy pracy równoległej. Jarosław Kuchta

Algorytmy genetyczne w optymalizacji

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS

Algorytm genetyczny (genetic algorithm)-

Algorytmy ewolucyjne (3)

Metody Rozmyte i Algorytmy Ewolucyjne

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Przesyłania danych przez protokół TCP/IP

Generowanie i optymalizacja harmonogramu za pomoca

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

5. Model komunikujących się procesów, komunikaty

Metody przeszukiwania

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

Jednolity Plik Kontrolny w IFK

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data / EC3 VIII LAB...

IPC: Kolejki komunikatów

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Programowanie genetyczne, gra SNAKE

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

S P I S T R E Ś C I. Instrukcja obsługi

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Algorytmy genetyczne

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Wybrane podstawowe rodzaje algorytmów

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

LEKCJA TEMAT: Zasada działania komputera.

Rachunek prawdopodobieństwa

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Algorytmy genetyczne w interpolacji wielomianowej

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Macierze. Rozdział Działania na macierzach

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Programowanie współbieżne i rozproszone

Internetowy serwis Era mail Aplikacja sieci Web

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

KOMBINATORYKA OBIEKTY KOMBINATORYCZNE MATEMATYKA DYSKRETNA (2014/2015)

Wielokryterialne harmonogramowanie portfela projektów. Bogumiła Krzeszowska Katedra Badań Operacyjnych

INFRA. System Connector. Opis systemu

Algorytmy ewolucyjne Część II

Opis protokołu komunikacji programu mpensjonat z systemami zewnętrznymi (np. rezerwacji online)

Programowanie genetyczne - gra SNAKE

Galileo - encyklopedia internetowa Plan testów

Sortowanie. Bartman Jacek Algorytmy i struktury

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

BIBLIOTEKA NUMPY, CZĘŚĆ 2

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Podstawy OpenCL część 2

System automatycznego wysyłania SMSów SaldoSMS

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Inspiracje soft computing. Soft computing. Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych. Elementarny algorytm genetyczny

5. Rozwiązywanie układów równań liniowych

System automatycznego rozsyłania wiadomości

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Podręcznik użytkownika

Rozdział 1 PROGRAMOWANIE LINIOWE

Wstęp do programowania

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Sortowanie - wybrane algorytmy

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Algorytmy genetyczne

System Rozproszone Komunikator Dokumentacja. Maciej Muszkowski Jakub Narloch

Transkrypt:

5. Algorytm genetyczny przykład zastosowania Zagadnienie magicznych kwadratów Opis działania algorytmu Zagadnienie magicznych kwadratów polega na wygenerowaniu kwadratu n n, w którym elementami są liczby 1, 2,..., n 2 ułożone tak, by w każdej kolumnie, wierszu i przekątnej suma wartości liczb była taka sama i wynosiła 1+n2 2 n. 8 1 6 3 5 7 4 9 2 Rysunek 1: Magiczny kwadrat dla n = 3. Jest to zadanie łatwe jeżeli n jest stosunkowo małe. W przypadku dużych n zagadnienie jest trudne do rozwiązania. Jeżeli chcielibyśmy sprawdzić wszystkie możliwości rozmieszczenie liczb w kwadracie to otrzymamy n 2! różnych rozmieszczeń, a to przy dużych n jest bardzo duża liczba. Algorytm genetyczny wykorzystujący operatory krzyżowania i mutacji Do rozwiązania zagadnienia magicznych kwadratów wykorzystaliśmy algorytmy genetyczne. Fenotypem w naszym zadaniu jest kwadrat o boku n z rozmieszczonymi liczbami naturalnymi od 1 do n 2. Rozmieszczenie liczb w kwadracie może być dowolne, nam jednak chodzi o takie rozmieszczenie, dla którego suma elementów każdego wiersza, kolumny i przekątnej będzie taka sama. Algorytm przebiega w etapach: 1) losowanie osobników, 2) tworzenie potomstwa, 3) ocena otrzymanego potomstwa, 4) usuwanie powtarzających się chromosomów, 1

5) sortowanie populacji. Pojedynczy genotyp (chromosom) wchodzący w skład populacji jest ciągiem n 2 elementowym o genach należących do zbioru {1, 2,..., n 2 } (przy czym wartość genu nie powtarza się - pojedynczy chromosom jest permutacją ciągu (1 2... n 2 ). Tworzenie potomstwa odbywa się przy wykorzystaniu operatorów genetycznych mutacji i krzyżowania oraz dodatkowej operacji zamiany segmentów genów. Krzyżowanie polega na wymianie segmentów genów między dwoma chromosomami. Mamy dwóch rodziców: rodzica 1 i rodzica 2. Aby skrzyżować dwa chromosomy dokonujemy podzielenia każdego z nich na trzy segmenty w taki sposób aby segment środkowy był jednakowej długości w obu chromosomach. Długość segmentu może być jedną z wartości {1, 2,..., n2 }. Tworzymy dwa nowe chromosomy takie same jak 2 rodzic 1 i rodzic 2. Nowe chromosomy będziemy modyfikować tak, aby wymienić między nimi środkowe segmenty. Ponieważ geny nie są liczbami 0, 1 więc wymiana nie może być bezpośrednim zastąpieniem jednego segmentu drugim, ponieważ otrzymane chromosomy zawierałyby powtórzone geny. Aby tego uniknąć stosujemy zamianę elementów przeprowadzoną w sposób następujący. Modyfikujemy pierwszego potomka. Sprawdzamy jaki gen znajduje się na pierwszym miejscu w środkowym segmencie drugiego rodzica. Zamieniamy w pierwszym potomku gen o tej samej wartości z genem znajdującym się na pierwszym miejscu w segmencie środkowym. Tę samą procedurę powtarzamy dla wszystkich genów segmentu środkowego. W analogiczny sposób modyfikujemy drugiego potomka. Przykład działania operatora krzyżowania jest przedstawiony na rys. 2. Para rodziców: [1 3 5 8 6 4 2 7 9] [4 5 6 8 1 2 3 9 7] I iteracja: [1 3 8 5 6 4 2 7 9] [4 8 6 5 1 2 3 9 7] II iteracja: [1 3 8 5 6 4 2 7 9] [4 8 6 5 1 2 3 9 7] III iteracja: [1 3 4 5 6 8 2 7 9] [5 8 6 4 1 2 3 9 7] Para potoków: [2 3 4 5 6 8 1 7 9] [5 8 6 4 2 1 3 9 7] Rysunek 2: Przykład działania operatora krzyżowania dla n = 3. Mutacja chromosomu to zamiana losowych dwóch genów miejscami. Taki sposób mutacji wynika z wartości genów chromosomu. Ponieważ genami są różne liczby naturalne, a nie wartości binarne, to nie ma możliwości zmiany wartości genu na przeciwną. Ponieważ chromosom jest ciągiem n 2 liczb naturalnych, wiec mutacja jest losową transpozycją. Dodatkowo stosujemy operatory zamiany segmentów genów długości n odpowiadających kolumnom, wierszom lub przekątnym. Jest to na przykład zamiana miejscami dwóch wierszy, dwóch kolumn, wiersza i kolumny lub przekątnej z wierszem czy kolumną. Omówione operatory genetyczne są stosowane w udziale procentowym: transpozycja 50%, krzyżowanie 30%, zamiany 20%. Po wygenerowaniu potomstwa dokonujemy oceny potomków. Wykorzystując funkcję oceny tworzymy nową populację główną. Do populacji tej dołączane są te chromosomy, dla których wartość funkcji oceny jest największa. Funkcja oceny przyjmuje wartości odpowiadające ilości kolumn, wierszy i przekątnych, dla których suma 2

wartości genów wynosi 1+n2 2 n. Maksymalną wartością funkcji oceny jest wartość 2n + 2 odpowiadająca wygenerowaniu chromosomu spełniającego warunki zadania, tzn. chromosomu, któremu odpowiada kwadrat z jednakową sumą elementów w każdym wierszu, kolumnie i na przekątnych. Jeżeli nowowygenerowane chromosomy powtarzają się z chromosomami już istniejącymi to je usuwamy. Po utworzeniu nowej populacji dokonujemy sortowania chromosomów znajdujących się w populacji w taki sposób, aby chromosomy były ułożone od największej do najmniejszej wartości funkcji oceny. Do sortowania chromosomów używamy algorytmu sortowania przez zliczanie. Jest to algorytm działający w czasie liniowym. Program kończy działanie kiedy generuje chromosom, dla którego funkcja oceny wynosi 2n + 2. Jeżeli funkcja oceny nie osiągnie takiej wartości, wówczas program kończy działanie po wykonaniu maksymalnej ilości iteracji. Maksymalna ilość iteracji test ustalona w opcjach programu. W momencie wykonania maksymalnej ilości iteracji następuje sprawdzenie wartości funkcji oceny w ostatnich iteracjach (w połowie maksymalnej liczby iteracji). Jeżeli wzrastała wartość funkcji oceny wraz ze wzrostem ilości iteracji, to czas działania programu zostaje wydłużony o połowę maksymalnej ilości iteracji. Algorytm umożliwiający działanie programu w sposób rozproszony Program jest tak napisany aby móc działać na kilku komputerach wykonujących równolegle operacje generowania nowych potomków. Wszystkie komputery wykonują operacje obliczeniowe poza jednym komputerem zarządzającym pracą całej sieci zwanym serwerem. Serwer pośredniczy w przesyłaniu danych (chromosomów) między klientami. Serwer nie wykonuje żadnych operacji obliczeniowych. W serwerze znajduje się populacja generalna (główna) składająca się z N chromosomów o najwyższej funkcji oceny. Serwer odbiera pakiety od klientów ocenia i modyfikuje populację generalną i rozsyła chromosomy do klientów. Klient wykonując algorytm genetyczny generuje z populacji podstawowej zbiór potomków, aktualizuje populację główną i przesyła do serwera chromosomy o najwyższej funkcji oceny. Rysunek 3: Działanie serwera. Serwer ma dwa wątki podstawowe, wątek główny i wątek serwera połączeń oraz 3

wątki odbierające dane (po jednym dla każdego połączenia). Wysylanie danych do klientów realizowane jest przez wątek główny. Wątek główny nie obsługuje odbioru. Dane odbierają wątki odbiorcze (każdy ma swoje połączenie). Watek główny dołącza odebrane z sieci pakiety i dołącza je co jakiś czas do populacji głównej. Schemat działania serwera przedstawia rys. 3. Ogólnie można powiedzieć, że serwer połączeń: 1) nasłuchuje na gnieździe, 2) jeżeli łączy się z nim klient to tworzy połączenie i generuje nowy wątek odbiorcy dla tego połączenia, 3) dla kolejki połączeń jest synchronizacja dostępu do zasobu za pomocą mutexsu, 4) w sekcji krytycznej gniazd dodaje nowy element. Wątek odbiorcy: dodaje gniazdo sieciowe, nasłuchuje w nieskończonym czasie, jeśli odebrał cały chromosom to zapisuje go do populacji tymczasowej, jeśli otrzymał część genów chromosomu to czeka na pozostały fragment, Wątek główny (co X sekund): dołącza populację tymczasową do populacji głównej, sortuje chromosomy w populacji, wysyła niewysłane chromosomy do klientów. Poniewaą poszczególne wątki korzystają ze wspólnych zasobów konieczna jest ich synchronizacja. W programie serwera posiadamy dwa zasoby współdzielone: kolejkę połączeń z klientami oraz populację tymczasową. Do synchronizacji dostępu stosujemy mutexy. Ochrona zasobów realizowana jest w następujący sposób. Zasoby dzielone i synchronizacja serwera kolejka połączeń, każdy wpis to nowe połączenie, dodawanie w wątku serwera połączeń, usuwanie elementów w wątku odbiorcy po zerwaniu połączenia, przeglądanie kolejki w wątku głównym (ostanie trzy - synchronizacja dostępu do zasobu za pomocą mutexu), populacja tymczasowa, tablica i licznik osobników oczekujących do włączenia do populacji głównej wątki odbiorcy zapisują nowy odebrany chromosom, wątek główny odczytuje chromosom i dołącza go do poulacji głównej, 4

(ostanie dwa - synchronizacja dostępu do zasobu za pomocą mutexu), jeśli połączenie zostaje zerwane to ( w sekcji krytycznej gniazd) usuwa gniazdo z kolejki i kończy pracę, jeśli odbierze coś z sieci to: jeśli odebrał cały chromosom to zapisuje go do populacji tymczasowej, jeśli otrzymał część genów chromosomu to czeka na pozostały fragment, Rysunek 4: Komunikacja sieciowa serwera. Rysunek 5: Zarządzanie populacją w serwerze. Jeśli chodzi o komunikację sieciową serwer i klient działają podobnie. Działanie klienta w komunikacji sieciowej można podzielić na: wątek główny, generuje potomstwo nowej populacji, dołącza populację tymczasową, 5

sortuje, wątek odbiorcy, nasłuchuje na gnieździe sieciowym, jeśli zerwie połączenie to ponownie nawiązuje połączenie po upływie 10s (czynność te jest powtarzana wskazaną w programie ilość razy), jeśli odbiera dane to w przypadku gdy otrzymuje cały chromosom to dodaje go do populacji tymczasowej, jeśli zaś tylko fragment czeka na pozostałą część chromosomu, wątek wysyłący, co Xs wysyła do serwera chromosomy (jeszcze nie wysłane), czeka, terline Rysunek 6: Komunikacja sieciowa i zarządzanie populacją klienta. Klient przechowuje chromosomy w dwóch różnych populacjach. Populacja główna zawiera chromosomy, które będą wysyłane do serwera. Jest tworzona z populacji tymczasowej przez wybór najlepszych osobników. Populacja tymczasowa zawiera chromosomy pochodzące z sieci, czyli od serwera, służące do nowej generacji, oraz chromosomy otrzymane w wyniku stosowania operatorów genetycznych. Synchronizacja dostępu do zasobów klienta Program serwera, podobnie jak serwer, posiada zasoby współdzielone przez wiele wątków. Z tego powodu konieczna jest ich ochrona za pomocą mutexow. Program klienta posiada następujące zasoby dzielone: populacja główna, wątek główny przekazuje na niej cały czas, modyfikuje potomstwo i sortuje, wątek wysyłający musi co pewien czas odczytać wszystkie chromosomy, by móc wysłać nowe, (powyższe - synchronizacja dostępu do zasobu za pomocą mutexu), populacja tymczasowy, 6

wątek odbiorcy, dodaje odebranych z sieci osobników do populacji tymczasowej, wątek główny, dołącza do populacji głównej na podstawie kryterium. Każdy komputer kliencki wykonuje operacje obliczeniowe generowania nowych osobników. Posiada populację główną osobników, którą tworzy z osobników pochodzących z własnej generacji oraz z osobników otrzymywanych z sieci od serwera. Istotne jest, jakie kryteria decydują o dołączeniu osobnika z sieci do populacji głównej klienta. Osobniki dołączane do populacji głównej klienta pochdzą z dwóch źródeł: populacji tymczasowej klienta, która jest utworzona z potomków otrzymanych w ostatniej iteracji, oraz otrzymane od serwera. Istnieje kilka sposobów dołączania nowych osobników. Jednym z nich jest tryb jedno-stado. Kryterium to pozwala na dołączenie nowego osobnika tylko w oparciu o funkcję oceny. Po upływie pewnego czasu wszyscy klienci mają bardzo podobne populacje główne. Klienci wymieniają się osobnikami z najlepszymi ocenami tak, że większość osobników jest jednakowa. Tryb jedno stado: wszyscy klienci są tak jakby jednym klientem, wszyscy mają identyczny zestaw osobników (przeprowadzana jest co pewien czas synchronizacja, ale z czasem wszyscy klienci mają tę samą populację), Innym kryterium dołączania nowego osobnika do populacji głównej klienta jest kryterium X% emigrantów. Kryterium to uwzględnia dotychczasową strukturę populacji głównej klienta. Nowych elementów dołączonych do populacji głównej może być co najwyżej X%. Taki algorytm zachowuje dużą różnorodność populacji głównych klientów i tym samym dużą różnicę między generowanymi potomkami. X% emigrantów: tylko X% osobników może być pochodzenia obcego, jeżeli populacja główna zawiera już X% osobników obcego pochodzenia to nadpisywani są najlepsi spośród nich, nie pozwala na zdominowanie jednej gałęzi nad wszystkimi stadami, Trzecią metodą dołączania osobników obcego pochodzenia jest sposób proporcjonalny. W ramach chromosomów o tej samej wartości funkcji oceny ma się znajdować tyle samo osobników własnego pochodzenia co obcego. Takie kryterium pozwala na zachowanie różnic w populacjach głównych poszczególnych klientów i przez to prowadzi do generowania przez nich innych osobników. 7

Proporcjonalny: przyjmowanych jest tyle samo osobników obcego pochodzenia o danej ocenie ilu osobników własnego pochodzenia znajduje się w populacji, preferowana jest zawsze najlepsze oceny wypierając słabsze osobniki, nie pozwala na dominację obcych osobników. Z obserwacji wynika, iż dominacja wszystkich populacji przez jeden typ osobnikow moze uniemożliwić rozwiązanie zadania. Może się tak stać jeśli osobnik z wysoka ocena zostanie szybko znaleziony, ale jego modyfikacje nie prowadza do rozwiązania, a jedynie do osobników o bardzo wysokiej ocenie. Na przykład osobnik ma ocenę 40 a optymalne rozwiązanie ma ocenę 42. W takim przypadku może się nie udać tak zmodyfikować tego osobnika, żeby dostać wynik. Przykład dołączania chromosomu do populacji głównej klienta. Jedno-stado Populacja głowna składa się z 20 chromosomów: 10 chromosomów o ocenie 19 7 chromosomów o ocenie 17 3 chromosomów o ocenie 15 dołączamy chromosom o ocenie 18 Nowa populacja: 10 chromosomów o ocenie 19 1 chromosom o ocenie 18 7 chromosomów o ocenie 17 2 chromosomów o ocenie 15 Ponieważ wygrywa chromosom, którego funkcja oceny ma największą wartość. X% emigrantów Populacja głowna składa się z 20 chromosomów: 7 chromosomów o ocenie 17 w tym 4 obce 3 chromosomów o ocenie 15 w tym 0 obcych dołączamy chromosom o ocenie 18 Nowa populacja: 1 chromosom o ocenie 18 w tym 1 obcy 6 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 0 obcych Ponieważ nowy chromosom zastąpił najsłabszego spośród obcych. W ramach chromosomów z oceną 17 nastąpiła wymiana chromosomu. 8

Proporcjonalny Populacja głowna składa się z 20 chromosomów: 7 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 1 obcy dołączamy chromosom o ocenie 18 Nowa populacja: 7 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 1 obcy Chromosom nie został dołączony do populacji ponieważ bazowa populacja nie zawierała chromosomu o ocenie 18. Gdyby dołączyć chromosom o ocenie 17 to nowa populacja: 7 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 1 obcy W ramach chromosomów z oceną 17 nastąpiła wymiana chromosomu. 9