人工智能技术导论复习大纲

时间:2024-02-17 19:50:58

一、人工智能概述

1、什么是人工智能?谈谈你对人工智能的认识。
“ArtificialIntelligence”,简称AI。目前的“人工智能”一词是人造智能,指用计算机模拟或实现的智能,同时,人工智能又是一个学科名称。

研究人工智能也是当前信息化社会的迫切要求。我们知道, 人类社会现在已经进入了信息化时代。信息化的进一步发展, 就必须有智能技术的支持。例如, 当前迅速发展着的互联网(Internet)、万维网(WWW)和网格(Grid)就强烈地需要智能技术的支持。也就是说,人工智能技术在Internet、 WWW和Grid上将发挥重要作用。
智能化也是自动化发展的必然趋势。自动化发展到一定水平, 再向前发展就必然是智能化。事实上,智能化将是继机械化、自动化之后, 人类生产和生活中的又一个技术特征。  
人工智能作为一门学科, 其研究目标就是制造智能机器和智能系统, 实现智能化社会。随着人工智能的发展人类社会会更加智能化,更加美好!

 

2、人工智能有哪些应用领域或课题?

1)、难题求解

2)、自动规划、调度与配置

3)、机器定理证明

4)、自动程序设计

5)、机器翻译

6)、智能控制

7)、智能管理

8)、智能决策

9)、智能通讯

10)、智能仿真

11)、智能CAD(计算机辅助设计Computer Aided Design)

12)、智能制造

13)、智能CAI(计算机辅助教学Computer Aided Instruction)

14) 、智能人机接口

15) 、模式识别

16)、数据挖掘与数据库中的知识发现

17)、计算机辅助创新

18)、计算机文艺创作

19)、机器博弈

20)、智能机器人

 

二、逻辑程序设计语言PROLOG

PROLOG是一种逻辑型智能程序设计语言,以horn子句逻辑为基础,因此用它编写的程序就是逻辑程序,即在PROLOG程序中一般不需告诉计算机“怎么做”,只需要告诉它“做什么”。

1.试编写一个描述亲属关系的PROLOG程序,然后再给出一些事实数据,建立一个小型演绎数据库。

提示:可以以父亲和母亲为基本基本关系(作为基本谓词),再由此描述祖父、祖母、兄弟、姐妹以及其他亲属关系。

 

domains
     name=symbol
     sex=symbol    age=integer.
predicates
     person(name,sex,age)   
     mother(name,name)    
     father(name,name)    
     brother(name,name)
     sister(name,name)     
     grandfather(name,name)    
     grandmother(name,name)
goal
     brother(Name1,Name2),write(Name1," is ",Name2,"\'s brother!\n "), 
     sister(Name3,Name4),write(Name3," is ",Name4,"\'s sister!\n "),
     grandfather(Name5,Name6),write(Name5," is ",Name6,"\'s grandfather!\n "),
     grandmother(Name7,Name8),write(Name7," is ",Name8,"\'s grandmother!\n ").
clauses
     person(alan,m,21).   
     person(john,m,22).   
     person(marry,w,23).   
     person(ann,w,24).
     mother(alice,alan).   
     mother(alice,john).   
     mother(alice,marry).   
     mother(alice,ann).
     mother(marry,jane).  
     father(alan,tom).     
     father(tom,ben).
     brother(Name1,Name2):-person(Name1,m,Age1),person(Name2,m,Age2),mother(Z,Name1),mother(Z,Name2),Age1>Age2.
     sister(Name3,Name4):-person(Name3,w,Age3),person(Name4,w,Age4),mother(Z,Name3),mother(Z,Name4),Age3>Age4.
     grandfather(Name5,Name6):-father(Name1,Y),father(Y,Name2).
     grandmother(Name7,Name8):-mother(Name7,X),mother(X,Name8).

 

下面是一个求阶乘程序,程序中使用了递归。

/* a Factorial Program */
domains
    n, f = integer
predicates
    factorial(n, f)
goal
    readint(I),
    factorial(I, F),
    write(I, "!=", F).
clauses
    factorial(1, 1).
    factorial(N, Res) :-
              N > 0,
              N1 = N - 1,
              factorial(N1, FacN1),
              Res = N * FacN1.

 

DOMAINS
    name = symbol
PREDICATES
    likes(name, name)
    friend(name, name)
GOAL
    friend(john,Y), write("Y = ", Y).
CLAUSES
    likes(bell, sports).
    likes(mary, music).
    likes(mary, sports).
    likes(jane, smith).
    friend(john, X) :- likes(X, sports), likes(X, music).
    friend(john, X) :- likes(X, reading), likes(X, music).

 

