• Nie Znaleziono Wyników

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

N/A
N/A
Protected

Academic year: 2021

Share "ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE"

Copied!
30
0
0

Pełen tekst

(1)

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

Problem El Farol

Problem ten wprowadził Arthur na podstawie anegdoty związanej z barem El Farol w Santa Fe w Nowym Meksyku, oferujący w czwartkowe wieczory irlandzką muzykę. Przypuśćmy, że mamay 100 miłośników irlandzkiej muzyki i każdy z nich niezależnie w losowy sposób decyduje się, czy pewnego czwartku przyjść do El Farol. Przypuśćmy, że każdy z uczestników bawi się dobrze, jeśli w barze znajduje się mniej niż 60 osób.

W przeciwnym wypadku jest zbyt tłoczno i nikt się nie bawi. W tym momencie sprawa staje się troche bardziej zawiła, jeśli większość ludzi przewiduje, że bar jest pusty, to przyjdą i zamiast pustki będzie tłok. W przeciwnym wypadku nikt nie przyjdzie. Bar aby jakoś zaradzić

problemowi, ogłasza co tydzień informacje o frekfencji, zeby je można było uwzgędniać w modelach przewidywania.

(2)

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

Koncepcja umożliwiająca unikanie ewolucyjnej stagnacji :

zapisujemy najlepsze rozwiązania w każdym pokoleniu lub w pewnych odstępach a następnie korzystamy z nich jak z „alei gwiazd”. Powstałe w wyniku ewlucji nowe rozwiązania mogą być konfrontowane nie tylko z innymi ewoluującymi rozwiązaniami, ale także z nalepszymi reprezentacjami poprzednich pokoleń umieszczonymi w „alei gwiazd” (tak zwany turniej mistrzów). Koncepcję tę możemy rozszerzyć na system z jeszcze ostrzejszymi kryteriami, zwanym „turniejem z rozwiązaniami dominującymi”, gdzie najlepsze rozwiązania są sprawdzane przy każdym pokoleniu, a rozwiązywanie jest określone jako dominujące, jeśli może pokonać wszystkie dominujące rozwiązania z poprzedniego pokolenia.

Jeszcze inny pomysł na wymuszenie postępu w koewolucji polega na zastosowaniu skończonej długości życia rodziców, którzy przeżywają w każdym pokoleniu.

Zabezpiecza to koewolucję przed sytuacją, w której rodzic może ulokować się w części przestrzeni rozwiązań, w której tworzy potomstwo kiepskiej jakości, na czym

bezpośrednio korzysta, pokonując je.

Klasyczne algorytmy genetyczne - sekwencyjne nie są odpowiednim narzędziem do dokładnego zbadanie maksimów lokalnych funkcji. Wprawdzie dość szybko lokalizuje on obiecujące obszary zbioru dopuszczalnego, lecz wyznaczenie wielu maksimów jest bardzo pracochłonne a często niemożliwe. Dlatego też powstała idea połączenia algorytmu ewolucyjnego z algorytmem optymalizacji lokalnej, co sprowadza się do

„prawdziwej” ewolucji osobników a nie generowanych losowo rozwiązań.

(3)

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

Można się spodziewać, że obliczenia równoległe umożliwią uzyskanie rozwiązań zadań obecnie niemożliwych do rozwiązania. Isniejące

rozwiązania równoległe można zaklasyfikować do następujących kategorii:

Masowe algorytmy genetyczne równoległe. W takich algorytmach używa się dużej liczby procesorów(1000 lub jeszcze więcej) i często jeden procesor odpowiada jednemu osobnikowi w populacji. W tym modelu jest wiele możliwości wyboru metod reprezentacji i doboru metody krzyżowania.

Modele równoległych wysp. W takich algorytmach przyjmuje się, że ewoluuje równolegle kilka populacji. Modele te obejmują migrację osobników między populacjami i krzyżowanie między osobnikami różnych populacji.

Hybrydowe algorytmy genetyczne równoległe. Są one bardzo podobne do tych pierwszych, gdyż tutaj jeden procesor odzwierciedla jednego osobnika, ale używa się mniejszej ilości procesorów.

Dodatkowo w tych algorytmach uwzględnia się inne heurystyczne algorytmy, aby jeszcez bardziej podkreślić efektywność algorytmu.

(4)

ARCHITEKTURA RÓWNOLEGŁA

