Algorytm genetyczny bez szukania współrzędnych

This commit is contained in:
Piotr Rychlicki 2020-06-09 19:12:29 +00:00
parent ac60fefa76
commit be1be8fcd2

View File

@ -11,21 +11,21 @@ class main():
self.pathfinding_tractorless = pathfinding_tractorless.pathfinding_tractorless() self.pathfinding_tractorless = pathfinding_tractorless.pathfinding_tractorless()
self.pathfinding_tractor = pathfinding_tractor.pathfinding_tractor() self.pathfinding_tractor = pathfinding_tractor.pathfinding_tractor()
def wspolrzedne(self): #wyznacza wspolrzedne pol danego rodzaju na planszy # def wspolrzedne(self): #wyznacza wspolrzedne pol danego rodzaju na planszy
znalezione_pola = [] # znalezione_pola = []
k = 0 # k = 0
ktore_pole = self.traktor.get_modes_values() #rodzaj pól zależy od ustawionego trybu pracy agenta # ktore_pole = self.traktor.get_modes_values() #rodzaj pól zależy od ustawionego trybu pracy agenta
for i in self.field.field_matrix: # for i in self.field.field_matrix:
l = 0 # l = 0
for j in i: # for j in i:
if j in ktore_pole: # if j in ktore_pole:
znalezione_pola.append(k*10+l) # znalezione_pola.append(k*10+l)
l = l + 1 # l = l + 1
k = k + 1 # k = k + 1
pierwsze_szukane_pole = znalezione_pola[0] #początkowa współrzędna, w każdym przypadku pole startowe [0,0] # pierwsze_szukane_pole = znalezione_pola[0] #początkowa współrzędna, w każdym przypadku pole startowe [0,0]
znalezione_pola.append(pierwsze_szukane_pole) # znalezione_pola.append(pierwsze_szukane_pole)
print("Współrzędne szukanych pól: " + str(znalezione_pola)) # print("Współrzędne szukanych pól: " + str(znalezione_pola))
return znalezione_pola # return znalezione_pola
def koszt_przejazdu(self,znalezione_pola): #wyznacza koszt trasy przez pola danego rodzaju w zadanej kolejnosci def koszt_przejazdu(self,znalezione_pola): #wyznacza koszt trasy przez pola danego rodzaju w zadanej kolejnosci
self.liczba_pol = len(znalezione_pola) self.liczba_pol = len(znalezione_pola)
@ -261,11 +261,10 @@ class main():
# print("Populacja po optymalizacji: " + str(populacja_po_optymalizacji)) # print("Populacja po optymalizacji: " + str(populacja_po_optymalizacji))
return populacja_po_optymalizacji return populacja_po_optymalizacji
def algorytm_genetyczny(self): def algorytm_genetyczny(self,coords):
self.znalezione_pola = self.wspolrzedne() self.koszt_trasy = self.koszt_przejazdu(coords)
self.koszt_trasy = self.koszt_przejazdu(self.znalezione_pola)
# Utworzenie pokolenia # Utworzenie pokolenia
self.pierwsze_pokolenie = self.tworzenie_pokolenia(self.znalezione_pola,10) self.pierwsze_pokolenie = self.tworzenie_pokolenia(coords,10)
# Funkcja przystosowania # Funkcja przystosowania
self.przystosowanie, self.najnizszy_koszt, self.najwyzszy_koszt, self.srednie_przystosowanie_pierwszego_pokolenia, self.najtanszy_osobnik = self.ocena_przystosowania(self.pierwsze_pokolenie) self.przystosowanie, self.najnizszy_koszt, self.najwyzszy_koszt, self.srednie_przystosowanie_pierwszego_pokolenia, self.najtanszy_osobnik = self.ocena_przystosowania(self.pierwsze_pokolenie)
# Populacja pośrednia wybrana metodą ruletki # Populacja pośrednia wybrana metodą ruletki
@ -322,6 +321,6 @@ class main():
self.pathfinding_tractor.pathfinding_tractor(self.field, self.traktor, self.ui, self.najtansza_trasa, l) self.pathfinding_tractor.pathfinding_tractor(self.field, self.traktor, self.ui, self.najtansza_trasa, l)
l = l + 1 l = l + 1
def main(self): def main(self,coords):
self.algorytm_genetyczny() self.algorytm_genetyczny(coords)
self.wykonanie_trasy() self.wykonanie_trasy()