216
Problè mes de satisfaction de contraintes
=
i;
_j = j;
value = value;
}
} ;
Move v a ri a t i on [ 1 0 0 0] ;
int sample (int depth ) {
i n t i , j , max d = de p th ;
}
Domainelntervalle *d = choisitVariable (i , j );
i f ( d == NULL)
return depth;
int val [TailleMax ],
nb_vals = enumereValeurs (i , j, val );
i f ( n b _ v a 1 s == 0 )
return depth;
int indice = rand () % nb_vals;
Move m ( i , j , va 1 [ i n d i ce ] ) ;
variation [depth ] = m;
var [i] [j ]. aff ecte (val [in dice ]);
if (consistant (i , j, val [indice ]))
maxd = sample ( depth + 1) ;
if ( maxd == ta i 11 e * ta i 11 e )
return maxd;
remet ();
var [i] [j ]. desaffecte ();
return maxd;
int nbBestRollout [ 4];
Move be s t R o 11 ou t [ 4 ] [ 1 0 0 0] ;
int nested (int nbPrefix , Move prefix [1000] , int n) {
int nbPrefixStart = nbPrefix;
nbBestRollout [n] = O;
while ( true) {
in t i , j ;
Domainelntervalle *d = choisitVariable (i , j );
if (d == NULL)
return nbPrefix;
int val [TailleMax ], nb_vals =
enumereValeurs (i , j, val );
Move bestMove = bestRollout [n] [ nbPrefix ];
int best = nbBestRollout [n];
for (int k = O; k < nb_vals; k++ ) {
Move m ( i , j , va 1 [ k ]) ;
Précédent

- 230/256

Suivant