全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
博弈算法综述学号:2010211894 姓名:盛华英1 引言(问题描述) 博弈论是研究具有斗争或竞争性质现象的数学理论和方法。一般认为,它既是现代数学的一个新分支,也是运筹学中的一个重要学科。对策论发展的历史并不长,但由于它所研究的现象与人们的政治、经济、军事活动乃至一般的日常生活等有着密切的联系,并且处理问题的方法又有明显特色。所以日益引起广泛的注意。在日常生活中,经常看到一些具有相互之间斗争或竞争性质的行为。具有竞争或对抗性质的行为称为对策行为。在这类行为中。参加斗争或竞争的各方各自具有不同的目标和利益。为了达到各自的目标和利益,各方必须考虑对手的各种可能的行动方案,并力图选取对自己最为有利或最为合理的方案。对策论就是研究对策行为中斗争各方是否存在着最合理的行动案,以及如何找到这个合理的行动方案的数学理论和方法。博弈的核心思想并不复杂, 实际上就是对博弈树节点的估值过程和对博弈树搜索过程的结合。在博弈的任何一个中间阶段, 站在博弈双方其中一方的立场上, 可以构想一个博弈树。这个博弈树的根节点是当前时刻的棋局, 它的儿子节点是假设再行棋一步以后的各种棋局, 孙子节点是从儿子节点的棋局再行棋一步的各种棋局, 以此类推, 构造整棵博弈树, 直到可以分出胜负的棋局。整棵的博弈树非常庞大, 且不同的棋类有所不同, 分支因子大的如围棋的博弈树显然要比分支因子小的如国际象棋的博弈树要大得多。博弈程序的任务就是对博弈树进行搜索找出当前最优的一步行棋。对博弈树进行极大极小搜索, 可以达到这一目的。极大极小搜索, 是因为博弈双方所要达到的目的相反, 一方要寻找的利益恰是一方失去的利益, 所以博弈的一方总是希望下一走步是儿子节点中取值最大者, 而另一方恰恰相反。这便形成了极大极小过程。当然, 程序不能也没有必要做到搜索整棵博弈树的所有节点, 对于一些已经确定为不佳的走步可以将根节点的子树剪掉。而且, 搜索也不必真地进行到分出胜负的棋局, 只需要在一定深度范围内对局面进行评价即可。只有搜索空间缩小到一定程度, 搜索才可以真正地进行。当搜索进行到一定深度, 用局面评价机制来评价棋局, 按照极大极小的原则选出最优, 向上回溯, 给出这一局面的父亲节点的价值评价, 然后再继续向上回溯, 一直到根节点, 最优走步就是这样搜索出来的。在这个过程中, 最为重要的是搜索算法, 高效的搜索算法可以保证用尽量少的时间和空间损耗来达到寻找高价值的走步。但是真的想要博弈程序棋力提高, 还必须有一个好的局面评价机制, 即估值算法作后盾。就是说, 用这个估值算法评价的局面价值必须是客观的、正确的, 可以确凿的评价局面的优劣以及优劣的程度。2 算法综述一、基本博弈搜索算法1、极大极小值算法(Minimax Algorithm)始终站在博弈一方的立场上给棋局估值,有利于这一方的棋局给予一个较高的价值分数,不利于这一方(有利于另一方)的给予一个较低的价值分数,双方优劣不明显的局面给予一个中间价值分数。在这一方行棋的时候,选择价值极大的儿子节点走步,另一方行棋则选择价值极小的儿子节点走步。 极大极小的算法框架:第一步:从s节点出发按宽度有先的方法,生成规定深度范围的博弈树。假设搜索的最大深度为K:初始化博弈树,放入初始节点s入open表; closed:=() ;repeat if n 可直接判定赢、输或平局 then f(n)+/-/0 else ni expand(n); add(ni, T); depth:=depth(n)+1 add(ni, open); add(n,closed); remove(n, open); n open表的第一个节点 until open表为空 or depthk第二步:对该博弈树,自底向上逐级计算每个节点的静态估价函数值。按给定的估价函数计算最底层的静态估价函数值;repeat 从下往上倒推计算各估计值if f(s)nil then 游戏退出或开始走步 n closed表的第一个节点if n Max方 and f(nci)有值 then f(n)Max f(nci) ; remove(n,closed) if n Min方 and f(nci)有值 then f(n)Min f(nci) ; remove(n,closed) until closed表为空;第三步:按找估价函数值决定走步,如果对手响应走步以后,再以当前状态作为起始状态s,转第一步。2、负极大值搜索(Negamax Algorithm) 1975年Knuth和Moore提出,旨在消除两方面的差别,使算法简洁优雅,核心思想在于:父节点的值是各子节点的负数的极大值。 3、Alpha-Beta搜索的增强算法 1)在alpha- beta剪枝过程中, 初始的搜索窗口往往是从- ( 即初始的alpha值) 到+( 初始的beta值) , 在搜索进行中再不断缩小窗口, 加大剪枝效果。渴望搜索就是渴望从一开始就使用小的窗口, 从而在搜索初起, 就可以进行大量的剪枝。这个初始窗口的选定很重要,如果选择准确, 即所要寻找的走步就在这个窗口内, 搜索便可以继续进行。如果第一步搜索的返回值证明最佳走步大于beta值, 就需要重新确定窗口。以原来的beta值为alpha值, 以+为新的beta值重新搜索。相反如果第一步的返回值证明最佳走步小于alpha值, 重新确定的窗口就是以- 为alpha值, 原来的alpha值为beta值了。可见第一次搜索猜测的窗非常重要, 如果猜测准确, 搜索时间可以大大缩短, 如果不准确, 这一优势就不明显了。由于渴望搜索是一种基本的搜索方法, 它在和后面叙述的遍历深化结合使用的时候, 就可以借助前一次深度为depth的搜索的结果来猜测当前深度为depth+1搜索的窗口了。2)极小窗口搜索(Minimal Window Search) 用极小的窗口来限制剪枝范围 ,在根节点处,假定第一个儿子节点为主变量,也就是假定它为最佳走步,对它进行完整窗口(a,b)的搜索并得到一个返回值v,对后面的儿子节点依次用极小窗口(也被称为是零窗口)(v,v+1)来进行搜索,如果搜索返回值大于零窗口,则证明这一分支亦为主变量,对它进行窗口为(v+1,b)的搜索,可是如果返回值小于零窗口,这一分支就可以忽略,因为它的最佳走步还不如已有的走步。 3)置换表(Transposition Table) 在搜索进行中,查询所有的走步,经常会在相同的或者不同的路径上遇到相同的棋局,这样的子树就没有必要重复搜索,把子树根节点的估值、子树的最好走步和取得这个值的深度信息保存在一个称为置换表的数据结构中,下次遇到时直接运用即可。4)遍历深化(Iterative Deepening) 算法的过程是,对以当前棋局为根节点的博弈树进行深度为二的遍历,得出其儿子节点的优劣排序,接着再从根节点进行深度为三的遍历,这一次优先搜索上次遍历中得出的最优者,从而加大剪枝效果,以此类推,在进行第三次、第四次的遍历,一直达到限定时间为止。 5)历史启发搜索(History Heuristic) 历史启发也是迎合alpha-beta搜索对节点排列顺序敏感的特点来提高剪枝效率的,即对节点排序,从而优先搜索好的走法。所谓好的走法即可以引发剪枝的走法或者是其兄弟节点中最好的走法。一个这样的走法,一经遇到,就给其历史得分一个相应的增量,使其具有更高的优先被搜索的权利。6)杀手启发搜索(Killer Heuristic)杀手启发实际上是历史启发的特例。它是把同一层中,引发剪枝最多的节点称为杀手,当下次搜索时,搜索到同一层次,如果杀手走步是合法的话,就优先搜索杀手。7)MTD (f) 算法MTD(f)搜索的全称是Memoryenhanced Test Driver with f and n。它是一个较新的算法,在1995左右年由Aske Plaat等人提出。 function MTD ( n, f ) f ;g := f ;f + := + ; f := ; / f为初值, f +上界, f 下界 repeat if g = f then := g + 1 else := g; g := alphabeta(n,-1,) if g then f + := g else f := g;until f f +;return g; /g为最好的走步4、最佳优先算法1)SSS*和DUAL*算法这两种算法即为状态空间搜索(State Space Search),由Stockman在1979年提出。它们是把极大极小树的搜索看成是对状态图的搜索,在不同的分支上展开多条路径,并且维护一个关于状态图的全局信息表。这两个算法的缺点是:算法复杂,难于理解;额外的数据结构占用空间大;并且维护有序的OPEN队列所用的时间开销大。2)B*和PB*算法1969年Berliner提出了B*算法,用一个乐观值和一个悲观值来表示评价值。算法从这点出发,用这两个界来证明哪个节点是最好的。当根节点的一个孩子的悲观值不比所有其它节点的乐观值差的时候,B*算法就结束了。算法的搜索控制就是尽可能快的得到终止条件。B*算法的缺点是它对局面的乐观值和悲观值的估计得可信赖程度,它对这个估值的依赖性太强。PB*算法就是基于概率的B*算法,由Paley在1983年提出。这个算法对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生科普类演讲
- 走进现代京剧课件
- 小小营养家案例教案
- 2026年高端私人影院建设公司室内美学设计(风格定制)管理制度
- 溃疡病常见症状及护理方式训练
- 2025-2026学年高一上学期期中真题综合测试天津地理试卷B
- 2025-2026学年广西壮族自治区高二上学期开学摸底考试历史试题(解析版)
- 宝宝营养护理教学
- 自我介绍文体部
- 下肢肌肉力量训练
- 医院后勤考试试题及答案
- GB/T 45377-2025无损检测地面管线及厂区管道轴向长距离导波检测
- 乔伊斯完整版本
- 2025年苏锡常镇高三语文一模作文素材积累及范文:我会洗碗
- T-NYA 005-2023 艾草精油保健用品技术规范
- 2025年高中地理人教选择必修一易错知识点建议收藏
- (艾宾浩斯遗忘曲线)小学生必背古诗75-80首-横向打印版
- 河道采砂的回复函
- 旅游行业全域旅游智慧服务平台建设方案
- 2025年度残疾人福利事业捐赠合同协议书3篇
- 2024年度建行个人房屋产权抵押贷款合同正式文本3篇
评论
0/150
提交评论