integracja drzewa z projektem
This commit is contained in:
parent
89388cc215
commit
3a3838f3e1
73
Kamila.py
73
Kamila.py
@ -9,12 +9,6 @@ work = ["Podlac", "Odchwascic", "Zasadzic", "Zebrac"]
|
||||
# 2 - zasadzenie
|
||||
# 0 - podlanie
|
||||
|
||||
def set_order(pogoda):
|
||||
if pogoda == 1:
|
||||
order = [3, 1, 2]
|
||||
else:
|
||||
order = [3, 1, 2, 0]
|
||||
return order
|
||||
|
||||
|
||||
# przetłumaczenie numerka (0-8)
|
||||
@ -189,7 +183,12 @@ def print_leaf(counts):
|
||||
return probs
|
||||
|
||||
|
||||
|
||||
def set_order(self):
|
||||
if self.field.get_pogoda_value() == 1:
|
||||
order = [3, 1, 2]
|
||||
else:
|
||||
order = [3, 1, 2, 0]
|
||||
return order
|
||||
|
||||
|
||||
class main():
|
||||
@ -201,8 +200,32 @@ class main():
|
||||
self.best_action = 0
|
||||
|
||||
|
||||
|
||||
def main(self):
|
||||
self.learn_tree()
|
||||
# ustalamy kolejnosc
|
||||
order = set_order(self.field.get_pogoda_value())
|
||||
for action in order:
|
||||
self.traktor.set_mode(action) # ustawiamy tryb traktorowi
|
||||
self.search_field() # szukamy pól
|
||||
print("Koniec roboty")
|
||||
|
||||
def main_collective(self, pole):
|
||||
pola = []
|
||||
for i in range(len(pole)):
|
||||
for j in range(len(pole[i])):
|
||||
coords = i * 10 + j
|
||||
print("Pole (%d,%d) Przewidziania czynnosc: %s"
|
||||
% (i, j, print_leaf(
|
||||
classify(translate(pole[i][j]), self.tree)))) # przewidujemy czynność za pomocą drzewa
|
||||
if work[self.traktor.get_mode()] in self.work_field(
|
||||
classify(translate(pole[i][j]), self.tree)): # jezeli zgadza sie z aktualnym trybem:
|
||||
print("Zgodne z wykonywanym trybem")
|
||||
pola.append(coords)
|
||||
print("Koordynaty:", pola)
|
||||
return pola
|
||||
|
||||
def learn_tree(self):
|
||||
|
||||
# tworzymy zbior uczacy, w ktorym podajemy wszystkie mozliwe pola i czynnosci
|
||||
training_data = [[0, 0, 1, 0, "Zasadzic"],
|
||||
[0, 1, 1, 0, "Odchwascic"],
|
||||
@ -216,40 +239,36 @@ class main():
|
||||
self.tree = build_tree(training_data)
|
||||
print_tree(self.tree)
|
||||
|
||||
print("TEST:")
|
||||
|
||||
print("Przewidziania czynnosc: %s Czynnosc: Zasadzic"
|
||||
% print_leaf(classify(translate(4), self.tree)))
|
||||
print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
||||
% print_leaf(classify(translate(5), self.tree)))
|
||||
print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
||||
% print_leaf(classify(translate(7), self.tree)))
|
||||
|
||||
|
||||
|
||||
# ustalamy kolejnosc
|
||||
order = set_order(self.field.get_pogoda_value())
|
||||
for action in order:
|
||||
self.traktor.set_mode(action) # ustawiamy tryb traktorowi
|
||||
self.search_field() # szukamy pól
|
||||
|
||||
print("Koniec roboty")
|
||||
# print("TEST:")
|
||||
# print("Przewidziania czynnosc: %s Czynnosc: Zasadzic"
|
||||
# % print_leaf(classify(translate(4), self.tree)))
|
||||
# print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
||||
# % print_leaf(classify(translate(5), self.tree)))
|
||||
# print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
||||
# % print_leaf(classify(translate(7), self.tree)))
|
||||
|
||||
def work_field(self, labels):
|
||||
works = []
|
||||
|
||||
for label in labels:
|
||||
if labels[label] > 0:
|
||||
works.append(label)
|
||||
return works
|
||||
|
||||
def search_field(self):
|
||||
|
||||
pola = []
|
||||
pole = 0
|
||||
order = set_order(self.field.get_pogoda_value())
|
||||
matrix = self.field.get_matrix() # pobieramy pole
|
||||
for i in range(len(matrix)):
|
||||
for j in range(len(matrix[i])):
|
||||
pole = i * 10 + j
|
||||
print("Pole (%d,%d) Przewidziania czynnosc: %s"
|
||||
% (i, j, print_leaf(classify(translate(matrix[i][j]), self.tree)))) # przewidujemy czynność za pomocą drzewa
|
||||
if work[self.traktor.get_mode()] in self.work_field(classify(translate(matrix[i][j]), self.tree)): # jezeli zgadza sie z aktualnym trybem:
|
||||
print("Zgodna z aktualnym trybem, czynnosc wykonywana")
|
||||
print("Zgodne z wykonywanym trybem")
|
||||
pola.append(pole)
|
||||
self.path.find_path(self.traktor, self.field, self.ui, [j, i]) # szukamy sciezki
|
||||
self.ui.update() # update'ujemy UI
|
||||
time.sleep(0.5)
|
||||
|
@ -10,9 +10,28 @@ class main():
|
||||
self.UI = UI
|
||||
self.path = path
|
||||
|
||||
# ustalanie kolejnosci wykonywania dzialam na podstwie pogody
|
||||
# 3 - zbieranie, 2 - sadzenie, 1 - odchwaszczanie, 0 - podlewanie
|
||||
def set_order(self):
|
||||
if self.pole.get_pogoda_value() == 1: #jak deszcz, to bez podlewania
|
||||
order = [3, 1, 2]
|
||||
else:
|
||||
order = [3, 1, 2, 0]
|
||||
return order
|
||||
|
||||
|
||||
def main(self):
|
||||
print(self.marcin.main_collective())
|
||||
# self.neuro_check_field() To sprawdza cale pole
|
||||
|
||||
#tutaj Justyna decyduje co my w ogole robimy
|
||||
|
||||
order = self.set_order() #wybieramy kolejnosc prac na polu
|
||||
self.kamila.learn_tree() #uczenie drzewa
|
||||
for action in order:
|
||||
self.traktor.set_mode(action) # ustawiamy tryb traktorowi
|
||||
field = self.neuro_check_field() # sprawdzamy pole
|
||||
coords = self.kamila.main_collective(field) # zwracam koordynaty pol zgodych z wybranym trybem
|
||||
# tutaj Piotrek tworzy optymalna sciezke
|
||||
# traktor wykonuje prace na polu
|
||||
pass
|
||||
|
||||
|
||||
@ -20,13 +39,16 @@ class main():
|
||||
field = []
|
||||
row = []
|
||||
print("Sprawdzanie siecią neuronową całego pola, proszę czekać...")
|
||||
for i in range(0,10):
|
||||
for i in range(0, 10):
|
||||
print("Sprawdzam "+str(i+1)+" wiersz")
|
||||
for j in range(0,10):
|
||||
row.append(self.marcin.main_collective([i,j]))
|
||||
for j in range(0, 10):
|
||||
row.append(self.marcin.main_collective([j,i]))
|
||||
field.append(row)
|
||||
row = []
|
||||
return field
|
||||
|
||||
|
||||
|
||||
# 1. sprawdza czy opłaca się pracować
|
||||
# 2. sprawdza pole na którym stoi żeby drzewo podjęło decyzje
|
||||
# 3. Uruchamia się drzewo
|
||||
|
Loading…
Reference in New Issue
Block a user