【问题标题】:What are effective ways to implement "difficulty" levels to an AI in Tic Tac Toe? [closed]有哪些有效方法可以在井字游戏中为 AI 实现“难度”级别? [关闭]
【发布时间】:2019-05-29 20:34:21
【问题描述】:

我正在开发一个简单的井字游戏安卓应用程序,它支持 1 或 2 个玩家。我已经实现了一个 AI for 1 player mode,它使用 minimax 算法完美地发挥(无论是胜利还是平局)。我想允许用户可以在简单、中等和困难之间切换。有什么方法可以实现这一目标?

我的第一个想法是在随机移动或完美移动之间随机选择。做出完美走法的概率是中等的 60%,简单的 10%。还有其他想法或修改吗?

【问题讨论】:

  • 既然你使用的是极小极大,那么降低搜索算法的深度截止怎么样?

标签: java android artificial-intelligence minimax


【解决方案1】:

您有几种方法可以调整强度,尽管对于像井字游戏这样简单的游戏来说,粒度级别并不是很好。

  1. 限制搜索深度。例如:如果 AI 只向前看 1-2 回合,则可以使用策略将其陷入不可避免的失败状态,而更深的树可以预测到足以应对所有策略并始终强制平局。
  2. 削弱您的评估功能。在井字游戏中要有意义地做到这一点有点困难,但是您也许可以想出一些办法。如果 AI 低估或高估某些东西,它的表现会更糟。
  3. 添加噪音。给你的程序一个随机的机会来选择一个次优的移动。
  4. 偏向次优决策。例如,让 AI 不太可能在角点率先采取行动。

您需要进行试验以找出正确的方法。

【讨论】:

  • 选项 3 很有趣。基本上,您可以根据最优到次优的值分配轮盘赌百分比,然后旋转轮盘。有时,通常不会选择次优的移动,但有时,这可能会导致稍后的惊人移动!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多