From b3a1cd8ba18f6b9d302b812af1c8a42b72f39325 Mon Sep 17 00:00:00 2001
From: maberet <maberet@ada.local.isima.fr>
Date: Thu, 30 Jun 2022 13:40:32 +0200
Subject: [PATCH] modif de la formule q learn

---
 travail_de_groupe/jeu_appren_par_renfo/src/main.c   |  4 +++-
 travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c | 12 ++++++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/main.c b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
index 1e1570e..f8ab80e 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/main.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
@@ -6,11 +6,13 @@ float ***** Q;
 int main(){ 
     Q = allocateAndInitiateQ();
     readQFromFile(Q);
-    int i= 10;
+    int i= 50;
     
     srand ( time(NULL));
     while (i>0){
     traningAgent(1000000,30, Q);
+    printf("%d \n ", i);
+    writeQ(Q);
     i--;} 
     
     writeQ(Q);
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
index 4fea238..02eddd2 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
@@ -399,8 +399,7 @@ void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir
         line.angleHZone=zoneAngleH; 
         line.angleFZone=zoneAngleF; 
         line.action= action; 
-        moveAgent(agent, action); 
-        actionStack( stack , line); 
+        moveAgent(agent, action);  
         agentZone= convertIntoZone( agent->x,agent->y ); 
 
         reward = (agentZone==dropZone); 
@@ -412,16 +411,21 @@ void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir
         while ( !emptyStack(stack)){
             reward=line.reward; 
             maxAction= argmax(Q[line.receiverZone][line.shooterZone][line.angleHZone][line.angleFZone]); 
+            agentZone= line.receiverZone;
+            canonZone= line.shooterZone; 
+            zoneAngleH= line.angleHZone;
+            zoneAngleF=line.angleFZone; 
+
             line=unStack(stack); 
 
 
             Q[line.receiverZone][line.shooterZone][line.angleHZone][line.angleFZone][line.action] +=
                     DISCOUNT*(reward +
-                    LEARN_RATE* Q[line.receiverZone][line.shooterZone][line.angleHZone][line.angleFZone][maxAction]
+                    LEARN_RATE* Q[agentZone][canonZone][zoneAngleH][zoneAngleF][maxAction]
                     -Q[line.receiverZone][line.shooterZone][line.angleHZone][line.angleFZone][line.action]);
         }
         //if ( numberRun%1000000==1){printf (" %d \n  ", numberRun);}  
-        greedy = greedy - 1/numberRun;
+        //greedy = greedy - 1/numberRun;
         numberRun--; 
     }
     freeStack(stack); 
-- 
GitLab