Skip to content

Latest commit

 

History

History

Project

Maksymum Minimum Funkcji poprzez Algorytm genetyczny

Optymalizacja funkcji oparta na algorytmach genetycznych

Alt Text

Uruchomienie:

** mpiexec -n 4 python script.py main.py aby uruchomić ten program i otworzyć GUI

Program ten w przybliżeniu oblicza minimum lub maksimum funkcji o dwóch parametrach na podstawie algorytmu genetycznego.
Każdy osobnik ma jeden chromosom (x, y) i ze względu na to, że osobnik i chromosom mają to samo znaczenie, pokolenie składa się z części, gdzie jedna część to 4 osobniki, w konsekwencji liczba chromosomów jest wielokrotnością 4.

Zasada crossover to:

(x_better, y_best), (y_better, y_best), (x_best, y_better), (x_best, y_good)

gdzie (x_best, y_best), (x_better, y_better), (x_good, y_good) są zaznaczonymi individs.

Mutacja może być wybrana losowo w dowolnym Genie (można ją skonfigurować w metodzie startGA_with_statistics).
Wypełnienie z pokolenia zerowego losowymi liczbami zmiennoprzecinkowymi w [-chromosomes_number / 2, chromosomes_number).
Wyniki są wyświetlane na ekranie, a także zapisywane w ' Ga-statistics.txt".

https://pl.wikipedia.org/wiki/Algorytm_genetyczny https://www.tutorialspoint.com/genetic_algorithms/genetic_algorithms_crossover.html https://www.sciencedirect.com/science/article/pii/S0045794900000894 https://www.geeksforgeeks.org/crossover-in-genetic-algorithm/

Jak korzystać

uruchomić ten program i otworzyć ustawienia-GUI z kilkoma polami:

  • f(x, y) input string
  • chromosomes
  • generations number input string liczba pokoleń
  • optimizer function (min or max) funkcja optymalizatora (min lub max)

Oraz pola z ptaszkami (funkcjonalne):

  • mutation - dodanie mutacji do każdej części (4 osobników) nowego pokolenia
  • show statistics - pokazuje dokładne informacje o każdym pokoleniu
  • save all files - zapisuje do folderu results statystyki wyników z animacją w .gif oraz ga-statystyki + do folderu generations dane csv z kolumnami x, y, f (x, y)
  • show plot - pokazuje animację ewaluacji

MPI: