一、问题描述方法:问题归约

1.问题归约描述

问题归约法与之前提到的状态空间法都是对进行问题描述,转换为符合或者图,但是思路不同。有许多问题可以通过一系列变换而最终变为一个子问题集合;这些子问题的解可以直接得到,通过解决这些子问题,从而就解决了初始问题。这样一种解决问题的思路就称为是问题归约法。
例如之前的汉诺塔问题,在状态空间描述中,表示的是ABC三个金片的状态 S=(i,j,k)(即位于什么位置),而在问题归约描述中,描述问题的思路是将这个复制问题拆分成几个子问题,子问题完成了,那么总的问题也就完成了。

问题P:将ABC移动到3号钢针。
问题P1:把金片A及B移到2号钢针上的双金片移动问题。
问题P2:把金片C移到3号钢针上的单金片移动问题。
问题P3:把金片A及B移到3号钢针上的双金片移动问题。
与状态空间描述类似,问题归约由初始问题问题变换操作符本原问题组成。

2.与或图表示

1)与图:其实上面汉诺塔问题的分解就是与图。把一个问题分解成若干个问题,就可以用与图表示,只有子问题全部得到解决,原问题才能解决。P是一个与节点。

2)或图:把一个问题变换为若干个子问题,可以表示成或图。只要有一个可以解决,原问题P就可以解决,P是一个或节点。

3)与或图:原问题需要通过分解和变换操作,得到本原问题,这样的归约过程可用一个与或图表示。
4)端节点:没有子节点的节点。
终叶(止)节点:本原问题所对应的节点。
可解节点:终止节点;至少有一个可解子节点的或节点;子节点全部可解的与节点。不可解节点反之。
解图(解树):由可解节点构成的,并且由这些可解节点可以推出初始节点为可解节点的子图为解图。

3.问题求解的比较

*在特殊情况下,只有或节点的与或图即变成普通图的状态空间搜索。

二、与或树的搜索

与状态空间搜索过程不同,因为与或树搜索出来的是一个解树,所以要不停的进行可解标示过程和不可解标示过程,自下而上进行标识:
(1)把原始问题作为初始节点S0,并把它作为当前节点;
(2)应用分解或等价变换操作对当前节点进行扩展;
(3)为每个子节点设置指向父节点的指针;
(4)选择合适的子节点作为当前节点,反复执行第(2)步和第(3)步,在此期间需要多次调用可解标记过程或不可解标记过程,直到初始节点被标记为可解节点或不可解节点为止。

1.盲目搜索

广度深度搜索,区别仅是扩展子节点在OPEN表中的顺序。搜索过程如下:
(1)把初始节点S0 放人Open表中;
(2)把Open表的第一个节点取出放入Closed表,并记该节点为n;
(3)如果节点n可扩展,则做下列工作:
① 扩展节点n,将其子节点放入Open表的尾部,并为每一个子节点设置指向父节点的指针;
② 考察这些子节点中是否有终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功,退出搜索过程;如果不能确定S0为可解节点,则从Open表中删去具有可解先辈的节点;
③ 转第(2)步。
(4)如果节点n不可扩展,则做下列工作:
① 标记节点n为不可解节点;
应用不可解标记过程对节点n的先辈中不可解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点;
③转第(2)步。

2.启发式搜索

1)与或树的启发式搜索时寻求最优解树的过程,即代价最小的解树。
2)节点的代价怎么定义和计算:
① 如果n为终止节点
h(n)=0
② 如果n为或节点,且子节点为n1,n2,…,nk:
h(n)= min {c(n,ni)+ h(ni)} (1≤i≤k)
③ 如果n为与节点,且子节点为n1,n2,…,nk:
和代价法: h(n)= ∑((c(n,ni)+ h(ni)) i=1,2,……,k
最大代价法: h(n)= max{c(n,ni)+h(ni)} (1≤i≤k)
④ 如果n是端节点,但又不是终止节点:
h(n)= ∞
按这种计算方法,最后得到的解树的代价累加到初始节点上,即为初始节点的代价。
3)希望树的概念:
在启发式的最优解树求解过程中,任何时刻都应该选择那些最有希望成为最优解树一部分的节点进行扩展,随着求解过程中不断扩展,要对希望值进行不断地估计和修正。
4)搜索过程:自顶向下,图生成过程 扩展节点,从希望树中选择一个节点扩展;自底向上,计算代价过程 修正代价估值,重新选择希望树。
(1) 把初始节点S0放入Open表中,计算h(S0);
(2) 计算希望树T;
(3) 依次在Open表中取出T的端节点放入Closed表,并记该节点为n;

