什么算法可以应用于公爵夫人(棋盘游戏,如国际象棋)

时间:2013-07-03 08:04:46

标签: algorithm chess alpha-beta-pruning

我一直在寻找名为Duchess http://www.cse.unsw.edu.au/~blair/duchess/rules.html

的游戏算法/方法

我正在考虑进行alpha beta修剪,但我不知道它是否适用于超过两名玩家的游戏。

2 个答案:

答案 0 :(得分:2)

团队与团队版本可以使用alpha-beta修剪和类似的游戏树搜索技术来玩,因为它是一个零和双人游戏。你只需要将球队视为球员。

使用树形播放器的版本不适合标准的alpha-beta游戏树搜索方法,因为它不是双人游戏的零和游戏。

问题在于,在双人游戏中,您可以使用“评估功能”来评估给定棋盘配置对于玩家1的好坏程度,例如尝试将此解释为“概率”,即玩家1从给定的配置中获胜,假设“好”的游戏。如果玩家1的获胜概率为P,则玩家2的获胜概率为1-P,显然,P足以表示对板配置的评估。 Alpha-beta修剪在算法的核心使用此评估值。

当你有三个玩家时,这已经不再明确,因为玩家1从给定配置中获胜并假设“好”玩的概率取决于玩家2和玩家3是否会与玩家1共谋。此外,有一些场景被称为“制造王者”,其中玩家1无法获胜,但玩家1仍然可以决定玩家2或玩家3是否获胜。

对于三个玩家,你基本上不得不采用一种方案,其中一个棋盘配置被评估为三个值,P1,P2和P3,每个值代表给定玩家达到该配置的相对偏好。之后,您可以进行游戏三次搜索,其中每个玩家都试图在搜索边界最大化玩家的偏好值。但是你需要例如能够回答这个问题,如果玩家X更容易通过获得检查而失败,或者因为不是赢家而输掉,如果是,那么多少。

答案 1 :(得分:0)

我猜迷你最大算法可以应用于每个对手转弯时最多((玩家数量) - 1)次,并且只转一次。因此,对于一轮树木,您的树木深度将等于玩家数量 在这种情况下,你必须考虑累积最大值(所有对手的最大总和)。算法的工作将在很大程度上取决于你如何进行评分。