三、搜索与求解

1、何为状态图和与或图?

状态图:描述问题的有向图,图中的节点表示问题的一个状态,边表示两个节点之间的联系,可以是某种操作、规则、算子、通道或关系等等。

与或图:图中的弧线表示所连边为“与”关系,不带弧线的边为或关系。这个图中既有与关系又有或关系,因此被称为与或图。但这个与或图是一种特殊的与或图, 称为与或树。

 

2、图搜索与问题求解有什么关系?

问题求解是目的, 图搜索是方法。在图中搜索得到的路径或目标就是问题的解。

 

3、什么是问题的解?什么是最优解?

能够解决问题的方法或具体做法称为这个问题的解。其中最好的解决方法称为最优解。

 

4、图的搜索方式和策略?

5、请阐述状态空间的一般搜索过程。OPEN表和CLOSED表的作用是什么?

解:OPEN表:用于存放刚生成的节点;CLOSED表:用于存放将要扩展或已扩展的节点。

 

6、广度优先搜索与深度优先搜索各有什么特点?

(1)广度优先搜索就是始终先在同一级节点中考查,只有当同一级节点考查完之后,才考查下一级节点。或者说,是始终以初始节点为根节点,向下诸暨扩展搜索树。所以,广度优先策略的搜索树是自顶向下一层一层逐渐生成的。

(3)深度优先搜索就是在搜索树的每一层始终先只扩展一个子节点,不断地向纵深前进,直到不能再前进时,才从当前节点返回到上一级节点,沿一个方向又继续前进。这种方法的搜索树是从树根开始一枝一枝逐渐形成的。深度优先搜索亦称为纵向搜索。由于一个有解的问题树可能含有无穷分枝,深度优先搜索如果误入无穷分枝,则不可能找到目标节点。所以,深度优先搜索策略是不完备的。另外,应用此策略得到的解不一定是最佳解(最短路径)。广度优先搜索和深度优先搜索都属于盲目搜索。

 

7、博弈树:

描述博弈过程的与或树。自己一方扩展的节点之间是“或”关系, 对方扩展的节点之间是“与”关系。双方轮流地扩展节点。 对“或”节点, 选其子节点中一个最大的得分作为父节点的得分,这是为了使自己在可供选择的方案中选一个对自己最有利的方案;对“与”节点, 选其子节点中一个最小的得分作为父节点的得分,这是为了立足于最坏的情况。

 

8、何为估价函数?在估价函数中,g(x)和h(x)各起到什么作用?

估价函数的任务是估计待搜索节点的重要程度,给它们排定次序。

g(n)是起始点到n的实际路径代价,h(n)就是n到达目标点最短路径的启发函数。

 

8、有一农夫带一条狼,一只羊和一框青菜与从河的左岸乘船倒右岸,但受到下列条件的限制:

(1) 船太小,农夫每次只能带一样东西过河;

(2) 如果没有农夫看管,则狼要吃羊,羊要吃菜。

请设计一个过河方案,使得农夫、浪、羊都能不受损失的过河,画出相应的状态空间图。

题示:(1) 用四元组(农夫,狼,羊,菜)表示状态,其中每个元素都为0或1,用0表示在左岸,用1表示在右岸。 (2) 把每次过河的一种安排作为一种操作,每次过河都必须有农夫,因为只有他可以划船。

解:

第一步,定义问题的描述形式

用四元组S=(f,w,s,v)表示问题状态,其中,f,w,s和v分别表示农夫,狼,羊和青菜是否在左岸,它们都可以取1或0,取1表示在左岸,取0表示在右岸。

第二步,用所定义的问题状态表示方式,把所有可能的问题状态表示出来,包括问题的初始状态和目标状态。

由于状态变量有4个,每个状态变量都有2种取值,因此有以下16种可能的状态:

S0=(1,1,1,1),S1=(1,1,1,0),S2=(1,1,0,1),S3=(1,1,0,0)

S4=(1,0,1,1),S5=(1,0,1,0),S6=(1,0,0,1),S7=(1,0,0,0)

S8=(0,1,1,1),S9=(0,1,1,0),S10=(0,1,0,1),S11=(0,1,0,0)

S12=(0,0,1,1),S13=(0,0,1,0),S14=(0,0,0,1),S15=(0,0,0,0)

其中,状态S3,S6,S7,S8,S9,S12是不合法状态,S0和S15分别是初始状态和目标状态。

第三步,定义操作