Holland w jednej ze swoich pierwszych prac teoretycznych w 1962 roku rozpoznał współbieżną naturę paradygmatu reprodukcyjnego i inherentną efektywność przetwarzania równoległego. Bethke w 1976 roku doszedł do wniosku, że jak na ówczesne czasy, realizacji będzie podlegała tylko średnia wartość przystosowania populacji i nie próbował

zaimplementować algorytmu współbieżnego. Dopiero Grefenstette w 1981 roku zaimplementował kilka współbieżnych algorytmów

genetycznych. Przedstawił on cztery projekty organizacji algorytmu:

1 synchroniczna scentralizowana

2 półsynchroniczna scentralizowana

3 asynchroniczna rozproszona

4 sieciowa

(5)

ARCHITEKTURA RÓWNOLEGŁA

Organizacja Synchroniczna, scentralizowana opiera się na jednym procesie nadrzędnym, który koordynuje k procesów podrzędnych. Proces nadrzędny odpowiada za selekcję, kojarzenie oraz za wykonanie operacji genetycznych, procesy podrzędne obliczają natomiast wskaźniki

przystosowania.

(6)

ARCHITEKTURA RÓWNOLEGŁA

Organizacja półsynchroniczna, scentralizowana różni się od poprzedniej tylko tym, że wymóg synchroniczności został zmieniony i elementy populacji są wstawiane i selektcjonowane na bierząco, gdy tylko procesy podrzędne zakończą pracę.

Organizacja asynchroniczna rozproszona z kolei wykonuje niezależnie od siebie k identycznych procesów, zarówno operacje genetyczne jak i obliczenia wskaźników przystosowania.

(7)

ARCHITEKTURA RÓWNOLEGŁA

Organizacja sieciowa charakteryzuje się k niezależnymi algorytmami genetycznymi korzystającymi z własnych niezależnych pamięci, co daje algorytmowi wysoką niezawodność

Procesy te działają autonomicznie z wyjątkiem tego, że najlepsze odobniki wykryte w danym pokoleniu są rozsyłane do innych

podpopulacji poprzez sieciowy system komunikacyjny, co daje znaczną przewagę nad wcześniejszymi algorytmami.

(8)

Równoległość w algorytmach ewolucyjnych

Jak już wcześniej wspomniano, algorytmy ewolucyjne znakomicie nadają się do zrównoleglenia. Badania nad rozwojem równoległego wprowadzania algorytmów mają długą historię: Slotnick w (1962), Barnes w (1968), Wulf i Bell w (1972) tworzyli je w zasadniczo odmiennych obszarach zastosowań. Większość z tych badań umotywowana jest chęcią zredukowania całościowego czasu zakończenia zadania poprzez

przydzielenie prac wynikających z danego algorytmu elementom przetwarzania działającym równolegle. Ostatnio niektórzy naukowcy snują domysły, iż niektóre paralelizacje zadań poprawiają jakość otrzymywanych rozwiązań dla określonej pracy, np.ńowe obliczanie- Forrest (1991). Niektórzy nawet sugerują, iż prace nad

paralelizacją mogą doprowadzić do zupełnie nowych kierunków myślenia-Bailey w (1992). Warto zauważyć, iż korzyści wynikające z paralelizacji drugiego rodzaju zależą wyłącznie od zbieżności, tzn. od logicznej, okresowej niezależności operacji i z tego względu można je osiągnąć poprzez symulacje sekwencyjnie równoległych opracowań.

Bardziej rozpowszechniona motywacja stosowania paralelizacji, tj. skracania czasu zakończenia operacji, zależy od specyfikacji wynikającej z architektury

przeprowadzającej algorytm równoległy.

(9)

Równoległość w algorytmach ewolucyjnych

Wcześniej uznano, że różny równoległy sprzęt komputerowy umożliwiał osiągnięcie różnych kategorii paralelizacji opartej na ziarnistości operacji wykonywanych równolegle. Zazwyczaj używane są kategorie

drobnoziarnistej paralelizacji, średnioziarnistej oraz gruboziarnistej. Na krańcach tego spektrum, drobnoziarnista paralelizacja oznacza, iż wykonywane są jedynie krótkie sekwencje obliczeniowe pomiędzy synchronizacjami, podczas gdy gruboziarnisty paralelizm oznacza, że pomiędzy synchronizacjami dokonują się rozbudowane obliczenia. W ten sposób analizowanych jest kilka wzajemnie niezależnych osobników.

