Commit a7cc0efb authored by MACE Lloyd's avatar MACE Lloyd

Upload New File

parent 608fe6aa
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package mcts;
import tictactoecodingame.Coup;
/**
*
* @author Lloyd
*/
public class MeilleurCoup {
public static Coup getMeilleurCoupUCT(Noeud racine) {
Noeud meilleurNoeud = new Noeud();
double score;
double meilleurScore = Integer.MIN_VALUE;
for (Noeud enfant : racine.getListeEnfant()) {
score = enfant.getEtat().getScoreVictoire() / (double) enfant.getEtat().getNbVisite();
if (score > meilleurScore) {
meilleurScore = score;
meilleurNoeud = enfant;
}
}
return meilleurNoeud.getEtat().getDernierCoup();
}
// !! TESTS PAS FINIS !!
public static Coup getMeilleurCoupTEST(Noeud racine) {
Noeud meilleurNoeud = new Noeud();
double score;
double meilleurScore = Integer.MIN_VALUE;
for (Noeud enfant : racine.getListeEnfant()) {
score = enfant.getEtat().getScoreDernierCoup() / (double) enfant.getEtat().getNbDernierCoup();
if (score > meilleurScore) {
meilleurScore = score;
meilleurNoeud = enfant;
}
}
return meilleurNoeud.getEtat().getDernierCoup();
}
public static Coup getMeilleurCoupRAVE(Noeud racine, double coefficientRAVE) {
Noeud meilleurNoeud = new Noeud();
double score;
double meilleurScore = Integer.MIN_VALUE;
for (Noeud enfant : racine.getListeEnfant()) {
double ratioUCT = enfant.getEtat().getScoreVictoire() / (double) enfant.getEtat().getNbVisite();
double ratioRAVE = enfant.getEtat().getScoreDernierCoup() / (double) enfant.getEtat().getNbDernierCoup();
double beta = (double) enfant.getEtat().getNbDernierCoup() / ((double) enfant.getEtat().getNbVisite() + (double) enfant.getEtat().getNbDernierCoup()
+ coefficientRAVE * (double) enfant.getEtat().getNbVisite() * (double) enfant.getEtat().getNbDernierCoup());
score = (1 - beta) * ratioUCT + beta * ratioRAVE;
if (score > meilleurScore) {
meilleurScore = score;
meilleurNoeud = enfant;
}
}
return meilleurNoeud.getEtat().getDernierCoup();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment