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