Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Projet_info
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
TRAN Alain
Projet_info
Commits
f79ee48b
Commit
f79ee48b
authored
May 03, 2020
by
MACE Lloyd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
03115b28
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
77 additions
and
0 deletions
+77
-0
MeilleurCoup.java
src/MCTS/MeilleurCoup.java
+77
-0
No files found.
src/MCTS/MeilleurCoup.java
0 → 100644
View file @
f79ee48b
/*
* 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
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment