現在、私はOthelloのための良いAIを作ろうとしており、Minimaxアルゴリズムを使って行っています。しかし、私がアルファベータプルーニングを使ってより深い検索をしようとすると、アルゴリズムがひどく遊んでいるように思えました。私はWikiやBerkely.eduのような他のソースとチェックしましたが、正しく実装したと思いますが、まだ問題は見つかりません。Othello Alpha-Betaプルーニングが間違っているpythonを再生する
def alphabeta(board, player, a, b, lev):
h = heur(board, player)
if lev == 0:
return h, None
poss = get_legal_moves(board, player)
if len(poss) == 0:
return h, None
move = 0
for x in poss:
cpboard = board[:]
cpboard[x] = player
bracket(cpboard, player, x)
a1, q = alphabeta(cpboard, opponent_color(player), a, b, lev-1)
if player is me:
if a1 > a:
a, move = a1, x
else:
if a1 < b:
b, move = a1, x
if b <= a:
break
if player is me:
return a, move
else:
return b, move
2番目のコードを推測する前に、あなたの 'heur'関数が正しいのですか? – inspectorG4dget
はい、それは私のminimaxアルゴリズムで動作します – jcolen19