Strategie wielopopulacyjne są bardzo silnym narzędziem w przypadku przeszukiwania punktów w przestrzeni rozwiązań. Operują na

równorzędnych lub działających w pewnej hierarchii populacjach.

Wymieniają się informacjami o osobnikach lub wymianą ich między nie całkiem niezależnym innym algorytmem w strategii równoległej. Możemy je porównać do kolonii rozwijających się w pewnym środowisku

osobników jednego, bądź wielu gatunków jednocześnie.

(10)

ARCHITEKTURA RÓWNOLEGŁA

(11)

ARCHITEKTURA RÓWNOLEGŁA

Jak można się domyślić, algorytm równoległy jest zdecydowanie lepszy od sekwencyjnego, ale jego przewaga zależy od stopnia skomplikowania zadania (wielomodalność funkcji, duże obszary pomiędzy ekstremami lokalnymi) jak i niezależność poszczególnych elementów algorytmu wykonywanych równolegle.

Przyjmijmy następujące założenia:

tq(n) - obliczenie wartości funkcji przystosowania osobnika, tg(µ) - wykonanie operatorów genetycznych wraz z reprodukcją, tl - losowanie operatorów genetycznych,

ts(µ + λ) - wykonanie sukcesji,

ti(n) - generowanie osobnika w populacji P0

zakładamy, że czas każdej w/w czynności jest identyczny. Dla algorytmu sekwencyjnego czas wykonania N generacji wynosi:

t1=ˆ(t, (n) + tq(n)) + N[A(tg(iJ) + t + tq(n)) + tsC /J + A)] a dla algorytmu zrównoleglonego :

t2=µ k

(ti(n) + tq(n)) + K1+ N[λ

k

(tg(µ) + tl+ tq(n)) + ts(µ + λ) + K2] gdzie: k - liczba procesorów

K1i K2- koszty zrównoleglenia.

(12)

ARCHITEKTURA RÓWNOLEGŁA

Analizując wyrażenie dla algorytmu zrównoleglonego najlepiej opłaca się zrównoleglenie reprodukcji, operacji genetycznych i obliczania funkcji przystosowania, ponieważ następuje w tych krokach wymnażanie przez N generacji. Wartości tg(µ) i ts(µ+λ) zależą od liczebności populacji, a zależności pomiędzy nimi zwykle są liniowe lub kwadratowe, co nie powinno mieć istotnego wpływu na złożoność obliczeniową algorytmu.

Wartość tg(µ) zależy od liczby wymiarów rozpatrywanego zadania, co najczęściej jest czynnikiem decydującym o złożoności obliczeniowej algorytmu genetycznego.

(13)

KOEWOLUCJA OSOBNIKÓW

Współpraca osobników o zupełnie odmiennych genotypach może doprowadzić do utrwalenia się ich ”genów współpracy”(różnych u obu partnerów), osobno u potomstwa każdego z nich, o ile efekty tej współpracy są opłacalne dla obu stron. Taka obustronna korzyść może zachodzić w sytuacji, gdy partnerzy korzystają z rozmaitych zasobów, wzajemnie ułatwiając sobie ich zdobycie, ale nie konkurują o te same dobra. Na tej zasadzie opiera się koewolucja różnych gatunków, prowadząca do częstej w przyrodzie symbiozy mutualistycznej, na przykład kwiatów z zapylającymi je owadami.

Zasada koewolucji w algorytmach genetycznych polega na globalnym oddziaływaniu na poziomie selekcji i krzyżowania zmiennych, co jest równoznaczne z tym, że stają się w pewnym stopniu lokalne. Zasadę tę realizuje się za pomocą algorytmu wyspowego (podpopulacyjnego) lub algorytmu komórkowego (dyfuzyjnego).

(14)

KOEWOLUCJA OSOBNIKÓW

Podstawowy model rozpoczyna się od wysp - demów (Wright, 1964) lub punktów peryferyjnych (Eldredge i Gould, 1972). Tutaj wyspy

nazywane są subpopulacjami. Należy ponownie zauważyć, że podczas gdy jedna motywacja w paralelizacji wymagałaby, aby każda subpopulacja została przypisana do własnego elementu przetwarzającego, wyspy są prawdziwą logiczną strukturą i mogą być sprawnie wprowadzone w wielu różnych architekturach. Z tego względu będziemy powoływać się na każdą subpopulację przypisaną procesowi, zostawiając kwestię sposobu działania takiego procesu otwartą.

