如何在Pig Dice Game中使用Expectiminimax算法评估节点

时间:2019-03-03 12:06:00

标签: artificial-intelligence dice minimax expectiminimax

我试图弄清楚Expectiminimax算法如何应用于Pig Dice游戏。主要问题是我不知道如何评估游戏决策树中的每个节点。根据Wikipedia的“猪骰子游戏”中的Optimal play部分,“相关的决策信息包括玩家的得分,对手的得分和回合总数”。

如何将这些信息转换为伪代码中的heuristic value of node,如何计算此数值?应该使用什么最小值/最大值?

Wikipedia伪代码:

function expectiminimax(node, depth)
if node is a terminal node or depth = 0
    return the heuristic value of node
if the adversary is to play at node
    // Return value of minimum-valued child node
    let α := +∞
    foreach child of node
        α := min(α, expectiminimax(child, depth-1))
else if we are to play at node
    // Return value of maximum-valued child node
    let α := -∞
    foreach child of node
        α := max(α, expectiminimax(child, depth-1))
else if random event at node
    // Return weighted average of all child nodes' values
    let α := 0
    foreach child of node
        α := α + (Probability[child] * expectiminimax(child, depth-1))
return α

游戏规则:

  

“每回合,玩家反复掷骰子直到掷出1   或玩家决定“持有”:•如果玩家掷出1,则得分   什么也没有,这成为下一个玩家的回合。 •如果玩家滚动   任何其他数字,该数字将加到他们的回合总数和玩家的   转弯继续。 •如果玩家选择“持有”,则其回合总数为   增加到他们的分数,它成为下一个玩家的回合。首先   得分超过100分的玩家获胜。”

https://en.wikipedia.org/wiki/Pig_(dice_game)

0 个答案:

没有答案