decision tree update

This commit is contained in:
Łukasz 2021-05-19 04:53:19 +02:00
parent 422d7adaac
commit d91b9141fc
2 changed files with 59 additions and 3 deletions

55
convertToPrediction.py Normal file
View File

@ -0,0 +1,55 @@
def convert(field_state, weather, day_time, temperature, wind, humidy):
field_value = 0
weather_value = 0
day_time_value = 0
temperature_value = 0
wind_value = 0
humidy_value = 0
if field_state == "toPlow":
field_value = 0
elif field_state == "toWater":
field_value = 1
elif field_state == "toSeed":
field_value = 2
elif field_state == "toFertilize":
field_value = 3
elif field_state == "toCut":
field_value = 4
if weather == "Clear Sky":
weather_value = 0
elif weather == "Cloudy":
weather_value = 1
elif weather == "Rainy":
weather_value = 2
elif weather == "Hail":
weather_value = 3
if day_time == "Night":
day_time_value = 0
elif day_time == "Day":
day_time_value = 1
if temperature == "Freezing":
temperature_value = 0
elif temperature == "Cold":
temperature_value = 1
elif temperature == "Mild":
temperature_value = 2
elif temperature == "Hot":
temperature_value = 3
if wind == "Windless":
wind_value = 0
elif wind == "Strong Wind":
wind_value = 1
elif wind == "Gale":
wind_value = 2
if humidy == "Low":
humidy_value = 0
elif humidy == "High":
humidy_value = 1
return field_value, weather_value, day_time_value, temperature_value, wind_value, humidy_value

View File

@ -4,6 +4,7 @@ import Board
import FindPath import FindPath
import TractorAction import TractorAction
import WeatherConditions import WeatherConditions
import convertToPrediction
import drawUI import drawUI
import Graphsearch as graph import Graphsearch as graph
from decisiontree import dtree from decisiontree import dtree
@ -56,10 +57,10 @@ while working:
weatherTimer = 0 weatherTimer = 0
weather, day_time, temperature, wind, humidy = WeatherConditions.checkConditions() weather, day_time, temperature, wind, humidy = WeatherConditions.checkConditions()
#decision = dtree.predict([field.state, day_time, weather, temperature, wind, humidy]) question = [convertToPrediction.convert(field.state, weather, day_time, temperature, wind, humidy)]
decision = 'Make Action' decision = dtree.predict(question)
if not move_list and decision == 'Make Action': if not move_list and decision == 1:
field.state = TractorAction.changeFieldState(field, tractor) field.state = TractorAction.changeFieldState(field, tractor)
istate = graph.Istate(tractor.direction, tractor.horizontal_index, tractor.vertical_index) istate = graph.Istate(tractor.direction, tractor.horizontal_index, tractor.vertical_index)
move_list = graph.graphsearch([], [], istate, FindPath.nearestLookingField(board, tractor, TillageUnit), board) move_list = graph.graphsearch([], [], istate, FindPath.nearestLookingField(board, tractor, TillageUnit), board)