Algorytm genetyczny bez szukania współrzędnych
This commit is contained in:
parent
ac60fefa76
commit
be1be8fcd2
41
Piotrek.py
41
Piotrek.py
@ -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()
|
Loading…
Reference in New Issue
Block a user