WsdSI/LBioJK/z3

From WikiZMSI

Spis treści

Algorytmy ewolucyjne

Podczas zajęć laboratoryjnych należy wykorzystać program demonstrujący zastosowanie algorytmu genetycznego (ewolucyjny z kodowaniem binarnym) do optymalizacji funkcji dwóch zmiennych. Funkcje wykorzystane w programie należą do funkcji testowych dla algorytmów optymalizacyjnych. Listę takich funkcji można znaleźć na stronie Go test problem. Program należy uruchomić w Matlabie.

Przygotowanie (opis) programu

Pliki źródłowe należy pobrać w postaci spakowanego archiwum ESIN_gademo.zip

Cały program demonstracyjny składa się z kilku plików:

  1. demo.m: główny moduł programu; zawiera opis GUI.
  2. gademo.m: funkcja przygotowująca dane i uruchamiająca AG.
  3. genealg.m: algorytm genetyczny.
  4. fitness.m: obliczenie funkcji przystosowania.
  5. tselect.m: selekcja metodą turnieju.
  6. xover.m: krzyżowania (jednopunktowe, dwupunktowe, jednorodne).
  7. mutate.m: mutacja.
  8. decodeb.m: dekodowanie wartości chromosomu: przejście z genotypu na fenotyp.
  9. graph.m: tworzenie wykresów funkcji.

Program należy uruchomić wywołując w linii komend Matlaba moduł główny demo (pamiętając o zmianie katalogu bieżącego na ten zawierający pliki źródłowe).

Zadania do wykonania - obserwacja zmian zachowania algorytmu w zależności od różnych parametrów

Każde z zadań ma na celu ustalenie wybieranych arbitralnie parametrów. Jeżeli z badań wynikać będzie, iż lepsze są inne niż domyślne wartości należy je zmieniać w kolejnych badaniach.

Parametr Zakres zmian
Funkcja przystosowaniaKażda dostępna z listy funkcja. Uruchamianie z ustawieniami programu standardowymi.
Długość chromosomu mała: 2 bity; duża: 20 bitów
Rozmiar populacji średni: 10 osobników; duży: 100 osobników
Liczba generacji mała: 100; duża: 10000
Prawdopodobieństwo mutacji małe: 0,001; duże: 0.5
Prawdopodobieństwo krzyżowania małe: 0,1; duże: 1
Typ krzyżowania Każdy dostępny z listy
Elitaryzm Wyłączony / Włączony


Zadanie domowe (do 3 punktów)

Należy napisać program realizujący poszukiwanie rozwiązania problemu n-hetmanów omawianego na wykładzie z użyciem algorytmu ewolucyjnego. Można:

  1. napisać program od podstaw
  2. wykorzystać gotowca z zajęć.

Kodowanie, funkcja przystosowanie stosowane schematy selekcji i krzyżowania pozostawiam do samodzielnego wyboru.

Z programu należy się rozliczyć na następnych zajęciach. Plagiaty oceniane będą na 0 pkt.

Zadanie alternatywne dla osób, które nie programują - sprawozdanie do 2.5 punktów

Do następnych zajęć należy wykonać sprawozdanie na wybrany temat, który jest zadany poniżej. Sprawozdanie ma:

  • zawierać ustawienia parametrów algorytmu
  • dla każdej ustawionej wartości parametru badanego trzeba uruchomić algorytm kilkukrotnie; uśrednione wyniki z kilku uruchomień stanowią dopiero wymierny wskaźnik zachowania algorytmu
  • zawierać jeden lub dwa wykresy/tabele wykonane samodzielnie prezentujące wyniki badań, które autor uzna za istotne do zaprezentowania (zrzuty ekranów nie są punktowane)
  • dotyczyć badań nad funkcjami Rosenbrock, Michalewicz, Easom i jakością ich optymalizacji w zależności od wartości badanego parametru
  • zawierać wnioski z przeprowadzonych badań.

Sprawozdanie w postaci elektronicznej należy przesłać na adres prowadzącego w nieprzekraczalnym terminie dwóch tygodni od zajęć laboratoryjnych, na których temat był omawiany. Format wiadomości i pliku:

  • Tytuł wiadomości: Sprawozdanie WdSI BIO nr 2.
  • Sprawozdanie przesłać w formacie .pdf.
  • Nazwa pliku: nazwisko_imie.pdf

Tematy sprawozdań:

Badanie wpływu rozmiaru populacji połączonego z elitaryzmem. Należy przebadać różne rozmiary populacji przy włączonym i wyłączonym elitaryzmie. Przebadać na funkcjach Rosenbrock, Michalewicz i Easom.
Badanie wpływu liczby generacji i rozmiaru populacji. Należy przebadać różną liczbę generacji przy zmieniającym się rozmiarze populacji. Przebadać na funkcjach Bochahevsky, Michalewicz i Easom.
Badanie wpływu prawdopodobieństwa krzyżowania i rozmiaru populacji.
Badanie wpływu typu krzyżowania i liczby generacji.

Zagadnienia na wejściówkę:

  • działanie (kroki) algorytmu genetycznego
  • kodowanie parametrów zadania (binarne, rzeczywiste, itp)
  • przystosowanie chromosomu, funkcja (skąd pochodzi jej wzór?)
  • selekcja co to jest i na czym polega selekcja turniejowa
  • co to jest elitaryzm w algorytmach ewolucyjnych
  • krzyżowanie
    • jednopunktowe
    • wielopunktowe
    • jednorodne (ang. uniform)
  • mutacja