逻辑推理系统

来源:百度文库 编辑:神马文学网 时间:2024/04/28 09:47:56
逻辑推理系统

逻辑推理系统,即Logical Reasoning Systems,

我们都知道,逻辑既有诱人的优点,又有恼人的缺点,就优点方面而言,逻辑观念因为已经发展了好几个世纪,所以它是一个简单明了而又普遍能懂的工具,当一个问题经过逻辑适当处理后,就像是问题经由数学处理过一样,能为大家所接受及信赖;就缺点方面而言,逻辑有削足适履之患,因为一专注于逻辑上,就会专注于逻辑的数学上,这样会使注意力离开了有价值的解题技巧,而事实上这些技巧是无法用数学来分析的。

就逻辑的特性而言,我们归纳出如下之优缺点:

优点:

  1. Sound and Complete,也就是资料健全的条件下,一定能证明出来,而且证明出来一定 正确。
  2. 有数学为根据,为一种简单明了而又大家所普遍能懂的工具。


缺点:

  1. Semidecidable,也就是在解问题的过程中,有可能解到某个地方,又绕了回来 (Loop),使自己做了许多虚功。
  2. Time-Consuming,因为在推理的过程中,可能会遇到许多的搜寻 ( Search ) 及划一 (Unifi -cation) 的动作,而搜寻会遇到组合爆炸 (Exponential Explode) 的问题,这显示逻辑推理是一种耗时之工作 (Time-Consuming),虽然有许多搜寻策略被提出来,例如 ,支持者优先策略 (Set-Of-Support Strategy)、少数者优先策略 (Unit-Preference-Strategy) 等方法被提出来,但是这些都只能改善其速度而以,并无法消除组合爆炸 (Exponential Explode) 的问题。
  3. Weak-Representation-For-Some-Knowledge,逻辑的数学虽优美,然而它的表示能力毕竟有限,例如 ,Caesar Was A Man 的时态表示、手段目的分析 (Means-Ends Analysis) 的状态差距 (State Difference)、启发式搜寻 (Heuristic Search) 所需要的启发式路程 (Heuristic Distance) 等等的观念是很难以逻辑来表达的知识。
  4. 有些知识是难以具体表现成公理形式的,用逻辑公式来处理某些问题可能需要费很大 的努力,但该问题若用其他的方法来描述,可能很容易就解出来了。



逻辑程序语言系统
Logic Programming Systems

在一个逻辑程序语言系统中,所有的计算可以视为一连串的选择过程,包括选择适当的程序在适当的机器上来执行,并提供适当的输入。逻辑程序语言把程序与其输入都当成逻辑描述,而如何求出其结果则是一连串的推理过程。逻辑与演算法的关系可以 Robert Kowalski‘s 的等式来表示:

Algorithm = Logic + Control

因此在一个逻辑程序语言系统中,演算法除了包含逻辑描述句之外,还包含了控制推理过程的必要信息。广泛运用的逻辑程序语言有Prolog 。


自动推理机
Theorem Provers

自动推理机 (也称作定理证明器) 与逻辑程序语言基本上有两个不同之处。首先,逻辑程序语言只能处理 Horn Clause,定理证明器却可处理所有的一阶逻辑。其次,Prolog 程序的逻辑和控制是混合在一起的。举例来说,在程序中如果程序设计员写的是 A ü B ù C 而非 A ü C ù B,则其程序执行结果则会不同,然而在定理证明器中其结果却是相同的。但这并不表示定理证明器不需要控制信息,定理证明器仍需控制信息来使它在运作上更具效率,可是其控制信息是独立在知识库之外的。

在自动推理机的设计上,必须将所有的知识分为四个部份:

支援集 (set of support):定义了跟问题相关的重要事实。每个解析步骤 (resolution step) 包含了对支援集中部份句式及某一公理 (axiom) 的解析 (resolve),所以搜寻会着重于支援集之上。
可用的公理 (usable axioms):与支援集不同的是,这些公理提供了与问题相关的背景资料,至于何者应该属于支援集何者应该属于背景资料,则有待使用者的判别。
重写 (rewrites) 或重组 (demodulators) 等式:这些等式在使用时需遵守由左至右的顺序,其目的是使某些语辞更加简单化。例如:x + 0 = x 表示每个以 x + 0 型式存在的语辞应该以 x 来替代。
供控制用的变数或句式:举例来说,使用者可设定一个启发函数 (heuristicfunction) 来控制搜寻策略或过滤函数 (filtering function) 以避免浪费时间在一些不感兴趣的子目标上。


生成系统
Production Systems

生成系统又称做规则库系统(rule-based systems),是知识工程学上最流行的方法之一,而知识
工程学是人工智慧的一支,专为建造专家系统而设。例如XCON用来装备计算机的组件,而具
有分析功能的MYCIN可用来诊断传染性疾病,PROSPECTOR可用来分析探勘油井的纪录。这
些具有综合及分析功能的生成系统都具有说明‘如何’及‘为何’的能力。

