人工智能例题大纲
1. 用谓词逻辑知识表示方法表示如下知识:
(1) 有人喜欢梅花,有人喜欢菊花,有人既喜欢梅花又喜欢菊花。
(2) 不是每个计算机系的学生都喜欢在计算机上编程序。
解:(1)
定义谓词
P(x):x是人
L(x,y):x喜欢y
其中,y的个体域是{梅花,菊花}。
将知识用谓词表示为:
(x)(P(x)→L(x, 梅花)∨L(x, 菊花)∨L(x, 梅花)∧L(x, 菊花))
解:(2)
定义谓词
S(x):x是计算机系学生
L(x, pragramming):x喜欢编程序
U(x,computer):x使用计算机
将知识用谓词表示为:
(x) (S(x)→L(x, pragramming)∧U(x,computer))
2. 请用语义网络表示如下知识:
高老师从3月到7月给计算机系的学生讲“计算机网络”课。
解:
3. 判断以下子句集是否为不可满足
{P(x)∨Q(x )∨R(x), ﹁P(y)∨R(y), ﹁Q(a), ﹁R(b)}
解:采用归结反演,存在如下归结树,故该子句集为不可满足。
4、证明G是F的逻辑结论
F: (x)(y)(P(f(x))∧(Q(f(y)))
G: P(f(a))∧P(y)∧Q(y)
证:先转化成子句集
对F,进行存在固化,有
P(f(v))∧(Q(f(w)))
得以下两个子句
P(f(v)),Q(f(w))
对﹁G,有
﹁P(f(a))∨﹁P(y) ∨﹁Q(y)
先进行内部合一,设合一{f(a)/y},则有因子
﹁P(f(a)) ∨﹁Q(f(a))
再对上述子句集进行归结演绎推理。其归结树如下图所示,即存在一个到空子句的归结过程。
因此G为真。
5 设有如下结构的移动将牌游戏:
其中,B表示黑色将牌,W表是白色将牌,E表示空格。游戏的规定走法是:
(1) 任意一个将牌可移入相邻的空格,规定其代价为1;
(2) 任何一个将牌可相隔1个其它的将牌跳入空格,其代价为跳过将牌的数目加1。
游戏要达到的目标什是把所有W都移到B的左边。对这个问题,请定义一个启发函数h(n),并给出用这个启发函数产生的搜索树。你能否判别这个启发函数是否满足下界要求在求出的搜索树中,对所有节点是否满足单调限制
解:设h(x)=每个W左边的B的个数,f(x)=d(x)+3*h(x),其搜索树如下:
6 设有如下一组推理规则:
r1: IF E1THEN E2
r2: IF E2AND E3THEN E4
r3: IF E4THEN H
r4: IF E5THEN H
且已知CF(E1)=, CF(E3)=, CF(E5)=。求CF(H)=解:(1) 先由r1求CF(E2)
CF(E2)= × max{0,CF(E1)}
= × max{0,}=
(2) 再由r2求CF(E4)
CF(E4)= × max{0, min{CF(E2 ), CF(E3 )}}
= × max{0, min{, }}=
(3) 再由r3求CF1(H)
CF1(H)= × max{0,CF(E4)}
= × max{0, }=
(4) 再由r4求CF2(H)
CF2(H)= ×max{0,CF(E5)}
= ×max{0, }=
(5) 最后对CF1(H )和CF2(H)进行合成,求出CF(H)
CF(H)= CF1(H)+CF2(H)- CF1(H) ×CF2(H)
=
7 设训练例子集如下表所示:
请用ID3算法完成其学习过程。
解:
设根节点为S,尽管它包含了所有的训练例子,但却没有包含任何分类信息,因此具有最大的信息熵。即:
H(S)= - (P(+)log 2P(+) - P(-)log2 P(-))
式中
P(+)=3/6,P(-)=3/6
即有
H(S)= - ((3/6)*log (3/6) - (3/6)*log (3/6))
= *(-1) - *(-1) = 1
按照ID3算法,需要选择一个能使S的期望熵为最小的一个属性对根节点进行扩展,因此我们需要先计算S关于每个属性的条件熵:
H(S|x i)= ( |S T| / |S|)* H(S T) + ( |S F| / |S|)* H(S F)
其中,T和F为属性x i的属性值,S T和S F分别为x i=T或x i=F时的例子集,|S|、| S T|和|S F|分别为例子集S、S T和S F 的大小。
下面先计算S关于属性x1的条件熵:
在本题中,当x1=T时,有:
S T={1,2,3}
当x1=F时,有:
S F={4,5,6}
其中,S T和S F中的数字均为例子集S中例子的序号,且有|S|=6,| S T |=| S F |=3。
由S T可知:
P(+)=2/3,P(-)=1/3
则有:
H(S T)= - (P(+)log2 P(+) - P(-)log2 P(- ))
= - ((2/3)log2(2/3)- (1/3)log2(1/3)) ==
再由S F可知:
P SF(+)=1/3,P SF(-)=2/3
则有:
H(S F)= - (P SF(+)log2 P ST(+) - P SF(-)log2 P SF(- ))
= - ((2/3)log2(2/3)- (1/3)log2(1/3)) =
将H(S T)和H (S F)代入条件熵公式,有:
H(S|x1)=(|S T|/|S|)H(S T)+ (|S F|/|S|)H(S F)
=(3/6)﹡+ (3/6)﹡
=
下面再计算S关于属性x2的条件熵:
在本题中,当x2=T时,有:
S T={1,2,5,6}
当x2=F时,有:
S F={3,4}
其中,S T和S F中的数字均为例子集S中的各个例子的序号,且有|S|=6,| S T |=4,| S F |=2。
由S T可知:
P ST (+) = 2/4
P ST (-) = 2/4
则有:
H(S T)= - (P ST (+)log2 P ST (+) - P ST (-)log2 P ST (- ))
= - ((2/4)log2(2/4) - (2/4)log2(2/4))
=1
再由S F可知:
P SF (+)=1/2
P SF (-)=1/2
则有:
H(S F)= - (P(+)log2 P(+) - P(-)log2 P(- ))
= - ((1/2)log2(1/2)- (1/2)log2(1/2))
=1
将H(S T)和H (S F)代入条件熵公式,有:
H(S|x2)=(|S T|/|S|)H(S T)+ (|S F|/|S|)H(S F)
=(4/6)﹡1 + (2/6)﹡1
=1
可见,应该选择属性x1对根节点进行扩展。用x1对S扩展后所得到的部分决策树如下图所示。
8八数码难题
f(n)=d(n)+P(n)
d(n) 深度
P(n)与目标距离
显然满足
P(n)≤ h*(n)
即f*=g*+h*
9 修道士和野人问题
解:用m表示左岸的修道士人数,c表示左岸的野人数,b表示左岸的船数,用三元组(m, c, b)表示问题的状态。
对A*算法,首先需要确定估价函数。设g(n)=d(n),h(n)=m+c-2b,则有
f(n)=g(n)+h(n)=d(n)+m+c-2b
其中,d(n)为节点的深度。通过分析可知h(n)≤h*(n),满足A*算法的限制条件。
M-C问题的搜索过程如下图所示。
10 设有如下一组知识: r 1:IF E 1 THEN H r 2:IF E 2 THEN H r 3:IF E 3 THEN H
r 4:IF E 4 AND ( E 5 OR E 6) THEN E 1 已知:CF(E 2)=,CF(E 3)=,CF(E 4)=,CF(E 5)=, CF(E 6)= 求:CF(H)= 解:由r 4得到:
CF(E 1)=×max{0, CF(E 4 AND (E 5 OR E 6))} = ×max{0, min{CF(E 4), CF(E 5 OR E 6)}} =×max{0, min{CF(E 4), max{CF(E 5), CF(E 6)}}} =×max{0, min{CF(E 4), max{, }}} =×max{0, min{, }} =×max{0, } =
由r 1得到:CF 1(H)=CF(H, E 1)×max{0, CF(E 1)} =×max{0, } = 由r 2得到:CF 2(H)=CF(H, E 2)×max{0, CF(E 2)} =×max{0, } =
由r 3得到:CF 3(H)=CF(H, E 3)×max{0, CF(E 3)} =×max{0, } =
根据结论不精确性的合成算法,CF 1(H)和CF 2(H)同号,有:
67
.017.084.048.036.048.036.0)
()()()()(21212,1=-=?-+=?-+=H CF H CF H CF H CF H CF
CF 12(H)和CF 3(H)异号,有:
{}
{}53
.07
.037
.03.0,67.0min 13.067.0)
(,)(min 1)()()(32,132,13,2,1==
--=
-+=
H CF H CF H CF H CF H CF
即综合可信度为CF(H)=
11 设有如下知识:
r1: IF E1()AND E2() THEN E5 () r2: IF E3()AND E4()AND E5()THEN H () 已知: CF (E1)=,CF (E2)=,CF (E3)=,CF (E4)= 求: CF (H )= 解:
CF(E1 AND E2)=*+*= CF(E5)=*=
CF(E3 AND E4 AND E5) =*+*+*=
CF(H)=*=
12设有如下规则:
r1: IF E1 AND E2THEN A={a1, a2} CF={, } r2: IF E3 THEN H={h1, h2} CF={, }
r3: IF A THEN H={h1, h2} CF={, }
已知用户对初始证据给出的确定性为:
CER(E1)= CER(E2)=
CER(E3)=
并假Ω定中的元素个数∣Ω∣=10
求:CER(H)=
解:由给定知识形成的推理网络如下图所示:
(1) 求CER(A)
由r1:
CER(E1AND E2)
=min{CER(E1), CER(E2)}
=min{, } =
m({a1}, {a2})={×, ×} = {, }
Bel(A)=m({a1})+m({a2})=+=
Pl(A)=1-Bel(﹁A)=1-0=1
f(A)=Bel(A)+|A|/|Ω|[Pl(A)-Bel(A)]
=+2/10*[]
=
故
CER(A)=MD(A/E')×f(A)=
(2) 求CER(H)
由r2得
m1({h1}, {h2})={CER(E3)×, CER(E3)×}
={×, ×}
={, }
m1(Ω)=1-[m1({h1})+m1({h2})]
=1-[+]=
由r3得
m 2({h 1}, {h 2})={CER(A)×, CER(A)×} ={×, ×} ={, }
m 2(Ω)=1-[m 2({h 1})+m 2({h 2})] =1-[+]=
求正交和m=m 1⊕m 2 K=m 1(Ω)×m 2(Ω)
+m 1({h 1})×m 2({h 1})+m 1({h 1})×m 2(Ω)+m 1(Ω)×m 2({h 1}) +m 1({h 2})×m 2({h 2})+m 1({h 2})×m 2(Ω)+m 1(Ω)×m 2({h 2}) =×
+×+×+× +×+×+× =++++++ =
32
.0]06.046.065.036.006.036.0[88.01
})]
({)()(})({})({})({[1
)(12121112111=?+?+??=
?Ω+Ω?+??=
h m m m h m h m h m K
h m
同理可得:
34.0]29.046.065.018.029.018.0[88
.01
})]
({)()(})({})({})({[1
)(22122122212=?+?+??=
?Ω+Ω?+??=
h m m m h m h m h m K
h m
故有:m(Ω)=1-[m({h 1})+m({h 2})] =1-[+] = 再根据m 可得
Bel(H)=m({h 1})+m({h 2}) = + = Pl(H)=m(Ω)+Bel(H)=+=1
73.0)66.01(102
66.0)]()([)()(=-?+
=-?Ω
+
=H Bel H Pl H
H Bel H f
CER(H)=MD(H/E')×f(H)=
13用ID3算法完成下述学生选课的例子 假设将决策y 分为以下3类: y 1:必修AI y 2:选修AI y 3:不修AI
做出这些决策的依据有以下3个属性:
x 1:学历层次 x 1=1 研究生,x 1=2 本科 x 2:专业类别 x 2=1 电信类,x 2=2 机电类
x 3:学习基础 x 3=1 修过AI ,x 3=2 未修AI 表给出了一个关于选课决策的训练例子集S 。
该训练例子集S 的大小为8。ID3算法就是依据这些训练例子,以S 为根节点,按照信息熵下降最大的原则来构造决策树的。
解: 首先对根节点,其信息熵为:
)
(log )()(23
1
i i i y P y P S H ∑=-=
其中,3为可选的决策方案数,且有 P(y 1)=1/8,P(y 2)=2/8,P(y 3)=5/8 即有:
H(S)= -(1/8)log 2(1/8)- (2/8)log 2(2/8)- (5/8)log 2(5/8) =
按照ID3算法,需要选择一个能使S 的期望熵为最小的一个属性对根节点进行扩展,因此我们需要先计算S 关于每个属性的条件熵:
||
(/)()
||t i t t S H S x H S S =∑
其中,t 为属性x i 的属性值,S t 为x i =t 时的例子集,|S|和|S t |分别是例子集S 和S t 的大
小。
下面先计算S 关于属性x 1的条件熵:
在表6-1中,x 1的属性值可以为1或2。当x 1=1时,t=1时,有: S 1={1,2,3,4} 当x 1=2时,t=2时,有: S 2={5,6,7,8}
其中,S 1和S 2中的数字均为例子集S 中的各个例子的序号,且有|S|=8,|S 1|=|S 2|=4。 由S 1可知:
Ps 1(y 1)=1/4, Ps 1(y 2)=1/4, Ps 1(y 3)=2/4 则有:
H(S 1)= - Ps 1(y 1)log 2 Ps 1(y 1) - Ps 1(y 2)log 2 Ps 1(y 2 )- Ps 1(y 3)log 2 Ps 1(y 3 ) = -(1/4)log 2(1/4)- (1/4)log 2(1/4)- (2/4)log 2(2/4) =
再由S2可知:
Ps2(y1)=0/4, Ps2(y2)=1/4, Ps2(y3)=3/4
则有:
H(S2)=– Ps2(y2)log2 Ps2(y2 )- Ps2(y3)log2 Ps2(y3 )
=- (1/4)log2(1/4)- (3/4)log2(3/4) =
将H(S1)和H(S2)代入条件熵公式,有:
H(S/x1)=(|S1|/|S|)H(S1)+ (|S2|/|S|)H(S2)
=(4/8)﹡+(4/8)﹡=
同样道理,可以求得:
H(S/x2)=
H(S/x3)=
可见,应该选择属性x3对根节点进行扩展。用x3对S扩展后所得到的得到部分决策树如图所示。
在该树中,节点“x3=1, y3”为决策方案y3。由于y3已是具体的决策方案,故该节点的信息熵为0,已经为叶节点。
节点“x3=2, x1, x2”的含义是需要进一步考虑学历和专业这两个属性,它是一个中间节点,还需要继续扩展。至于其扩展方法与上面的过程类似。
通过计算可知,该节点对属性x1和x2,其条件熵均为1。由于它对属性x1和x2的条件熵相同,因此可以先选择x1,也可以先选择x2。
依此进行下去,若先选择x1可得到如图所示的最终的决策树;若先选择x2可得到如图所示的最终的决策树。
S
x 3=1, y
3
x
3
=2, x
1
, x
2图部分决策树
x
3
=1x3=2
14 (归结反演)
已知:“张和李是同班同学,如果x和y是同班同学,则x的教室也是y的教室,现在张在302教室上课。”
问:“现在李在哪个教室上课”
解:首先定义谓词:
C(x, y) x和y是同班同学;
At(x, u) x在u教室上课。
把已知前提用谓词公式表示如下:
C(zhang, li)
(x) (y) (u) (C(x, y)∧At(x, u)→At(y,u))
At(zhang, 302)
把目标的否定用谓词公式表示如下:
﹁(v)At(li, v)
把上述公式化为子句集:
C(zhang, li)
﹁C(x, y)∨﹁At(x, u)∨At(y, u)
At(zhang, 302)
把目标的否定化成子句式,并用重言式
﹁At(li,v) ∨At(li,v)
代替之。
把此重言式加入前提子句集中,得到一个新的子句集,对这个新的子句集,应用归结原理求出其证明树。
其求解过程如下图所示。
该证明树的根子句就是所求的答案,即“李明在302教室”。
公式:
A估价函数
用来估计节点重要性,定义为从初始节点S0出发,约束经过节点n到达目标节点S g的所有路径中最小路径代价的估计值。一般形式:
f(n)=g(n)+h(n)
其中,g(n)是从初始节点S0到节点n的实际代价;h(n)是从节点n到目标节点S g的最优路径的估计代价。
B A*算法是对A算法的估价函数f(n)=g(n)+h(n)加上某些限制后得到的一种启发式搜索算法
假设f*(n)是从初始节点S0出发,约束经过节点n到达目标节点S g的最小代价,估价函数f(n)是对f*(n)的估计值。记
f*(n)=g*(n)+h*(n)
其中,g*(n)是从S0出发到达n的最小代价,h*(n)是n 到S g的最小代价
如果对A算法(全局择优)中的g(n)和h(n)分别提出如下限制:
第一,g(n)是对最小代价g*(n)的估计,且g(n)>0;
第二,h(n)是最小代价h*(n)的下界,即对任意节点n均有h(n)≤h*(n)。
则称满足上述两条限制的A算法为A*算法。
C 不确定性知识的表示形式:
在C-F模型中,知识是用产生式规则表示的,其一般形式为:
IF E THEN H (CF(H, E))
其中,E是知识的前提条件;H是知识的结论;CF(H, E)是知识的可信度。
D 组合证据
合取:E=E1 AND E2 AND … En时,若已知CF(E1),CF(E2),…,则
CF(E)=min{CF(E1), CF(E2), … ,CF(En)}
析取:E=E1 OR E2 OR … En时,若已知CF(E1),CF(E2),…,则
CF(E)=max{CF(E1), CF(E2), … ,CF(En)}
E 不确定性的更新公式
CF(H)=CF(H, E)×max{0, CF(E)}
若CF(E)<0,则
CF(H)=0
即该模型没考虑E为假对H的影响。
若CF(E)=1,则
CF(H)=CF(H,E)
F 设有知识:IF E1THEN H (CF(H, E1))
IF E2THEN H (CF(H, E2))
则结论H 的综合可信度可分以下两步计算:
(1) 分别对每条知识求出其CF(H)。即
CF 1(H)=CF(H, E 1) ×max{0, CF(E 1)} CF 2(H)=CF(H, E 2) ×max{0, CF(E 2)}
(2) 用如下公式求E 1与E 2对H 的综合可信度
{}
异号)(与
)(若0)(且0)(若0
)(且0)(若)
(,)(min 1)()()
()()()()()()()()(212121212121212121H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF <<≥≥??
?
?
??
??
?-+?++?-+=
G 带加权因子的可信度推理 在这种不确定性推理中,证据的不确定性仍然用可信度因子表示,组合证据的可信度可通过计算得到。对于前提条件
E=E1(ω1) AND E2(ω2) AND …… AND En(ωn) 所对应的组合证据,其可信度由下式计算:
CF(E)= CF(E1)*ω1 +CF(E2)*ω2+……+CF(En)*ωn 如果不满足归一条件,则可信度由下式计算:
CF(E)= (CF(E1)*ω1 +CF(E2)*ω2+……+CF(En)*ωn)/(ω1+ ω2+… ωn)
H 证据理论
设函数m :2Ω→[0,1],且满足
∑Ω
?==ΦA A m m 1
)(0)(
则称m 是2Ω上的概率分配函数,m(A)称为A 的基本概率数。
I 概率分配函数的合成
设m 1和m 2是2Ω上的基本概率分配函数,它们的正交和 21m m m ⊕= 定义为
)]()()()()()([})({2121211i i i i i s m m m s m s m s m K s m ?Ω+Ω?+??=-
其中
)]()()()()()([)()(2
1
1
2
1
2
1
21i n
i
i i i s m m m s m s m s m m m K ?Ω+Ω?+?+
Ω?Ω=∑=
J 信任函数(下限函数)
对任何命题A ?Ω,其信任函数为
1)(})({)()(})({)(1
=Ω+==
Ω=∑∑∑=Ω
?∈
m s m B m Bel s m A Bel n
i
i B A
s i i
K 似然函数(上限函数)
对任何命题A ?Ω,其似然函数为 1
)(1)(1)()
()()]
()(1[1]})({})({[1})({1)(1)(1=Φ-=Ω?-=Ω+Ω=-Ω--=--=-
=?-=∑∑∑=∈
?
∈Bel Bel Pl A Bel m A Bel m s m s m s m A Bel A Pl n
i A
s i i A s i i i
似然函数也称为上限函数,表示对A 的非假信任度。可以看出,对任何命题A ?Ω、 A ?Ω都有
Pl(A)-Bel(A) = Pl(B)-Bel(B) = m(Ω)
L 类概率函数
设Ω为有限域,对任何命题A ?Ω,命题A 的类概率函数为
[]
)()()()(A Bel A Pl A
A Bel A f -?Ω
+
=
M 证据的匹配度表示
设A 是规则条件部分的命题,E '是外部输入的证据和已证实的命题,在证据E '的条件下,命题A 与证据E '的匹配程度为
N 证据的确定性表示
条件部分命题A 的确定性为
CER(A)=MD(A/E ')×f(A) 其中f(A)为类概率函数。
由于f(A) ∈[0, 1],因此CER(A) ∈[0, 1]
O 组合证据的不确定性表示 当组合证据是多个证据的合取时
E=E 1 AND E 2 AND … AND E n 则
CER(E)=min{CER(E 1), CER(E 2), … ,CER(E n )} 当组合证据是多个证据的析取时
E=E 1 OR E 2 OR … OR E n 则
CER(E)=max{CER(E 1), CER(E 2), … . CER(E n )
P 结论的确定性
设有知识 IF E THEN H={h 1, h 2, … , h n } CF={c 1, c 2, … , c n } 则求结论H 的确定性CER(H)的方法如下:
12121({},{},...,{})((),(),,()()1()n n n
i
i m h h h CER E c CER E c CER E c m CRE E c ==???Ω=-?∑L
如果有两条或多条知识支持同一结论H ,例:
IF E 1 THEN H={h 1, h 2, … , h n } CF={c 11, c 12, … , c 1n } IF E 2 THEN H={h 1, h 2, … , h n } CF={c 21, c 22, … , c 2n } 则按正交和求CER(H),即先求出: m 1=m 1({h 1},{h 2},…,{h n }) m 2=m 2({h 1},{h 2},…,{h n })
然后再用公式21m m m ⊕=求m 1和m 2的正交和,最后求得H 的m 。
按公式CER(H)=MD(H/E ') ×f(H)计算结论H 确定性。
Q 信息熵
信息熵是对信息源整体不确定性的度量。假设X 为信源,x i 为X 所发出的单个信息,P(x i )为X 发出x i 的概率,则信息熵可定义为:
)
(log )()
(log )()(log )()(log )()(12211i k
i i r r x P x P x P x P x P x P x P x P X H ∑=-=----=Λ
R 条件熵
条件熵是收信者在收到信息后对信息源不确定性的度量。若假设信源为X ,收信者收到的信息为Y , P(x i /y j )为当Y 为y j 时X 为x i 的条件概率,则条件熵可定义为:
∑∑==-=k i k
j j i j i y x P y x p Y X H 11
)
|(log )|()|(
∑==n i i
h m H Bel 1})
({)()
(1)(H Bel H Pl ?-=)
()()]()([)()(Ω?Ω
+
=-?Ω
+=m H H Bel H Bel H Pl H H Bel H f