📜  人工智能游戏

📅  最后修改于: 2021-04-16 08:16:45             🧑  作者: Mango

游戏是人工智能的重要领域。游戏不需要太多的知识。我们唯一需要提供的知识就是规则,法律动作以及赢得或输掉游戏的条件。

两位玩家都试图赢得比赛。因此,他们俩都试图在每个转弯处都尽力做到最好。由于分支因子非常高,因此诸如BFS(广度优先搜索)之类的搜索技术对此并不准确,因此搜索将花费大量时间。因此,我们需要另一个可以改进的搜索程序-

  • 生成过程,以便仅生成好动作。
  • 测试程序,以便可以首先探索最佳动作。

游戏中最常见的搜索技术是Minimax搜索过程。这是深度优先深度受限的搜索过程。它用于象棋和井字游戏。

Minimax算法使用两个函数–

MOVEGEN:它会生成可从当前位置生成的所有可能的移动。
STATICEVALUATION:它返回一个值,该值取决于玩家的观点。

此算法是两人游戏,因此我们将第一个玩家称为PLAYER1,将第二个玩家称为PLAYER2。每个节点的值都从其子节点备份。对于PLAYER1,备份值是其子级的最大值,对于PLAYER2,备份值是其子级的最小值。假设PLAYER2做出了最佳举动,它为PLAYER1提供了最有希望的举动。这是一种递归算法,因为在每个级别都执行相同的过程。

图1:备份值之前图2:备份值之后

我们假设PLAYER1将开始游戏。生成4个级别。节点H,I,J,K,L,M,N,O的值由STATICEVALUATION函数提供。级别3正在最大化级别,因此级别3的所有节点都将采用其子代的最大值。级别2处于最小化级别,因此其所有节点将采用其子级的最小值。此过程继续。 A的值为23。这意味着A应该选择C获胜。参考: Rich和Knight的人工智能