Materiały online

  1. Wykład o algorytmach genetycznych - Politechnika Wrocławska.
  2. Wykład o algorytmach genetycznych - Politechnika Łódzka.
  3. Materiały do laboratorium (algorytmy genetyczne) - Politechnika Łódzka.
  4. Wykład o algorytmach genetycznych - Uniwersytet Warszawski.
  5. Wykład o algorytmach genetycznych - AGH.

Tematy zadań

1. Podstawowe pojęcia.

  • Czym jest algorytm genetyczny?
  • Na podstawie rysunku tablicy (macierzy) z liczbami, przedstawionego na wykładzie, odpowiedz na poniższe pytania.
  • Co to jest gen?
  • Co to jest chromosom?
  • Co to jest genotyp i fenotyp?
  • Czym jest osobnik, a czym populacja?
  • Na czym polega krzyżowanie, a na czym mutacja?
  • Co to jest funkcja przystosowania?
  • Na czym polego metoda selekcji za pomocą koła ruletki? Przedstaw obliczenia wraz z rysunkiem

2. Operatory genetyczne

  • utwórz klasę OperacjeGenetyczne z trzema metodami: mutacja(), krzyzowanie() i fitness() oraz konstruktorem, który tworzy populację składającą się z czterech osobników,
  • zakładamy, że osobnik składa się z jednego chromosomu i jest to tablica o długości 10, zawierająca losowe liczby całkowite z przedziału (0, 100),
  • metoda mutacja() przyjmuje jako argument ww. chromosom oraz liczbę mutacji i zwraca chromosom po odpowiedniej liczbie zmian,
  • metoda krzyżowanie() przyjmuje jako argumenty dwa chromosomy oraz punkt podziału i zwraca dwa chromosomy z wymienionymi częściami,
  • metoda fitness() oblicza wartość funkcji przystosowania, która równa jest różnicy (suma genów o parzystych indeksach) - (suma genów o nieparzystych indeksach),
  • utwórz obiekt klasy OperacjeGenetyczne, czyli populację;
  • oblicz wartość funkcji fitness() dla każdego osobnika;
  • za pomocą wybranej metody selekcji utwórz kolejną populację za pomocą wybranych operacji genetycznych;
  • powtórz ww. proces 3 razy,
  • w każdym etapie powinien być wyświetlany bieżący stan populacji oraz wartości funkcji fitness dla każdego osobnika,
  • zalecenia:
    • dowolny język programowania,
    • wymagane komentarze do kodu,
    • gotowy program umieszczamy w repozytorium i informację o tym wysyłamy do prowadzącego na Slack’u.

3. Gra “Zgadnij hasło” z wykorzystaniem algorytmów genetycznych

  • dowolny język programowania;
  • konieczne użycie operatorów genetycznych (mutacja, krzyżowanie itd.);
  • funkcja przystosowania określa o ile różni się bieżące hasło od tego poszukiwanego;
  • wymagane komentarze do kodu;
  • gotowy program umieszczamy w repozytorium i informację o tym wysyłamy do prowadzącego na Slack’u.

4. Problem 8 hetmanów z wykorzystaniem algorytmów genetycznych

  • dowolny język programowania;
  • konieczne użycie operatorów genetycznych (mutacja, krzyżowanie itd.);
  • funkcja przystosowania określa ile hetmanów znajduje się na właściwej pozycji, tak by jeden nie atakował drugiego;
  • wymagane komentarze do kodu;
  • gotowy program umieszczamy w repozytorium i informację o tym wysyłamy do prowadzącego na Slack’u.