生成系统是由如下的的规则建立起来的:

规则Rn if <条件M> then <动作K>

每一条规则的条件和动作的数量不限。每条规则包括‘if’部分及‘then’部分,若使用这样
的规则时,从指定条件的 if 部分向 then 部分进行,这种方式称做前向链结法(forward chaining)
,这样的生成系统称做‘前向链结式条件行动型系统(forward chaining condition-action system)’。

生成系统的推论过程,可分为三个阶段:比对(Match)、冲突解决(Conflict resolution)、执行(Act)。
在比对的方法上,有改良Naive演算的RETE演算法,以后许多学者又针对RETE改良或深入探讨
的平行处理方法及线性前向链结演算法。当规则经比对选出后,可能会发生冲突,此时便进入
冲突解决阶段。我们可采用几种标准排序,如依专门性、规则特性、资料特性、约束条件多寡、
时间关系、类别关系等,便可有所依循挑选出规则执行。

生成系统具有几个优点:1.生成系统可任由个别的条件行动型规则加入系统内,增加知识的成
长。2.生成系统可任由规则间不按计画而进行有效的交互作用。但是前向链结并不适用所得资
讯少的问题。因为在信息不足的情况下,生成系统可能无法做出或做出错误的结论。当有这样
的问题,应考虑使用后向链结法(backward chaining)。


框图系统与语意网络(Frame Systems and Semantic Networks )

框图系统与语意网络 ,是以图形来表示各对象的内容,以及各对象之间的关系,所以,如
何将对象分类是一个重要的课题,由于图形比文字叙述更容易理解,更容易看清楚对象间
的关系,因此使得程序设计师即使在面对复杂的网络时仍然能够清楚地注意到查询(query)
效率的提升,所以语意网络是表达推理的一种优良方式。

语意网络的一些性质说明如下:

如图(一)所示,最下面的方框(frame)代表对象(object),而其他的方框(frame) 代表种类
(categories),因此方框与方框之间,可以是某对象属于某种类的关系(也就是集合上的元素与
属集合的关系),本图以member的箭头表示之,方框与方框之间,也可以是某种类属于某种
类的关系(也就是某集合包含于某集合的关系),本图以subset的箭头表示之,而对象与对象
之间也可以存在关系,例如Bill与Opus之间是朋友的关系,看图说故事,由图得知Opus是一
只企鹅,而且它是鸟类,而鸟类属于动物,由这项事实我们得到继承(inheritance)这个术语,
也就是说Opus它属于鸟类,因此它继承了鸟类有两条腿的性质,而继承也有例外(inheritance
with exception)例如 Pat 是Mammals ,但因它是Bats,所以虽然Mammals有四条腿(四条腿是
Mammals的预设值),我们只能说Pat有二条腿,而不能说Pat有四条腿这就是继承例外。


图一
如图(二)所示,多重继承会产生推理上的冲突,因为如果有人说Opus会讲话,那是不对的,
因为如果Opus是只企鹅它只能嘎嘎叫(Squawks),只有当Opus是卡通人物(Cartoon character)
时他才会讲话,这就是多重继承所产生的问题,其解决方式是指定Opus所走的路径之优先顺序。

图2


描述逻辑系统
Description Logic Systems

描述逻辑是用来描述物件间之关系,因此描述逻辑着重物件之分类及其定义,它的表达能力比典型的语意网路强。描述逻辑之主要推理工作(principal inference tasks)有二:

包含 (subsumption):亦即决定某一种类 (category) 是否为另一种类的子集合。
分类 (classification):亦即决定某一物件 (object) 是属于哪一个种类。
描述逻辑可直接对述词 (predicate) 做运算,但是一阶逻辑 (first order logic) 则否,例如下列分别为描述逻辑与一阶逻辑定义单身汉 (bachelor) 代表未婚 (unmarried) 且成年的(adult) 男子 (male) 的表示式:

(描述逻辑) Bachor = And(Unmarried, Adult, Male)

(一阶逻辑) " x Bachelor(x) ? Unmarried(x) ù Adult(x) ù Male(x)

下一例子表示所有拥有最少有三个儿子,最多有二个女儿,而且他的儿子都是无职业、已婚、且其配偶为医生,而他的女儿则全都是化学系或物理系的教授的人:

And(Man,AtLeast(3,Son),AtMost(2,Daughter),

All(Son,And(Unemployed,Married,All(Spouse,Doctor))), All(Daughter,And(Professor,Fills(Department,Physics,Chemistry))))

优点:
推理易于处理。
推理的时间复杂度为多项式时间(一阶逻辑则无法预测)。
缺点:困难的问题可能无法叙述,或者是需要指数般大小的叙述(exponentially large description)。
其语法等之特色请参考CLASSIC language