Bonjour, j'ai une petite question sur l'algorithme Scout.
J'ai compris le principe d'évaluation des noeuds mais je ne comprend pas bien dans quel cas on effectue la procédure Test avec > plutôt qu'avec ≥ ?
Le cours que j'ai sous les yeux me ferait pencher pour l'utilisation de > lorsque le noeud que l'on entre dans Test est un noeud MAX et ≥ si c'est un noeud MIN mais bon.... Vu le nombre d'exemple que j'ai réussi à trouver, j'ai pas vraiment de moyen pour vérifier....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Procedure Test(n,v,c) // n est le noeud à évaluer // v la valeur seuil du noeud // c le prédicat de comparaison à savoir > ou ≥ si n est un noeud terminal alors retourner c(h(n),v); si n est Max alors soit S = {s1 ... si} la liste des fils de n; pour j allant de 1 à i faire si Test(sj,v,c) alors retourner vrai; retourner faux; sinon soit S = {s1 ... si} la liste des fils de n; pour j allant de 1 à i faire si ¬Test(sj,v,c) alors retourner faux; retourner vrai;Merci d'avance à ceux qui seront capable de m'expliquer un peu la différence
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Procedure Eval(n) // n est le noeud à évaluer si n est un noeud terminal alors retourner h(n); soit S = {s1 ... si} la liste des fils de n; soit v = Eval((s1)); pour j allant de 2 à i faire si sj est Max alors si Test(sj,v,>) alors v ← Eval(sj); sinon si ¬Test(sj,v,≥) alors v ← Eval(sj); retourner v;![]()
Partager