(4) 如果节点n为终止节点,则做下列工作:
① 标记节点n为可解节点;
② 在T上应用可解标记过程,对n的先辈节点中的所有可解解节点进行标记;
③ 如果初始解节点S0能够被标记为可解节点,则T就是最优解树,成功退出;
④ 否则,从Open表中删去具有可解先辈的所有节点。
⑤ 转第(2)步。
(5) 如果节点n不是终止节点,但可扩展,则做下列工作:
① 扩展节点n,生成n的所有子节点;
② 把这些子节点都放入Open表中,并为每一个子节点设置指向父节点n的指针
③ 计算这些子节点及其先辈节点的h值;
④ 转第(2)步。
(6) 如果节点n不是终止节点,且不可扩展,则做下列工作:
① 标记节点n为不可解节点;
② 在T上应用不可解标记过程,对n的先辈节点中的所有不可解解节点进行标记;
③ 如果初始解节点S0能够被标记为不可解节点,则问题无解,失败退出;
④ 否则,从Open表中删去具有不可解先辈的所有节点。
⑤ 转第(2)步。

三、博弈树的启发式搜索

1.什么是博弈树

1)研究的是一类:二人零和、全信息、非偶然的博弈
二人零和:一方赢,另一方输;或者平局
全信息:知道当前和历史
非偶然:任何一方走步时,都选择对自己最为有利,而对另一方最为不利的行动方案
2)在博弈树中:
①博弈的初始状态是初始节点;
②博弈树中的“或”节点和“与”节点是逐层交替出现的;(我方每次下是或,我方只有一种选择走;对手每次下是与,要估计对手全部的选择可能是哪些)
③整个博弈过程始终站在某一方的立场上,所有能使自己一方
获胜的终局都是本原问题,相应的节点是可解节点;所有使对方获胜的终局都是不可解节点。

2.极大极小分析

1)为其中一方选择最优行动方法;
2)要考虑每一方案实施后对方所要采取的行动,并计算可能的得分;
3)根据问题的特性信息定义评价函数(我方的得分);
4)端节点的估值计算出后,再推算出父节点的得分。
或节点,选择子节点中最大得分(MAX)作为父节点的得分;(我方下对我方最有利的)
与节点,选择子节点中最小得分(MIN)作为父节点的得分;(对方下对我方最利的)
解树的得分越大越有利,对于很多要走很多步的解,通常不会进行全局的搜索,而是只在局部搜索局部的最优解,指导本次如何移动。

3. α\alphaα-β\betaβ剪枝分析

对于α\alphaα-β\betaβ剪枝死记硬背不好用,理解之后自然就明白了。
1)α\alphaα值:或节点:子节点中的最大倒推值的下界;β\betaβ值:与节点:子节点中的最小倒推值的上界。
2)α\alphaα剪枝:若任一极小层节点 m 的β\betaβ值小于或等于其位于极大层的父节点的α\alphaα值,则可终止该极小层中节点 m 以下的搜索过程。

β\betaβ剪枝:若任一极大层节点 m 的α\alphaα值大于或等于其位于极小层的父节点的β\betaβ值,则可终止该极大层中节点 m以下的搜索过程。

3)注意:要进行α\alphaα-β\betaβ剪枝,至少必须使某一部分的搜索树生长到最大深度;采用α\alphaα-β\betaβ过程都要使用某种深度优先的搜索方法;比较都是在极小结点和极大结点间进行的;α\alphaαβ\betaβ的影响可以是隔层的,例如:
如下图,已知扩展到A=4,继续扩展B,扩展到E时,E=0就可以自下而上推,对于C有两种可能,无论是取D<=0,导致B<=0;还是取F,D的第二个子节点都不需要再扩展了,相当于这个节点对于S0的增大已经没有贡献了,但是如果,E>=5的情况就不一样了。

再继续如下图,对于G如果为-6,同样可以推出,G的兄弟节点不需要再扩展了。这种隔层剪枝的情况发生再隔层的α\alphaαβ\betaβ值之间

