人工智能及其应用
第二章 知识表示方法
目前常用的知识表示方法有:状态空间法、问题归约法、谓词逻辑、语义网络、本体技术等
对于传统人工智能问题,任何比较复杂的求解技术都离不开两方面的内容————表示与搜索
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 谓词公式的定义
在谓词演算中合式公式的递归定义如下:
- 原子谓词公式是合式公式
- 若 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 置换与合一
如 果 一 个 置 换 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 二元语义网络的表示
在选择节点时,首先要弄清节点是用于表示基本的物体或概念的,或是用于多种目的的。否则,如果语义网络只用来表示一个特定的物体或概念,那么当有更多的实例时就需要更多的语义网络,这样就使问题复杂化
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
2.5.2 框架的推理
如前所述,框架是一种复杂结构的语义网络。因此语义网络推理中的匹配和特性继承在框架系统中也可以实行。除此以外,由于框架用于描述具有固定格式的事物、动作和事件,因此可以在新的情况下,推论出未被观察到的事实。框架用以下几种途径来帮助实现这一点:
- 框架包含它所描述的情况或物体的多方面信息,这些信息可以被引用,就像已经直接观察到这些信息一样
- 框架包含物体必须具有的属性
- 框架描述它们所代表的概念的典型事例
在以某种方式应用框架以前,首先要确认这个框架是适用于当前所研究的情况的
用一个框架来具体体现一个特定情况的过程,经常不是很顺利的。这个过程碰到障碍时,经常不必放弃原来的努力去从头开始,而是有很多办法可想:
- 选择和当前情况相对应的当前框架片段,并把这个框架片段和候补框架相匹配,选择最佳匹配
- 尽管当前的框架和所要描述的情况之间有不匹配的地方,但是仍可以继续应用这个框架
- 查询框架之间专门保存的链,以提出应朝哪个方向进行试探的建议
- 沿着框架系统排列的层次结构向上移动,直到找到一个足够通用并不与已有事实相矛盾的框架