即用于状态变换的算符组F 由于每次过河船上都必须有农夫,且除农夫外船上只能载狼,羊和菜中的一种,故算符定义如下:

L(i)表示农夫从左岸将第i样东西送到右岸(i=1表示狼,i=2表示羊,i=3表示菜,i=0表示船上除农夫外不载任何东西)。由于农夫必须在船上,故对农夫的表示省略。

R (i)表示农夫从右岸将第i样东西带到左岸(i=1表示狼,i=2表示羊,i=3表示菜,i=0表示船上除农夫外不载任何东西)。同样,对农夫的表示省略。
这样,所定义的算符组F可以有以下8种算符:

L (0),L (1),L (2),L (3)  R(0),R(1),R (2),R (3)

第四步,根据上述定义的状态和操作进行求解。 该问题求解过程的状态空间图如下:     

  

9.设有三只琴键开关一字排开,初始状态为“关、开、关”,问连按三次是否会出现“开、开、开”或“关、关、关”的状态?要求每次必须按下一个开关,而且只能按一个开关。请画出状态空间图。

用(k1、k2、k3)表示三个开关的状态,取值为0表示关闭,为1表示打开。则初始值为(0,1,0)。根据题目要求,一个状态的和下一个状态,只能有一位取值不同(此为状态转换规则),据此画出状态空间图。

 从此图看出,经过连续的三步只能到达状态(0,0,0),而不能到达状态(1,1,1)。

四、基于遗传算法的随机优化搜索

1.遗传算法是一种什么样的算法? 它适合于解决哪一类问题?
遗传算法时人们从生物界按自然选择和有性繁殖、遗传变异的自然进化现象中得到启发,而设计出来的一种随机优化搜索算法

遗传算法适合解决先验知识缺乏, 希望寻找最优解,搜索空间不连续的这一类问题,如机器学习、规划、聚类、控制、调度等领域的问题。
  
2. 举例说明遗传算法中的三种遗传操作。
选择-复制、交叉和变异

五、基于谓词逻辑的演绎推理

 求子句集的步骤

(1)消去蕴含词→和等值词←→。

可使用逻辑等价式:
            ①A→B         ⇔ 乛A∨B
            ②A← →B     ⇔  (乛A∨B)∧(乛B∨A)
(2)缩小否定词的作用范围,直到其仅作用于原子公式。

可使用逻辑等价式:
        ①乛(乛A)    ⇔  A
        ②乛(A∧B)   ⇔  乛A∨乛B
        ③乛(A∨B)   ⇔  乛A∧乛B
    ④乛∀xP(x)   ⇔  ∀x乛P(x)
    ⑤乛∃ xP(x)   ⇔  ∃x乛P(x)

(3)适当改名,使量词间不含同名指导变元和约束变元。
(4)消去存在量词。
       消去存在量词时,同时还要进行变元替换。变元替换分两种情况:
       ①若该存在量词在某些全称量词的辖域内,则用这些全称量词指导变元的一个函数代替该存在量词辖域中的相应约束变元,这样的函数称为Skolem函数;  
  ②若该存在量词不在任何全称量词的辖域内,则用一个常量符号代替该存在量词辖域中的相应约束变元,这样的常量符号称为Skolem常量。
(5)消去所有全称量词。
(6)化公式为合取范式。
         可使用逻辑等价式:
          ①A∨(B∧C)   ⇔ (A∨B)∧(A∨C)
          ②(A∧B)∨C   ⇔ (A∨C)∧(B∨C)
(7)适当改名,使子句间无同名变元。
(8)消去合取词∧,以子句为元素组成一个集合S。

 

 

设已知:
(1)    如果x是y的父亲,y是z的父亲,则x是z的祖父;
(2)    每个人都有一个父亲。
使用归结演绎推理证明:对于某人u,一定存在一个人v,v是u的祖父。
    解:先定义谓词
    F(x,y):x是y的父亲
    GF(x,z):x是z的祖父
    P(x):x是一个人
    再用谓词把问题描述出来:
    已知

F1:( ∀x) ( ∀y) ( ∀z)( F(x,y)∧F(y,z))→GF(x,z))
F2:( ∀y)(P(x)→F(x,y))

求证结论G:

(∃u) ( ∃v)( P(u)→GF(v,u))

将结论取反后

=¬(∃u) ( ∃v)( P(u)→GF(v,u))

=( ∀u)( ∃v)( ¬P(u)∨GF(v,u))

=( ∀u)( ∀v)( P(u)∧GF(v,u))


