Hat die Wahl des Kindes eines Knotens nach dem Zufallsprinzip im Alpha-Beta-Algorithmus eine bessere Chance, einen Schnitt zu bekommen, als sie in der Reihenfolge zu wählen?Über Zufälligkeit und Minmax-Algorithmus mit Alpha-Beta-Beschneidung
Hier ist der Pseudocode mit meinem Zusatz mit *** markiert.
function alphabeta(node, depth, α, β, maximizingPlayer)
if depth = 0 or node is a terminal node
return the heuristic value of node
arrange childs of node randomly ***
if maximizingPlayer
v := -∞
for each child of node
v := max(v, alphabeta(child, depth - 1, α, β, FALSE))
α := max(α, v)
if β ≤ α
break (* β cut-off*)
return v
else
v := ∞
for each child of node
v := min(v, alphabeta(child, depth - 1, α, β, TRUE))
β := min(β, v)
if β ≤ α
break (* α cut-off*)
return v
lief ich eine kleine Probe mit diesem auf einem Vier-Spiel verbinden und es scheint ein wenig schneller zu laufen, aber wenn ich die Cutoffs mit und zählen eigentlich ohne Zufälligkeit, gibt es mehr Cutoffs ohne Beliebigkeit. Das ist ein bisschen seltsam.
Ist es möglich zu beweisen, dass es schneller (oder langsamer) ist?
Es ist wirklich seltsam, aber die Wahl nach dem Zufallsprinzip war eigentlich schneller als das Sortieren der Züge nach Punktzahl und Erinnern an ihre Reihenfolge für die nächste Suche ... das ist eine Verbindung vier Spiel mit einer Brettgröße 8 * 8 und Tiefe 6, so ist es nicht wirklich klein . – shinzou
Die Strategie mit der Reihenfolge, in der sich die vorherige Punktzahl verschiebt, funktioniert möglicherweise besser in Spielen wie Schach, die weniger chaotisch sind als Spiele wie connect four oder reversi. Bei der letzteren Art von Spielen neigt die Punktzahl einer zuvor bewerteten Position dazu, sich mehr zu ändern. –