Artificial intelligence 2具有极小极大的竞争人工智能

Artificial intelligence 2具有极小极大的竞争人工智能,artificial-intelligence,deadlock,minimax,alpha-beta-pruning,game-ai,Artificial Intelligence,Deadlock,Minimax,Alpha Beta Pruning,Game Ai,简化游戏规则: 棋子每回合可以移动一次 棋子可以向四个方向移动。(上、下、左、右) 棋子像棋盘一样在格子上移动 到达另一排的棋子获胜 为了简单起见,可以忽略其他规则 评价职能: 如果达到目标,则返回100。 其他:返回对手距离目标的距离-自身距离目标的距离 我使用alpha-beta修剪实现了minimax,并指定了max-depth。我将我的实现与几个第三方实现进行了比较,结果看起来是一样的。因此,我不想粘贴我的实现,而是想直接问我的问题: 当2个AI相互竞争时。一旦他们发现有人赢得比

简化游戏规则:

  • 棋子每回合可以移动一次
  • 棋子可以向四个方向移动。(上、下、左、右)
  • 棋子像棋盘一样在格子上移动
  • 到达另一排的棋子获胜
  • 为了简单起见,可以忽略其他规则
评价职能:

  • 如果
    达到目标,则返回100。
  • 其他:
    返回对手距离目标的距离
    -
    自身距离目标的距离
我使用
alpha-beta修剪实现了
minimax
,并指定了
max-depth
。我将我的实现与几个第三方实现进行了比较,结果看起来是一样的。因此,我不想粘贴我的实现,而是想直接问我的问题:

当2个AI相互竞争时。一旦他们发现有人赢得比赛,他们就无法选择一个有意义的方向,因为超过一个选项的分数相同。随机选择这些选项中的任何一个都不会改善它,因为它们永远都是毫无意义的移动


这(僵局)是意料之中的事吗?如果没有,会有什么问题?如果是这样,我如何修复它?

是的,这可以通过简单的alpha-beta/minimax实现轻松实现

最好的解决方法可能是迭代深化-在1…最大深度迭代搜索。由于以下几个原因,这种方法效果良好:

  • 额外迭代的开销是最小的,因为每次迭代都比上一次昂贵得多。(这棵树正以指数级增长。)

  • 当你在一个给定的迭代中为自己赢得胜利时,你会立即终止(例如不要继续搜索更大的迭代)并采取胜利的行动。这样就避免了寻找较长的获胜序列而不选择最短序列的问题。(解决你的问题。)

  • 您可以在早期迭代中使用类似于历史启发式的方法来改进后期迭代中的排序,并提高alpha-beta的效率。(如果限制“最大深度”,这并不重要,但如果限制时间,则会有所帮助。)


  • 是的,这可以通过简单的alpha-beta/minimax实现轻松实现

    最好的解决方法可能是迭代深化-在1…最大深度迭代搜索。由于以下几个原因,这种方法效果良好:

  • 额外迭代的开销是最小的,因为每次迭代都比上一次昂贵得多。(这棵树正以指数级增长。)

  • 当你在一个给定的迭代中为自己赢得胜利时,你会立即终止(例如不要继续搜索更大的迭代)并采取胜利的行动。这样就避免了寻找较长的获胜序列而不选择最短序列的问题。(解决你的问题。)

  • 您可以在早期迭代中使用类似于历史启发式的方法来改进后期迭代中的排序,并提高alpha-beta的效率。(如果限制“最大深度”,这并不重要,但如果限制时间,则会有所帮助。)