110
Recherche arborescente Monte-Carlo
}
}
Constante * sqrt (log (p) /
nbPlayoutsCoup [ i] [ j]);
}
if (score > meilleurScore ) {
meilleurScore = score ;
meilleurUCB = inter ;
}
}
Go tmpgo = go ;
tmpgo . joue ( meilleurUCB , couleur );
i f ( c o u 1 e u r == Noir )
tmpgo . playout (Blanc );
el se
tmpgo . playout (Noir );
sommeScore [ meilleurUCB . _x ] [ meilleurUCB . _y ] +=
tmpgo . score [couleur ];
nbPlayoutsCoup [ meilleurUCB . _x ] [ meilleurUCB . _y ]++;
for (int i = O; i < Taille + 2; i++) {
}
for (int j = O; j < Taille + 2; j++)
i f ( go . goba n [ j ] [ i ] == Ex ter i e u r )
else if (go.goban [j] [i] == Noir )
else if (go.goban [j] [i] == Noir )
else cout << " " << nbPlayoutsCoup
cout << end! ;
fl oat meilleurScore = O;
Intersection meilleur (0 , 0);
for (int i = O; i <= Taille ; i++)
for ( in t j = 0; j <= Tai 11 e ; j ++) {
Intersection inter (i , j );
cout
cout
cout
[ j ]
if (go.coupLegal (inter , couleur ) &&
!go. oeil (inter , couleur ))
<<
<<
<<
[ i ] ;
Il .
-
�
'
"�®t t;
Il O" ·
�
'
if (nbPlayoutsCoup [ i] [j ] > meilleurScore ) {
meilleurScore = nbPlayoutsCoup [ i] [j ];
meilleur = inter ;
}
}
return meilleur ;
Recherche arborescente Monte-Carlo
}
}
Constante * sqrt (log (p) /
nbPlayoutsCoup [ i] [ j]);
}
if (score > meilleurScore ) {
meilleurScore = score ;
meilleurUCB = inter ;
}
}
Go tmpgo = go ;
tmpgo . joue ( meilleurUCB , couleur );
i f ( c o u 1 e u r == Noir )
tmpgo . playout (Blanc );
el se
tmpgo . playout (Noir );
sommeScore [ meilleurUCB . _x ] [ meilleurUCB . _y ] +=
tmpgo . score [couleur ];
nbPlayoutsCoup [ meilleurUCB . _x ] [ meilleurUCB . _y ]++;
for (int i = O; i < Taille + 2; i++) {
}
for (int j = O; j < Taille + 2; j++)
i f ( go . goba n [ j ] [ i ] == Ex ter i e u r )
else if (go.goban [j] [i] == Noir )
else if (go.goban [j] [i] == Noir )
else cout << " " << nbPlayoutsCoup
cout << end! ;
fl oat meilleurScore = O;
Intersection meilleur (0 , 0);
for (int i = O; i <= Taille ; i++)
for ( in t j = 0; j <= Tai 11 e ; j ++) {
Intersection inter (i , j );
cout
cout
cout
[ j ]
if (go.coupLegal (inter , couleur ) &&
!go. oeil (inter , couleur ))
<<
<<
<<
[ i ] ;
Il .
-
�
'
"�®t t;
Il O" ·
�
'
if (nbPlayoutsCoup [ i] [j ] > meilleurScore ) {
meilleurScore = nbPlayoutsCoup [ i] [j ];
meilleur = inter ;
}
}
return meilleur ;
