课程设计书五子棋AI算法及其实现

简介: 五子棋算法部分方案

五子棋AI,能根据棋盘局势判断棋子应落在何处获胜,主要算法有权值法和博弈树法两种实现方案。

权值法
在数理统计中,有一种名为蒙特卡洛法的方法常被使用,其主要内容为:根据事件出现的概率估计某些特征,并将其作为问题的解。 权值法实现五子棋AI利用的就是这个原理。

在五子棋中,当棋局逐渐形成时,再接着向某个方向进行落子便容易获胜。比如黑子横向三连时,如果接着向左或者向右落子,白方不加堵截的话,那么黑方必胜。我们称此时棋盘上在黑子三连左右两侧的点的获胜概率高,即权值大。

对于黑方来说,在权值大的点上落子容易获胜,对于白方来说,在权值大的点上落子容易避免对方获胜。因而,无论对于哪方,在权值大的点上落子都是应该被优先选择的。

那么问题就变简单了,我们只需要对棋盘进行遍历,找出棋盘上权值大的点落子即可,利用这个方案,不仅可以实现人机对战,还可以实现机器与机器之间的博弈。

其中权值法用于简单人机写于MyComputerAi类中,通过不断递归循环上、下、左、右、左上、右上、左下、右下遍历整个棋盘找到权值最大点进行激活,其中主要运用数组x,y判断方向,以及权重数组以及map辅助判断这个点是否选择。

21df5c31ed70408c806cd698d1256e7b.png

博弈树与极大极小值搜索
循序渐进,我们先考虑一步棋,如下图所示:

假设在当前盘面下,我们有四种走法,对于每种走法我们调用上文的评估函数,得到四个得分,显然,我们更倾向于选择最高分15对应的那个走法。换句话说,我们可以认为以当前局面发展,可以到达15分的局面。
现在我们开始考虑两步棋,如下图所示:

假设对于我的这四种走法,对方分别有两种走法进行应对。现在情况开始变得复杂了。我们重新强调一下,这是一个“零和博弈”,也就是说,我的正分一定等于对方的负分。如果我选择了15分这种走法,对方肯定不傻,一定会选择2分这种走法,想让我的分更低。如果我选择了10分这种走法,对方一定会选择5分这种走法。想要将局面变成6分或者8分的结果,是不可能的(除非对面犯傻)。那么对于图上的那种情况,我们分析一下:如果我选第一种走法,则会得到5分;如果我选第二种走法,则会得到2分;如果我选第三种走法,则会得到0分;如果我选第四种走法,则会得到1分。那我到底应该选择哪种走法呢?显然,我更希望两步棋后,局面是5分,我选择了第一种走法。

重新审视一下这个问题,我们不难发现,如果我考虑两步棋,那么第一步棋的得分是没有用的。我的实际求解过程是:先通过每种第一步棋,求得对应的第二步棋的最小得分,再从这些最小得分中,找到那个最大得分。
好了,为了游戏更加精确,我们继续尝试考虑4步棋。自己画图太过麻烦,我就随便搜索了一张图片:

同样,按照上面的思路,我们需要反着考虑。首先考虑第四步棋,这是对方选择的一步棋。对于每一种第三步的局面,对方肯定选择分数最低的一步棋,我们把同一个第三步下的所有第四步的最小值求出来,作为第三步的分数即可。然后对于每个第二步的局面,我肯定选择分数最高的那个第三步,因此只需要求出同一个第二步下的所有第三步的最大值求出来,即可作为第二步的分数。同理,我们继续找第二步的最小值当做第一步的分数。最后再找到第一步的最大值,作为我决策的下一步棋。

以上,就是我们所说的“极小极大值搜索”算法。

值得一提的是,如果我优先下出了五连珠,游戏会立即结束,如果下一步棋对方也下出了五连珠,则我的五连珠调用减去对方的五连珠调用evaluateBoard(2)等于0,这个情况我们要排除掉,因为我已经先下出五连珠了,游戏已经结束了,对方再下出来的棋是无效的。
eb3ba5ea543240758306ae1b9bb05a93.png

