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_tractor = pathfinding_tractor.pathfinding_tractor()
def wspolrzedne(self): #wyznacza wspolrzedne pol danego rodzaju na planszy
znalezione_pola = []
k = 0
ktore_pole = self.traktor.get_modes_values() #rodzaj pól zależy od ustawionego trybu pracy agenta
for i in self.field.field_matrix:
l = 0
for j in i:
if j in ktore_pole:
znalezione_pola.append(k*10+l)
l = l + 1
k = k + 1
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)
print("Współrzędne szukanych pól: " + str(znalezione_pola))
return znalezione_pola
# def wspolrzedne(self): #wyznacza wspolrzedne pol danego rodzaju na planszy
# znalezione_pola = []
# k = 0
# ktore_pole = self.traktor.get_modes_values() #rodzaj pól zależy od ustawionego trybu pracy agenta
# for i in self.field.field_matrix:
# l = 0
# for j in i:
# if j in ktore_pole:
# znalezione_pola.append(k*10+l)
# l = l + 1
# k = k + 1
# 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)
# print("Współrzędne szukanych pól: " + str(znalezione_pola))
# return znalezione_pola
def koszt_przejazdu(self,znalezione_pola): #wyznacza koszt trasy przez pola danego rodzaju w zadanej kolejnosci
self.liczba_pol = len(znalezione_pola)
@ -261,11 +261,10 @@ class main():
# print("Populacja po optymalizacji: " + str(populacja_po_optymalizacji))
return populacja_po_optymalizacji
def algorytm_genetyczny(self):
self.znalezione_pola = self.wspolrzedne()
self.koszt_trasy = self.koszt_przejazdu(self.znalezione_pola)
def algorytm_genetyczny(self,coords):
self.koszt_trasy = self.koszt_przejazdu(coords)
# Utworzenie pokolenia
self.pierwsze_pokolenie = self.tworzenie_pokolenia(self.znalezione_pola,10)
self.pierwsze_pokolenie = self.tworzenie_pokolenia(coords,10)
# Funkcja przystosowania
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
@ -322,6 +321,6 @@ class main():
self.pathfinding_tractor.pathfinding_tractor(self.field, self.traktor, self.ui, self.najtansza_trasa, l)
l = l + 1
def main(self):
self.algorytm_genetyczny()
def main(self,coords):
self.algorytm_genetyczny(coords)
self.wykonanie_trasy()