人工智能五子棋游戏——(3)算法模块简介

 

游戏的运算能力是决定整个游戏性能和性能的关键因素。算法是软件的核心,所以当你自己的工作要做某些事情的时候,它就必须要有一个演算法。一个好的方法可以减少错误率,高效地完成对收到的资料的分析和处理,并且通过优化运算来加快运算的速度。算法的设计主要包括框架代码的设计和内层算法设计两部分。游戏的算法流程图如下所示

 

极大极小算法

Minmax算法是游戏树搜索算法的基础,最早于1950年提出。基于博弈树的搜索算法称为搜索,本质上是模拟两个棋手下棋,先自己走棋,再考虑对方走棋。这样循环下去,形成博弈树。极大极小值算法是在己方下棋时下棋最优,在对手下棋时下棋最不利。为清楚起见,将玩家的一侧放在 MAX 一侧,将敌人放在 MIN 一侧。

当你使用极大极小值算法在博弈树的每一层中搜索节点时,所有节点都被搜索到。这种搜索虽然很全面,但是随着搜索深度的加深,博弈树变得很大,算法的搜索效率大大降低。 Alpha-Beta剪枝算法就是用来解决这个问题的。

 

Alpha-Beta剪枝算法

在电脑游戏领域,主要研究的是一个知识完备的两人零和游戏,五子棋就是其中之一。在电脑游戏中,双方玩家的信息是完整的,他们根据情况和游戏规则相互影响,最终决定游戏过程的输赢。这样,博弈过程中所有可能的情况就形成了博弈树。接下来,要找到最佳运动,另一方方必须寻找博弈树。这对计算机来说并不难,但找到整个游戏树的时空成本是巨大的。因此,为了减少时空过剩,博弈树的展开深度通常是有限的,在深度有限的情况下,利用搜索算法对博弈树进行优化,减少不必要的搜索。

在人工智能五子棋中,搜索算法主要采用Alpha-Beta算法。 alpha-beta割算法是在极大极小值算法的基础上发展起来的。在搜索过程中,它从博弈树中去除了一些不必要的节点,减少了极大极小值算法的搜索冗余,并且对博弈树中每个节点的评估没有影响,提高了搜索速度。但是在使用Alpha-Beta剪枝法进行搜索时,由于搜索深度和播放时间的限制,该算法的游戏水平并不高。同时,其算法的效率与博弈树中检索到的平均节点数有很大的比值[5]。检索到的平均节点数越低,算法的效率就越高。然而,随着搜索深度的不断增加,搜索节点的数量会迅速增加。

局部搜索算法

使用alpha-beta剪枝算法,将参数 Alpha 和 Beta 确定为正无穷大和负无穷大,它们的值在递归过程中不断变化。随着搜索的进行,它们的有限区域不断缩小,区域外的节点越来越多,剪枝算法的效率也越来越高。执行过程设置为搜索区域。这将提高程序的搜索效率。

局部搜索就是这样一种算法。由于有一定的搜索限制,在这个限制范围内定义了切分区域来检索、处理和限定对局,这样能够大大提高整个棋局的速度和效率。简而言之,本地搜索是一种既容易又贪心的方法。在人工智能领域,本文提出了一种基于元启发性的求解方法。每次选择最优解作为当前解的相邻解空间的当前解,直到达到局部最优解。

 

 

posted @ 2023-02-19 16:02  来杯明前奶绿  阅读(300)  评论(0编辑  收藏  举报