【人工智能】2.博弈问题、博弈搜索策略相关推荐

  1. 读书笔记: 博弈论导论 - 16 - 不完整信息的动态博弈 信号传递博弈

    读书笔记: 博弈论导论 - 16 - 不完整信息的动态博弈 信号传递博弈 信号传递博弈(Signaling Games) 本文是Game Theory An Introduction (by Stev ...

  2. 模式识别 计算机博弈,计算机博弈新题材

    计算机博弈新题材 中国象棋这一古老的游戏在计算机技术的带领下,我们可以从容的在网上与千里之外的任何人对奕,也可以和象棋软件进行人机对战. 我们知道首先需要把中国象棋编好程序建立一个游戏网站,在这个游戏 ...

  3. 博弈——通过博弈思想解决的问题(hdu1847,2147)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1847 题目描述: 1.  总共n张牌: 2.  双方轮流抓牌: 3.  每人每次抓牌的个数只能是2的 ...

  4. 博弈——Nim博弈(hdu2176,1850,1851,1907,1849)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2176 http://acm.hdu.edu.cn/showproblem.php?pid=1850 ...

  5. java博弈,人机博弈小游戏(Java)

    人机博弈小游戏 实现功能 电脑随机出拳 玩家任意出拳 五局三胜制 可判断最终赢家 下面展示 代码. // A code block var foo = 'bar'; // An highlighted ...

  6. bzoj 4131: 并行博弈(博弈)

    4131: 并行博弈 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 42  Solved: 29 [Submit][Status][Discuss] ...

  7. 博弈论学习之巴什博弈,尼姆博弈, sg博弈

    博弈论真是一个神奇的东西,感觉和博弈论厉害的人玩游戏绝对会输. 这个博客讲的很好很全面 此类问题一般有如下特点: 1.博弈模型为两人轮流决策的非合作博弈.即两人轮流进行决策,并且两人都使用最优策略来获 ...

  8. 博弈基础与例题分析(巴什博弈威佐夫博弈尼姆博奕 斐波那契博弈SG博弈)

    文章目录 巴什博弈Bash Game 威佐夫博弈Wythoff Game 尼姆博奕 斐波那契博弈:算法如其名 SG博弈 图 mex(minimal excludant)运算 获得sg表 应用 A Br ...

  9. 投资博弈(协调博弈)

    投资博弈:    情景:现在每人有10元,两种方式    一种选择不选择投资,收益为0,不损失,不获利   一种选择投资,如果投资人数超过总投资人数的90%,那么投资的每个人会获利 5元,否则失去全部 ...

  10. 计算机博弈实例,博弈示例请大家帮我举一个博弈的例子,什么方面的都可以(最好是原 爱问知识人...

    在博弈论中有一个经典案例--囚徒困境,非常耐人回味. ----"囚徒困境"说的是两个囚犯的故事.这两个囚徒一起做坏事,结果被警察发现抓了起来,分别关在两个独立的不能互通信息的牢房里 ...

最新文章

  1. Leangoo新功能-卡片ID
  2. 招聘:PingCAP大范围招募,有兴趣的小伙伴速点!
  3. xp远程桌面访问 不能复制文件解决办法
  4. 运维 服务器安装,IT服务器运维安装CentOS后,你要做的10件事
  5. HTTP协议快速入门
  6. apache lucene_Apache Lucene基础教程
  7. 公司电脑监控软件_公司电脑监控软件,如何限制公司电脑网络游戏
  8. 8. Action过滤
  9. 不会点SQLite,都不好意思说自己是开发的 1
  10. 浅谈切比雪夫多项式推导及其实现模版归类
  11. 十进制转换为二进制代码
  12. 几何分布(一种离散分布)
  13. 云服务器如何共享文件夹,云服务器如何设置共享文件夹
  14. Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class lzl.edu.c
  15. 2016.08互金平台移动端影响力50强
  16. QT Desinger设计程序主界面 PyUIC生成.py
  17. 如何制作个人的纯手写电子签名
  18. 计算机技术在景区,旅游景区 虚拟现实 虚拟现实在旅游景区中的运用
  19. BackTrack 5 notes
  20. Java多线程————并发与并行【理解】

热门文章

  1. 手把手教你用FineBI做数据可视化
  2. perl安装的详细步骤
  3. 关于我用iVX沉浸式体验了一把0代码创建电影院购票小程序这件事
  4. SSH-简单登陆业务详解,从环境部署到代码编写
  5. 如何在AI中复制路径制作唯美动画
  6. Google guava之BiMap简介说明
  7. JanusGraph批量导入数据代码总结
  8. 【CUDA 基础】4.3 内存访问模式
  9. Spring之refresh的12个步骤
  10. 人生有三重境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水(转载)