From bfb304bd975d5d2afe9e41e5df7c861db9067a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Pelletier?= Date: Sat, 13 Apr 2019 09:33:43 -0400 Subject: [PATCH] ajout q learning approximatif --- reinforcement/qlearningAgents.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/reinforcement/qlearningAgents.py b/reinforcement/qlearningAgents.py index 5c13b2c..dc8c8e4 100644 --- a/reinforcement/qlearningAgents.py +++ b/reinforcement/qlearningAgents.py @@ -208,14 +208,25 @@ class ApproximateQAgent(PacmanQAgent): where * is the dotProduct operator """ "*** YOUR CODE HERE ***" - util.raiseNotDefined() + features = self.featExtractor.getFeatures(state, action) + weights = self.getWeights() + q_value = 0 + for i in features.keys(): + q_value += features[i]*weights[i] + return q_value + # util.raiseNotDefined() def update(self, state, action, nextState, reward): """ Should update your weights based on transition """ "*** YOUR CODE HERE ***" - util.raiseNotDefined() + features = self.featExtractor.getFeatures(state, action) + weights = self.getWeights() + difference = (reward + (self.discount * self.getValue(nextState))) - self.getQValue(state,action) + for i in features.keys(): + self.weights[i] = weights[i] + self.alpha * difference * features[i] + # util.raiseNotDefined() def final(self, state): "Called at the end of each game."