Poprawienie dobierania jedzenia przez agenta i spowolnienie głodu
This commit is contained in:
parent
d86809f940
commit
ad6fd4bc1b
@ -16,7 +16,7 @@ class Bat(Animal):
|
|||||||
def getting_hungry(self, const):
|
def getting_hungry(self, const):
|
||||||
checktime = datetime.now()
|
checktime = datetime.now()
|
||||||
delta = checktime - self._starttime
|
delta = checktime - self._starttime
|
||||||
minutes_passed = delta.total_seconds() / 30*5
|
minutes_passed = delta.total_seconds() / 35*5
|
||||||
self._starttime = checktime
|
self._starttime = checktime
|
||||||
|
|
||||||
if const.IS_NIGHT and self._feed < 10:
|
if const.IS_NIGHT and self._feed < 10:
|
||||||
|
@ -17,7 +17,7 @@ class Giraffe(Animal):
|
|||||||
def getting_hungry(self, const):
|
def getting_hungry(self, const):
|
||||||
checktime = datetime.now()
|
checktime = datetime.now()
|
||||||
delta = checktime - self._starttime
|
delta = checktime - self._starttime
|
||||||
minutes_passed = delta.total_seconds() / 30*5
|
minutes_passed = delta.total_seconds() / 35*5
|
||||||
self._starttime = checktime
|
self._starttime = checktime
|
||||||
|
|
||||||
if not const.IS_NIGHT and self._feed < 10:
|
if not const.IS_NIGHT and self._feed < 10:
|
||||||
|
@ -16,7 +16,7 @@ class Owl(Animal):
|
|||||||
def getting_hungry(self, const):
|
def getting_hungry(self, const):
|
||||||
checktime = datetime.now()
|
checktime = datetime.now()
|
||||||
delta = checktime - self._starttime
|
delta = checktime - self._starttime
|
||||||
minutes_passed = delta.total_seconds() / 25*5
|
minutes_passed = delta.total_seconds() / 30*5
|
||||||
self._starttime = checktime
|
self._starttime = checktime
|
||||||
|
|
||||||
if const.IS_NIGHT and self._feed < 10:
|
if const.IS_NIGHT and self._feed < 10:
|
||||||
|
@ -17,7 +17,7 @@ class Parrot(Animal):
|
|||||||
def getting_hungry(self, const):
|
def getting_hungry(self, const):
|
||||||
checktime = datetime.now()
|
checktime = datetime.now()
|
||||||
delta = checktime - self._starttime
|
delta = checktime - self._starttime
|
||||||
minutes_passed = delta.total_seconds() / 20*5
|
minutes_passed = delta.total_seconds() / 25*5
|
||||||
self._starttime = checktime
|
self._starttime = checktime
|
||||||
|
|
||||||
if not const.IS_NIGHT and self._feed < 10:
|
if not const.IS_NIGHT and self._feed < 10:
|
||||||
|
@ -17,7 +17,7 @@ class Penguin(Animal):
|
|||||||
def getting_hungry(self, const):
|
def getting_hungry(self, const):
|
||||||
checktime = datetime.now()
|
checktime = datetime.now()
|
||||||
delta = checktime - self._starttime
|
delta = checktime - self._starttime
|
||||||
minutes_passed = delta.total_seconds() / 15*5
|
minutes_passed = delta.total_seconds() / 20*5
|
||||||
self._starttime = checktime
|
self._starttime = checktime
|
||||||
|
|
||||||
if not const.IS_NIGHT and self._feed < 10:
|
if not const.IS_NIGHT and self._feed < 10:
|
||||||
|
2
agent.py
2
agent.py
@ -103,7 +103,7 @@ def take_food(self):
|
|||||||
house_x = 3
|
house_x = 3
|
||||||
house_y = 1
|
house_y = 1
|
||||||
if self.x == house_x and self.y == house_y:
|
if self.x == house_x and self.y == house_y:
|
||||||
if self._dryfood == 0 or self._wetfood == 0:
|
if self._dryfood < 1 or self._wetfood < 1:
|
||||||
self._dryfood = 50
|
self._dryfood = 50
|
||||||
self._wetfood = 50
|
self._wetfood = 50
|
||||||
print("Agent took food and current food level is", self._dryfood, self._wetfood)
|
print("Agent took food and current food level is", self._dryfood, self._wetfood)
|
||||||
|
@ -6,25 +6,26 @@ import matplotlib.pyplot as plt
|
|||||||
headers = ['adult','active_time','ill','season','guests','hunger','wet_food','dry_food']
|
headers = ['adult','active_time','ill','season','guests','hunger','wet_food','dry_food']
|
||||||
# Wczytanie danych
|
# Wczytanie danych
|
||||||
data = pd.read_csv('dane.csv', header=0)
|
data = pd.read_csv('dane.csv', header=0)
|
||||||
X = data[['adult','active_time','ill','season','guests','hunger','wet_food','dry_food']]
|
X = data[headers]
|
||||||
Y = data['decision']
|
Y = data['decision']
|
||||||
X = pd.get_dummies(data=X, columns=['season'])
|
X = pd.get_dummies(data=X, columns=['season'])
|
||||||
|
|
||||||
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, train_size=0.8)
|
|
||||||
clf = DecisionTreeClassifier(random_state=0, min_samples_leaf = 4, min_samples_split=2)
|
clf = DecisionTreeClassifier(random_state=0, min_samples_leaf = 4, min_samples_split=2)
|
||||||
|
clf = clf.fit(X,Y)
|
||||||
|
#skuteczność drzewa
|
||||||
|
'''
|
||||||
|
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, train_size=0.8)
|
||||||
clf = clf.fit(X_train, Y_train)
|
clf = clf.fit(X_train, Y_train)
|
||||||
Y_pred = clf.predict(X_test)
|
Y_pred = clf.predict(X_test)
|
||||||
accuracy = accuracy_score(Y_test, Y_pred)
|
accuracy = accuracy_score(Y_test, Y_pred)
|
||||||
print("Dokładność:", accuracy)
|
print("Dokładność:", accuracy)
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
#zapisanie drzewa do pliku
|
#zapisanie drzewa do pliku
|
||||||
plt.figure(figsize=(50,30))
|
plt.figure(figsize=(50,30))
|
||||||
plot_tree(clf, filled=True, feature_names=X.columns, class_names=['nie karmi', 'karmi mokrą karmą', 'karmi suchą karmą']) # filled=True koloruje węzły
|
plot_tree(clf, filled=True, feature_names=X.columns, class_names=['nie karmi', 'karmi mokrą karmą', 'karmi suchą karmą'])
|
||||||
plt.savefig('tree.png')
|
|
||||||
|
|
||||||
# Nowe dane
|
# dane do decyzji
|
||||||
def feed_decision(adult,active_time,ill,season,guests,hunger,dry_food,wet_food):
|
def feed_decision(adult,active_time,ill,season,guests,hunger,dry_food,wet_food):
|
||||||
X_new = pd.DataFrame({
|
X_new = pd.DataFrame({
|
||||||
'adult': [adult],
|
'adult': [adult],
|
||||||
|
Loading…
Reference in New Issue
Block a user