然后再将F1,F2和¬G化成子句集:
① ¬F(x,y)∨¬F(y,z)∨GF(x,z)
② ¬P(r)∨F(s,r)
③ P(u)
④ ¬GF(v,u))

对上述扩充的子句集,其归结推理过程如下:

假设张被盗,*局派出5个人去调查。案情分析时,贞察员A说:“赵与钱中至少有一个人作案”,贞察员B说:“钱与孙中至少有一个人作案”,贞察员C说:“孙与李中至少有一个人作案”,贞察员D说:“赵与孙中至少有一个人与此案无关”,贞察员E说:“钱与李中至少有一个人与此案无关”。如果这5个侦察员的话都是可信的,使用归结演绎推理求出谁是盗窃犯。
解:(1) 先定义谓词和常量
设C(x)表示x作案,Z表示赵,Q表示钱,S表示孙,L表示李
(2) 将已知事实用谓词公式表示出来
赵与钱中至少有一个人作案:C(Z)∨C(Q)
钱与孙中至少有一个人作案:C(Q)∨C(S)
孙与李中至少有一个人作案:C(S)∨C(L)
赵与孙中至少有一个人与此案无关:¬ (C (Z)∧C(S)),即 ¬C (Z) ∨¬C(S)
钱与李中至少有一个人与此案无关:¬ (C (Q)∧C(L)),即 ¬C (Q) ∨¬C(L)
(3) 将所要求的问题用谓词公式表示出来,并与其否定取析取。
设作案者为u,则要求的结论是C(u)。把其否定化为子句形式再析取一个辅助谓词CA(u)得:
¬ C(u) ∨CA(u)
(4) 对上述扩充的子句集,按归结原理进行归结,其修改的证明树如下:

因此,钱是盗窃犯。实际上,本案的盗窃犯不止一人。根据归结原理还可以得出:

 

 

因此,孙也是盗窃犯。

六、基于产生式规则的机器推理

1、知识(Knowledge)是人们在改造客观世界的实践中形成的对客观事物(包括自然的和人造的)及其规律的认识

知识=事实+规则+概念    

 

2、产生式系统

产生式系统由三部分组成: 产生式规则库、 推理机和动态数据库, 其结构如图所示。

 产生式系统的结构

 

2、问题求解、 图搜索和产生式系统三者的关系是: 问题求解是目的, 图搜索是方法, 产生式系统是形式。  
基于产生式系统的推理就是图搜索,关于图搜索的各种策略, 对于产生式系统也仍然适用。

 

3、你对产生式规则作为一个知识表示形式是如何看待和理解的?

产生式的一般形式为

〈前件〉→〈后件〉 

其中, 前件就是前提, 后件是结论或动作,前件和后件可以是由逻辑运算符AND、OR、NOT组成的表达式。 

产生式规则的语义是: 如果前提满足,则可得结论或者执行相应的动作, 即后件由前件来触发。 所以, 前件是规则的执行条件, 后件是规则体

在自然语言表达中,人们广泛使用的各种“原因→结果”,“条件→结论”,“前提→操作”,“事实→进展”,“情况→行为”等结构,都可归结为产生式的知识表达形式。

 

2、产生式规则与逻辑蕴含式以及PROLOG中的规则是何关系?


蕴涵式只是产生式的一种特殊情况。理由如下:
      (1)蕴涵式只能表示精确知识,其值非“真”即“假”,而产生式不仅可以表示精确知识,而且还可以表示不精确知识。
例如,MYCIN中有如下产生式:

   IF    本微生物的染色斑是革兰氏阴性
                    本微生物的形状呈杆状
                    病人是中间宿主
    THEN   该微生物是绿脓杆菌,可信度为CF=0.6

CF表示知识的强度,谓词逻辑中的蕴涵式不可以这样做。   
       (2)用产生式表示知识的系统中,“事实”与产生式的“前提”中所规定的条件进行匹配时,可以是“精确匹配”,也可以是基于相似度的“不精确匹配”,只要相似度落入某个预先设定的范围内,即可认为匹配。但对谓词逻辑的蕴涵式而言,其匹配必须是精确的。

在PROLOG程序中要表示产生式规则, 至少有两种形式: 

  (1) 用PROLOG的规则表示产生式规则。
  (2) 用PROLOG的事实表示产生式规则。  

   对这两种表示, 对应的推理机是不一样的。若用方法(1), 则一般就不必编写显式的推理机程序, 因为对于这种形式的规则, PROLOG语言的翻译程序就是它的推理机。但若用方法(2), 则就必须用PROLOG语言编写显式的推理机程序。

    但并非凡是用PROLOG规则表示的产生式规则, 都可直接使用PROLOG的推理机。例如,                                                

 rule(X, Y):-Y=X+1. 