(15)

MODEL WYSPOWY

Model wyspowy będzie rozważany w kategoriach całej populacji P z M

= |P| osobników, która podzielona jest na N subpopulacji {P1,P2, ... , PN}. Dla równego podziału każda subpopulacja ma µ=M/N osobników, lecz generalnie możemy stwierdzić, że |P1| = µ1tak, że każda

subpopulacja może mieć różny rozmiar. Dla standardowych algorytmów genetycznych wybór parametru M może okazać się problematyczny a dla modeli wyspowych algorytmów genetycznych decyzja ta może być trudniejsza do podjęcia ze względu na konieczność wyboru parametru N (i tym samym µ). W praktyce, decyzje muszą być podejmowane w przeciwnym kierunku; to znaczy, µ jest istotny dla dynamiki orbity ewolucji dla parametru Pi i jest silnie uzależniony od problemu.

Prawdopodobnie dla szczególnych problemów istnieje próg rozmiaru, poniżej którego otrzymywane są słabe wyniki. Wierzymy również, że modele wyspowe algorytmów genetycznych są mniej wrażliwe na wybór parametru µi dopóki jest on powyżej progu danego problemu. Po wyborze parametru µ1, wybór parametru N (i tym samym M) często zależy od dostępnej architektury równoległej.

(16)

MODEL WYSPOWY

Po podaniu parametru N, następna decyzja dotyczy połączeń między subpopulacjami. Najczęściej omawia się to w kontekście topologii komunikacyjnej, jako że model wyspowy zakłada migrację, tzn.

komunikację między subpopulacjami. Parametry Pi to wierzchołki wykresu (zazwyczaj niebezpośrednie lub przynajmniej symetrycznie), gdzie każda krawędź określa połączenie komunikacyjne pomiędzy wierzchołkami zdarzenia. Niniejsze wierzchołki mają często za zadanie odpowiadać właściwym połączeniom komunikacyjnym pomiędzy elementami przetwarzającymi, przypisanymi poszczególnym

subpopulacjom. W każdym wypadku, topologia komunikacyjna prawie zawsze uznawana jest za statyczną. Po podaniu zdolności komunikowania się dwóch procesów subpopulacyjnych, kolejne zadanie polega na

określeniu modułu i częstotliwości komunikacji. Proszę zauważyć, iż jeśli możliwy moduł ma wynieść zero, wtedy topologia komunikacyjna i moduły mogą być określone macierzą S, gdzie Sij stanowi liczbę osobników wysłanych z Pi do Pj. Sij = 0 wskazuje na brak krawędzi komunikacji.

(17)

MODEL WYSPOWY

Schemat migracji iest ważny dla całości orbity ewolucyjnej. Schemat ten określa się poprzez stopień spójności w topologii komunikacyjnej, moduł komunikacji oraz częstotliwość komunikacji. Te parametry określają stopień izolacji i interakcji wśród subpopulacji tego modelu. Są one istotne zważywszy na teorie zmiennej równowagi oraz przerwanej równowagi. Proszę zauważyć, że w miarę wzrostu spójności topologii, tzn. zmierzania w kierunku całkowicie połączonego wykresu, oraz wzrostu

częstotliwości interakcji, tzn. skrócenia się czasu ewolucji dla każdego Pi, model wyspowy przybliża się do pojedynczej, dużej, dowolnie mieszającej się populacji.

Generalnie zasadne jest twierdzenie, iż tak duże populacje szybko osiągają

ustabilizowane częstotliwości genów, i z tego względu zatrzymują ”postęp”. Eldredge i Gould (1972) nazwali to hipostazą, podczas gdy zbiorowość algorytmu genetycznego ma związek z przedwczesną zbieżnością. Na drugim krańcu, w sytuacji, gdy spójność topologii maleje, tzn. zmierza w kierunku nieograniczonego wykresu, oraz gdy częstotliwość komunikacji maleje, tzn. każde Pi przedłuża oddzielną ewolucję, model wyspowy przybliża się do kilku niezależnych prób sekwencyjnego algorytmu

