对不起,这可能是一个糟糕的问题,我正在尝试实现minimax算法,而我对如何创建'得分'感到困惑 . 我是否需要从一个状态一直到一个胜利状态,或者只是一个层,或者根本不需要制作一个包含各种可能组合的树? EX .
X 0 _ #1 0 0 _ #2 X X _ #3
各州会是 (X1),(X2),(X3) 还是 (X2,01,X3),(X1,02,X3),(X3),(X2,03,X1) ?对于得分,我是否需要深入考虑,或者我只是从这个深度确定最大/最小分数?
(X1),(X2),(X3)
(X2,01,X3),(X1,02,X3),(X3),(X2,03,X1)
我认为你很有可能遍历整个树,直到 terminal state ,然后给出一个分数:
1 为Max玩家获胜
1
-1 为闵球员获胜
-1
0 平局
0
对于遍历所有可能移动的整个树的游戏而言,计算成本太高(如国际象棋),您可以设置 terminal depth (例如,3或4层到树中)并返回该位置的分数 .
我想你也在询问评估是否需要考虑它的深度 . 答案是不 .
您可能会想知道,如果您没有完全遍历树,您如何评估位置?
有不同的方式,最重要的是做一些事情 efficient (为了更快地走到树下) . 对于国际象棋,有时只计算材料(片)的优势就足以产生一个基本的极小极大评分系统 .
看国际象棋编程维基的一些很好的解释:https://chessprogramming.wikispaces.com/Minimax
1 回答
我认为你很有可能遍历整个树,直到 terminal state ,然后给出一个分数:
1
为Max玩家获胜-1
为闵球员获胜0
平局对于遍历所有可能移动的整个树的游戏而言,计算成本太高(如国际象棋),您可以设置 terminal depth (例如,3或4层到树中)并返回该位置的分数 .
我想你也在询问评估是否需要考虑它的深度 . 答案是不 .
您可能会想知道,如果您没有完全遍历树,您如何评估位置?
有不同的方式,最重要的是做一些事情 efficient (为了更快地走到树下) . 对于国际象棋,有时只计算材料(片)的优势就足以产生一个基本的极小极大评分系统 .
看国际象棋编程维基的一些很好的解释:https://chessprogramming.wikispaces.com/Minimax