Compare commits
No commits in common. "master" and "neural_network" have entirely different histories.
master
...
neural_net
@ -1,34 +0,0 @@
|
||||
# DSZI_Survival
|
||||
Przetrwanie na bezludnej wyspie.
|
||||
|
||||
## Podprojekty w DSZI_Survival:
|
||||
* Genetic Algorithm Affinities
|
||||
* Genetic Algorithm Travelling
|
||||
* Neural Networks - recognizing food images
|
||||
* Decision Tree - deciding whether go for food, water or rest.
|
||||
|
||||
## Wykorzystanie podprojektów przez agenta
|
||||
|
||||
### Decision Tree
|
||||
W trakcie działania programu drzewo decyzyjne pomaga agentowi-rozbitkowi podjąć decyzję,
|
||||
czy powinien on w danej chwili:
|
||||
* zbierać pożywienie
|
||||
* pójść po wodę
|
||||
* odpocząć przy ognisku
|
||||
|
||||
### Neural Network
|
||||
W trakcie działania programu sieć neuronowa pomaga podjąć decyzję czy znalezione pożywienie jest jadalne
|
||||
czy nie. W przypadku, w którm agent się pomyli dochodzi do zatrucia i do końca gry.
|
||||
Na bezludnej wyspie znajdują się tylko dwa rodzaje owoców:
|
||||
* Jabłka
|
||||
* Gruszki
|
||||
|
||||
Celem agenta jest przetrwanie jak najdłużej.
|
||||
|
||||
### Genetic Algorithm Travelling
|
||||
Po uruchomieniu aplikacji algorytm genetyczny wyznacza optymalną trasę/kolejność do zebrania ziół,
|
||||
dzięki którym jego statystyki zresetują się do początkowego pozytywnego poziomu. Optymalna ścieżka
|
||||
do zebrania ziół jest potrzebna, aby agent nie stracił zbyt wielu statystyk przed wykonaniem zadania.
|
||||
|
||||
### Genetic Algorithm Affinities
|
||||
Celem algorytmu jest znalezienie 4 optymalnych wartości - skłonności (priorytetu) determinujących wybór kolejnego celu agenta. Wyznacznikiem czasu przetrwania jest ilość kroków pokonanych przez agenta (fitness).
|
@ -192,12 +192,10 @@ class Game:
|
||||
self.spritesList.draw(self.screen.pygameScreen)
|
||||
pygame.display.flip()
|
||||
self.running = False
|
||||
continue
|
||||
|
||||
# Choose target for player using decision tree
|
||||
if self.player.movementTarget is None:
|
||||
pickedEntity = survivalDecisionTree.pickEntity(self.player, self.map)
|
||||
self.screen.ui.console.printToConsole("I've decided to go for: {}".format(pickedEntity.classifier.name))
|
||||
if pickedEntity.classifier == Classifiers.FOOD:
|
||||
result = image_predictor.predict_image()
|
||||
self.screen.ui.console.printToConsole("I think it is a: " + result[1])
|
||||
@ -207,7 +205,6 @@ class Game:
|
||||
else:
|
||||
self.screen.ui.console.printToConsole("I was wrong")
|
||||
self.player.alive = False
|
||||
self.player.deathReason = "Wrong food recognition"
|
||||
continue
|
||||
|
||||
self.player.gotoToTarget(survivalDecisionTree.pickEntity(self.player, self.map), self.map)
|
||||
@ -436,14 +433,11 @@ class Game:
|
||||
self.spritesList.draw(self.screen.pygameScreen)
|
||||
pygame.display.flip()
|
||||
self.running = False
|
||||
continue
|
||||
|
||||
# Choose target for player using decision tree
|
||||
if self.player.movementTarget is None:
|
||||
pickedEntity = survivalDecisionTree.pickEntity(self.player, self.map)
|
||||
self.player.gotoToTarget(pickedEntity, self.map)
|
||||
self.player.gotoToTarget(survivalDecisionTree.pickEntity(self.player, self.map), self.map)
|
||||
decisionsMade += 1
|
||||
self.screen.ui.console.printToConsole("I've decided to go for: {}".format(pickedEntity.classifier.name))
|
||||
if pauseAfterDecision:
|
||||
pause = True
|
||||
|
||||
|
@ -187,8 +187,6 @@ class Ui:
|
||||
deathReasonString = "Exhaustion"
|
||||
elif deathReason is StatisticNames.THIRST:
|
||||
deathReasonString = "Dehydration"
|
||||
else:
|
||||
deathReasonString = "Wrong food recognition"
|
||||
|
||||
consoleLines.append("Death reason: " + deathReasonString)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user