genetycznego z małą populacją. Uważa się, iż tak małe populacje zbyt eksploatują obszar lokalnych optimów, ale tylko te lokalne optima, które znajdują się bardzo

’blisko’ populacji pierwotnej.

(18)

MODEL WYSPOWY

Z tego względu, umiarkowany stopień spójności wraz z częstotliwością interakcji zapewniają wystarczającą dynamikę zezwalającą zarówno na eksploatację oraz na badanie.

Dla uogólnienia naszych eksperymentów, okresy oddzielnej ewolucji nazwiemy epokami, gdzie migracje występują na koniec każdej epoki (z wyjątkiem tej ostatniej).

Długość epoki określa częstotliwość interakcji. Często długość epoki określa się ilością G1pokoleń tak, że Pi będzie się rozwijał w izolacji. Jednakże istnieje formuła wierniejsza teoriom naturalnej ewolucji, dzięki której można by było stwierdzić, iż należy pozwolić każdej subpopulacji na osiągnięcie hipostazy - równowagi lub zbieżności, w każdej epoce. Z punktu widzenia zastosowania wraz z subpopulacją przypisaną każdemu elementowi przetwarzającemu, ta druga formuła pozwala, aby nakład pracy nie był zrównoważony i jako taka może być postrzegana jako powodujące nieskuteczne wykorzystanie równoległego sprzętu, jeśli elementy przetwarzające mające szybko zbiegające się subpopulacje są zmuszone do bezczynności. Jeszcze bardziej kłopotliwy problem można zidentyfikować przy efektywnym pomiarze stopnia hipostazy. ”Brak skuteczności”może się pojawić w sytuacji, gdy tworzy się stosunkowo częsty, jednak konsekwentnie marginalny ”proces”. Wtedy to nie tylko inne

przetwarzające elementy mogą być bezczynne, ale również skumulowany proces może nie być wart czasu, który poświęcono na obliczenia.

(19)

MODEL WYSPOWY

Struktura modelu wyspowego obejmuje E głównych iteracji zwanych epokami. Podczas trwania epoki każdy proces subpopulacyjny niezależnie od siebie wykonuje sekwencyjny algorytm ewolucyjny dla G1pokoleń. Po każdej epoce istnieje faza komunikacji, podczas której osobniki migrują pomiędzy sąsiadującymi subpopulacjami. Tę strukturę modelu można streścić następującym pseudokodem:

(20)

MODEL WYSPOWY

(21)

MODEL WYSPOWY

(22)

MODEL WYSPOWY

W ww strukturze jest przedstawiony Sekwencyjny GA, ale możliwości jest wiele, ponieważ można zastosować ogólną strukturę dla innych algorytmów ewolucyjnych, np. prosty algorytm genetyczny, różne strategie ewolucyjne, metaalgorytm, czy na przykład omawiany algorytm wyspowy - równoległy. Po każdej fazie migracji każda subpopulacja musi asymilować migrantów. Ten krok asymilacyjny zależy od szczegółów procesu migracyjnego. Na przykład jeśli osobnik pk zostaje wybrany do emigracji z Pi do Pj to pk pozostaje usunięty z Pi i dodany do Pj. (osobnik pk sam migruje). Także moduły migracji, Sij są symetryczne. Z tego względu, rozmiar każdej subpopulacji pozostaje taki sam po migracji, a asymilacja jest jedynie rekalkulacją siły dopasowania. W innych modelach wyspowych Cohoona (1991), jeśli pk zostaje wybrany do emigracji z Pi do Pj to pk zostaje dodany do Pj bez konieczności usuwania go z Pi (migruje kopia osobnika pk). Taka migracja powoduje, że zwiększa się rozmiar subpopulacji, tak więc (zakładając stały rozmiar subpopulacji algorytmu genetycznego) proces asymilacji musi wykonywać operacje redukujące.

(23)

MODEL WYSPOWY

W algorytmie komórkowym w populacji osobników występuje pewna arbitralnie wybrana topologia. Dla każdego osobnika Xt jest zdefiniowane jego sąsiedztwo Nr(Xt) gdzie r jest promieniem sąsiedztwa - osobniki często należą do wielu populacji tworzonych przez relacje sąsiedztwa.

Każdy osobnik podlega niezależnej ewolucji, która polega na tym, że wchodzi on w pewną interakcję z osobnikami z otoczenia Nr(Xt), co prowadzi do wygenerowania nowego osobnika Yt, który konkuruje z poprzednikiem Xt na etapie sukcesji.

