人工智能及其应用
第二章 知识表示方法
目前常用的知识表示方法有:状态空间法、问题归约法、谓词逻辑、语义网络、本体技术等
对于传统人工智能问题,任何比较复杂的求解技术都离不开两方面的内容————表示与搜索
2.1 状态空间表示
在分析了人工智能研究中运用的问题求解方法之后,就会发现许多问题求解方法是采用试探搜索方法的。也就是说,这些方法是通过在某个可能的解空间内寻找一个解来求解问题的。这种基于解答空间的问题表示和求解方法就是状态空间法,它是以状态和算符为基础来表示和求解问题的
2.1.1 问题状态描述
状 态 : Q = [ q 0 , q 1 , ⋯ , q n ] T , 式 中 每 个 元 素 q i 为 集 合 的 分 量 , 称 为 状 态 变 量 。 当 q i 的 值 给 定 时 就 得 到 一 个 具 体 的 状 态 状态:Q=[q_0,q_1,\cdots,q_n]^T,\quad式中每个元素q_i为集合的分量,称为状态变量。当q_i的值给定时就得到一个具体的状态 状态:Q=[q0,q1,⋯,qn]T,式中每个元素qi为集合的分量,称为状态变量。当qi的值给定时就得到一个具体的状态
使问题从一种状态变化为另一种状态的手段称为操作符或算符。
问题的状态空间是一个表示该问题全部可能状态及其关系的图,包含三种说明的集合,即所有可能的问题初始状态集合 S S S、操作符集合 F F F以及目标状态集合 G G G。因此可以把状态空间记为三元状态 ( S , F , G ) (S,F,G) (S,F,G)
要完成某个问题的状态描述,必须确定三件事:
- 该状态描述方式,特别是初试状态描述;
- 操作符集合及其对状态描述的作用;
- 目标状态描述的特性;
2.1.2 状态图示法
搜索某个状态空间以求得算符序列的一个解答的过程,就对应于使隐式图足够大一部分变为显示以便包含目标节点的过程。这样的搜索图使状态空间问题求解的主要基础
2.2 问题归约表示
问题归约是另一种基于状态空间的问题描述与求解方法。已知问题的描述,通过一系列变换把此问题最终变为一个本原问题集合;这些本原问题的解可以直接得到,从而解决了初始问题
问题归约表示可由下列三部分组成:
- 一个初始问题描述;
- 一套把问题变换为子问题的操作符;
- 一套本原问题描述;
从目标出发逆向思维,建立子问题以及子问题的子问题,直至最后把初始问题归约为一个平凡的本原问题集合,这就是问题归约的实质
2.2.1 问题归约描述
与或图————能有效说明如何由问题归约法求得问题的解答
问题归约方法应用算符来把问题描述变换为子问题描述
问题归约方法可以应用状态、算符和目标这些表示法来描述问题,这并不意味着问题归约法和状态空间法是一样的
所有问题归约的目的是最终产生具有明显解答的本原问题。
本原问题除了对终止搜索过程起着明显的作用外,有时还被用来限制归约过程中产生后继问题的替换集合
2.2.2 与或图表示
在状态空间搜索中,应用的普通图不会出现与结点
与或图需要有其特有的搜索技术,而且是否存在与结点也就成为区别两种问题求解方法的主要依据
与或图中的起始节点对应于原始问题描述,而对应于本原问题的节点叫做终叶结点
-
在与或图上执行的搜索过程,其目的在于表明起始节点是有解的。与或图中一个可解节点的一般定义归纳如下:
- 终叶节点是可解节点
- 如果某个非终叶节点含有或后继节点,那么只要当其后继节点一个是可解的,此非终叶节点才是可解的
- 如果某个非终叶节点含有与后继节点,那么只有当其后继节点全部为可解的,此非终叶节点才是可解的
于是,一个解图被定义为那些可解节点的子图,这些节点能够证明其初始节点是可解的
-
当与或图中某些非终叶节点完全没有后继节点时,就说它是不可解的。不可解节点的一般定义归纳如下:
- 没有后裔的非终叶节点为不可解节点
- 如果某个非终叶节点含有或后继节点,那么只有当其全部后裔为不可解时,此非终叶节点才是不可解的
- 如果某个非终叶节点含有与后继节点,那么只要当其后裔至少有一个为不可解时,此非终叶节点才是不可解的
在求解时与状态空间问题求解一样,很少使用显示图来搜索,而是用由初始问题描述和消解算符所定义的隐式图来搜索。这样,一个问题求解过程是由生成与或图的足够部分,并证明起始节点是有解而得以完成的
可把与或图的构成规则概括如下:
- 与或图中的每个节点代表一个要解决的单一问题或问题集合。图中所含起始节点对应于原始问题
- 对应于本原问题的节点,叫做终叶节点,它没有后裔
- 对于把算符应用于问题 A A A的每种可能情况,都把问题变换为一个子问题集合;有向弧线自 A A A指向后继节点,表示所求得的子问题集合
- 对于代表两个或两个以上子问题集合的每个节点,有向弧线从此节点指向此子问题集合中的各个节点。由于只有当集合中所有的项都有解时,这个子问题的集合才能获得解答,所以这些子问题节点叫做与节点。
- 在特殊情况下,当只有一个算符可应用于问题,而且这个算符产生具有一个以上子问题的某个集合时,由上述规则 ( 3 ) (3) (3)和规则 ( 4 ) (4) (4)所产生的图可以得到简化。因此,代表子问题集合的中间或节点可以省略,则与或图可以化为与或树
2.3 谓词逻辑表示
语法和语义
谓词逻辑的基本组成部分是谓词符号、变量符号、函数符号和常量符号,并用各种括弧和逗号隔开,以表示论域内的关系
一般,原子公式由谓词符号和项组成。常量符号是最简单的项,用来表示论域内的物体或实体,它可以是实际的物体和人,也可以是概念或具有名字的任何事情。
变量符号也是项,并且不必明确涉及是哪一个实体。
函数符号表示论域内的函数
连词和量词
原 子 公 式 是 谓 词 演 算 的 基 本 积 木 块 , 应 用 连 词 ∧ ( 与 ) 、 ∨ ( 或 ) 以 及 ⇒ ( 蕴 含 , 或 隐 含 ) 等 , 能 够 组 合 多 个 原 子 公 式 以 构 成 比 较 复 杂 的 合 式 公 式 连 词 ∧ 用 来 表 示 复 合 句 子 , 句 子 叫 合 取 式 连 词 ∨ 用 来 表 示 可 兼 有 的 ′ ′ 或 ′ ′ , 句 子 叫 析 取 式 连 词 ⇒ 用 来 表 示 ′ ′ 如 果 − 那 么 ′ ′ 的 词 句 , 表 示 蕴 涵 符 号 ∼ ( 非 ) 用 来 否 定 一 个 公 式 的 真 值 , 也 可 以 用 符 号 ¬ 原子公式是谓词演算的基本积木块,应用连词\wedge(与)、\vee(或)以及\Rightarrow(蕴含,或隐含)等,能够组合多个原子公式以构成比较复杂的合式公式\\ \\ 连词\wedge用来表示复合句子,句子叫\ 合取式\\ \\ 连词\vee用来表示可兼有的''或'',句子叫\ 析取式\\ \\ 连词\Rightarrow用来表示''如果-那么''的词句,表示\ 蕴涵\\ \\ 符号\sim(非)用来否定一个公式的真值,也可以用符号\ \neg 原子公式是谓词演算的基本积木块,应用连词∧(与)、∨(或)以及⇒(蕴含,或隐含)等,能够组合多个原子公式以构成比较复杂的合式公式连词∧用来表示复合句子,句子叫 合取式连词∨用来表示可兼有的′′或′′,句子叫 析取式连词⇒用来表示′′如果−那么′′的词句,表示 蕴涵符号∼(非)用来否定一个公式的真值,也可以用符号 ¬
命题演算对于许多简化了的定义域来说,是一种有效的表示,但它缺乏用有效的方法来表达多个命题的能力。要扩大命题演算的能力,需要使公式中的命题带有变量
2.3.2 谓词公式的定义
用 P ( x 1 , x 2 , … , x n ) P(x_1,x_2,\dots,x_n) P(x1,x2,…,xn)表示一个 n n n元谓词公式,其中 P P P为 n n n元谓词, x 1 , x 2 , … , x n x_1,x_2,\dots,x_n x1,x2,…,xn为客体变量或变元
在谓词演算中合式公式的递归定义如下:
- 原子谓词公式是合式公式
- 若 A A A为合式公式,则 ∼ A \sim A ∼A也是一个合式公式
- 若 A A A和 B B B都是合式公式,则 ( A ∧ B ) , ( A ∨ B ) , ( A ⇒ B ) , ( A ⇔ B ) (A\wedge B),(A\vee B),(A\Rightarrow B),(A\Leftrightarrow B) (A∧B),(A∨B),(A⇒B),(A⇔B)也都是合式公式
- 若 A A A是合式公式, x x x为 A A A中的*变元,则 ( ∀ x ) A (\forall\ x)A (∀ x)A和 ( ∃ x ) A (\exist\ x)A (∃ x)A都是合式公式
- 只有按上述规则 1 → 4 1\to4 1→4求得的那些公式,才是合式公式
如果两个合式公式,无论如何解释,其真值表都是相同的,那么就称此二者是等价的
合式公式的性质
有 下 列 等 价 关 系 : ∼ ( ∼ ) P a n d P P ∨ Q a n d ∼ P ⇒ Q 狄 ⋅ 摩 根 定 律 : ∼ ( P ∨ Q ) a n d ∼ P ∧ ∼ Q ∼ ( P ∧ Q ) a n d ∼ P ∨ ∼ Q 分 配 律 , 交 换 律 , 结 合 律 逆 否 律 : P → Q a n d ∼ Q → ∼ P 有下列等价关系: \\ \sim(\sim)P\qquad and\qquad P \\ P\vee Q\qquad and \qquad \sim P\Rightarrow Q\\ 狄\cdot摩根定律:\\ \sim(P\vee Q)\qquad and \qquad \sim P\wedge \sim Q\\ \sim(P\wedge Q)\qquad and \qquad \sim P\vee \sim Q \\ 分配律,交换律,结合律\\ 逆否律:\\ P\to Q\qquad and \qquad \sim Q\to \sim P 有下列等价关系:∼(∼)PandPP∨Qand∼P⇒Q狄⋅摩根定律:∼(P∨Q)and∼P∧∼Q∼(P∧Q)and∼P∨∼Q分配律,交换律,结合律逆否律:P→Qand∼Q→∼P
2.3.3 置换与合一
在谓词逻辑中,有些推理规则可应用于一定的合式公式和合式公式集,以产生新的合式公式
一个重要的推理规则是假元推理,就是由合式公式 W 1 W_1 W1和 W 1 → W 2 W_1\to W_2 W1→W2产生合式公式 W 2 W_2 W2的运算
另一个推理规则叫做全称化推理,它是合式公式 ( ∀ x ) W ( x ) (\forall x)W(x) (∀x)W(x)产生合式公式 W ( A ) W(A) W(A),其中 A A A为任意常量符号
也可同时运用假元推理和全称化推理
一个表达式的项可为变量符号、常量符号或函数表达式
函数表达式由函数符号和项组成
一个表达式的置换就是在该表达式中用置换项置换变量。置换是可结合的,但置换是不可变换的
寻找项对变量的置换,以使两表达式一致,叫做合一
合一是人工智能中很重要的过程
如 果 一 个 置 换 s 作 用 于 表 达 式 集 { E i } 的 每 个 元 素 , 则 用 { E i } s 来 表 示 置 换 例 的 集 。 称 表 达 式 集 { E i } 是 可 合 一 的 , 如 果 存 在 一 个 置 换 s 使 得 : E 1 s = E 2 s = E 3 s = ⋯ 那 么 称 此 s 为 { E i } 的 合 一 者 , 因 为 s 的 作 用 是 使 集 合 { E i } 成 为 单 一 形 式 如 果 s 是 { E i } 的 任 一 合 一 者 , 由 存 在 某 个 s ′ , 使 得 : { E i } s = { E i } g s ′ 成 立 , 则 称 g 为 { E i } 的 最 通 过 用 ( 最 一 般 ) 的 合 一 者 , 记 为 m g u 如果一个置换\ s\ 作用于表达式集\left\{E_i \right\}的每个元素,则用\left\{E_i\right\}s来表示置换例的集。称表达式集\left\{E_i\right\}是可合一的,如果存在一个置换\ s\ 使得:\\ \\ E_{1s}=E_{2s}=E_{3s}=\cdots \\ \\ 那么称此\ s\ 为\left\{E_i\right\}的合一者,因为\ s\ 的作用是使集合\left\{E_i\right\}成为单一形式\\ \\ 如果\ s\ 是\left\{E_i\right\}的任一合一者,由存在某个\ s',使得: \\ \\ \left\{E_i\right\}s=\left\{E_i\right\}gs'\\\\ 成立,则称\ g\ 为\left\{E_i\right\}的最通过用(最一般)的合一者,记为\ mgu 如果一个置换 s 作用于表达式集{Ei}的每个元素,则用{Ei}s来表示置换例的集。称表达式集{Ei}是可合一的,如果存在一个置换 s 使得:E1s=E2s=E3s=⋯那么称此 s 为{Ei}的合一者,因为 s 的作用是使集合{Ei}成为单一形式如果 s 是{Ei}的任一合一者,由存在某个 s′,使得:{Ei}s={Ei}gs′成立,则称 g 为{Ei}的最通过用(最一般)的合一者,记为 mgu
2.4 语义网络表示
语义网络是知识的一种结构化图解表示,它由节点和弧线或链线组成
节点用于表示实体、概念和情况等,弧线用于表示节点间的关系
语义网络表示由下列四个相关部分组成:
- 语法部分:决定词汇表中允许有哪些符号,它涉及各个节点和弧线
- 结构部分:叙述符号排列的约束条件,指定各弧线连接的节点对
- 过程部分:说明访问过程,这些过程能用来建立和修正描述,以及回答相关问题
- 语义部分:确定与描述相关的(联想)意义的方法,即确定有关节点的排列及其占有物和对应弧线
语义网络具有下列特点:
- 能把实体的结构、属性与实体间的因果关系显示和简明地表达出来,与实体相关的事实、特征和关系可以通过相应的节点弧线推导出来
- 由于与概念相关的属性和联系被组织在一个相应的节点中,因而使概念易于受访和学习
- 表现问题更加直观,更易于理解,适于知识工程师与领域专家沟通
- 语义网络结构的语义解释依赖于该结构的推理过程而没有结构的约定,因而得到的推理不能保证像谓词逻辑法那样有效
- 节点间的联系可能是线状、树装或网状的,甚至是递归状的结构,使相应的知识存储和检索可能需要比较复杂的过程
2.4.1 二元语义网络的表示
由西蒙斯 ( S i m m o n s ) (Simmons) (Simmons)和斯洛克姆 ( S l o c u m ) (Slocum) (Slocum)提出来的方法允许节点既可以表示一个物体或一组物体,也可以表示情况和动作。每一情况节点可以有一组向外的弧(事例弧),称为实例框,用以说明与该事例有关的各种变量
在选择节点时,首先要弄清节点是用于表示基本的物体或概念的,或是用于多种目的的。否则,如果语义网络只用来表示一个特定的物体或概念,那么当有更多的实例时就需要更多的语义网络,这样就使问题复杂化
2.4.2 多元语义网络的表示
语义网络是一种网络结构,节点之间以链相连。从本质上讲,节点之间的连接是二元关系
解决多元关系的一种方法是把这个多元关系转化成一组二元关系的组合,或者二元关系的合取。即多元关系总可以转换成若干二元关系的合取
可以用语义网络表示谓词逻辑法种的各种连词及量化
2.4.3 语义网络的推理过程
在语义网络知识表达方法中,没有形式语义,也就是说,与谓词逻辑不同,对所给定的表达结构表示什么语义没有统一的表示法
**规定:**把在链的尾部的节点称为值节点,另外,还规定节点的槽相当于链(只是取不同的名字)
语义网络中的推理过程主要有两种,一种是继承,另一种是匹配
继承
在语义网络中所谓的继承就是把事物的描述从概念节点或类节点传递到实例节点
一共有三种继承过程:
- 值继承
- 除了 I S A ISA ISA链以外,另外还有一种 A K O AKO AKO链也可用于语义网络中的描述或特性的继承
- I S A ISA ISA和 A K O AKO AKO链直接表示类的成员关系以及子类和类之间的关系,提供了一种把知识从某一层传递到另一层的途径
- “如果需要”继承
- 当不知道槽值时,可以利用已知信息来计算。进行上述计算的程序称为 i f − n e e d e d ( 如 果 需 要 ) if-needed(如果需要) if−needed(如果需要)程序
- 为了储存进行上述计算的程序,需要改进节点-槽-值的结构,允许槽有几种类型的值,而不只是一个类型。为此每个槽又可以有若干个侧面,以储存这些不同类型的值
- “缺省”继承
- 某些情况下,当对事物所作的假设不是十分有把握时,最好对所作的假设加上“可能”这样的字眼
匹配
2.5 框架表示
通常框架采用语义网络中的节点、槽、值表示结构。所以框架也可以定义为是一组语义网络的节点和槽,这组节点和槽可以描述格式固定的事物、行动和事件。语义网络可以看作节点和弧线的集合,也可以视为框架的集合
2.5.1 框架的构成
框架通常由描述事物的各个方面的槽组成,每个槽可以拥有若干个侧面,而每个侧面又可以拥有若干个值。这些内容可以根据具体问题的具体需要来取舍,一个框架的一般结构如下:
- 框架名
- 槽1 || 侧面11 || 值111 ||…
- || 侧面12 || 值121 ||…
- …
- 槽2 || 侧面21 || 值211 ||…
- …
- …
- 槽n || 侧面n1 || 值n11 ||…
- …
- || 侧面nm || 值nm1 ||…
- 槽1 || 侧面11 || 值111 ||…
对于大多数问题,不能简单的用一个框架表示出来,必须同时使用许多框架,组成一个框架系统
一个框架结构可以是另一个框架的槽值,并且同一个框架结构可以作为几个不同的框架的槽值
这样,一些相同的信息可以不必重复存储,节省了存储空间
框架的一个重要特性是其继承性,为此一个框架系统常表示成一种树形结构,树的每一个节点是一个框架结构
所谓框架的继承性就是:当子节点的某些槽值或侧面值没有被直接记录时,可以从其父节点继承这些值
树状结构框架系统的每个节点具有如下框架结构形式:
-
框架名:
- A K O V A L U E AKO\ \ VALUE AKO VALUE 值
- P R O P D E F A U L T PROP\ \ DEFAULT PROP DEFAULT 表1
- S F I F − N E E D E D SF\ \ IF-NEEDED SF IF−NEEDED 算数表达式
- C O N F L I C T A D D CONFLICT\ \ ADD CONFLICT ADD 表2
其中框架名用类名表示, A K O AKO AKO是一个槽, V A L U E VALUE VALUE是它的侧面,通过填写 值 的内容表示出该框架属于哪一类。 P R O P PROP PROP槽用于记录该节点所具有的特性,其侧面 D E F A U L T DEFAULT DEFAULT表示该槽的内容是可以进行缺省继承的,即当 表1 为非 N I L NIL NIL时, P R O P PROP PROP的槽值为 表1,当 表1 为 N I L NIL NIL时, P R O P PROP PROP的槽值用其父节点的 P R O P PROP PROP槽值来代替
2.5.2 框架的推理
如前所述,框架是一种复杂结构的语义网络。因此语义网络推理中的匹配和特性继承在框架系统中也可以实行。除此以外,由于框架用于描述具有固定格式的事物、动作和事件,因此可以在新的情况下,推论出未被观察到的事实。框架用以下几种途径来帮助实现这一点:
- 框架包含它所描述的情况或物体的多方面信息,这些信息可以被引用,就像已经直接观察到这些信息一样
- 框架包含物体必须具有的属性
- 框架描述它们所代表的概念的典型事例
在以某种方式应用框架以前,首先要确认这个框架是适用于当前所研究的情况的
用一个框架来具体体现一个特定情况的过程,经常不是很顺利的。这个过程碰到障碍时,经常不必放弃原来的努力去从头开始,而是有很多办法可想:
- 选择和当前情况相对应的当前框架片段,并把这个框架片段和候补框架相匹配,选择最佳匹配
- 尽管当前的框架和所要描述的情况之间有不匹配的地方,但是仍可以继续应用这个框架
- 查询框架之间专门保存的链,以提出应朝哪个方向进行试探的建议
- 沿着框架系统排列的层次结构向上移动,直到找到一个足够通用并不与已有事实相矛盾的框架