AI总结Word格式.docx
《AI总结Word格式.docx》由会员分享,可在线阅读,更多相关《AI总结Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
图1-3气球的状态转换图
怎样描述状态及状态的改变
(1)状态
状态是描述某一类事物中各事物之间的差异而引入的最少的一组变量。
的有序集合。
例:
长方体=<
长,宽,高>
它常表示成如下的矢量形式:
(2)操作
引起状态变化的作用称为操作。
操作可以是一个走步、一段程序、一个动作、一个数学算子等,只要它能引起状态分量的改变。
3)状态空间
状态空间:
所有可能的状态的集合,(从问题原态到问题终态)全部状态集合+全部操作集合。
用三元组表示如下:
<
S,F,G>
S:
初始状态的集合
F:
操作的集合
G:
目标状态的集合
状态空间图
状态空间的图示形式称为状态空间图,其中结点表示状态,有向边(弧)表示运算符。
4)问题的解
如果从问题的初始状态S出发,经过一系列的操作能到达目标状态G,则把在此通路上所经过的操作序列α 称为问题的一个解。
问题的一个解的形式化描述:
Qs,α,Qg>
α=f1,f2,…fn
例1-1设有三枚钱币,分别处在“正”、“反”、“正”状态。
每次只能且必须翻一枚钱币。
问连翻三次后能否达到三枚全朝上或全朝下的状态?
共有8种不同的状态:
操作的集合:
F={a,b,c}。
a表示将钱币q0翻转一次,b表示将钱币q1翻转一次,c表示将钱币q2翻转一次。
▪从Qs=Q5出发,不可能通过三次操作到达Q0=Qg1,这说明从Q5到Q0之间没有所要求的解;
▪而从Q5出发到达Qg2=Q7有7种操作序列,因而有7个解,它们是aab,aba,baa,bbb,bcc,cbc和ccb。
从Qs=Q5出发,不可能通过三次操作到达Qg1=Q0,这说明从Q5到Q0之间没有所要求的解;
而从Q5出发到达Qg2=Q7有7种操作序列,因而有7个解,它们是aab,aba,baa,bbb,bcc,cbc和ccb。
例1-2修道士和野人问题。
在河的左岸有3个修道士、3个野人和1条船,现在要渡河到右岸,但有如下限制条件:
(1)船最多坐2人,修道士和野人都会划船。
(2)在任何岸边野人人数都不能超过修道士人数,否则修道士就会被吃掉。
请规划出一个安全的渡河方案。
首先建立问题的状态空间。
设问题的状态用一个三元组来描述,即:
S=<
m,c,b>
m:
左岸的修道士数,取值范围(0,1,2,3)
c:
左岸的野人数,取值范围(0,1,2,3)
b:
左岸的船数,取值范围(0,1)
有(4×
4×
2=32)种不同的状态。
然后确定所有可能的操作集合,这里每一种过河安排就是一个操作。
设从左岸渡河过去的操作为pmc操作,从右岸渡河过来的操作为qmc操作:
下标m代表此次操作中的修道士数,下标c代表野人数。
则所有操作的集合为
立足于左岸,则经一次pmc操作就使左岸修道士数减m,野人数减c;
经过一次qmc操作就使左岸修道士数增加m,野人数增加c。
一、什么是Prolog语言?
Prolog即PROgramminginLOGic,即用逻辑进行程序设计,它以谓词逻辑为基础,故也称为逻辑型语言。
于20世纪70年代诞生于法国Marseille大学。
二、Prolog语言特点:
(1)有极强的描述能力
(2)能自动实现模式匹配和回溯。
这是人工智能系统中最常用的基本操作,Prolog通过内部合一程序提供了完成这些操作的功能。
(3)递归是Prolog语言的重要特点。
在Prolog程序及其数据结构中大量用到递归。
(4)语法简单,只有三种基本语句。
(5)Prolog语言应用范围广:
非数值处理、应用管理、咨询程序、关系数据库、定理证明、自然语言处理、专家系统等人工智能领域。
例5-1如图5-1所示,请描述该图。
先定义如下谓词。
on(X,Y):
X放在Y上。
above(X,Y):
X在Y的上方。
程序如下:
on(a,b).
on(b,c).
on(c,d).
above(X,Y):
–on(X,Y).
–on(X,Z),above(Z,Y).
如有询问:
?
-on(b,c).则回答为True。
-above(a,c).则Prolog会根据规则求出结果为True。
-above(b,X).则会求出X=c,X=d两个解。
例5-2用加法和乘法实现整除法。
定义以下谓词:
divide(N1,N2,R)表示N1除以N2的整数商为R。
is_integer(X):
产生一个整数X。
于是可写出规则:
divide(N1,N2,R):
-is_integer(R),
P1=R*N2,P2=(R+1)*N2,
P1<
N1,P2>
N1,!
.
is_integer(R)谓词从1开始不断地产生整数1,2,3,…,然后向后传递,若最后两个比较子目标都成功,则截断,此时产生的整数R即为所求。
例5-3求1到N的整数之和。
设谓词sum_to(N,X)表示1到N的整数和等于X:
sum_to(1,1):
–!
sum_to(N,R):
–N=N–1,sum_to(N1,R1),
R=N+R1.
这里第一条规则中用了谓词!
,意谓当N=1时就选这条规则,而不再考虑其余的谓词规则了。
如对第一条规则不用!
,则对目标?
-sum_to(1,X)求解时就会和两个规则都匹配,因为1和N的交不空,而当和第二个子句匹配时就会出现死循环。
讨论
广度优先搜索法的特点:
(1)盲目性大,会产生许多无用结点,效率较低;
(2)如果有解,一定能找到解,且解的路径最短。
(是完备的)
3.全局择优搜索
全局择优搜索的基本思想是:
对新产生的所有子结点计算其估价函数并加入到OPEN表中,然后按f(x)的值对所有结点进行排序,小的在前,大的在后,这样可以保证所选的结点是整个OPEN表中最优的,而不仅仅是在新产生的子结点中最优的。
局部择优搜索过程可以移植到全局择优搜索中,只需把其第6步做更改即可。
全局择优搜索分析
广度优先搜索和代价树的广度优先搜索可以看作是全局择优搜索的特例。
如果在全局择优搜索中不考虑估计部分,只考虑实际付出的部分,即f(x)=g(x),就变成代价树的广度优先搜索;
如果根本不考虑估价函数f(x),仅按子结点生成的先后次序加入到OPEN表的尾部,先生成的结点先选择,就变成普通的广度优先的搜索。
例3-5用全局择优搜索法求解重排九宫问题,设初始状态S0和目标状态Sg如下:
可以这样来定义估价函数:
f(x)=d(x)+h1(x)
其中d(x)表示结点x的深度,h1(x)表示结点x中的数字位置和目标结点中不相同的数字个数。
例如:
例2-13已知:
(1)自然数都是大于零的整数。
(2)所有整数不是偶数就是奇数。
(3)偶数除以2是整数。
求证:
所有自然数不是奇数就是其一半为整数的数。
证明:
首先要把用自然语言描述的知识用谓词逻辑中的公式表示出来。
第一步就是要定义谓词,赋予其含义,确定谓词变元个数及次序并规定其关系。
设定义以下谓词:
N(x):
x是自然数。
I(x):
x是整数。
E(x):
x是偶数。
O(x):
x是奇数。
GZ(x):
x大于零。
又定义一个函数f(x)=x/2,则得到以下公式:
2.6利用归结原理求取问题的答案
求解答案的基本思想和定理证明类似。
其求解步骤如下:
(1)把前提条件用谓词公式表示出来,并且化为相应的子句集S。
(2)把待求解的问题也用谓词公式表示出来,其中含有欲求解的变元。
(3)另设一个特殊的一元谓词ANSWER,其变元和求解问题公式中的变元相同。
(4)把求解公式和ANSWER谓词“或”起来构成析取式,把此析取式化成子句集后并入条件子句集S中形成新子句集S'
。
(5)对S'
用归结原理进行归结。
(6)若归结的结果是ANSWER,则其已实例化的变元就是问题的答案。
例2-14设张三、李四、王五三人中有人从来不说真话,也有人从来不说假话。
某人向这三人分别提出同一个问题:
谁是说假话者?
张三答:
“李四和王五都是说假话者”;
李四答:
“张三和王五都是说假话者”;
王五答:
“张三和李四中至少有一个人是说假话者”。
求谁是说假话者,谁是说真话者?
解:
第一步首先将已知条件用谓词公式表示出来,并化成子句集。
先定义谓词和常量。
设P(x)表示x说真话。
如果张三说的是真话:
P(Zhang)→~P(Wang)∧~P(Li)
如果张三说的是假话:
~P(Zhang)→P(Wang)∨P(Li)
如果李四说的是真话:
P(Li)→~P(Zhang)∧~P(Wang)
如果李四说的是假话:
~P(LI)→P(Zhang)∨P(Wang)
如果王五说的是真话:
P(Wang)→~P(Zhang)∨~P(Li)
如果王五说的是假话:
~P(Wang)→P(Zhang)∧P(Li)
第二步把问题用谓词公式表示出来,并将其否定与谓词ANSWER做析取。
~P(X)∨ANSWER(X)
第三步应用归结原理对上述子句集进行归结。
课堂作业:
已知王先生是小李的老师;
小李与小张是同班同学;
如果x和y是同班同学,则x的老师就是y的老师。
求:
小张的老师是谁?
3.语义网络表示的推理过程
语义网络系统中的推理方法主要有两种:
继承和匹配。
▪
(1)继承推理
在语义网络中,有些层次上的结点具有继承性,上层结点具有的性质下层结点也都具有。
利用这一性质,可以由上层普通结点的性质推出下层特殊结点的性质。
继承又分为值继承和过程继承两种。
▪①值继承
在由ISA、AKO联系的两层结点间,下层结点直接继承上层结点的属性,所以也称为“属性继承”。
比如“轿车是一种汽车”,汽车有方向盘、轮子等,则轿车也有方向盘、轮子等。
▪②过程继承
过程继承又称为方法继承,此时下层结点的某些属性是上层结点没有的,但上层结点中指出了求解这种属性的方法,则下层结点可以继承这种方法,求出这种特殊的属性。
▪
(2)匹配推理
语义网络表示法中匹配推理的过程如下:
①根据要求解的问题构造出一个局部网络称为求解网络,对其中某些结点或弧用变量进行标注,这些变量就是要求解的问题。
②用求解网络搜索知识库,和知识库中的某些语义网络进行匹配
③如求解网络和知识库中的语义网络相匹配,那么匹配的结果会把求解网络中的变量实例化,这种实例化的结果就是所求的解。
例1-8已知在知识库中有下列知识的语义网络,如图所示。
“籍贯为湖南的张山在信息学院读书,该学校位于健翔桥附近,该校由计算机系、信息系和通信系组成。
”
例1-7机器人世界示例。
如下图所示,设机器人处在凹室(alcove)中,A、B为两张桌子,桌子A上放一个盒子box,让机器人把盒子从A放到B上,然后回到原处。
试描述问题的初始状态和目标状态。
图1-11机器人世界的一个状态
首先定义下列谓词:
TABLE(x):
x是桌子。
EMPTY(y):
y手中是空的。
AT(y,z):
y在z旁(里)边。
HOLDS(y,w):
y手中拿着w。
ON(w,x):
w放在x上。
x∈{A,B},y∈{robot},z∈{A,B,alcove},w∈{box}
初始状态是下列语句的合取
AT(robot,alcove)
EMPTY(robot)
ON(box,A)
TABLE(A)
TABLE(B)
目标状态是下列语句的合取:
ON(box,B)
1.3产生式表示法
1.产生式的基本形式
P→Q(IFPTHENQ)
其中P是产生式的前提,Q是一组结论或者操作。
例如,
IF天气晴朗AND无风THEN做登山运动
IF该动物有犬齿AND有爪AND眼盯前方THEN该动物是食肉动物
用巴科斯范式描述产生式
产生式>
:
=<
前提>
→<
结论>
简单条件>
|<
复合条件>
事实>
操作>
and<
[(and<
)…]|<
or<
[(or<
)…]
操作名>
[(<
变元>
…)]
2.产生式系统
产生式系统由以下三部分组成,分别和叙述、过程及控制等三种知识相对应。
(1)全局数据库
又称事实库,是产生式系统的数据结构中心,用以存放初始事实、中间事实和最后结果。
在推理的过程中,当某条规则被激活时,则把该规则的事实加入到数据库中。
全局数据库对应叙述性知识。
(2)规则库
规则库就是描述某领域内知识的产生式规则的集合。
它是产生式系统赖以实现问题求解的基础。
在产生式专家系统中,规则库是专家系统的核心,是专家知识的集中体现。
产生式规则集对应过程性知识。
(3)推理机
是一个或一组程序,是一个软件概念。
用来控制和协调规则库和全局数据库的运行,包括推理方式和控制策略。
控制策略:
控制策略的作用是选用什么样的规则,及如何应用规则。
通常从选择规则到执行操作分三步完成:
匹配、消除冲突和操作。
①匹配。
匹配指用当前全局数据库中的事实与规则中的条件进行比较,如果相同,就称为相匹配,这一规则就称为匹配规则。
②消除冲突。
消除冲突的策略很多,主要有:
–最早匹配原则:
即哪一个产生式规则最先匹配就把它作为启用规则,而不管其余规则。
–最强条件优先原则:
取前提条件最多或情况最复杂的规则优先执行。
–最近用过的规则优先(或反之)。
–对情况元素赋以不同的优先级,与优先级最高的情况元素匹配的规则优先。
–使用估计函数f (x)对规则的条件进行计算,具有最大(或最小)f (x)值的规则优先。
③操作。
操作指执行启用规则的操作部分。
如规则的操作部分是事实,则将此事实加入到全局数据库,这又有可能启动其他规则的执行。
4)推理方式
推理方式有正向推理、反向推理和双向推理三种。
①正向推理
正向推理是从已知事实出发,通过规则库求得结果。
正向推理的方式也被称为数据驱动方式或自底向上方式。
其推理过程是:
(a)用全局数据库中的事实去和规则库中的规则的前件进行匹配,得到匹配的规则集;
(b)使用消除冲突算法,从匹配的规则集中选择一条规则作为启用规则;
(c)执行规则,把执行的结果事实(启用规则的后件)加入到全局数据库中。
上述过程循环进行,全局数据库会不断扩大,直至包含目标时推理便成功结束。
如果无法推出目标且无匹配的规则,则推理以失败结束。
②反向推理
反向推理是从目标出发,反向使用规则,求证已知的事实。
这种推理方式也称为目标驱动方式或自顶向下方式。
(a)在规则库中找出其后件与目标事实匹配的规则,得到匹配的规则集合。
(b)使用消除冲突策略,从匹配集合中选择一条规则作为启用规则。
(c)把启用规则的前件作为子目标。
重复这个过程,直到所有子目标的前件都在全局数据库中,则目标成功;
如某个子目标的前件不在全局数据库中,则推理以失败结束。
③双向推理
双向推理是既自顶向下又自底向上的推理。
推理从两个方向进行,直至在某个中间界面上两方向结果相符便成功结束;
如两方衔接不上,则推理失败。
这种推理方法效率高,所形成的推理网络小,但难度大。
例1-3动物识别系统IDENTIFIER。
这个系统的规则库如下:
R1:
IF动物有毛THEN哺乳动物
R2:
IF动物有奶THEN哺乳动物
R3:
IF动物有羽毛THEN鸟
R4:
IF动物会飞AND会下蛋THEN鸟
R5:
IF动物吃肉AND哺乳动物THEN食肉动物
R6:
IF哺乳动物AND有爪AND眼盯前方AND有犬齿THEN食肉动物
R7:
IF哺乳动物AND有蹄THEN有蹄类动物
R8:
IF哺乳动物AND反刍动物THEN有蹄类动物
R9:
IF食肉动物AND黄褐色AND身上有暗斑点THEN金钱豹
R10:
IF食肉动物AND黄褐色AND身上有黑色条纹THEN虎
R11:
IF有蹄类动物AND有长脖子AND有长腿AND身上有暗斑点THEN长颈鹿
R12:
IF有蹄类动物AND身上有黑色条纹THEN斑马
R13:
IF鸟AND有长脖子AND有长腿AND不会飞AND有黑白两色THEN鸵鸟
R14:
IF鸟AND会游泳AND不会飞AND有黑白二色THEN企鹅
R15:
IF鸟AND善飞THEN信天翁
(a)正向推理:
从当前数据库出发,根据已知的事实寻找能够和前件匹配的规则。
匹配成功后将后件加入数据库。
使用的规则是:
R1(先匹配选用的原则)、R5、R9
(b)反向推理:
先寻找后件是目标的规则,再把该规则的前件作为子目标
R9、R5(先到先匹配的原则)、R1(先到先匹配的原则)
(5)产生式系统的特点
产生式系统具有如下特点:
–全局数据库的内容可以被所有规则访问,没有哪一部分是专门为某一规则设计的,这个特性便于数据驱动推理。
–规则本身不能调用其他规则,规则之间的联系必须通过全局数据库进行。
–全局数据库、规则库和推理机之间相对独立,这种积木式的结构便于整个系统增加和修改知识。
一般的产生式系统可以用下述基本过程PRODUCTION来描述。
过程PRODUCTION
1DATA←初始数据库;
2untilDATA满足终止条件do
3begin
4在规则集中选择能作用到DATA上的规则R;
5DATA←R(DATA)
6end
----Turing测试
Turing测试:
能分辨出人和机器的概率小于50%。
Turing测试的问题:
仅反映了结果的比较,无涉及思维过程
为了检验一台机器是否能合情理地被说成在思考,人工智能的始祖阿伦•图灵提出了一种称作图灵试验的方法,假设有一台电脑,其性能正如上面描述的思维:
按照图灵试验,该电脑和某个自愿者同时接受检查。
另有一方作为质问者。
电脑和自愿者在质问者的视线之外,质问者必须有意识的提出一些检验问题,依赖他们双方做出的回答,来决定两者谁为电脑谁为人类,这些问题以及质问者收到的回答,全部用一种非人格的模式传送,例如打印在键盘上或展现在屏幕上。
质问者不允许从任何一方得到除了这种问答之外的信息。
自愿者真实地回答问题并试图说服质问者,他确实是人而另外一个是一台电脑;
但是该电脑已被编好了“说谎”的程序,也试图说服质问者它是人。
如果质问者在一系列的这种检验的过程中、不能以任何一种方式证明哪个是真正的人、那么该电脑(或电脑程序、或程序员、或设什者等等)音定是通过了这一检验:
”虽然说,不管质问者首先提出什么,都能设想出一种方法仗电脑如人的样子去回答那个特殊问题。
但是,在电脑缺乏任何理解能力的情况下,会因为不断的询问而显露出缺陷来。
尤其是对于具存创造性和需要真正理解的问题,只要质问者能提出具有创造性或需要真正理解的问题,偶尔也可以问一个完全无聊的问题,或者可以加上一两个表面上听起来像是无聊的、而实际上有一点意义的问题,看看电脑能否检测出差别来。
1、图搜索
在状态空间表示法中,问题求解过程转化为在图中寻找从初始状态Qs出发到达目标点Qg的路径问题。
2、隐式存储
只存入一些该问题的相关知识,在问题求解过程中根据推理(或搜索)的需要,逐步地生成问题的状态空间,这种存储方式称为隐式存储。
3、隐式图的搜索过程
在计算机中,根据有关知识逐步产生问题的状态空间图,并检查解是否在其中的过程,称为隐式图的搜索过程。
隐式图的基本搜索过程
步骤1给定初始状态S0;
步骤2用发生器函数Q产生S0的子结点,检查目标结点Sg是否出现,若出现则搜索功;
步骤3若Sg没出现,就用估计函数f(x)对这些结点进行估计,在适当的范围内选择最有希望的结点继续用Q产生它的子结点,直至找到Sg为止。
如果所有可以扩展的结点都已用Q扩展而Sg仍未出现,则搜索失败。
6.与/或树的最佳优先搜索法
步骤1把初始结点S0放入OPEN表中,计算h(S0)的值;
步骤2计算希望解树T,即用搜索树中结点的代价h值来估计一个以S0为根的最佳解树的近根部分;
步骤3依次把OPEN表中T的端结点N选出放入CLOSED表中,并加以编号;
步骤4若N是终止结点,则做以下工作:
①标示N为可解结点;
②对T应用可解标示过程,把N的先辈结点中的可解结点都标示为可解结点;
③若初始结点S0被标示为可解结点,则T就是最优解树,成功退出。
④否则,从OPEN表中删去具有可解先辈结点的所有结点;
步骤5如果结点N不是终止结点,且它不可扩展,则做下列工作:
①标示N为不可解结点;
②对T应用不可解标示过程,把N的先辈结点中的不可解结点都标示为不可解结点;
③若初始结点S0能被标示为不可解结点,则失败退出。
④否则,从OPEN表中删去具有不可解先辈结点的所有结点