一阶谓词逻辑在人工智能知识表示中的应用
本文关键词:一阶谓词逻辑在人工智能知识表示中的应用,由笔耕文化传播整理发布。
第 21 卷 9 期 第 Vol . 21 9 No. 【逻辑学】
重 庆 工 学 院 学 报 ( 社会科学版) Journal of Chongqing Institute of Technology ( Social Science Edition)
2007 年 9 月 Sep . 2007
一阶谓词
逻辑在人工智能知识表示中的应用
王湘云
( 南开大学 哲学系 ,天津 300071)
摘要 : 用一阶谓词逻辑的形式语言讨论了自然语言的形式描述 、 数学知识的形式表述 、 在人工智 能中智能行为过程的描述等 。总结用一阶谓词逻辑的形式语言表示具体知识的步骤 , 以及这种 知识表示法的局限与应当进一步研究的问题 。 关 :人工智能 ; 知识表示 ; 一阶谓词 ; 形式语言 键 词 中图分类号 :B81 文献标识码 :A 文章编号 :1671 - 0924 (2007) 09 - 0069 - 03
所谓人工智能 ,即是用人工的方法在机器 ( 计算机 ) 上 实现的智能 ; 或者说 ,是人们使用机器模拟人类的智能 [1 ] 。 人工智能研究与对人的思维的研究密切相关 。计算机能 否达到人的智能 、 通过哪种途径才能最有效地实现人工智 能的问题 ,一直以来都是诸多争议的热点 。无论如何 , 知 识是人类智能的基础 ,如何才能运用知识进行推理并解决 实际问题 ,是我们研究人工智能的目标 。而要获取和运用 知识 ,首先就应该能够对知识进行正确有效地表示 , 因此 , 知识的表示是实现人工智能的首要问题和基本技术 。 知识表示是知识在计算机中的表示方法和表现形式 。
Ξ 收稿日期 :2007 - 06 - 12 基金项目 : 教育部人文社会科学研究 2006 年度规划项目 (06JA724002) 。 ) 作者简介 : 王湘云 (1977 — ,女 ,河南省开封人 ,硕士研究生 ,主要从事数理逻辑研究 。
Abstract : Using formal language of first2order predicate logic , this paper discusses the formal description of natural languages , formal description of mathematic knowledge , and representation of intelligence in artificial intelligence. It also summarizes the procedures of representing concrete knowledge with the formal language of first2order predicates , and the limitations of this knowledge2representing method and some problems for further study. Key words : AI ; knowledge representation ; first2order predicate ; formal language
The Application of First2Order Predicate Logic in the Field of Kno wledge Representation of Artificial Intelligence
(Department of Philosophy , Nankai University , Tianjin 300071 , China)
WANG Xiang2yun
一阶谓词逻辑是应用于人工智能中最重要的一种知识表 示方法 。可用于表述各种描述性语句 , 并可有效地存储到 计算机中进行处理 。例如在产生式系统中 , 可用来表示综 合数据库和规则集的描述 ; 谓词演算中可用来建立自动定 理证明系统 、 基于规则的演绎系统等 。笔者在本文中主要 讨论一阶谓词逻辑在人工智能知识表示中的一些应用 。
Ξ
1 一阶谓词逻辑的形式语言
定义 1 一阶谓词逻辑的形式语言 L 所用的符号包
70
重庆工学院学报
的词 , 叫量词 。其中 : 称 ? 为存在量词 , 它表示 “有的” 或 “存在” 。称 Π为全称量词 , 它表示 等 “所有的” “任一个” 或
2 自然语言的形式描述
令 x 表示 “一门课” y 表示 , “一个学生” a 表示 , “一班 ( x) 表示 的一门课”class one 表示 , “一班的学生”令 EASY ; “ x 是容易的” COURSE ONE ( x) 表示 x 是一班的课” , , “
LIKE( y , x) 表示 y 班的学生喜欢 x ” 。则该推理的前提和 “
括 : ① v , v0 , v1 , v2 , …; ② 「 、 ∨、 ∧、 ?和 ← ; ③ ?和 Π ; → ④对每一个大于等于 1 的自然数 n , Pn , Qn , Rn , …( 可以没 有) ; ⑤ c , c0 , c1 , c2 , …( 可以没有) 。 符号 ; 句 ⑤ 中的符号表示无穷多个个体常项 。 一 n 元谓词符号 , 那么 Rn ( t0 , t1 , …t n - 1 ) 是一个 L - 公式 ; 符号序列才是 L - 公式 [ 2 ] 。 常用 → 表示) , 即 :规则 , 还可以表示智能行为活动的知识 过程 。用这种方法表达知识 , 来建构智能系统的知识库 , 使其与被表达的自然语言在逻辑下保持一致性的过程 。 即是使用适当的谓词来表达某一领域知识 , 构造 L - 公式 , 是乌鸦 ,那么 x 是黑的” 的这种蕴涵关系 。则该语句用 L ( CROW ( x) → 公式可表示为 Π x COLOR ( x ,black) ) 。 班的学生都喜欢 a 这门课 。 结论可分别用 L - 公式表示如下 : 前提 : Π x Π y ( EASY( x ) LIKE ( y , x) ) 结论 : 「 Π y (LIKE ( y , a) ) Π x ( COURSE ONE ( x ) LIKE ( class one , x ) ) COURSE ONE ( a) ← ? 、 ∨、 的顺序递增 ; 句 ③ →、 ∧、 「 中的符号是表示数量
L - 公式可表示多个复杂领域的知识 , 它既适合于表
3 数学知识的形式表述
命题 对任一自然数 ,都有一个比它大的素数 。 令 x 、 分别表示命题中的个体词 “自然数” 素数” y : 、 “ , N ( x) 表示 x 是自然数” P ( y) 表示 y 是素数” R ( x , y) 表 , , “ “ 示 y 大于 x ”定义 Π x 表示 “ ; “任一 x ” ? y 表示 , “有一 y ” ; 用联结符 ∧、 →表示谓词之间的合取或蕴涵关系 , 则命题 用 L - 公式表示如下 : Π x ( N ( x ) → ? y ( P ( y ) ∧ R ( x , y) ) ) 。 例 猴子吃香蕉的问题 ( 图 1) 。设房内 a 处有一只猴 子 , 一串香蕉挂在 c 处的天花板上 , 猴子够不着 , b 处有一 个箱子 , 猴子从 a 处出发把箱子从 b 处搬到 c 处 , 爬上箱 子 , 摘下香蕉 , 回到 a 处 。用一阶谓词逻辑表示法来描述 猴子的行动过程如下 : 图1 猴子吃香蕉问题 ) 定义描述环境状态的谓词 。 1 AT( x , w) : x 在 w 处 , 个体域 : x ∈ {monkey} , w ∈ a , b , {
HOLD ( x , t) : x 手中拿着 t , 个体域 : t ∈ {box ,banana} ; EMPTY( x) : x 手中是空的 ;
c} ;
其中 : 句 ①中的符号表示可数多个个体变项 ; 句 ②中
的符号表示常用的 5 个逻辑联结词 「 ( 并非 ) 、 ( 合取 ) 、 ∧ ∨( 析取) 、 ( 蕴涵 ) 和 ← ( 等值 ) , 而联结词的结合力依 ? → 等 。句 ④ 中的符号表示无穷多个 n ( n Ε 1) 元谓词或关系 个体变项和个体常项统称为 L - 项 , 并用符号 t 或加下标 表示 ; ②如果 t0 , t1 , …t n - 1 都是 L - 项 , 而 Rn 是 L 中的任 ③如果 α是 L - 公式 , 那么 「α也是 ; ④如果 α和 β都是 β (α β (α β L - 公式 , 那么 (α∨ ) 、 ∧ ) 、 → ) 和 (α ← β 也是 ; → ) 示事物的状态 、 属性 、 概念等事实性知识 ( 通常用 「 、 和 ∨ ∧ 连接谓词表示) , 又可以表示事物间确定的因果关系 ( 通 示 x 是黑的” 其中 x 是变项 ,black 是常项 。定义 Π x 表 “ , 示 “所有的 x ” 。使用联结词 → 表示两个谓词之间 “如果 x 推理 凡是容易的课 , 每个班的学生都喜欢 。一班的 课 ,一班的学生都喜欢 。a 是一班的一门课 。并不是每个 α ⑤如果 α 是 L - 公式 , 而 x 是一个体变项 , 那么 Π x 和 α ? x 都是 L - 公式 ; ⑥只有有限次使用上述各步得到的 L 定义 2 一阶谓词逻辑的形式语言的形成规则有 : ① 语句 天下乌鸦一般黑 。 令 CROW ( x ) 表示 x 是乌鸦” 。令 COLOR ( x ,black) 表 “
4 智能行为过程的描述
ON ( t , y) : t 在 y 处 , 个体域 : y ∈ b , c , ceiling} ; { CLEAR ( y) : y 上是空的 ;
BOX ( u) : u 是箱子 , 个体域 : u ∈ {box} ; BANANA ( v) : v 是香蕉 , 个体域 : v ∈ {banana} ;
2) 使用谓词 、 联结词和量词来表示环境状态 。
问题的初始状态可表示为 : S 0 : AT( monkey , a ) ∧EMPTY ( monkey) ∧ ( box , b) ∧ ON
ON ( banana ,ceiling) ∧ CLEAR ( c ) ∧ BOX ( box) ∧ BANANA ( ba2 ) nana
要达到的目标状态为 : S g :AT( monkey , a ) ∧HOLD ( monkey ,banana ) ∧ ( box , ON
c) ∧CLEAR ( ceiling) ∧CLEAR ( b ) ∧BOX ( box) ∧BANANA ( banana)
3) 从初始状态到目标状态的转化 ,猴子需要完成一系
列操作 ,定义操作类谓词表示其动作 。 WALK( m , n) :猴子从 m 走到 n 处 ; 个体域 : m , n ∈ a {
b , c} ;
CARRY( s , r) :猴子在 r 处拿到 s , 个体域 : r ∈ b ,ceil2 {
王湘云 : 一阶谓词逻辑在人工智能知识表示中的应用
ing} , s ∈ {box ,banana} ; CLIMB ( u , c) :猴子在 c 处爬上 u.
71
AT( monkey , c) ∧HOLD ( monkey ,banana) ∧ ( box , c) ∧ ON CLEAR ( b) ∧CLEAR ( ceiling) ∧ BOX ( box) BANANA ( banana )
这 3 个操作也可分别用条件和动作来表示 。条件直接 用谓词公式表示 , 是为完成相应操作所必须具备的条件 ; 当条件中的事实使其均为真时 , 则可激活操作规则 , 于是 可执行该规则中的动作部分 。动作通过前后状态的变化 表示 ,即通过从动作前删除或增加谓词公式来描述动作后 的状态 。 ① WALK( m , n) :猴子从 m 处走到 n 处 条件 :AT( monkey , m ) 动作 : 删除 :AT( monkey , m ) 增加 :AT( monkey , n) ② CARRY( s , r) :猴子在 r 处拿到 s 条件 :AT( monkey , r) ∧EMPTY ( monkey) ∧ON ( s , r) ∧ BOX ( box) ∧ BANANA ( banana) 动作 : 删除 : EMPTY( monkey) ∧ ( s , r) ON 增加 : HOLD ( monkey , s) ∧ CLEAR ( r) ③ CLIMB ( u , c) :猴子在 c 处爬上 u 条件 :AT ( monkey , c ) ∧HOLD ( monkey , u) ∧CLEAR ( c ) ∧ BOX ( box) ∧ BANANA ( banana) 动作 : 删除 : HOLD ( monkey , u) ∧ CLEAR ( c) 增加 : EMPTY( monkey) ∧ ( u , c) ON 4) 按照行动计划 , 一步步进行状态替换 , 直至目标状 态。 AT( monkey , a ) ∧EMPTY ( monkey) ∧ON ( box , b ) ∧ON ( banana ,ceiling) ∧CLEAR ( c ) ∧BOX ( box ) ∧BANANA ( ba2 nana) WALK( a , b) a 代换 m 用 b 代换 n 用
nana) nana) AT( monkey , b ) ∧EMPTY ( monkey) ∧ON ( box , b ) ∧ON ( banana ,ceiling) ∧CLEAR ( c ) ∧BOX ( box ) ∧BANANA ( ba2
( 目标得解) 猴子行动的规则序列是 : WALK( a , b) → CARRY( b ,box) →WALK( b , c ) →CLIMB ( box , c) → CARRY( banana ,ceiling) → WALK( c , a) . 在上述过程中 , 我们应该注意 , 当猴子执行某一个操 作之前 ,需要检查当前状态是否可使所要求的条件得到满 足 ,即证明当前状态是否蕴涵操作所要求的状态的过程 。 在行动过程中 , 检查条件的满足性后才进行变量的代换 。 代入新条件后的新状态如果是目标状态 , 则问题解决 , 否 则看是否满足下面的操作 ,如果不满足或即使满足却又回 到了原来的状态 ,那么代入无效 。 通过以上的例子 ,我们可以将一阶谓词逻辑表示具体 知识的步骤总结如下 : ① 将给定命题中的量词 、 个体词和 谓词分析出来 ,并将谓词用特定的符号表示 ; ② 运用逻辑 联结符 「 、 ∨、 ∧、 ?和 ← 来表示原命题中所含子命题之 → 间的复合关系 ; ③构造出该命题所对应的形式化的表达式 公式 。 对于描叙智能行为过程的知识 , 则需要分别定义描述 环境状态的谓词和表示行为者动作的操作类谓词 。通过 使用谓词 、 联结词和量词来表示各个环节的环境的状态 。 并按照行为活动的计划 , 使用操作类谓词 , 一步步进行状 态替换 ,直至达到从初始状态到目标状态的转化 。 运用这种方法 ,我们就可以通过对一组命题集或复杂 的知识进行形式化表示而将其输入到计算机中 ,建立起计 算机系统的知识库 ,从而进行问题求解和机器定理证明 。 我们讨论了用一阶谓词进行知识表示的有关问题 ,它的 作用就是用一种特定的模式把知识形式化地表示出来进而 有效地 、 合理地转移和存储到计算机中去 。一阶谓词逻辑知 识表示规范 ,逻辑性强 ,推理过程严密 ,可方便计算机扩充知 识库 ,易于实现 。但我们也应该看到 ,一阶谓词逻辑是二值 逻辑 ,对不确定性的问题不能直接处理 ,所以表达的知识不 够丰富 。并且由于它所表达的内容与推理过程是分开的 ,所 以对复杂系统的一些求解问题容易陷入冗长的演绎推理中 去 ,使工作效率降低 。鉴于此 ,针对谓词逻辑 ,尚待更多地有 兴趣的人们加强对高阶逻辑 、 模糊逻辑 、 模态逻辑 、 时态逻 辑、 直觉逻辑等逻辑系统的研究 ,以弥补谓词逻辑知识表示 上的缺陷 ,寻求效率更高的技术方法 。
5 结束语
CARRY( b ,box) b 代换 s 用 box 代换 r 用
AT( monkey , b) ∧HOLD ( monkey ,box) ∧ ( banana ,ceil2 ON ) ∧CLEAR ( b) ∧CLEAR ( c ) ∧ ( box) ∧ ing BOX BANANA ( ba2 nana)
WALK( b , c) b 代换 m 用 c 代换 n 用
AT( monkey , c) ∧HOLD ( monkey ,box) ∧ ( banana ,ceil2 ON ing) ∧CLEAR ( b) ∧CLEAR ( c ) ∧ BOX ( box) ∧ BANANA ( ba2 nana)
CLIMB ( box , c) box 代换 u 用
CARRY( banana ,ceiling) banana 代换 s 用 ceil2 用 ing 代换 r
WALK( c , a) c 代换 m 用 a 代换 n 用
AT( monkey , c) ∧HOLD ( monkey ,banana) ∧ ( box , c) ∧ ON CLEAR ( b ) ∧CLEAR ( ceiling ) ∧BOX ( box ) ∧BANANA ( ba2 nana)
AT( monkey , c ) ∧EMPTY ( monkey) ∧ON ( box , c ) ∧ON (banana , ceiling) ∧CLEAR ( b ) ∧BOX ( box) ∧BANANA ( ba2
参考文献 :
[1 ] 张仰森 . 人工智能原理与应用 [M] . 北京 : 高等教育出
版社 ,2004.
[2 ] 李娜 . 数理逻辑的思想与方法 [M] . 天津 : 南开大学出
版社 ,2006 :206 - 208.
( 责任编辑 张佑法)
本文关键词:一阶谓词逻辑在人工智能知识表示中的应用,由笔耕文化传播整理发布。
,本文编号:214658
本文链接:https://www.wllwen.com/shekelunwen/ljx/214658.html