|  | @@ -18,10 +18,10 @@ ControlBandit::ControlBandit() {
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	//Remplissage tableau moyenne
 |  |  	//Remplissage tableau moyenne
 | 
											
												
													
														|  |  	for(int f = 0; f < NB_FILL; f++) {
 |  |  	for(int f = 0; f < NB_FILL; f++) {
 | 
											
												
													
														|  | -		favg[f] = 0;
 |  | 
 | 
											
												
													
														|  | 
 |  | +		fema[f] = 0;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	for(int h = 0; h < NB_HEURISTIC; h++){
 |  |  	for(int h = 0; h < NB_HEURISTIC; h++){
 | 
											
												
													
														|  | -		havg[h] = 0;
 |  | 
 | 
											
												
													
														|  | 
 |  | +		hema[h] = 0;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	//Ini method
 |  |  	//Ini method
 | 
											
												
													
														|  |  	alphaStatic = true;
 |  |  	alphaStatic = true;
 | 
											
										
											
												
													
														|  | @@ -39,10 +39,10 @@ ControlBandit::~ControlBandit() {
 | 
											
												
													
														|  |  void ControlBandit::setMethod(int cstMethod, bool statique) {
 |  |  void ControlBandit::setMethod(int cstMethod, bool statique) {
 | 
											
												
													
														|  |  	if(statique) {
 |  |  	if(statique) {
 | 
											
												
													
														|  |  		alphaStatic = true;
 |  |  		alphaStatic = true;
 | 
											
												
													
														|  | -		alpha = 0.5;
 |  | 
 | 
											
												
													
														|  | 
 |  | +		alpha = ALPHA_STATIC;
 | 
											
												
													
														|  |  	} else {
 |  |  	} else {
 | 
											
												
													
														|  |  		alphaStatic = false;
 |  |  		alphaStatic = false;
 | 
											
												
													
														|  | -		alpha = 0.4;
 |  | 
 | 
											
												
													
														|  | 
 |  | +		alpha = ALPHA_MIN;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	method = cstMethod;
 |  |  	method = cstMethod;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
										
											
												
													
														|  | @@ -84,35 +84,35 @@ void ControlBandit::addFill(int num, int score) {
 | 
											
												
													
														|  |  	num -= 2;
 |  |  	num -= 2;
 | 
											
												
													
														|  |  	//Recup la valeur d'alpha
 |  |  	//Recup la valeur d'alpha
 | 
											
												
													
														|  |  	double localAlpha;
 |  |  	double localAlpha;
 | 
											
												
													
														|  | -	if(alphaStatic) {
 |  | 
 | 
											
												
													
														|  | -		localAlpha = alpha;
 |  | 
 | 
											
												
													
														|  | -	} else {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	if(!alphaStatic && alpha < ALPHA_MAX){
 | 
											
												
													
														|  |  		//Increment la valeur
 |  |  		//Increment la valeur
 | 
											
												
													
														|  |  		mutex.lock();
 |  |  		mutex.lock();
 | 
											
												
													
														|  |  		alpha += ALPHA_STEP;
 |  |  		alpha += ALPHA_STEP;
 | 
											
												
													
														|  |  		localAlpha = alpha;
 |  |  		localAlpha = alpha;
 | 
											
												
													
														|  |  		mutex.unlock();
 |  |  		mutex.unlock();
 | 
											
												
													
														|  | 
 |  | +	} else {
 | 
											
												
													
														|  | 
 |  | +		localAlpha = alpha;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	//Met a jour la moyenne
 |  |  	//Met a jour la moyenne
 | 
											
												
													
														|  |  	mutexFill.lock();
 |  |  	mutexFill.lock();
 | 
											
												
													
														|  | -	favg[num] = (1 - localAlpha) * favg[num] + localAlpha * score;
 |  | 
 | 
											
												
													
														|  | 
 |  | +	fema[num] = (1 - localAlpha) * fema[num] + localAlpha * score;
 | 
											
												
													
														|  |  	mutexFill.unlock();
 |  |  	mutexFill.unlock();
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  void ControlBandit::addHeuristic(int num, int score) {
 |  |  void ControlBandit::addHeuristic(int num, int score) {
 | 
											
												
													
														|  |  	//Recup la valeur d'alpha
 |  |  	//Recup la valeur d'alpha
 | 
											
												
													
														|  |  	double localAlpha;
 |  |  	double localAlpha;
 | 
											
												
													
														|  | -	if(alphaStatic) {
 |  | 
 | 
											
												
													
														|  | -		localAlpha = alpha;
 |  | 
 | 
											
												
													
														|  | -	} else {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	if(!alphaStatic && alpha < ALPHA_MAX){
 | 
											
												
													
														|  |  		//Increment la valeur
 |  |  		//Increment la valeur
 | 
											
												
													
														|  |  		mutex.lock();
 |  |  		mutex.lock();
 | 
											
												
													
														|  |  		alpha += ALPHA_STEP;
 |  |  		alpha += ALPHA_STEP;
 | 
											
												
													
														|  |  		localAlpha = alpha;
 |  |  		localAlpha = alpha;
 | 
											
												
													
														|  |  		mutex.unlock();
 |  |  		mutex.unlock();
 | 
											
												
													
														|  | 
 |  | +	} else {
 | 
											
												
													
														|  | 
 |  | +		localAlpha = alpha;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	mutexHeuristic.lock();
 |  |  	mutexHeuristic.lock();
 | 
											
												
													
														|  | -	havg[num] = (1 - localAlpha) * havg[num] + localAlpha * score;
 |  | 
 | 
											
												
													
														|  | 
 |  | +	hema[num] = (1 - localAlpha) * hema[num] + localAlpha * score;
 | 
											
												
													
														|  |  	mutexHeuristic.unlock();
 |  |  	mutexHeuristic.unlock();
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -147,8 +147,8 @@ int ControlBandit::getBestFill() {
 | 
											
												
													
														|  |  	int fill = 0;
 |  |  	int fill = 0;
 | 
											
												
													
														|  |  	mutexFill.lock();
 |  |  	mutexFill.lock();
 | 
											
												
													
														|  |  	for(int i = 0; i < NB_FILL; i++) {
 |  |  	for(int i = 0; i < NB_FILL; i++) {
 | 
											
												
													
														|  | -		if(favg[i] > max) {
 |  | 
 | 
											
												
													
														|  | -			max = favg[i];
 |  | 
 | 
											
												
													
														|  | 
 |  | +		if(fema[i] > max) {
 | 
											
												
													
														|  | 
 |  | +			max = fema[i];
 | 
											
												
													
														|  |  			fill = i;
 |  |  			fill = i;
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
										
											
												
													
														|  | @@ -161,8 +161,8 @@ int ControlBandit::getBestHeuristic() {
 | 
											
												
													
														|  |  	int h = 0;
 |  |  	int h = 0;
 | 
											
												
													
														|  |  	mutexHeuristic.lock();
 |  |  	mutexHeuristic.lock();
 | 
											
												
													
														|  |  	for(int i = 0; i < NB_HEURISTIC; i++) {
 |  |  	for(int i = 0; i < NB_HEURISTIC; i++) {
 | 
											
												
													
														|  | -		if(havg[i] > max) {
 |  | 
 | 
											
												
													
														|  | -			max = havg[i];
 |  | 
 | 
											
												
													
														|  | 
 |  | +		if(hema[i] > max) {
 | 
											
												
													
														|  | 
 |  | +			max = hema[i];
 | 
											
												
													
														|  |  			h = i;
 |  |  			h = i;
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  	}
 |  |  	}
 |