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
|
# 2 - zasadzenie
|
||||||
# 0 - podlanie
|
# 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)
|
# przetłumaczenie numerka (0-8)
|
||||||
@ -189,7 +183,12 @@ def print_leaf(counts):
|
|||||||
return probs
|
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():
|
class main():
|
||||||
@ -201,8 +200,32 @@ class main():
|
|||||||
self.best_action = 0
|
self.best_action = 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def main(self):
|
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
|
# tworzymy zbior uczacy, w ktorym podajemy wszystkie mozliwe pola i czynnosci
|
||||||
training_data = [[0, 0, 1, 0, "Zasadzic"],
|
training_data = [[0, 0, 1, 0, "Zasadzic"],
|
||||||
[0, 1, 1, 0, "Odchwascic"],
|
[0, 1, 1, 0, "Odchwascic"],
|
||||||
@ -216,40 +239,36 @@ class main():
|
|||||||
self.tree = build_tree(training_data)
|
self.tree = build_tree(training_data)
|
||||||
print_tree(self.tree)
|
print_tree(self.tree)
|
||||||
|
|
||||||
print("TEST:")
|
# print("TEST:")
|
||||||
|
# print("Przewidziania czynnosc: %s Czynnosc: Zasadzic"
|
||||||
print("Przewidziania czynnosc: %s Czynnosc: Zasadzic"
|
# % print_leaf(classify(translate(4), self.tree)))
|
||||||
% print_leaf(classify(translate(4), self.tree)))
|
# print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
||||||
print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
# % print_leaf(classify(translate(5), self.tree)))
|
||||||
% print_leaf(classify(translate(5), self.tree)))
|
# print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
||||||
print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
|
# % print_leaf(classify(translate(7), self.tree)))
|
||||||
% 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")
|
|
||||||
|
|
||||||
def work_field(self, labels):
|
def work_field(self, labels):
|
||||||
works = []
|
works = []
|
||||||
|
|
||||||
for label in labels:
|
for label in labels:
|
||||||
if labels[label] > 0:
|
if labels[label] > 0:
|
||||||
works.append(label)
|
works.append(label)
|
||||||
return works
|
return works
|
||||||
|
|
||||||
def search_field(self):
|
def search_field(self):
|
||||||
|
|
||||||
|
pola = []
|
||||||
|
pole = 0
|
||||||
|
order = set_order(self.field.get_pogoda_value())
|
||||||
matrix = self.field.get_matrix() # pobieramy pole
|
matrix = self.field.get_matrix() # pobieramy pole
|
||||||
for i in range(len(matrix)):
|
for i in range(len(matrix)):
|
||||||
for j in range(len(matrix[i])):
|
for j in range(len(matrix[i])):
|
||||||
|
pole = i * 10 + j
|
||||||
print("Pole (%d,%d) Przewidziania czynnosc: %s"
|
print("Pole (%d,%d) Przewidziania czynnosc: %s"
|
||||||
% (i, j, print_leaf(classify(translate(matrix[i][j]), self.tree)))) # przewidujemy czynność za pomocą drzewa
|
% (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:
|
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.path.find_path(self.traktor, self.field, self.ui, [j, i]) # szukamy sciezki
|
||||||
self.ui.update() # update'ujemy UI
|
self.ui.update() # update'ujemy UI
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
@ -10,9 +10,28 @@ class main():
|
|||||||
self.UI = UI
|
self.UI = UI
|
||||||
self.path = path
|
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):
|
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
|
pass
|
||||||
|
|
||||||
|
|
||||||
@ -23,10 +42,13 @@ class main():
|
|||||||
for i in range(0, 10):
|
for i in range(0, 10):
|
||||||
print("Sprawdzam "+str(i+1)+" wiersz")
|
print("Sprawdzam "+str(i+1)+" wiersz")
|
||||||
for j in range(0, 10):
|
for j in range(0, 10):
|
||||||
row.append(self.marcin.main_collective([i,j]))
|
row.append(self.marcin.main_collective([j,i]))
|
||||||
field.append(row)
|
field.append(row)
|
||||||
row = []
|
row = []
|
||||||
return field
|
return field
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 1. sprawdza czy opłaca się pracować
|
# 1. sprawdza czy opłaca się pracować
|
||||||
# 2. sprawdza pole na którym stoi żeby drzewo podjęło decyzje
|
# 2. sprawdza pole na którym stoi żeby drzewo podjęło decyzje
|
||||||
# 3. Uruchamia się drzewo
|
# 3. Uruchamia się drzewo
|
||||||
|
Loading…
Reference in New Issue
Block a user