Algorytm ten nazywany jest niekiedy dyfuzyjnym ze względu na sposób rozprzestrzeniania się rozwiązania - osobnik dobrze przystosowany będzie miał duży wpływ na nowo powstające osobniki w jego sąsiedztwie. W kolejnych pokoleniach dobre rozwiązanie rozprzestrzenia się na sąsiadów dobrze przystosowanego osobnika, później na ich sąsiadów itd.

(24)

Algorytm komórkowy

(25)

Algorytm komórkowy

W momencie powstania rozwiązań równie dobrych powstają między nimi obszary graniczne - oddzielające strefy dominacji równie dobrych rozwiązań. W obszarach tych często powstają nowe ciekawe osobniki, o jeszcze większym przystosowaniu, które znowu się rozprzestrzeniają tworząc nowe obszary graniczne.

Kluczową rolę w tym algorytmie odgrywa relacja sąsiedztwa, wykorzystywana do określania konkurujących ze sobą osobników. Im więcej osobników w sąsiedztwie, tym szybsza zbieżność, ale za to mniejsza odporność na maksima lokalne.

Inne równoległe algorytmy genetyczne również stosują nakładające się na siebie subpopulacje tzw. modele dyfuzyjne - Miihlenbein z 1987r i z 1989r,

Gorges-Schleuter w 1990r i w 1992r, Tamaki w 1992r. W takich systemach migracja, (jak w algorytmach wyspowych), nie jest tak naprawdę istotna, raczej jest ważny efekt uzyskiwany poprzez proces selekcji. Jednakże równoległe algorytmy genetyczne o nakładających się na siebie subpopulacjach najlepiej sprawdzają się w architekturach średnioziarnistych.

(26)

Algorytm komórkowy

Perspektywa prowadzenia koewolucji rozwiązań na zasadzie czynienia z nich przeciwników w jakiejś grze lub na zasadzie poszukiwania rozwiązań, które dobrze współpracują przy rozwiązywaniu jakiegoś problemu, otwiera możliwość rozwiązywania problemów, dla których nie dysponujemy ludzką wiedzą. Tego rodzaju metody stoją u podstaw tworzenia maszyn, które będą zdolne do rozwiązywania bez udziału człowieka. Co więcej metody koewolucyjne możemy zwykle połączyć z innymi metodami sztucznej inteligencji lub z ludzką wiedzą albo wprowadzając heurystyki sterujące poszukiwaniem ewolucyjnym, albo dobierając początkowe populacje. Jeśli inteligencję pojmować jako zdolność adaptowania zachowania do

osiągania celów w różnych środowiskach, to koewolucja zapewnia bezpośrednie mechanizmy generowania inteligentnych maszyn.

(27)

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

(28)

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

(29)

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

(30)

ALGORYTMY RÓWNOLEGŁE I WSPÓŁEWOLUUJĄCE

Cytaty

Powiązane dokumenty

algorytm sortowania próbkowego,

zoptymalizowanej – uwaga: zmiana w pliku Makefile nie wymusza rekompilacji kodu, do przejścia z jednej wersji kodu do drugiej potrzebne jest wyczyszczenie katalogu z plików

wartości zmiennej globalnej (jednak w taki sposób, żeby nie zaburzać znacząco czasu wykonania – czyli jednokrotny wydruk po długiej pętli, pętla musi być na tyle długa,

Przetestowanie poprawnego działania programu (w tym poprawnego przesyłania indywidualnych identyfikatorów) dla różnej liczby tworzonych i współbieżnie

(np. metoda koła ruletki – roulette-wheel selection – przydziela osobnikom taką część koła, jaka wynika z ich jakości przystosowania się, tzn. ich prawdopodobieństwo

Za pomocą funkcji przystosowania ocenia się każdy z chromosomów, a im chromosom jest bardziej przystosowany, tym bardziej prawdopodobne, że zostanie wybrany do tworzenia

W celu ustalenia populacji początkowej należy wygenerować liczbę pop size chromosomów losowo, bit po bicie.. Chcemy optymalizować funkcję f z pewną

Zdaniem Algardi, Luigi N egrelli nie tylko pośw ięcił w iele lat życia na opracowanie projektu Kanału, ale jako pierw szy rozwiązał w sposób genialny te