J'implémente une IA pour un jeu Othello en utilisant MiniMax avec l'élagage Alpha Beta. J'ai implémenté un algorithme Alpha Beta qui me dit la valeur que je peux obtenir, mais pas quel nœud je devrais sélectionner? Donc, ma question est comment puis-je utiliser alpha-bêta pour me dire quel noeud je devrais sélectionner, pas ce que la valeur résultante serait. Voici le pseudo-code de mon algorithme Alpha-Beta.Comment sélectionner un nœud en utilisant Alpha Beta
01 function alphabeta(node, depth, α, β, maximizingPlayer)
02 if depth = 0 or node is a terminal node
03 return the heuristic value of node
04 if maximizingPlayer
05 v := -∞
06 for each child of node
07 v := max(v, alphabeta(child, depth – 1, α, β, FALSE))
08 α := max(α, v)
09 if β ≤ α
10 break (* β cut-off *)
11 return v
12 else
13 v := ∞
14 for each child of node
15 v := min(v, alphabeta(child, depth – 1, α, β, TRUE))
16 β := min(β, v)
17 if β ≤ α
18 break (* α cut-off *)
19 return v
_pas la valeur résultante, mais vous en avez également besoin. Vous devez retourner 2 choses. Une réponse exacte dépend de la définition de votre 'node', langage de programmation, etc. –
@HenkHolterman Pourquoi ai-je besoin de retourner la valeur résultante? Si mon arbre était un arbre de recherche binaire, par exemple, je devrais juste savoir lequel des deux nœuds sélectionner, et non pas quelle était la valeur? Bien sûr, même si j'ai besoin de cette valeur pour déterminer quel noeud sélectionner –
Vous venez de répondre vous-même: "pour déterminer lequel ..." –