游戏开发中的人工智能11
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
FACULTY OF SOFTWARE
规则式AI概述
规则系统最简单的形式由一连串的if-then规 则组成,用来做推论或行动决策。 实际上有限状态机和模糊状态机都是一种规 则系统。 本章中涉及的是专家系统(expert system) 中最常用的规则系统。
6
FACULTY OF SOFTWARE
4
FACULTY OF SOFTWARE
1943年美国数学家Post(波斯特)最早提出产生式系统并把它 用作计算手段。该系统称为Post系统, 目的是构造一种形式化 的计算工具, 并证明它具有和图灵机同样的计算能力。 50年代, Markov(马尔柯夫)提出了一种匹配算法,其思想与 Post类似。 Chomsky(乔姆斯基)为了研究自然语言的结构而 提出文法分层概念, 每层文法有一种特写的“重写规则”, 也 就是语言生成规则。这种重写规则, 就是特殊的产生式。所有 以上这些系统, 在计算能力上都与图灵机等价。 1960年, Backus(巴科斯)提出了著名的BNF, 即巴科斯范式, 用以描写计算机语言的文法, 并首先用来描述 ALGOL60的语 法, 不久即发现, BNF范式基本上即是Chomsky(乔姆斯基)分 层系统中的上下文无关文法。 60年代产生式系统成为认知心理学研究人类心理活动中信息 加工过程的基础, 并且用它来建立人类认知模型。产生式系统 发展成为人工智能系统中最典型最普遍的一种结构, 例如目前 大多数的专家系统都用产生式系统的结构来建造。例如: DENDRAL化学质谱仪分析系统、MYCIN医疗诊断专家系统、 HEARSAY语音识别系统。
注意:对于产生式的激发应加一条件, 就是: 当执行一个产生 式右部的动作不能改变综合数据库的状态时, 既使产生式左部能 与综合数据库匹配, 也不应当在激发这个产生式。否则将产生许 多无用的空转, 甚至是无穷多次空转使产生式系统的运行停不下 15 来。而且, 在一般情况下, 运行产生式系统应该有一个目标。
16
FACULTY OF SOFTWARE
规则系统的推论
演绎法:三个步骤
• 把规则和储存在工作记来自百度文库里的事实配对,做法是检查每 条规则的if部分,是否和工作记忆里的某组事实和断言吻 合。 • 冲突解决(conflict resolution),检查所有吻合的规则, 按照某种方式找出想要启动的规则。
3
FACULTY OF SOFTWARE
例2. 如果张三在A地出差, 并且A地正下大雨, 并且张三 未带雨具, 则张三会被淋湿。 如果张三被淋湿, 并且A地气温较低, 则张三会感冒。 此例可用两个产生式规则和四个事实来进行推 理, 推出结论: 张三会感冒。 象上面这样的把一组产生式放在一起, 象上面这样的把一组产生式放在一起 让它们互 相配合, 协同作用, 相配合 协同作用 一个产生式生成的结论可以供另 一个产生式作为前提使用, 一个产生式作为前提使用 以这种方式求得问题的 解决, 这就叫规则(产生式)系统(Production 解决 这就叫规则(产生式)系统 System) 。产生式系统也可以算作是一种演绎系统。 产生式系统也可以算作是一种演绎系统。
11
FACULTY OF SOFTWARE
2. 产生式规则 规则库 产生式规则(规则库 规则库): 规则库存放产生式(规则), 这些规则表示了问题领域中的一 般知识。 产生式规则的一般形式为: 产生式规则的一般形式为 条件 行动 或: 前提 结论 一般都表示成为: if …… then … 每个规则的左半部表示情况, 表示确定该规则可应用的 先决条件(即什么条件发生时此产生式应该被调用), 右半部 表示动作(描述了应用这条规则后所做的事情)或由左半部前 提得出的结论。 一条产生式规则满足了应用的先决条件之后, 一条产生式规则满足了应用的先决条件之后 就可对综 合数据库进行操作(一般是对数据作某种处理 例如“添加” 一般是对数据作某种处理, 合数据库进行操作 一般是对数据作某种处理 例如“添加”, 增加新数据; 转换 转换” 代替老数据; 删除 删除” 去掉老数据; 增加新数据 “转换”, 代替老数据 “删除”, 去掉老数据 等 使综合数据库发生变化。如综合数据库代表当前状态, 等), 使综合数据库发生变化。如综合数据库代表当前状态 则应用规则后就使状态发生置换, 生成出新状态。 当然, 则应用规则后就使状态发生置换 生成出新状态。 当然 规 则的右部(行动部分 也可以是让用户做某些事情, 例如, 回答 则的右部 行动部分)也可以是让用户做某些事情 例如 行动部分 也可以是让用户做某些事情 一些问题, 即为综合数据库增加某些事实。 一些问题 即为综合数据库增加某些事实。 12
规则式AI概述
规则系统的优点
• 根据一组已知事实以及他们对某特定问题领域的 知识,以人类惯用的思考和推理方式进行模拟。 • 相当容易编写程序和管理。由于编写在规则中的 知识是模块化的,而且规则可以用任何次序编写 程序,所以对编写、调试程序以及日后的修改都 十分方便。
7
FACULTY OF SOFTWARE
8
FACULTY OF SOFTWARE
规则系统基础
规则系统有两个主要部分:工作记忆(working memory)和规则记忆(rule memory) 工作记忆存储已知的事实,以及由规则所做的断言; 规则记忆(简称规则)则含有if-then形式的规则,能 够以储存在工作记忆里的事实运行。 当规则被触发(启动,fire),则这些规则就能触发 某些行动,或引起状态改变。 这些规则也能修改工作记忆的内容,即新增“断言” (assertion)的信息。
FACULTY OF SOFTWARE
2、 逆向产生式系统 、 逆向产生式系统(Backward Production System) 和逆向推理 逆向产生式系统是选取目标状态描述作为初始综 合数据库, 逆向进行求解, 即系统从目标状态出发, 合数据库 逆向进行求解 即系统从目标状态出发 朝 着初始状态方向来使用规则, 产生子目标状态, 反向 着初始状态方向来使用规则 产生子目标状态 朝着初始状态求解, 即递推的方式工作的, 朝着初始状态求解 即递推的方式工作的 我们称这 些规则为B规则 规则。 些规则为 规则。
FACULTY OF SOFTWARE
游戏开发中的人工智能
--------规则式AI
1
FACULTY OF SOFTWARE
规则式AI
规则式AI概述 规则系统基础 规则系统的推论 实例:对战游戏攻击预测
2
FACULTY OF SOFTWARE
规则式AI概述
在自然界的各种知识单元之间存在着大量的因果关 系, 这些因果关系, 或者说前提和结论的关系, 用一 种“如果…, 则…”(if … then …)形式的规则(产生式) 来表示是非常方便的。 如果病人有红色斑点, 并且, 病人发烧, 并且, 例1. 如果病人有红色斑点 并且 病人发烧 并且 病 人是学龄儿童, 则病人患的是水痘。 儿科大夫门诊 儿科大夫门诊} 人是学龄儿童 则病人患的是水痘。 {儿科大夫门诊 可用如下规则来表示这个简单的医疗知识或诊断。 病人有红色斑点∧病人发烧∧病人是学龄儿童? 病人患的是水痘 或: IF病人有红色斑点, 病人发烧, 病人是学龄儿 童,THEN病人患的是水痘;
FACULTY OF SOFTWARE
3. 控制系统 规则解释器 控制系统(规则解释器 规则解释器): 控制系统或策略(Control Strategies)是规则的解释程 序, 它负责整个产生式系统的运行, 规定了如何选择一条可 应用的规则对综合数据库进行操作, 即决定了问题求解过 程的推理路线。 具体来说, 具体来说 控制系统负责规则左部和综合数据库的匹 什么叫匹配上? 配(什么叫匹配上 什么叫匹配不上 按什么次序挑选规则 什么叫匹配上 什么叫匹配不上? 和数据进行匹配?), 负责从匹配成功的规则(可能不止一个 可能不止一个) 和数据进行匹配 负责从匹配成功的规则 可能不止一个 中选出一个加以执行(当有多个规则匹配成功时 当有多个规则匹配成功时, 中选出一个加以执行 当有多个规则匹配成功时 选择规则 即解决冲突的准则是什么?) 即解决冲突的准则是什么 , 负责解释执行规则右部的动 规则右部的动作如何执行?) 作(规则右部的动作如何执行 , 并且负责当综合数据库满 规则右部的动作如何执行 足结束条件时结束产生式系统的运行, 足结束条件时结束产生式系统的运行 还要负责使系统在 求解过程中记住采用过的规则序列, 求解过程中记住采用过的规则序列 以便最终能给出解的 路径。 路径。
9
FACULTY OF SOFTWARE
规则系统基础
一个人工智能产生式系统通常由三个部分组成:
• 一个综合数据库(Globle Database)(数据基) • 一组产生式规则(Set of Rules)(规则库) • 一个控制系统(规则解释器)。
10
FACULTY OF SOFTWARE
1. 综合数据库 数据基 综合数据库(数据基 数据基): 综合数据库是人工智能产生式系统所使用的主要 数据结构, 它用来表述问题状态或有关事实, 数据结构 它用来表述问题状态或有关事实 即它含 有所求解问题的信息, 其中有些部分可以是不变的, 有所求解问题的信息 其中有些部分可以是不变的 有些部分则可能只与当前问题的解有关。 有些部分则可能只与当前问题的解有关。可以根据 问题的性质, 用适当的方法来构造综合数据库的信息。 问题的性质 用适当的方法来构造综合数据库的信息。 注意: 注意 产生式系统的综合数据库的概念与通常所 说的数据库系统中的数据库的概念不同。 说的数据库系统中的数据库的概念不同。产生式系 统的综合数据库(数据基 数据基), 统的综合数据库 数据基 其中存放的数据既是构成 产生式的基本元素, 又是产生式作用的对象。 产生式的基本元素 又是产生式作用的对象。这里所 说的数据是广义的, 它可以是常量、变量、数组、 说的数据是广义的 它可以是常量、变量、数组、向 集合、符号串、 谓词、表结构、表格、 量、集合、符号串、树、谓词、表结构、表格、图 象乃至文件,可以看成一个知识元。 象乃至文件,可以看成一个知识元。根据应用问题 的场合, 的场合,这个综合数据库可以象小的数字矩阵那样 简单,也可以象大的有关索引文件结构那样复杂。 简单,也可以象大的有关索引文件结构那样复杂
13
FACULTY OF SOFTWARE
规则系统的推论
在过程式的语言中, 每一步执行完毕后应做哪一步, 在过程式的语言中 每一步执行完毕后应做哪一步 是确定的。除某些条件判断外, 是确定的。除某些条件判断外 程序的控制流是可 以看得出来的, 既使是非确定性的过程式语言, 以看得出来的 既使是非确定性的过程式语言 也 可大致看出控制流的轮廓。 可大致看出控制流的轮廓。 产生式系统与此相反, 它一般是“数据驱动” 产生式系统与此相反 它一般是“数据驱动”的, 控制流是看不见的。 控制流是看不见的。一个产生式的调用对其它产 生式的影响不是直接传送过去, 生式的影响不是直接传送过去 而是通过修改综合 数据库来间接地实现。产生式系统还有一种“ 数据库来间接地实现。产生式系统还有一种“目 标驱动”方式。 标驱动”方式。产生式系统这两种驱动方式表示 了产生式系统两种最基本的推理方式:正向推理 了产生式系统两种最基本的推理方式 正向推理 归纳法)和逆向推理(演绎法)。 (归纳法)和逆向推理(演绎法)。
14
FACULTY OF SOFTWARE
1、 正向产生式系统 、 正向产生式系统(Forward Production System)和正向推理 和正向推理 正向产生式系统是从初始状态出发, 正向产生式系统是从初始状态出发 朝着目标状态方向来使 用规则, 即正推的方式工作的, 我们称这些规则为F规则 规则。 用规则 即正推的方式工作的 我们称这些规则为 规则。 这个过程可以用下图中的链来表示, 其中每个Si代表综合数据 库的一个状态。S0表示初始状态, St表示目标状态。
FACULTY OF SOFTWARE
规则式AI概述
规则系统最简单的形式由一连串的if-then规 则组成,用来做推论或行动决策。 实际上有限状态机和模糊状态机都是一种规 则系统。 本章中涉及的是专家系统(expert system) 中最常用的规则系统。
6
FACULTY OF SOFTWARE
4
FACULTY OF SOFTWARE
1943年美国数学家Post(波斯特)最早提出产生式系统并把它 用作计算手段。该系统称为Post系统, 目的是构造一种形式化 的计算工具, 并证明它具有和图灵机同样的计算能力。 50年代, Markov(马尔柯夫)提出了一种匹配算法,其思想与 Post类似。 Chomsky(乔姆斯基)为了研究自然语言的结构而 提出文法分层概念, 每层文法有一种特写的“重写规则”, 也 就是语言生成规则。这种重写规则, 就是特殊的产生式。所有 以上这些系统, 在计算能力上都与图灵机等价。 1960年, Backus(巴科斯)提出了著名的BNF, 即巴科斯范式, 用以描写计算机语言的文法, 并首先用来描述 ALGOL60的语 法, 不久即发现, BNF范式基本上即是Chomsky(乔姆斯基)分 层系统中的上下文无关文法。 60年代产生式系统成为认知心理学研究人类心理活动中信息 加工过程的基础, 并且用它来建立人类认知模型。产生式系统 发展成为人工智能系统中最典型最普遍的一种结构, 例如目前 大多数的专家系统都用产生式系统的结构来建造。例如: DENDRAL化学质谱仪分析系统、MYCIN医疗诊断专家系统、 HEARSAY语音识别系统。
注意:对于产生式的激发应加一条件, 就是: 当执行一个产生 式右部的动作不能改变综合数据库的状态时, 既使产生式左部能 与综合数据库匹配, 也不应当在激发这个产生式。否则将产生许 多无用的空转, 甚至是无穷多次空转使产生式系统的运行停不下 15 来。而且, 在一般情况下, 运行产生式系统应该有一个目标。
16
FACULTY OF SOFTWARE
规则系统的推论
演绎法:三个步骤
• 把规则和储存在工作记来自百度文库里的事实配对,做法是检查每 条规则的if部分,是否和工作记忆里的某组事实和断言吻 合。 • 冲突解决(conflict resolution),检查所有吻合的规则, 按照某种方式找出想要启动的规则。
3
FACULTY OF SOFTWARE
例2. 如果张三在A地出差, 并且A地正下大雨, 并且张三 未带雨具, 则张三会被淋湿。 如果张三被淋湿, 并且A地气温较低, 则张三会感冒。 此例可用两个产生式规则和四个事实来进行推 理, 推出结论: 张三会感冒。 象上面这样的把一组产生式放在一起, 象上面这样的把一组产生式放在一起 让它们互 相配合, 协同作用, 相配合 协同作用 一个产生式生成的结论可以供另 一个产生式作为前提使用, 一个产生式作为前提使用 以这种方式求得问题的 解决, 这就叫规则(产生式)系统(Production 解决 这就叫规则(产生式)系统 System) 。产生式系统也可以算作是一种演绎系统。 产生式系统也可以算作是一种演绎系统。
11
FACULTY OF SOFTWARE
2. 产生式规则 规则库 产生式规则(规则库 规则库): 规则库存放产生式(规则), 这些规则表示了问题领域中的一 般知识。 产生式规则的一般形式为: 产生式规则的一般形式为 条件 行动 或: 前提 结论 一般都表示成为: if …… then … 每个规则的左半部表示情况, 表示确定该规则可应用的 先决条件(即什么条件发生时此产生式应该被调用), 右半部 表示动作(描述了应用这条规则后所做的事情)或由左半部前 提得出的结论。 一条产生式规则满足了应用的先决条件之后, 一条产生式规则满足了应用的先决条件之后 就可对综 合数据库进行操作(一般是对数据作某种处理 例如“添加” 一般是对数据作某种处理, 合数据库进行操作 一般是对数据作某种处理 例如“添加”, 增加新数据; 转换 转换” 代替老数据; 删除 删除” 去掉老数据; 增加新数据 “转换”, 代替老数据 “删除”, 去掉老数据 等 使综合数据库发生变化。如综合数据库代表当前状态, 等), 使综合数据库发生变化。如综合数据库代表当前状态 则应用规则后就使状态发生置换, 生成出新状态。 当然, 则应用规则后就使状态发生置换 生成出新状态。 当然 规 则的右部(行动部分 也可以是让用户做某些事情, 例如, 回答 则的右部 行动部分)也可以是让用户做某些事情 例如 行动部分 也可以是让用户做某些事情 一些问题, 即为综合数据库增加某些事实。 一些问题 即为综合数据库增加某些事实。 12
规则式AI概述
规则系统的优点
• 根据一组已知事实以及他们对某特定问题领域的 知识,以人类惯用的思考和推理方式进行模拟。 • 相当容易编写程序和管理。由于编写在规则中的 知识是模块化的,而且规则可以用任何次序编写 程序,所以对编写、调试程序以及日后的修改都 十分方便。
7
FACULTY OF SOFTWARE
8
FACULTY OF SOFTWARE
规则系统基础
规则系统有两个主要部分:工作记忆(working memory)和规则记忆(rule memory) 工作记忆存储已知的事实,以及由规则所做的断言; 规则记忆(简称规则)则含有if-then形式的规则,能 够以储存在工作记忆里的事实运行。 当规则被触发(启动,fire),则这些规则就能触发 某些行动,或引起状态改变。 这些规则也能修改工作记忆的内容,即新增“断言” (assertion)的信息。
FACULTY OF SOFTWARE
2、 逆向产生式系统 、 逆向产生式系统(Backward Production System) 和逆向推理 逆向产生式系统是选取目标状态描述作为初始综 合数据库, 逆向进行求解, 即系统从目标状态出发, 合数据库 逆向进行求解 即系统从目标状态出发 朝 着初始状态方向来使用规则, 产生子目标状态, 反向 着初始状态方向来使用规则 产生子目标状态 朝着初始状态求解, 即递推的方式工作的, 朝着初始状态求解 即递推的方式工作的 我们称这 些规则为B规则 规则。 些规则为 规则。
FACULTY OF SOFTWARE
游戏开发中的人工智能
--------规则式AI
1
FACULTY OF SOFTWARE
规则式AI
规则式AI概述 规则系统基础 规则系统的推论 实例:对战游戏攻击预测
2
FACULTY OF SOFTWARE
规则式AI概述
在自然界的各种知识单元之间存在着大量的因果关 系, 这些因果关系, 或者说前提和结论的关系, 用一 种“如果…, 则…”(if … then …)形式的规则(产生式) 来表示是非常方便的。 如果病人有红色斑点, 并且, 病人发烧, 并且, 例1. 如果病人有红色斑点 并且 病人发烧 并且 病 人是学龄儿童, 则病人患的是水痘。 儿科大夫门诊 儿科大夫门诊} 人是学龄儿童 则病人患的是水痘。 {儿科大夫门诊 可用如下规则来表示这个简单的医疗知识或诊断。 病人有红色斑点∧病人发烧∧病人是学龄儿童? 病人患的是水痘 或: IF病人有红色斑点, 病人发烧, 病人是学龄儿 童,THEN病人患的是水痘;
FACULTY OF SOFTWARE
3. 控制系统 规则解释器 控制系统(规则解释器 规则解释器): 控制系统或策略(Control Strategies)是规则的解释程 序, 它负责整个产生式系统的运行, 规定了如何选择一条可 应用的规则对综合数据库进行操作, 即决定了问题求解过 程的推理路线。 具体来说, 具体来说 控制系统负责规则左部和综合数据库的匹 什么叫匹配上? 配(什么叫匹配上 什么叫匹配不上 按什么次序挑选规则 什么叫匹配上 什么叫匹配不上? 和数据进行匹配?), 负责从匹配成功的规则(可能不止一个 可能不止一个) 和数据进行匹配 负责从匹配成功的规则 可能不止一个 中选出一个加以执行(当有多个规则匹配成功时 当有多个规则匹配成功时, 中选出一个加以执行 当有多个规则匹配成功时 选择规则 即解决冲突的准则是什么?) 即解决冲突的准则是什么 , 负责解释执行规则右部的动 规则右部的动作如何执行?) 作(规则右部的动作如何执行 , 并且负责当综合数据库满 规则右部的动作如何执行 足结束条件时结束产生式系统的运行, 足结束条件时结束产生式系统的运行 还要负责使系统在 求解过程中记住采用过的规则序列, 求解过程中记住采用过的规则序列 以便最终能给出解的 路径。 路径。
9
FACULTY OF SOFTWARE
规则系统基础
一个人工智能产生式系统通常由三个部分组成:
• 一个综合数据库(Globle Database)(数据基) • 一组产生式规则(Set of Rules)(规则库) • 一个控制系统(规则解释器)。
10
FACULTY OF SOFTWARE
1. 综合数据库 数据基 综合数据库(数据基 数据基): 综合数据库是人工智能产生式系统所使用的主要 数据结构, 它用来表述问题状态或有关事实, 数据结构 它用来表述问题状态或有关事实 即它含 有所求解问题的信息, 其中有些部分可以是不变的, 有所求解问题的信息 其中有些部分可以是不变的 有些部分则可能只与当前问题的解有关。 有些部分则可能只与当前问题的解有关。可以根据 问题的性质, 用适当的方法来构造综合数据库的信息。 问题的性质 用适当的方法来构造综合数据库的信息。 注意: 注意 产生式系统的综合数据库的概念与通常所 说的数据库系统中的数据库的概念不同。 说的数据库系统中的数据库的概念不同。产生式系 统的综合数据库(数据基 数据基), 统的综合数据库 数据基 其中存放的数据既是构成 产生式的基本元素, 又是产生式作用的对象。 产生式的基本元素 又是产生式作用的对象。这里所 说的数据是广义的, 它可以是常量、变量、数组、 说的数据是广义的 它可以是常量、变量、数组、向 集合、符号串、 谓词、表结构、表格、 量、集合、符号串、树、谓词、表结构、表格、图 象乃至文件,可以看成一个知识元。 象乃至文件,可以看成一个知识元。根据应用问题 的场合, 的场合,这个综合数据库可以象小的数字矩阵那样 简单,也可以象大的有关索引文件结构那样复杂。 简单,也可以象大的有关索引文件结构那样复杂
13
FACULTY OF SOFTWARE
规则系统的推论
在过程式的语言中, 每一步执行完毕后应做哪一步, 在过程式的语言中 每一步执行完毕后应做哪一步 是确定的。除某些条件判断外, 是确定的。除某些条件判断外 程序的控制流是可 以看得出来的, 既使是非确定性的过程式语言, 以看得出来的 既使是非确定性的过程式语言 也 可大致看出控制流的轮廓。 可大致看出控制流的轮廓。 产生式系统与此相反, 它一般是“数据驱动” 产生式系统与此相反 它一般是“数据驱动”的, 控制流是看不见的。 控制流是看不见的。一个产生式的调用对其它产 生式的影响不是直接传送过去, 生式的影响不是直接传送过去 而是通过修改综合 数据库来间接地实现。产生式系统还有一种“ 数据库来间接地实现。产生式系统还有一种“目 标驱动”方式。 标驱动”方式。产生式系统这两种驱动方式表示 了产生式系统两种最基本的推理方式:正向推理 了产生式系统两种最基本的推理方式 正向推理 归纳法)和逆向推理(演绎法)。 (归纳法)和逆向推理(演绎法)。
14
FACULTY OF SOFTWARE
1、 正向产生式系统 、 正向产生式系统(Forward Production System)和正向推理 和正向推理 正向产生式系统是从初始状态出发, 正向产生式系统是从初始状态出发 朝着目标状态方向来使 用规则, 即正推的方式工作的, 我们称这些规则为F规则 规则。 用规则 即正推的方式工作的 我们称这些规则为 规则。 这个过程可以用下图中的链来表示, 其中每个Si代表综合数据 库的一个状态。S0表示初始状态, St表示目标状态。