问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

极大极小算法有些不明白?

发布网友 发布时间:2022-04-29 12:21

我来回答

3个回答

热心网友 时间:2022-06-27 14:51

先来说极小极大算法主要应用于什么样的游戏:
1. 零和游戏(Zero-sum Game):意思就是你死我活,一方的胜利代表另一方的失败,比如,象棋,五子棋等。
2. 完全信息(Perfect Information):玩家知道之前所有的步骤。象棋就是完全信息,因为玩家是交替着落子,且之前的步骤都能在棋盘上体现,但是石头剪子布就不是。
这样的游戏通常可以把他们看作一个树状图,把每一种可能性列出来。比如下面这个井字棋游戏,Max代表你自己,Min代表你的对手。
这个时候我们需要给每一种结果一个分数,就是这里的Utility。这个分数是站在我自己(也就是Max)的角度评估的,比如上图中我赢了就是+1,输了是-1,平局时0。所以,我希望最大化这个分数,而我的对手希望最小化这个分数。(在游戏中,这个分数被称为static value。)这里要说一下,井字棋是个比较简单的游戏,所以可以列出所有可能的结果。但是,大部分游戏是不太可能把所有结果都列出来的。根据计算机运算量,我们可能只能往前推7,8步,所以这个时候分数就不只-1,1,0这么简单了,会有专门的算法来根据当前结果给不同的分数。
假设我们有如下图的游戏,我是先手,我应该如何利用Minmax算法来选出第一步怎么走呢?
当然对于一个复杂的游戏来说,比如象棋,肯定是需要非常多步才能完成的。这就导致结果的数量是成几何增长的,也就是说,如果这个游戏每一步都有n个选择,那么在x步以后,将会有n^x个选择。这个时候,我们就需要采取剪枝算法(Alpha-Beta)来减少运算量。从剪枝算法这个名字我们就能看出,这个算法能让我们剪掉树状图中的一些分支,从而减少运算量。在这里也说一下剪枝算法,因为这并不是个不同于极小极大的算法,而是极小极大算法的升级版。
我们将游戏简化成如下图,使用Minimax算法,我们可以得出这样的结果

热心网友 时间:2022-06-27 14:51

首先他是个深度优先的搜索,和对手一人一步,你走的时候选会选择使局面最好的(对于一个局面你没办法靠搜索得到他对应的胜率,所以这边就要凭机器学习得到的知识,加上人的经验,设计一个速度很快的评估函数,能够对任意局面打分),对方走的时候选让你的局面最差的(同样是用自己的评估函数去快速评价局面)。
所以每一层轮流从子节点选择最大值-最小值-最大值-最小值...
这个时候也可以用alpha-beta pruning来剪枝,
函数返回的是Max下一步的最大值,所以需要稍加修改伪代码才能返回Max下一步的移动动作。
可以使用Java里面的ArrayList<char[]>来产生并且保存child of node。
在极大极小伪代码的基础上增加两行就变成了α-β剪枝。

热心网友 时间:2022-06-27 14:52

我们可以看到,加上剪枝算法,我们不仅得到了相同的结果,而且减少了计算量。在实际应用中,加上剪枝算法,计算机大约需要算2*n^(x/2)个结果,如果n为分支数,x为步数。相比于之前仅用极小极大算法的n^x,效率提高了很多。这也就意味着,如果在象棋比赛中,假设使用极小极大的算法,计算机能往前评估7步,加上剪枝算法,计算机能往前评估14步。极小极大和剪枝算法曾在IBM开发的国际象棋超级电脑,深蓝(Deep Blue)中被应用,并且两次打败当时的世界国际象棋冠军。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
通达信主力指标公式汇总(2023版附源码) 有什么类似地下城与勇士的手机游戏 有没有类似于DNF的游戏 苹果手机类似地下城的游戏 有什么类似地下城与勇士的手机游戏 我的系统是WIN732,为什么玩不了光晕2,一点开就弹一个对话框出来说:无法... 玩诛仙电脑配置诛仙3要求电脑配置 ...永磁为什么要跌啊?东方财富金力永磁股吧?金力永磁股票最初..._百度... 怎么找回注销的微信号 如果把手机号码和微信号同时销户后期还能找回微信号吗? 仓储与库存有什么区别? 仓位和库位的区别 博弈算法里的剪枝怎么用?(具体的) 剪枝算法和A*算法的区别 10、填空在AlphaBeta剪枝算法中,我们把一个结点可能取值的上界记作____值 C++五子棋ab剪枝法 结构怎么设计。。 手机游戏与屏幕大小不一样怎么办? beta剪枝是相对于什么结点而言 剪枝算法怎么弄 大数取模 求 用于五子棋AI的 α—β 剪枝搜索算法 苹果13游戏屏幕大小怎么调整 求αβ剪枝算法应用于五子棋中,急!!! 怎么把手机游戏调整到合适手机屏幕大小? 玩旧版安卓系统的游戏时怎么把游戏界面调小? 陈冠希晒女儿下厨体验,退出娱乐圈的他如今过的怎么样? 陈冠希晒女儿照片,粉丝看到身上的配饰:这哪是晒娃,是在炫富!你怎么看? 陈冠希近况如何?怎么颜值都崩了? 陈冠希一家三口拍广告,三岁女儿长相像妈,网友却在评论提起阿娇,为什么? 陈冠希女儿奢侈生活惹争议,为什么陈冠希退圈多年,依然这么豪? 陈冠希晒女儿萌照,送的甜甜圈比脸大,Alaia眼神冷漠搞怪,你看过吗? 陈冠希更新全家福,和女儿躺在秦舒培怀里卖萌,这是模范家庭的模样吗? 满脸褶子却藏不住笑容,陈冠希对女儿的爱有多深? 删除路径算法与剪枝算法一样吗? 在AlphaBeta剪枝的方法中,对树进行分析的顺序包括()。+A+由左往右+B+由右往左_百度问一问 【急】AlphaBeta算法该怎么理解? 在安排了alphabeta剪枝的方法中+,对树进行分析的顺序包括- 问一问 极大极小算法问题 谁能帮我在pudn上下载一份《c++实现的一个五子棋人机对弈程序 使用了alpha-beta剪枝算法》这个程序吗? win10终止服务一定要更新吗 什么是分支算法 C语言的枚举求解的循环问题 win10即将终止服务一定要更新吗 A*算法的复杂度是? 今天360提示我电脑的win10系统这版本已经终止,叫我更新升级,需要吗 win10免费更新要结束了,我要不要更新win10系统? 为什么win10有时间关机一定要更新? 帮忙起个好听的班级QQ群名字 我是9班 帮忙起个好听的班级QQ群名字,我们是9.2班。还有群标签和群简介~ 帮忙起个好听的班级QQ群名字&nbsp;我是2班&nbsp;还有人名前面的备注和群简介 班级qq群名字 我们是301班,,, 帮忙起个好听的班级QQ群名字 我是21班的。 帮忙起个好听的班级QQ群名字 我是1班 还有人名前面的备注和群简介