相关文章
|
12天前
|
机器学习/深度学习 人工智能 算法
"拥抱AI规模化浪潮:从数据到算法,解锁未来无限可能,你准备好迎接这场技术革命了吗?"
【10月更文挑战第14天】本文探讨了AI规模化的重要性和挑战,涵盖数据、算法、算力和应用场景等方面。通过使用Python和TensorFlow的示例代码,展示了如何训练并应用一个基本的AI模型进行图像分类,强调了AI规模化在各行业的广泛应用前景。
24 5
|
25天前
|
机器学习/深度学习 人工智能 开发框架
【AI系统】AI 学习方法与算法现状
在人工智能的历史长河中,我们见证了从规则驱动系统到现代机器学习模型的转变。AI的学习方法基于深度神经网络,通过前向传播、反向传播和梯度更新不断优化权重,实现从训练到推理的过程。当前,AI算法如CNN、RNN、GNN和GAN等在各自领域取得突破,推动技术进步的同时也带来了更大的挑战,要求算法工程师与系统设计师紧密合作,共同拓展AI技术的边界。
61 1
|
13天前
|
人工智能 算法 前端开发
无界批发零售定义及无界AI算法,打破传统壁垒,累积数据流量
“无界批发与零售”是一种结合了批发与零售的商业模式,通过后端逻辑、数据库设计和前端用户界面实现。该模式支持用户注册、登录、商品管理、订单处理、批发与零售功能,并根据用户行为计算信用等级,确保交易安全与高效。
|
13天前
|
人工智能 算法 JavaScript
无界SaaS与AI算力算法,链接裂变万企万商万物互联
本文介绍了一种基于无界SaaS与AI算力算法的商业模式的技术实现方案,涵盖前端、后端、数据库及AI算法等关键部分。通过React.js构建用户界面,Node.js与Express搭建后端服务,MongoDB存储数据,TensorFlow实现AI功能。提供了项目结构、代码示例及部署建议,强调了安全性、可扩展性和性能优化的重要性。
|
3月前
|
机器学习/深度学习 人工智能 算法
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
本文全面介绍了人工智能(AI)的基础知识、操作教程、算法实现及其在实际项目中的应用。首先,从AI的概念出发,解释了AI如何使机器具备学习、思考、决策和交流的能力,并列举了日常生活中的常见应用场景,如手机助手、推荐系统、自动驾驶等。接着,详细介绍了AI在提高效率、增强用户体验、促进技术创新和解决复杂问题等方面的显著作用,同时展望了AI的未来发展趋势,包括自我学习能力的提升、人机协作的增强、伦理法规的完善以及行业垂直化应用的拓展等...
174 3
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
|
3月前
|
存储 人工智能 算法
AI算法的道德与社会影响:探索技术双刃剑的边界
【8月更文挑战第22天】AI算法作为一把双刃剑,在推动社会进步的同时,也带来了诸多道德与社会挑战。面对这些挑战,我们需要以开放的心态、严谨的态度和创新的思维,不断探索技术发展与伦理规范之间的平衡之道,共同构建一个更加美好、更加公正的AI未来。
|
4月前
|
机器学习/深度学习 数据采集 人工智能
AI技术实践:利用机器学习算法预测房价
人工智能(Artificial Intelligence, AI)已经深刻地影响了我们的生活,从智能助手到自动驾驶,AI的应用无处不在。然而,AI不仅仅是一个理论概念,它的实际应用和技术实现同样重要。本文将通过详细的技术实践,带领读者从理论走向实践,详细介绍AI项目的实现过程,包括数据准备、模型选择、训练和优化等环节。
367 3
|
4月前
|
机器学习/深度学习 人工智能 算法
深入了解AI算法及其实现过程
人工智能(AI)已经成为现代技术发展的前沿,广泛应用于多个领域,如图像识别、自然语言处理、智能推荐系统等。本文将深入探讨AI算法的基础知识,并通过一个具体的实现过程来展示如何将AI算法应用于实际问题。
146 0
|
3天前
|
机器学习/深度学习 人工智能 供应链
AI技术在医疗领域的应用与未来展望###
本文深入探讨了人工智能(AI)技术在医疗领域的多种应用及其带来的革命性变化,从疾病诊断、治疗方案优化到患者管理等方面进行了详细阐述。通过具体案例和数据分析,展示了AI如何提高医疗服务效率、降低成本并改善患者体验。同时,文章也讨论了AI技术在医疗领域面临的挑战和未来发展趋势,为行业从业者和研究人员提供参考。 ###
|
3天前
|
机器学习/深度学习 人工智能 算法
AI技术在医疗领域的应用与挑战
【10月更文挑战第21天】 本文探讨了人工智能(AI)在医疗领域的多种应用,包括疾病诊断、治疗方案推荐、药物研发和患者管理等。通过分析这些应用案例,我们可以看到AI技术如何提高医疗服务的效率和准确性。然而,AI在医疗领域的广泛应用也面临诸多挑战,如数据隐私保护、算法透明度和伦理问题。本文旨在为读者提供一个全面的视角,了解AI技术在医疗领域的潜力和面临的困难。

热门文章

最新文章