From d0ed0efe4bd5178d413cd7c2272ff1aebbb19cb6 Mon Sep 17 00:00:00 2001 From: maberet <maberet@ada.local.isima.fr> Date: Fri, 1 Jul 2022 10:31:45 +0200 Subject: [PATCH] commit pour recup le main --- .../jeu_appren_par_renfo/src/main.c | 1 + .../jeu_appren_par_renfo/src/qlearn.c | 28 +++++++++++++++++-- .../jeu_appren_par_renfo/src/qlearn.h | 3 +- 3 files changed, 29 insertions(+), 3 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 2d9d02a..f93a0f1 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/main.c +++ b/travail_de_groupe/jeu_appren_par_renfo/src/main.c @@ -21,6 +21,7 @@ int main(){ // initKeys(); // mainLoop(); + freeQ(Q); //mainLoop(); 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 376b7a5..d078cb9 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c +++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c @@ -367,7 +367,31 @@ void freeStack(stack_t *stack) } } +void freeQ(float ***** Q){ + int i,j,k,l; + + for(i = 0; i < NUMBER_ZONE_RECEIVER; i++){ + + + for(j = 0; j< NUMBER_ZONE_SHOOTER; j++){ + for(k = 0; k <3 ; k++){ + + for(l = 0; l<5 ; l++){ + free(Q[i][j][k][l]); + + } + free(Q[i][j][k]); + + } + free(Q[i][j]); + } + free(Q[i]); + } + free(Q); + Q=NULL; + +} void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir la bonne taille il faut diviser par block size int i ; @@ -408,7 +432,7 @@ void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir reward=0; //printf (" %d \n ", m); while(i>0){ - printf("%d %d \n ",agent->x ,agent->y ); + // printf("%d %d \n ",agent->x ,agent->y ); action =takeAction(agent->x ,agent->y , Q, canonZone, zoneAngleH, zoneAngleF, greedy); agentZone= convertIntoZone( agent->x,agent->y ); line.receiverZone= agentZone; @@ -466,7 +490,7 @@ void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir } } } writeQ(Q); - if ( numberRun%10000==1){printf (" %d \n ", numberRun);} + if (n%10000==1){printf (" %d \n ", n);} greedy = greedy - 1/(n+1); n++; } diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h index 62b8a9e..af23356 100644 --- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h +++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h @@ -11,7 +11,7 @@ #define M_PI 3.14159265358979323846 #define LEARN_RATE 0.8 -#define DISCOUNT 0.2 +#define DISCOUNT 0.8 @@ -71,6 +71,7 @@ int fullStack(stack_t *stack); void actionStack(stack_t *stack, line_t line); line_t unStack(stack_t *stack); void freeStack(stack_t *stack); +void freeQ(float ***** Q); void traningAgent( int numberRun, int numberStep, float *****Q); void readQFromFile(float *****Q); #endif \ No newline at end of file -- GitLab