diff --git a/LechT.md b/LechT.md index 248db57..e0157fe 100644 --- a/LechT.md +++ b/LechT.md @@ -4,12 +4,12 @@ ### Omówienie projektu -Celem projektu jest znalezienie najoptymalniejszej drogi między zajętymi regałami a miejscami odbioru paczki. +Celem projektu jest znalezienie najbardziej optymalnej drogi między zajętymi regałami a miejscami odbioru paczki. Projekt wykorzystuje wcześniej opracowany algorytm AStar, który jest opisany w pliku [route-planning](https://git.wmi.amu.edu.pl/s444399/AI/src/master/route-planning.md). -Moduł podprojektu uruchamia się po uruchomieniu programu oraz kliknięciu **g** na klawiaturze. Omawiany moduł genetyczny podprojektu w dalszej części raportu będzie się pojawiał w skrócie jako **mdg**. +Moduł podprojektu uruchamia się po uruchomieniu programu oraz naciśnięciu **g** na klawiaturze. Omawiany moduł genetyczny podprojektu w dalszej części raportu będzie się pojawiał w skrócie jako **mdg**. ### Opis składowych elementów wykorzystanych w **mdg** -* Gen - jest to najmniejszy wykorzystywany obiekt, reprezentujący zajęty regał, kóry ma określony koszt do danego miejsca odbioru +* Gen - jest to najmniejszy wykorzystywany obiekt, reprezentujący zajęty regał, kóry ma określony koszt do danego miejsca odbioru paczki. * Chromosom - jest to uporządkowany zbiór Genów, który reprezentuje kolejność odbioru paczek, końcowa długość wynika z ilości paczek na magazynie. * Populacja - jest to zbiór chromosomów. * Funkcja fitness - funkcja obliczająca całkowity koszt chromosomu. @@ -20,11 +20,11 @@ Moduł podprojektu uruchamia się po uruchomieniu programu oraz kliknięciu **g* ### Dane wejściowe -Podane przez urzydkownika przed uruchomieniem programu: +Podane przez użytkownika przed uruchomieniem programu: * ileGeneracji - wartość, która definiuje ile generacji ma się wykonać po uruchomieniu modułu **mdg**, * ileWPopulacji - wartość, która definiuje ile chromosomów ma się znajdować w Populacji -* fragment - wartość z zakresu (0,1), która względnie do długości chromosomu określa fragment, który będzie dziedziczony, przy tworzeniu nowego chromosomu. +* fragment - wartość z zakresu (0,1), która zależnie do długości chromosomu określa część, która będzie dziedziczon. przy tworzeniu nowego chromosomu. * mutacja - wartość z zakresu (0,1), która określa jaka część nowo tworzonego chromosomu, po dziedziczeniu, ma zostać losowo zmieniona. * unbox - wartość określająca do jakiego miejsca odbioru ma się kierować wózek
@@ -35,7 +35,7 @@ Podane przez urzydkownika przed uruchomieniem programu:

Po uruchomieniu programu: -* generowanie losowo rozmieszczonych paczek na regałach - za przycisku **r** na klawiaturze. +* generowanie losowo rozmieszczonych paczek na regałach - po naciśnięciu **r** na klawiaturze. ### Integracja @@ -48,7 +48,7 @@ Uruchomienie **mdg**: if event.key == pygame.K_g: start(self.data,self.wheel) -Po zakończeniu algorytmu, uruchaminy modul który rozwiezie paczki do miejsca odbioru: +Po zakończeniu algorytmu, uruchamiamy moduł, który rozwiezie paczki do miejsca odbioru: for gen in self.data.best[0]: if(gen.unboxWczesniejszegoGenu == None): @@ -85,7 +85,7 @@ Po zakończeniu algorytmu, uruchaminy modul który rozwiezie paczki do miejsca o rysujWykres(data, ileGeneracji, 0, 2000) -W celu modyfikacji danych wejściowych należy zmienić wartości zmiennych, pamiętając o podanych powyrzej ograniczeniach. +W celu modyfikacji danych wejściowych należy zmienić wartości zmiennych, pamiętając o podanych powyżej ograniczeniach. Powyżej fragment kodu reprezentujący działanie pętli, której iteracje odpowiadają tworzeniom nowych generacji. @@ -169,7 +169,7 @@ Odpowiednio: populacja.append(genRandomChromosome(data)) return populacja Odpowiednio: -* Dla podanej wartości *ileWPopulacji* funkcja generuje losową populację wykorzystując metodę losowego chromosomu, wykonując tyle iteracji ile wynosi wartość. +* Dla podanej wartości *ileWPopulacji* funkcja generuje losową populację, wykonując tyle iteracji ile wynosi wartość. #### Selekcyjny wybór najlepszych chromosomów z pośród populacji na podstawie funkcji fitness *W pliku genetyczne.py* @@ -201,7 +201,7 @@ Odpowiednio: Odpowiednio: * Zmienna *koszt* jest sumą całkowitą kosztów przejechania trasy. * Pętla *for* iteruje się tyle razy ile jest genów w chromosomie. -* W pierwszej iteracji koszt jest liczony dla pierwszego genu w chromosomie wywołując AStar, z pozycji początkowej wózka do miejsca regału. +* W pierwszej iteracji koszt jest liczony dla pierwszego genu w chromosomie wywołując AStar, z pozycji początkowej wózka, do miejsca regału. * Dla reszty iteracji jest sprawdzane do którego unboxa będzie jechać wózek, i taka wartość kosztu jest dodawana co całkowitej sumy oraz koszt przejechania od unboxa poprzedniego genu do regału (zmienna *unboxPoprzedniegoGenu*)