这是一个含变量的规则, 其中X为前提, Y是结论。也就是说, 在推理时是把rule(X,Y)作为规则使用的。显然, 对于这种形式的规则, 仍然需要重新编写推理机。

七、几种结构化知识表示及其推理

框架:

下面是一个描述自己宿舍的框架:
一个具体的宿舍框架,上位框架是<房间>,内部设施见<房间>

框架名:<宿舍>
类属:<房间>
地点:西校12号楼
门牌号:5101
所属专业:计算机科学与技术专业
成员:xxx、xxx、xxx、xxx、xxx、xxx
人数:6

语义网络:

是一个 ISA

是一种 AKO

是一部分 a-part-of

是成员 a-menber-of

有 have

用一个语义网络表示下列命题。  
    (1) 小明他大舅他二舅都是他舅。
    (2) 大舅和二舅都有妻子和一儿一女。
    (3) 大舅在新世界百货当保安。
    (4) 二舅在山东工商学院当老师。
    (5) 新世界百货是一所超市,卖日用品。
    (6) 山东工商学院是一所大学,在海边。

八、不确定性知识的表示与推理

什么是贝叶斯网络?

贝叶斯网络是一种以随机变量为节点,以条件概率为节点间关系强度的有向无环图。是描述事物之间因果关系或依赖关系的一种直观图形,所以贝叶斯网络可以作为一种不确定性知识的表示形式和方法。

6.8  设有如下一组推理规则:

    r1:  IF  E1  THEN  E2 (0.6)
    r2:  IF  E2  AND  E3  THEN  E4 (0.8)
    r3:  IF  E4  THEN  H (0.7)
    r4:  IF  E5  THEN  H (0.9)

且已知CF(E1)=0.5,  CF(E3)=0.6,  CF(E5)=0.4。求CF(H)=?
    解:

(1) 先由r1求CF(E2)
        CF(E2)=0.6 × max{0,CF(E1)}
             =0.6 × max{0,0.5}=0.3
(2) 再由r2求CF(E4)
        CF(E4)=0.8 × max{0, min{CF(E2 ), CF(E3 )}}
             =0.8 × max{0, min{0.3, 0.6}}=0.24
(3) 再由r3求CF1(H)
CF1(H)= 0.7 × max{0,CF(E4)}
      =0.7 × max{0, 0.24)}=0.168
(4) 再由r4求CF2(H)
CF2(H)= 0.9 ×max{0,CF(E5)}
      =0.9 ×max{0, 0.4)}=0.36
(5) 最后对CF1(H )和CF2(H)进行合成,求出CF(H)
CF(H)= CF1(H)+CF2(H)+ CF1(H) × CF2(H)
        =0.168+0,36-0.06048

        =0.46752

九、机器学习与知识发现

1、机器学习概念:

让计算机模拟人的学习行为,或者说让计算机也具有学习能力

2、机器学习原理:

(1)经验积累过程

(2)知识生成过程

(3)知识运用过程

机器学习三要素:信息、发现、知识

分别对应机器学习的对象、方法和目标

 

3、什么是决策树  

决策树(decision tree)也称判定树,它是由对象的若干属性、属性值和有关决策组成的一棵树。其中的节点为属性(一般为语言变量),分枝为相应的属性值(一般为语言值),叶子节点为决策结果。

 

 4、神经网络学习

生物神经元

主要由细胞体、树突、轴突三部分组成,其中轴突末端形成许多细的分叉,称为神经末梢。

人工神经元:

如果我们对生物神经元作以适当的结构简化和功能抽象,就得到所谓的人工神经元。 一般地,人工神经元的结构模型如图9―8所示。它是一个多输入单输出的非线性阈值器件。

其中x1,x2,…xn表示神经元的n个输入信号量;w1,w2,…,wn表示对应输入的权值,它表示各信号源神经元与该神经元的连接强度

A表示神经元的输入总和,它相应于生物神经细胞的膜电位,称为激活函数;y为神经元的输出;θ表示神经元的阈值。于是, 人工神经元的输入、 输出关系可描述为:

函数y=f(A)称为特性函数(亦称作用函数或传递函数)。特性函数可以看作是神经元的数学模型。常见的特性函数有一下几种。

 

如果将多个神经元按某种拓扑结构连接起来,就构成了神经网络。

十、名词解释

人工智能

遗传算法

贝叶斯网络

机器学习

产生式规则

神经网络