设为首页 - 加入收藏
广告 1000x90
您的当前位置:二四六天天好彩308K文字资料 > 博弈树搜索 > 正文

博弈树 - logarrow的专栏

来源:未知 编辑:admin 时间:2019-05-25

  等等。用这些程序来同人或其他程序对弈。然而,有些程序是把计算机精心设计成一个棋

  盘,人们可以在其上对弈(或者是一种单人玩的棋盘游戏)。这种程序更接近于系统模拟

  假定有两个人或者两台机器在下棋。我们把其中一名称为棋手,另一名称为对手。而我们

  始终从棋手的角度来观看这场竞赛。这样一来,如果棋手赢了、对手输了,我们就说这盘

  假设现在该轮到棋手走了。在大多数情况下,棋手对这步棋可以有若干种选择。对于棋手

  的每一种选择,对手也有若干可供选择的相应棋步。对于棋手的每一步棋以及对手的每一

  步回棋,棋手又有自己进一步的选择。显然,这里所遇到的分支情况同我们在状态搜索中

  实际上,我们可以把一盘棋想象成具有一个入口(起始位置)和一组出口的迷宫。有些出

  口标上了赢的记号;有些出口标上了输的记号;而有些出口标上了和局的记号。在入口处

  ,棋手选择某条路径起步,在路径的一个岔口,对手挑选了自己的路径回步,棋手和对手

  路径走下。棋手总是力争通向胜利的出口,而对手却总是把棋路引向输的出口。有时双

  方各自的努力不相上下,最后在和局出口结束棋局。或者他们一直在这个迷宫中徘徊,直

  因此,下棋游戏同状态图搜索是相似的,就是要在状态图中找出一条从初始状态到目的状态的路径。但是,它们之间却有一个很大的差别。在状态图搜索中,总是由一名选手来选择下一步往哪走。而在棋类的对弈中,棋手只有一半选择的权利,另一半由对手作出决定。棋手是一直朝着目标努力,而对手却是通过它每一步棋对此设置障碍。寻找机会把棋手从通往目标的路径上引开。对于任何一种博弈竞赛,我们可以构成一个博弈树。它类似于状态图和问题求解搜索中使用的搜索树。博弈树的结点对应于某一个棋局,其分支表示走一步棋;根部对应于开始位置,其叶表示对弈到此结束。在叶节点对应的棋局中,竞赛的结果可以是赢、输或者和局。所谓棋局,就是所有那些必须记录下来的信息。根据这些信息,比赛在按计划暂停以后能够得以继续进行下去。显然,这些信息包括了此时棋子在棋盘上的位置以及指出下一步是轮到棋手走,还是对手走。

  其原因是:当轮到棋手走时,他可以决定选择哪一步棋走。如果起码有一步可以担保棋手

  能够到达赢的棋局,那么棋手就会选择这一步并保证能够取胜。因此对应于棋手走的节点

  当轮到对手走时,选择是由对手决定的。棋手没有任何选择的权利。只有对手的所有可以

  走的棋布都会导致棋手赢时,这时棋手才能保证会赢。因此,对于对手走的结点是一个与

  对于一场经过深思熟虑地棋局来说,其博弈树是非常庞大的(国际象棋来说有10^120个节

  点)。以至于不可能把这样大的博弈树装入计算机,也不可能在任何合理的、有限的时间

  内进行详细的搜索。尽管如此,首先深入的考察一下完整的博弈树,然后再看看如何来修

  假设我们对所讨论的博弈问题构造了一棵完整的博弈树,我们希望能从中找出棋手应采用

  首先我们把该博弈树的每一个节点标上w(对应于赢)、d(对应于和局)或者l(对应于

  输)。如果当前的棋局对应于标有w的节点,那么就存在一种策略可以担保棋手会赢;如

  果结点标的是d,那么除非对手失误,否则棋手最好的前景就是争取和局;如果节标的是l

  我们的讨论从叶节点开始,每一个叶结点对应于一场棋赛的结束的终局。根据博弈的规则

  ,叶节点确定了棋手的赢,输和和局。这样,我们就把每一个叶节点标上相应的值。

  现在我们按照从叶往根本方向进行研究。按照每一节点的子节点的标号来标记该节点本身

  。节点标注的规则如下: 轮到棋手走步时,如果该节点的子节点至少有一个标有w,那么

  ,该节点就标为w;如果所有子节点都标为l,那么该节点标为l。其他情况标上d。

  轮到对手走步时,如果该节点的子节点都标上了w,那么该节点标为w;如果有一个以上的

  根节点的标注表明,在对手不失误的情况下,棋手能够得到的最好结果。如果根节点为w

  ,那么棋手稳操胜券;如果为l,那么对手一定能击败棋手;如果为d,那么在对手不失误

  一场比赛,如其根节点能够标上w或l,并且是很简单易于分析的话,就可以成为骗人的棋

  局。该节点标作w的话,无论是谁先走,先走者都能赢;根节点为l的话,无论谁后走,则

  后者也一定能赢。当然需要采取正确的策略。骗子知道哪一方面能够赢,以及要赢所需要

  棋手的策略应该遵循这样的原则:如果有一步棋能走到节点为W的棋局,那么就应当走这

  步棋;如果所有的棋步都通向节点为l的棋局,那么就只好放弃这盘棋认输。其他情况下

  对手采取的策略正好相反:如果有一步棋能走到节点标为l的棋局,那么就下这步棋,如

  果所有的棋步都通向节点为w的棋局,那就只有放弃认输。其他情况下,就要走到标为d的

  当有两条以上的路径都能通往l节点,或者有两条以上的路径通往d节点时,棋手所采取的

  策略就不再是决定性的了。在实际对弈中,棋手总是想选择w节点,达到了w节点,就使得

  往后的对弈过程变得简单了。这样做就能减少棋手失误以致失去优势的机会。基于同样的

  点时,应该选择d节点。这样就可以导致最复杂的情况产生。希望对手在这种情况下失误

  以便使自己重新得到优势。到现在为止,我们的讨论还是很不充分的。因为在所有的w节

  一、博弈概述博弈特点:(1)博弈的初始格局是初始节点(2)在博弈树中,“或”和“与”是交替出现的。自己一方的扩展节点是“或”关系,对方扩展的节点是“与”关系。双方轮流扩展节点。(3)所有自己一方获胜的...博文来自:水野与小太郎的博客

  0引言在智能过程中,搜索是必不可少的,是人工智能中的一个基本问题——Nilsson。这是因为人工智能研究的主要是那些没有成熟方法可依的问题领域,需要一步步搜索求解。游戏中如何找到对自己有利的局面就...博文来自:Notzuonotdied的博客

  博弈树的搜索是人工智能领域一个重要的研究课题.许多完全信息的二人零和博弈问题都可以用博弈树搜索算法解决。那么什么是二人零和博弈问题呢?有一系列的博弈问题拥有以下性质[1]:1.有两个对抗者:对抗者1和...博文来自:李希的博客

  博弈树搜索在下图中,第一层节点表示开始局面,我方先走,第二层节点表示我方可走的三个位置,第三层节点表示对于我方的每一种走法对手的各种走法,下方数字代表了对每个局面的评价值。这里的评价值都是相对于我方来...博文来自:启人zhr的博客

  我在最近撰写五子棋AI程序设计报告时,翻阅了很多的资料博客,但却发现大佬们的博客,没有一篇是能让我只看它就能理解全部的AI算法。在看了众多博客后,我终于对博弈树、极大极小搜索、αβ剪枝恍然大悟,其实这...博文来自:的博客

  由于搜索的复杂度有点高,所以在树上减少计算量肯定是剪枝了,这里我们把剪枝的办法称作的:α-β剪枝    我们在前面的文章中谈到,当第一次运作的是A,则所有的奇数深度的节点都是A做的选择,所有偶数深度的...博文来自:水野与小太郎的博客

  博弈算法一共分为以下4种1、NimmBoYi尼姆博弈/*  尼姆博弈指的是这样一个博弈游戏:有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,   每一次只能从一堆物品中取部分或全部物品,最少...博文来自:冷兮Coding

  计算机科学中最有趣的事情之一就是编写一个人机博弈的程序。有大量的例子,最出名的是编写一个国际象棋的博弈机器。但不管是什么游戏,程序趋向于遵循一个被称为Minimax算法,伴随着各种各样的子算法在一块。...博文来自:我的专栏

  链路层主要有三个目的:(1)为IP模块发送和接收IP数据报;(2)为ARP模块发送ARP请求和接收ARP应答;(3)为RARP发送RARP请求和接收RARP应答。...博文来自:我的专栏

  花了很多天学习的一个关于五子棋的博弈树,记录一下。先讲一下五子棋的基本实现过程:一、界面实现Gobang.javashow(){}main(){}paint(){}窗口使用Border布局,写俩JPa...博文来自:番茄炒土豆的博客

  思路:运用分治的思想,将要排序的整个数组从中间劈开,分别求其左右两边的最大最小值,然后将求出的最大最小值合起来进行比较。   当左右两边的数组小到一定程度时:(1)数组中只有一个元素,maxNum=m...博文来自:catkint的博客

  博弈算法实现的简单五子棋,使用极大极小搜索,alpha-beta剪枝,java图形界面。...博文来自:方品

  看完人家的博客,发现任重道远。。。一位高手对我的建议:一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug...博文来自:Wind_bow的博客

  7-5 机器翻译(15 分)小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软...博文来自:yyyan

  鄙人最近写了一个井字棋的小游戏,玩法是人机对战。为了给游戏增加乐趣,因此,我打算写成机器永远不输(最劣势就是平局)。我们知道井字棋这个游戏很简单,只有九个格子,所以,懂棋的双方都不放水的话,会...博文来自:的博客

  前言:对弈类游戏的智能算法,网上资料颇多,大同小异.然而书上得来终觉浅,绝知此事要躬行.结合了自己的工程实践,简单汇总整理下.一方面是对当年的经典lt;lt;PC游戏编程(人机...博文来自:Allure Love的博客

  此图知识背景是囚徒困境,其中蓝色代表背叛者,红色代表合作者。其实就是将200X200个格子上的,每个个体的策略显示出来。所以在输出结果的时候,需要将结果按照类似矩阵的形式存储下来,比如每行存200个数...博文来自:BD的笔记

  以前的写五子棋AI太弱了,所以就开始研究博弈树 alpha beta剪枝,但是成效不佳,虽然找到了代码,但是算法核心没懂。求大神帮我看下,随便整理个文档发我邮箱下,谢谢,感激不尽 1095222570论坛

  在博弈树的极大极小过程中是对每一个树节点(称它为全局搜索吧)都要计算其估值,然后在这些估值中做出选择。如果搜索比较大的话,全局搜索的方式效率会非常低,因为有一些节点根本不需要搜索。那么怎么加快搜索...博文来自:xyh_Adolph的专栏

  五子棋博弈树的构造过程。博文来自:涛涌四海向大家学习,与大家携手共进……

  3.1  Alpha-Beta算法虽然博弈树的状态是有限的,但是状态个数却非常多.假设博弈树的深度为d,每个结点有b个分支,即分支因子(branchingfactor)为b,那么使用Min-Max方法...博文来自:李希的博客

  别被文章长度吓到,学会博弈(SG)只用看前1/10。鉴于讲明白博弈要写好多字,于是找了些论文拼凑,对疑难点加了注释并配上“美图”助解。Nim游戏重点结论:对于一个Nim游戏的局面(a1,a2,...,...博文来自:Strangedbly

  参考:博弈问题简介所讨论的博弈问题满足以下条件:玩家只有两个人,轮流做出决策游戏的状态集有...博文来自:Kay的博客

  2018年,个体用户流量接近天花板,产品互联网概念兴起,提出通过互联网大数据、云计算、智能终端以及网络优化等优势,提高跨行业协同的效率,重构制造、农业、能源、物流、交通、教育等诸多传统领域。给中国企业...博文来自:高级互联网产品经理:以数据重构商业,用流量改变未来!

  我的新博客:本文在我的新博客中的链接:前些天研究了一下棋谱2333,然后就顺便写了这个程序。整个程序是基于Q...博文来自:RyuZhihao123 的博客

  2008年11月15日星期六11:03      这篇文章将介绍一种对于所有的GameAI(游戏智能)开发来说都非常重要的数据结构。对于几乎每一个棋类博弈游戏程序来说,极大极小树(theminima...博文来自:zhp818的专栏

  对下图所示的博弈树,以优先生成左边节点顺序来进行α-β搜索,试在博弈树上给出何处发生剪枝的标记,并标明属于α剪枝还是β剪枝标号代表操作的时间顺序,题目要求优先生成左边结点,所以遍历顺序为左1-&...博文来自:⊙-→棒棒糖ing .____`

  最近正在做一个人工智能的中国象棋,所以不可避免的接触到了博弈论,因为考虑到以后还会有所涉及(alpha-betasearch),所以写成了一片文章这里以中国象棋为前提,AI首先需要一个博弈树(变种的二...博文来自:Racal

  隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价...博文来自:dragon的专栏

  连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接。当这个连接使用完毕后,将返回到连接池中,等待为...博文来自:Napoleon的专栏

  ATSHA204A加密芯片是ATMEL公司研发的一款高安全性的,功能丰富的加密IC,使用SHA-256算法进行加密操作,内置16*32字节的slot(EEPROM)可以存储用户数据和秘钥,唯一的9字节...博文来自:a5882230的专栏

  一个例子高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一...博文来自:小平子的专栏

  利用CRC32绕过RAR密码(适合于小文本文件)原文标题:教你绕过rar密码 文章仅作rar密码破解的探讨,如有高见还望提出。 题目有点夸大其词,事实是我也没能想出一个更好的描述来总结这篇文...博文来自:林毅洋

  一、适用场景内存属于稀缺资源,不能随意浪费。如果在一个系统中有很多个完全相同或相似的对象,我们就可以使用享元模式,让他们共享一份内存即可,不必每个都去实例化对象,从而节省内存空间。二、模式核心 享...博文来自:小小本科生成长之路

  原文地址:因为需要用,所以才翻译了这个文档。但总归赖于英语水平很有限,翻译出来的中文有可能...博文来自:ymj7150697的专栏

  相信学习编程的同学,或多或少都接触到算法的时间复杂度和空间复杂度了,那我来讲讲怎么计算。        常用的算法的时间复杂度和空间复杂度 一,求解算法的时间复杂度,其具体步骤是: ⑴ 找出算法...博文来自:杨威的博客

  转载请说明原出处,谢谢~~   第三个没有做的是每个显示的背景图的小图的动态外观,原酷狗的背景图的小图标,有normal、hover、down等 多种状态,如图  ...博文来自:Redrain的专栏

  转载请注明出处:     在上一篇blog中介绍过POI检索的使用,本篇blog主要介绍公交信息检索和线路规划的内容。 公交信息检索     实际上,公交信息检索与POI检索、在线建议检索非常相似,也...

  一、前言最近由于研究需要,要用到线性判别分析(LDA)。于是找了很多资料来看,结果发现大部分讲的都是理论知识,因此最后还是看的一知半解,后来终于找到了个英文的文档,作者由PCA引入LDA,看过后豁然开...

  1.当我们发现无法联网时,我们运行下面命令或者ping命令 ip  addr 结果没有显示局域网的IP地址 2.我们去修改网卡配置文件,把网络连接打开 cd / cd  /etc/sys...

  本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框、发评论,及弹出位置的控制。...

  在最近的项目开发中涉及到一个伴奏和类似K歌的功能,最明显的做法就是将播放器里播放的声音扑捉到缓冲区里与麦克风的声音做混合,然后编码发送出去。这里有个关键环节就是混音。因为是音乐类的声音混合,所以要求尽...

  单机最大的TCP连接数及其修改 一个误解: 单个服务器程序可承受最大连接数“理论”上是“65535” .    65535这个数字的由来,很多人想当然地将它与port最大值联系起来。的确,TCP的...

  田发江的专栏微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用

  扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...

  jquery/js实现一个网页同时调用多个倒计时(最新的)11-25阅读数 51万+

  深入理解在Android中线天的凌晨时光,这段时间收获很多.(2)从整理文章,作者从线程--阻塞队列--二进制--线程池的内部机制,一路走来,本来是想写一篇为AsyncTask...博文来自:我一直很棒,这个不用质疑

  1、点击打开遮罩层按钮 2、弹出一个隐藏的div 实现代码如下: 影音先锋 -- ...博文来自:简单就是美

  PHP如何获取刚插入数据的ID 和判断SQL语句是否成功执行博文来自:coder_zyz的专栏

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:九野的博客

  command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行 sql仅可执行DDL、select、DML等...博文来自:Ape55的博客

  在MATLAB中,可以注释一段程序。 使用“%{”和“%}”。 例如 %{ 。。。 %} 即可。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 ...博文来自:知识小屋

  自己整理编写的逻辑回归模板,作为学习笔记记录分享。数据集用的是14个自变量Xi,一个因变量Y的australian数据集。 1. 测试集和训练集3、7分组 australian ...博文来自:Tiaaaaa的博客

  [leetcode] Permut...logarrow:这里用的方法其实不算好,因为用了set,效率会相对比较低,更好的是DFS+判断的方法

本文链接:http://mzi-ads.com/boyishusousuo/503.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top