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 2d9d02a0184cede662ae405986017b96ee2f950a..f93a0f1ed360562946690fa3b386d965fc2746a1 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 376b7a595152fb2ee4801ae2e1f6d3bc23bda46b..d078cb982c51f7ab80e6a57a8ebeded8d2dbbdc4 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 62b8a9e283d03ba915ea685ad7c178f3063573df..af233565862d52a54e5f088f5aa9af075b279c18 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