基于规则的推理

2025-01-22

基于规则的推理(共10篇)

基于规则的推理 篇1

0 引言

伴随着互联网的快速发展,网页数量也随之发生几何性的增长,要在浩瀚如海的信息中及时找到人们需要信息还存在诸多问题。语义Web( Semantic Web) 是由T. Berners-Lee等人[1]提出的概念,它使计算机能够理解和处理Web信息,并实现计算机之间的智能交互。为了使信息能很好地被计算机理解,人们提出了本体论的概念,然而在计算机领域对于本体的理解一直缺乏明确统一的认识。1998 年,Studer等人[2]进行了深入的探讨后认为本体是“共享概念模型明确的形式化规范说明”。

本体的目标是捕获相关领域内的知识,提供对该领域知识的共同理解,确定领域内共同认可的概念,并从不同层次的形式化模式上给出这些概念以及概念间相互关系的明确定义。目前W3C推荐的本体语言是OWL,它声明和定义对象与对象的属性,通过定义类和类的关系来形式化一个应用领域,以及在OWL形式化语义允许的程度上对类和对象进行推理[3]。

然而复杂的关系却难以用本体语言描述清楚,需要对模型添加语义规则。文中采用SWRL[4,5]对本体模型进行扩展,然后将扩展的语义规则加入到本体模型中。SWRL采用Horn子句形式的规则对OWL的公理进行扩展,可以将Horn子句形式的规则和OWL知识库相结合。SWRL是W3C规范之一。

SPARQL ( Simple Protocol and RDF Query Language) 是RDF数据模型定义的查询语言和数据获取协议[6]。SPARQL提供可选图模式表示合取和析取的能力,并支持通过源RDF图进行扩展的值测试和约束查询,其查询结果可以看成RDF的集合。

查询语言SPARQL只能够查询本体模型中已存在的数据,而不能对本体进行推理,这就限制了人们对所需的查询语言的获取。文中使用Jena对本体模型进行推理[7,8]。

Jena是由美国HP Labs ( http: ∥ www. hpl. hp.com) 开发的一个开放式Java语言框架工具包,用于创建语义Web环境下应用程序的创建开发。它为RDF,RDFS及OWL,SPA - RQL提供了编程环境,并且包含一个基于规则的推理引擎。

1 构建本体模型

本文结合已有的本体构建方法和工程思想,对城市公共交通领域本体构建方法结构如图1所示。

利用Protégé_4. 3 软件构建了一个以城市公共交通为背景的领域本体OWL文件,命名为“traffic.owl”,并对其进行一致性检测。由于篇幅有限,图2中只给出了该本体的类图。

构建本体的部分源码,如图3 所示。



从源代码可以看出,在“traffic. owl”定义有Bus_616 Through Ba Li_Cun,Bus_600 Through Ba Li_Cun,Bus_603 Through Ba Li_Cun以及Ba Li_Cun Has_BusLine Bus_600,即本体文件中显式声明了Bus _616,Bus_600,Bus_603 都经过Ba Li_Cun,经过Ba Li_Cun的公交线有Bus_603; 另外本体中没有显式声明非公交站点HuaRun所经过的公交线。

2 模型的SPARQL查询

利用SPARQL查询本体模型,查询经过Ba Li_Cun和HuaRun的公交线,查询结果如图4 - 5 所示。可以看出经过Ba Li_Cun的公交线其结果只返回了Bus_600,经过非公交站点HuaRun的公交线为空,可见查询结果并没有返回本体结构中所蕴含的语义关系。因此需要采用一定的推理技术才能更好地满足用户的需求。

3 推理规则的设计与实现

本文主要通过自定义规则推理挖掘隐含知识以提高查询效果。

3. 1 推理规则

基于本体的规则推理,思路是在本体知识库中引入规则表示,制定规则库,依靠推理引擎按照一定的推理算法从既有事实推理出隐含结论。整体上来讲,创建者需要根据领域知识创建本体库,之后在本体类、属性和实例的基础上制定适用于特定领域的规则库,最后借助推理引擎加载本体库和规则库完成推理工作,如图6 所示。

3. 2 构建SWRL规则

SWRL中规则可以写成如下形式:

其中,Bi,1≤i≤n,Bi与A是原子公式。可加”?”问号前缀表示变量。

若地点x属于区域y,地点z属于区域y,则x和z相邻。

若公交线x通过某一公交站点y,则公交站点y拥有此公交线x。

若某一公交站点x拥有某公交线y,则公交线y经过这一公交站点x。

其中,(?x Has_Bus Line?z)表示公交站点x拥有公交线z,(?x Near By?y)表示公交站点x在地点y附近,(?y Accessto?z)则表示经过地点y的公交线有z。

3. 3 实验结果

引入SWRL规则后,然后使用SPARQL和Jena进行查询与推理本体模型,查询经过Ba Li_Cun和HuaRun公交线,查询结果如图7 - 8 所示。

通过实验结果分析,本体查询是数据驱动的,查询需要借助SPARQL语言,然而SPARQL只能查询本体模型中已存在的数据,即这种查询仅仅对关系图中显式声明的三元组进行检索,如果本体库中没有显式声明该三元组,即使从语义角度蕴含了该关系,查询也不会返回隐含的结果,这就影响了人们对所需知识的获取。由于存储空间的限制以及读取效率的要求不可能将所有的知识都显式地表示出来,另外构建本体需要人工参与,每个人能力有限加上思考问题的角度不同,不可能考虑到所有的细节,那么也就不存在所谓完整的显式声明的知识库,因此通过构建合理的本体推理机制,可以对本体中蕴含的知识进行有效的推理,从而改善和优化知识查询。

4 结束语

本文从解决知识查询问题的角度,构建建立城市公共交通领域本体模型,并对模型进行了查询,而查询本身并不具备推理能力,且描述逻辑的所供给的推理能力是有限的[9,10],文中在OWL知识库基础上,建立了基于SWRL规则的本体推理机制,从而改善和优化知识查询,实现知识的推理。由于领域知识的多样性以及变化性,需要不断添加新的概念、属性和关系集; 其次,规则集需要添加更多的规则,不断挖掘潜在的关系,确保知识的完备性和一致性,继续开展领域本体和知识推理的应用研究,从而能使其应用在科研及生活中。

参考文献

[1]Tim Berners-Lee T,James Hendler,Ora Lassila.The Semantic Web[J].Scientific American,2001,28-4(5):34-43.

[2]Studer R,Benjamins V R,Fensel D.Knowledge engineering:principles and methods[J].Data&knowledge engineering,1998,25(1):161-197.

[3]何江泉.构件库系统的语义扩展与本体推理研究[D].长春:吉林大学,2009.

[4]SWRL:A Semantic Web Rule Language Combining OWL and Rule ML[EB/OL].[2011-10-01].http:∥www.w3.org/Submission/SWRL.

[5]高志强,潘越,马力,等.语义Web原理及应用[M].北京:机械工业出版社,2009.

[6]Wikipedia.SPARQL[EB/OL].[2013-03-30].http:∥en.wikipedia.org/wiki/SPARQL.

[7]王继东,张瑜,李娜.基于本体的语义检索研究与实现[J].计算机技术与发展,2009,19(10):134-137.

[8]李永超,罗钧曼.语义Web中的本体推理研究[J].计算机技术与发展,2007,17(1):101-107.

[9]韩亚洪,刘永革.本体的查询与推理机制研究[J].计算机工程与应用,2005.41(9):82-85.

[10]王金环,李宝敏.基于本体DL的语义推理研究[J].计算机技术与发展,2009,19(11):94-100.

基于规则的推理 篇2

法律推理(legal reasoning)有什么特殊之处?在何种意义上它与别的推理不同?它是如何区别于医学、工程学、物理学或者日常生活中的推理的?回答从最激进的到最温和的都有。激进论者认为有使法律区别于所有其他学科的特殊或不同的法律逻辑或法律推理方法、推理模式。与其相反的是温和论者,他们认为法律推理并无任何特殊之处,理智在所有领域都一样。按照他们的见解,仅仅是法律的内容使其自身与其他研究领域相区别,而其推理模式则是在所有的研究领域都普遍适用的同一种。

那些持有温和的讽世态度的`人对于激进观念在律师中的盛行不会感到惊讶。毕竟,法律越是特殊,高收费就越显得正当――在如此多的国家这种高收费使得法律对除富人以外的广大民众来说遥不可及。但是,我们不准备进行这种社会学上的反思。无论谁固执于因特殊法律推理模式的存在或缺位而获得或失去什么,在此所要探究的唯一问题是:是否存在这种独特的推理模式。

在各种相互对立的立场中包含着一些真理,这点并不令人惊讶。温和论一方所提重要的观点在于逻辑的核心部分不具有、也不可能有领域特性。大量的论据证明了这一点。我将略述其中之一。推理规则(rules of inference)并不独立于意义规则(rules of meaning),以及将内容归属于概念和命题的规则。相反,它们是联结语词涵义和概念内容的部分要素。概念的内容部分决定于应用于它们的推衍关系。“a 是绿的”必然伴随“a 是有色的”,它部分决定了“有色”和“绿”的含义。因此,如果法律、道德、物理和医学等等都各自服从于不同的逻辑规则,那么,它们要么使用不同的术语,或者要在不同的意义上运用相同的语词。事实上,虽然一些术语对于不同领域而言是特殊的(如“夸克粒子束(quarks)” 、“归复信托(resulting trust)” ),大多数情况下我们在所有领域都运用同一种语言,认为相同的词被医生、律师、公共汽车售票员、会计等不同人使用时会具有不同含义是荒谬的。

然而,并非所有的推理模式都属于逻辑的核心部分。考虑到其他部分,假定不同领域间可能存在某些差异更为令人信服。许多通常被称作“归纳推理” (inductive reasoning)的推理形式存在于以地方性经验或局部概率为基础规则的伴随集合体中。也许有具领域特性的推理模式存在于非演绎性证明规则之中。法律应用于生活的方方面面。因此,法律论证从思维的各个领域中吸纳推理模式,但它们会将有所发展。法律思维会有一些额外而特殊的推理模式。

在本质上,法律具有能极大地影响法律推理品格的特征。我认为这种特征有三个:一是每个国家的法律都构成一个法律体系(a system of law);二是法律由规范或规则(norms of rules)组成――若非完全地也至少在显著程度上来说是如此;三是应用和遵守法律要求或预设了解释(interpretation)。认为这些特征单独属于法律是错误的。它们为一系列主要宗教和其他社会组织所分共享。它们是所有制度化规范系统的标记,在较低程度上也显现于其他规范性领域中。但它们是法律的核心,它们赋予法律(还有宗教等)推理以特殊品质。法律的系统性(the systematic nature of law)、规则依赖性和解释相关性(dependence on rules and interpretation) ――法律的这三个特征是紧密交互关联着的;作为结构性特征,它们据信影响了对法律推理而言普遍性的推理模式。换言之,法律推理正与任何其他推理一样,但进一步它同样表明了法律自身的特征,这些特征反映了法律的结构性(也可以说是形式性)品格

基于规则的推理 篇3

关键词:专家系统;Jess;规则;可信度;不确定性推理

中图分类号:TP18 文献标识码:A文章编号:1009-3044(2007)16-31102-02

Reasoning Research Based on Jess in Expert System

YANG A-qin,GAO Shu

(College of Computer Science & Technology,Wuhan University of Technology,Wuhan 430063,China)

Abstract:The paper introduces development platform for expert system -Jess,and applies Jess to early warning expert system for maintenance errors in civil aviation.Maintenance errors in the system are represented in the form of rule, and the reasoner adopts the method of Rule-Based uncertainty reasoning to forecast and control possible occurrences of maintenance errors effectively, and thus guarantees the safety of the fligt.

Key words:expert system;Jess;rule;uncertianty reasoning

1 引言

随着计算机技术和人工智能技术的飞速发展,专家系统也有了新的重大发展,出现了一种新技术――基于Java的规则引擎技术,如:JBoss Rules、JLisa等开源项目和JRules、Jess等商业产品都是基于Java的规则引擎技术产品。Jess是1995年由美国Sandia国家实验室分布式系统计算组成员Ernest J. Friedman-Hill用JAVA语言开发的专家系统内核。Jess非常小巧、灵活,并且是已知规则引擎中最快的。本文针对Jess在民航机务维修差错预警专家系统中的应用进行研究。

2 Jess的概述

Jess(Java Expert System Shell)是一个扩展CLIPS的基于Java平台的规则引擎。它以CLIPS的设计原理为基础进行编写,除继承了CLIPS的优点外,还具有许多自己独特的特征,如支持正向和逆向推理,可以在系统运行环境下直接调用Java的类库等。

尽管Jess可以作为一个独立程序运行,但是常常把Jess库嵌入到Java代码中,通过使用Jess的API或Java规则引擎API(由javax.rules包定义)来实现Jess相应的功能。

Jess提供了一个交互式的、命令行的开发环境,也可以使用文本编辑代码成为脚本,以批处理方式装入Jess引擎。开发Jess脚本文件的工具很多,可以采用任一款文本编辑器,或以插件的形式附加到Eclipse平台来构建Jess的集成开发环境[1]。

2.1 Jess的基本组成与知识表示

Jess的核心也是由事实库(也称为工作内存)、规则库、推理机三大部分组成,并采用产生式规则作为基本的知识表达模式。

(1)事实:在Jess中,事实分为三类:有序事实(Ordered facts)、无序事实(Unordered facts)、对象事实(Object facts)。每个事实都有一个模板(template),而每个模板有一个模板名和一系列槽(slots)组成。事实根据模板获取它的事实名称和一系列槽列表。创建模板可以使用deftemplate结构或defclass函数。其中有序事实类似于仅有一个多槽(multislot)的有无序事实。对象事实可通过defclass函数和definstance函数定义,对象事实相应类的定义由Java语言书编写,编译通过后即可动态地加入系统中。对象事实相似与Java Beans。对象事实的槽对应Java Beans中的属性,因而具有Java Beans的一些特性。

(2)规则:在Jess中,规则的表达形式沿用了CLIPS的语法结构,Jess也支持面向过程的编程方式,它提供了一些语句来控制规则后件的操作流程,如使用if…then…else和while…do…语句[2]。Jess定义规则使用了defrule函数,规则的前件由与事实匹配的模式组成,不能包含函数调用,规则后件由函数调用组成。

3 Jess的推理引擎

Jess支持前向和逆向推理两种方式,Jess的规则引擎利用著名算法Rete的改进形式根据知识库进行规则匹配来提高规则条件匹配效率。Rete算法其核心思想是将分离的匹配项根据内容动态构造匹配树,以达到显著降低计算量的效果[3]。

4 基于Jess的民航机务维修差错预警推理的研究

4.1 不确定性推理

对待一般规则e-> h,使用确定性因子描述规则强度,定义为CF(h,e) 。原始证据的确定性因子由用户在系统运行时提供,非原始证据的确定因子由不确定性推理算法得出,在实际应用中,规则强度的值由领域专家主观给出。通常使用如下算法:

(1)若已知规则强度CF(h,e)和前提可信度CF(e),则结论h的可信度为:

CF(h)=CF(h,e)×CF(e)

(2)若前提条件e是子条件ei的逻辑组合,则:

CF(e)=CF(e1 AND e2 AND … AND en)=min{CF(e1),CF(e2),…,CF(en)}

CF(e)=CF(e1 OR e2 OR … OR en)=max{CF(e1),CF(e2),…,CF(en)}

(3)若系统中有两个规则得到同样的结论,每个结论都会有一个可信度,则该结论的可信度是:(设CF1(h),CF2(h)表示从不同的规则得出的某个结论的两个可信度)

①当CF1(h)和CF2(h)≥0时:

CF(h)=CF1(h)+CF2(h)-CF1(h)×CF2(h)

②当CF1(h)和CF2(h)≤0时:

CF(h)=CF1(h)+CF2(h)+CF1(h)×CF2(h)

③否则:CF(h)=CF1(h)+CF2(h)

若有多个规则得到同样的结论,则可反复使用如上公式[4]。

4.2 Jess在机务维修差错预警系统中的进行不确定性推理的实现

由机务维修差错引起的航空灾害经常发生,且航空维护、修理是确保航空公司安全、准点运营的重要因素,同时,机务维修差错的发生很多是由人为因素引起的,人为因素引起的差错是不可以预料的、模糊的、层次不穷的、不确定的,因此利用Jess进行基于规则的不确定性推理方式,根据专家的经验知识进行快速而准确地推理,分析和识别出引发差错或不安全事件的诱因,并给出相关的对策,以避免同类差错或隐患的再次发生,消除机务维修系统的隐形失效,切断不安全事件发生链,从而提高维修质量,保障飞行安全。

4.2.1 Jess推理部分的组织结构

机务维修差错预警专家系统中有关Jess推理部分的组织结构如图1所示。

图1 Jess推理部分的组织结构

4.2.2 知识库的组织

知识库由事实库和规则库组成。在航空维修差错研究中,针对差错,分析差错的诱因,提供差错预控对策,把这些差错信息整理成规则形式来描述和表示,且这些规则应具有典型性和概括性,利用Jess实现不确定性推理。系统采用JavaBean的形式将事实和结论封装成类,对类的成员的操作不以成员方法的形式完成,而是以规则后件的形式完成,例如对于可信度的计算以规则后件的形式完成。定义的JavaBean类中CausationBean存储各种诱因,ConclusionBean存储可能导致的差错和相应对策,其中 CausationBean定义如下:

import java.io.Serializable;

public class CausationBean implements Serializable

{private String m_name = "";//诱因名

private float m_cf=0.00f;//诱因事实的可信度

public float getCf() { return m_cf; }

public void setCf(float f) { m_cf = f; }

public String getName() { return m_name; }

public void setName(String s) { m_name = s; }}

ConclusionBean定义如下:

import java.io.Serializable;

public class ConclusionBean implements Serializable

{private String m_error = "";//差错

private String m_measure = "";//预控对策

private float m_cf=0.00f;//结论的可信度

public float getCf() { return m_cf ;}

public void setCf(float f) { m_cf = f; }

public String getError() { return m_error; }

public void setError(String s) { m_error = s; }

public String getMeasure() { return m_measure; }

public void setMeasure(String s) { m_measure = s; }}

4.2.3事实模板的定义与事实

在使用Java Beans之前,首先要定义相关联的模板。而注册Java Beans是为了生成相应的模板(deftemplate),Beans的属性对应与模板的槽。利用defclass函数可以通知Jess自动生成一个特定的模板来表示特定类型的Java Beans,如。

(defclass causation examples.rules.CausationBean)

(defclass conclusion examples.rules.ConclusionBean)

在Jess中等价的模板为:

(deftemplate causation (slot cf) (slot class) (slot name) (slot OBJECT))

(deftemplate conclusion (slot cf) (slot class) (slot error) (slot measure) (slot OBJECT))

因为每个对象类都继承java.lang.Object,getClass()是java.lang.Object的方法,所以以上模板有槽“class”。槽“OBJECT”是由Jess添加的,它是与模板关联的Bean的引用。

definstance函数功能是向事实库中加入Java Beans对象事实。由于Java Beans有支持java.beans.PropertyChangeListeners特性,如果只要Bean属性发生改变,都需通知Jess,则需在definstance函数中,指定为dynamic,否则指定为static。若definstance指定为static,Java Beans对象的属性发生改变,Jess不会被通知,若需Java Bean对象属性随之发生改变,Jess中对应的对象事实的槽值也需要更新,可以使用update函数。update函数就是通知Jess更新相关联的对象事实更新槽值。

4.2.4 应用实例

在Jess中,使用defrule构造型来定义规则。根据本系统的实际情况,一条规则主要由规则前件,规则后件,规则前件的可信度,规则强度(前件对后件的支持度),结论的可信度和判断是否结论成立的阈值组成。

例如,规则库有如下规则,其规则前件由两个存在“与”关系的子条件组成,它们分别为 (causation(name "时间和人力不足") (cf?c0))和 (causation(name "工作交接不清") (cf?c1)),这两个子条件的可信度分别是变量?c0和?c1,根据3.1节第二种情况可知,规则前件的可信度为?c0和?c1中最小值;此规则的规则强度为0.8,则规则后件(结论)的可信度为0.8乘以规则前件的可信度;结论成立的阈值为0.5,如果结论的可信度大于阈值,结论成立,否则结论不成立;实现上述规则的Jess代码如下:

(defrulepppp001

?fact1 <- (causation(name "时间和人力不足") (cf?c0))

?fact2 <- (causation(name "工作交接不清") (cf?c1))

=>

(bind ?c2(* 0.8(min?c0?c1))

(if(> ?c20.5)

then

(bind ?sb2 (new examples.rules.ConclusionBean))

(definstance conclusion ?sb2 static )

(call ?sb2 setError"未安装所需的设备/零件" )

(call ?sb2 setCf?c2 )

(call ?sb2 setMeasure "1.增加维修人员,减少时间上的压力.2. 严格执行工作交接班制度,工作交接要有文字记录.")

(update ?sb2)

(printout t "事实: " (fact-slot-value ?fact1 name) "、" (fact-slot-value ?fact2 name) crlf)

(printout t "应用了规则pppp001 (规则强度为0.8):" crlf)

(printout t "条件1:" (fact-slot-value ?fact1 name) crlf)

(printout t "条件2:" (fact-slot-value ?fact2 name) ";" crlf)

(printout t "推出结论:" (call ?sb2 getError))

(format t ",可信度为:%.2f%n" ?c2 crlf)

(printout t "相应措施:" (call ?sb2 getMeasure) crlf crlf)))

本系统还利用了Java Swing 组件和jess的API函数来编写Jess推理过程中涉及到的用户界面,其中涉及到的jess API主要类有:jess.Rete、 jess.swing.JTextAreaWriter 、 jess.awt.TextReader。jess.Rete表示规则引擎,jess.swing.JTextAreaWriter 和jess.awt.TextReader作为Jess推理过程所需的输入输出流。通过界面输入事实到事实库中,如:工作交接不清,可信度为0.89和时间和人力不足,可信度为0.85。Jess推理的实现效果如图2所示。

5 结束语

Jess引擎是根据事实和规则来推理,且推理速度是已知规则引擎中最快的。把Jess应用到机务维修差错预警专家系统中进行不确定性推理,能有效地控制同类差错或隐患的再次发生。结合其它推理技术,如基于案例推理、基于模型推理等技术来研究航空机务维修差错预警专家系统也是目前研究的方向。

参考文献:

[1]http://www.jessrules.com/jess/docs/index.shtml.

[2]基于Java规则引擎的汽车发动机故障诊断专家系统研究与开发[J]. 交通与计算机.2005(23),5.

[3]张渊,夏清国.基于Rete算法的JAVA 规则引擎[J]. 科学技术与工程. 2006(11),6.

[4]高曙,王群,罗帆.民航机务维修差错及其预警专家系统构建[J].武汉理工大学学报(交通科学与工程版).2007(31),2.

基于规则的推理 篇4

关键词:穿梭车,定位方法,故障诊断,故障树,规则推理

0 引言

穿梭车作为自动化物流系统中一种智能型轨道导引搬运设备, 在自动化物流系统中的应用日益广泛。它具有沿着固定路径动态移载的功能, 可实现物料在不同站点之间的传送, 使得自动化输送系统的设备布局更加紧凑、简捷[1]。然而, 实际工程应用中穿梭车的正常运行完全依赖于各组件装置的固有可靠性, 对穿梭车缺少有效的状态监测与故障诊断, 时常出现故障误报、漏报等现象, 而且一旦发生故障, 维修人员只能凭借个人经验逐一排查找出故障原因, 故障处理效率低下, 严重影响了整个物流系统的工作效率。

故障诊断技术已越来越多地在自动化物流系统领域得到应用。章採品[2]等研究了基于故障树分析法的堆垛机故障诊断专家系统, 重点阐述了专家系统知识获取与表示方式;李小平[3]等建立了一种基于Internet、OPC以及故障树技术的堆垛机远程故障诊断及维修系统, 对堆垛机信息的采集、传输、故障分析等相关技术进行了介绍;聂峰[4]提出运用上位和下位监控系统对穿梭车在应用过程中发生的常见故障进行诊断分析, 并通过监控系统和设计的作业跟踪与设备任务管理功能进行故障定位的方法, 该方法实现了穿梭车故障远程诊断功能, 但是对于故障原因分析仍需要人工查询确认, 存在故障定位不精确、故障报警信息不明确等缺陷。

本文针对某卷烟厂出入库穿梭车时常因当前站点信息丢失或激光脱靶等故障而无法正常运行的实际问题, 提出了一种组合条码识别与激光测距的冗余定位方法, 以增强定位的可靠性;设计了一种基于故障树与规则的穿梭车故障诊断系统, 以实现故障自诊断功能, 使用Visual Studio2010和Microsoft SQL 2008开发的原型系统在该卷烟厂穿梭车的故障诊断中得到了成功应用。

1 定位技术分析

定位技术作为穿梭车控制技术中的关键技术, 直接关系着穿梭车的安全性和运行效率, 一旦定位出现偏差、错误等故障, 极易导致物料出入库不正常、物料跌落损毁等事故的发生。穿梭车的定位方法主要有:1) 认址片定位, 即采用沿着穿梭车的行进方向设置认址片, 控制器通过检测认址片来判断穿梭车位置和站点位置;2) 认址片编码器定位[5], 即在方法1) 的基础上引入编码器对认址片进行校验, 从而提供定位可靠性;3) 激光定位[6,7], 即采用激光测距器进行定位;4) 激光认址片定位, 即在方法3) 的基础上采用认址片对激光定位进行校验, 提高定位可靠性[8];5) 条码定位[9,10], 即采用在穿梭车底部安装条码阅读器, 在条码阅读器的正前方、轨道的外侧边安装条码带, 穿梭车运行过程中通过扫描条码带获取位置信息进行定位;6) 磁栅定位[11], 即采用静磁栅位移传感器和静磁栅尺替换方法5) 中的条码阅读器与条码带, 实现精确定位。表1对几种定位方法进行了对比分析。

现阶段穿梭车大多采用单一技术手段进行定位, 性能各异;相比之下, 方法4) 不仅定位精度高而且可靠性高, 效果最好。但是, 由于认址片提供的信息量有限, 无法辨识当前站点信息。为此, 本文提出采用条码识别技术对现有激光测距定位进行校验, 构建了一种组合条码识别和激光测距的穿梭车冗余定位系统。条码识别技术是一种集信息识别、数据采集、自动录入和快速处理等于一体的新型信息技术, 为解决数据输入和数据采集的“瓶颈”问题提供了有效途径[12]。

2 冗余定位系统

本文提出的组合条码识别和激光测距的穿梭车冗余定位系统, 由激光测距模块、条码识别模块和控制模块组成, 系统结构如图1所示, 其中激光测距传感器选用SICK DL50-P2225, 测量精度为±3mm, 响应时间为10ms;条码阅读器选用SICK CLV650-0000, 其扫描空间为200mm~1600mm, 采用增强型SMART条码重组技术, 对于破损、污损、打印质量差或对比度差的条码有良好的读取性能。

通过激光测距模块对穿梭车当前位置信息进行实时跟踪采集, 并将得到的位置信息传递给控制模块;然后控制模块根据当前位置信息和目标站点的位置信息对穿梭车进行位置和速度控制;最后当穿梭车定位运行停止后, 控制模块通过条码定位校验模块扫描获取距离穿梭车最近站点的条码标签信息, 根据标签信息是否有效对激光测距定位进行校验, 判断穿梭车定位是否精准可靠。穿梭车定位改进安装示意图如图2所示。

1.激光测距传感器;2.激光反射板;3.条码阅读器;4.条码标签

3 穿梭车故障诊断设计

穿梭车作为自动化物流系统中的关键设备, 其故障具有随机性、不确定性。若穿梭车发生故障, 将直接影响整个物流系统的正常运转。为此, 对穿梭车进行故障分析、诊断十分必要。故障树分析法 (Fault Tree Analysis FTA) 是一种将系统故障形成的原因由总体至部分按树枝状逐渐细化的分析方法[13], 具有便于分析系统结构、刻画系统各事件关联性的优点。规则推理通过把相关领域的专家知识形式化描述出来, 形成系统规则进行检索推理, 符合人类思维习惯, 具有推理直观、快速的优点。结合二者的优势, 本文设计了一种基于故障树与规则的故障诊断系统, 采用故障树分析法对穿梭车故障进行分析, 确定故障原因及其发生概率, 按照相关准则将故障树转化为规则, 形成规则知识库, 并根据穿梭车故障发生的特点, 设计合理的规则推理机制, 最终实现穿梭车故障自诊断功能。

3.1 穿梭车故障树分析

故障树分析就是将故障原因从整体到局部逐步细化, 自上而下逐层分解, 从而对故障系统的可靠性进行评价和分析[14]。根据穿梭车主要结构和工作原理, 本文按下述步骤建立以“穿梭车不能正常运行”T作为顶事件的穿梭车主故障树。故障树主体结构如图3所示, 各事件对应的事件名称如表2所示。

3.2 故障树转化为规则

采用故障树对穿梭车故障进行分析处理, 即是通过研究穿梭车结构、功能和行为的因果关系, 理清故障传播的层次和父、子节点间的因果关系[14]。根据文献[15]提出的故障树转化为产生式规则的三条准则, 可以采用“IF THEN”型的诊断规则来体现各个父、子节点间的正向因果关系链, 以此来表示故障原因及故障传播逻辑关系。

3.3 规则推理

收集统计某卷烟厂穿梭车历史故障信息, 在2013年期间穿梭车主故障发生频次中:行走故障2次、移载故障6次、滑触线故障4次、控制故障0次、定位故障15次, 定位故障发生比例高达约56%, 说明导致穿梭车无法正常运行的原因一般都是由定位失效引起。因此, 在一般规则推理的基础上, 根据主故障不同频次分级建立子规则库, 即主故障频次越高对应的子规则库优先级越高, 推理过程中按优先级进行规则检索, 从而提高故障诊断效率。

4 实例分析

针对某卷烟厂出入库穿梭车使用过程中因当前站点信息丢失或激光脱靶等故障而无法正常运行的实际问题, 完成了对穿梭车定位方法的改进。实际应用中根据图4所示的定位校验诊断模型, 改进后的冗余定位系统实现了穿梭车当前站点信息的实时跟踪, 有效防止了在因激光测距误差增大等原因穿梭车移载链机与站点输送链机对位不准的情况下, 盲目进行上下货任务导致货物堵塞、跌落甚至损毁等事故的发生, 提高了系统定位的可靠性。

此外, 基于Visual Studio 2010和Microsoft SQL2008开发工具, 采用C#开发的基于故障树与规则的穿梭车故障诊断系统也在该卷烟厂得到了成功应用, 所开发故障诊断系统结构如图5所示。

运用该故障诊断系统, 不仅实现了穿梭车运行状态的远程监测, 状态参数监测界面如图6所示;而且根据设计构造的规则库和分级优先推理机制, 通过将获取的状态参数与推理规则进行实时匹配, 不仅保证了故障发生时系统的及时响应, 而且实现了穿梭车故障快速诊断功能, 故障诊断界面如图7所示。借助于系统得出的故障诊断信息, 维护人员对于突发故障可以第一时间获取详细的故障信息, 从而提高了故障维修效率, 减少了穿梭车故障停机时间。

5 结论

基于规则的推理 篇5

本文以大跨空间结构和高层建筑结构两类大型复杂结构型式优选为研究内容,建立了基于自组织竞争神经网络(SOFM)检索机制的实例推理系统,并应用于结构选型决策;采用面向对象的设计思想建立方案集,采用自组织竞争神经网络进行实例检索和匹配,形成了一套有效的.计算推理体系.最后给出一个高层建筑结构方案生成的算例,说明系统的工作过程.

作 者:邢方亮 王光远 作者单位:邢方亮(北京83号信箱351号,北京,100076)

王光远(哈尔滨工业大学土木工程学院,黑龙江,哈尔滨,150090)

基于规则的推理 篇6

告警是监视、保障配电网安全运行的重要工具,是智能配电网的重要组成部分。国内外对于地区电网调度系统的告警的研究程度已经较为深入,已经提出了基于专家库进行推理分析的综合告警方法。而在地区配电网方面,目前市场上主流的配电网主 站产品普 遍存在的问题是:采集到的设备运行数据全部按时间顺序显示,未加有效的分层或判断处理,且以离散的方式推送至告警窗,一旦发生事故 , 就会产生 大量的相关告警信息,这些大量的告警信息往往会令值班员眼花缭乱,无法快速有效地从中筛选出重要信息,从而影响事故处理的效率。

针对当前配电网告警存在的问题,结合配电网的特点和未来发展的需要,本文提出了一种基于时态产生式规则[1]的配电网告警综合推理方法,辅助调度值班人员对当前配电网运行态势进行综合分析处理[2,3],降低值班员因监控任务较重,而遗漏重要告警信号,延误处理造成事故的风险,同时也可以弥补因值班员技术业务水平参差不齐而带来的安全隐患。

1 总体设计

基于时态产生式规则的配电网告警综合推理方法主要设计思想:配电网各分析应用将告警信息发送给告警服务,告警服务接收到告警信息后,不再全部的、离散的、不经过甄别的按时间顺序在客户端显示[4],而是基于适应配电网业务的时态产生式规则进行综合推理,分析告警信息之间的内在联系,将彼此存在逻辑关联的告警信息综合形成具有实际意义的告警事件,告警事件按不同分类、不同等级在告警客户端显示,以告警事件为驱动,使得调度人员能够快速、清晰地掌握当前配电网运行态势,并能及时作出相应措施。

基于时态产生式规则的配电网告警综合推理机制主要由规则库和推理机两部分组成,其结构图见图1 。 规则库是总结归纳的配电网运行中发生事件判断规则的集合 ,推理机是根据规则对当前实时配电网告警信息进行分析处理,生成配电网告警事件的过程。

2 配电网告警规则库

配电网运 行过程中 , 产生的大量告警信息按时间先后顺序离散上送到客户端告警窗口,对于调度员来说要及时分辨出当前配电网运行中发生了什么事情是非常困难的,为提高调度员提取重要信息的效率,及时判断发生何种事件,需要设计一个规则库,其中的规则描述的是不同告警信息之间的逻辑关联,该规则的制定主要基于对告警信息的分析归纳,采用时态产生式方法,将彼此关联的告警信息有机结合在一起,告警规则库结构图见图2。

2.1 时态产生式规则原理

2.1.1 产生式规则原理

产生式规则以IF…THEN…的形式出现,就像BASIC等编程语言里的条件语句一样,IF后面跟的是条件(前件),THEN后面的是结论(后件),条件与结论均可以通过逻辑运算AND、OR、NOT进行复合。在这里,产生式规则的理解非常简单:如果前提条件得到满足,就产生相应的动作或结论。

2.1.2 基于时态的产生式规则

由于配电 网告警是 调度人员了解当前配电网运行状态的重要手段,对于告警信息的实时性要求非常高,并且告警信息的时序也是信息之间存在内在联系的非常重要的特征,所以告警综合推理必须包含时态这个重要元素,这就需要一种基于时态的产生式规则。其特征主要如下:

1)规则有效时间约束。

规则都有 一个有效 的时间约束,即在某段时间区间中,该规则才生效。

2)规则生成的时效性约束。

每个规则 都包含若 干前提条件,从第一个条件发生到最后一个条件发生必须在一个有效的时间区间之内,否则将无法匹配规则。

3)条件上的时间约束。

条件是带有时态性的,则同一条件体的属性在不同的时期需要匹配的内容有可能是不同的,在进行条件内容匹配时需要进行时态约束检查。

4)条件之间的时序约束。

条件之间存在 时序约束 , 条件发生的先后顺序关系到规则是否生效。

5)规则间的时序约束。

时态知识中规则间有可能存在着执行先后的时序约束,即只有规则R1执行完后才执行规则R2。

2.2 配电网告警知识获取

知识获取[5]是知识工程师根据领域专家给出的知识或资料获取知识,进行归纳总结,然后利用某种知识编辑软件输入数据库中,其实质是知识工程师负责将知识概念化和形式化。

对于配电网来说,配电网告警信息按产生的时间先后上传,反映到调度中心是一条条离散的报警信息,互相混迭在一起,淹没了各条信息之间的相关性。所以需要对配电网告警信息进行分类处理,需要分辨哪些告警信息是同一类的或存在内部逻辑关联的,将这些离散混迭的信息归整后,就获取了配电网告警需要的知识。

告警分类[6]归整主要 分3个层面:

1)按使用人员角色分类。

不同的使用人员,因为角色不同,关心不同类型的告警信息。比如配调人员一般关心配电网事故、配电网开关变位、遥控操作、配电网保护信号,而自动化人员则主要关注图模变化、终端状况、通道投退等告警,此外还有运检、安监、管理人员等多种使用角色,分别关注不同类型的告警。按使用人员角色对告警信息进行分类,使得使用者能够只关注自己想要看到的信息,减少了各类告警信息之间的干扰。

2)按告警重要等级分类。

配电网运行过程中,各类事件有轻重缓急之分,对应的告警重要等级也分为多个层级,可分为重要告警→异常告警→一般告警,等级根据具体需要可扩展。

3)按逻辑关联规则分类。

配电网大量的告警信息中,有很多信息之间是存在内在逻辑关联的,通过一定的规则对这些信息进行分类归纳,能够很好地辅助调度员进行故障判断及处理。

2.3 规则编辑及转换

系统提供了规则编缉工具,使用者能够根据需要自定义告警信息逻辑关联规则,可以增、删、改相关规则。规则定义的主要内容包括:

1)时态因素——该规则中多个条件之间的时态关系以及规则本身的有效时间。

2)优先级——当一个条件被多个规则使用时,根据优先级高低来处理。

3)规则逻辑——各条件之间的内在逻辑关系,哪些是必要条件,哪些是充分条件。

4 ) 条件 —— 满足推理的各个条件,每个条件可支持时间段、馈线、开关站、设备、告警类型、告警状态、关键字等要素。

规则转换 器的作用 充当规则内在和外在表示方式的翻译器,具体表现为:当向数据库中新增规则时,规则编缉工具输入完毕后,把外在表示的规则转换成内在表示,写入数据库;当从数据库中读取规则的时候,规则转换器需要把规则的内在表示转换成外在表示。

3 配电网告警综合推理机

配电网告警综合推理机的主要过程是: 当告警系 统收到配 电网告警信息后,通过分类、归纳、过滤无效信息,获得有效告警,通过规则库接口从时态产生式规则库中获取规则数据。将有效告警信息与规则进行匹配,并对规则之间产 生的冲突 进行消解,最终按规则执行,生成配电网告警事件[7]。流程图见图3。

3.1 规则匹配

规则匹配器主要根据收到的实时告警信息,从时态规则库中找出所有前台条件得到满足的规则。

实时告警 信息与规 则库中所有规则的前提条件进行比对,找到条件集合中是否有与之相符合的条件。如果有某条规则的某个条件符合,则将该规则存入缓存池,等待其他前提条件的满足。

每条规则 都有自身 的有效时间,规则的若干前提条件之间也存在时态约束,当缓存中某条待匹配规则超出有效时间还没有满足所有前提条件,或该规则的前提条件之间的时态约束发生错误时,表明该规则匹配失败,从待匹配缓存中移除。

当待匹配规则的前提条件及时态约束完全满足时,该规则匹配成功。

例如规则库中有这样一个规则:“IF XX配电开关分闸后10s内A配电开关发生保护动作信号;THEN XX配电开关发生事故跳闸”。

这个规则包含两个前提条件,“XX配电开关分闸”和“XX配电开关发生保护动作信号”,时态约束为“分闸后10s内保护信号发生”,即该规则的有效时间为10s且两个条件之间有时序约束。只有在10s之内收到“XX配电开关分闸”和“XX配电开关发生保护动作信号”两条告警信息,并且保护信号要在分闸信号收到之后收到,该规则才能匹配成功。

规则匹配功能解析见图4。

3.2 冲突消解

如果某一告警信息与规则条件集中两条以上的前提条件符合时,意味着可能满足两种规则,生成两种不同的告警事件,两种告警事件有可能都发生,但也有可能两者是冲突的,解决的策略是:规则消解器按照优先级最高的原则从侯选规则集中挑选优先级数最高的规则执行。如果存在优先级别相同的多条规则,则按照先到先触发的原则选择冲突次序。如表1所示。

如表1所示,有三条规则R1、R2、R3,都有前提条件C2,优先级R2和R3一样,高于R1。那么当实时收到的告警信息满足C2条件时,且其他条件也都已经满足并且符合时间约束的情况下,冲突消解的结果是R1规则不匹配,R2和R3规则条件先满足先触发。

3.3 规则执行

对于配电 网告警综 合推理来说,推理规则的执行即根据规则生成告警事件。当规则匹配成功后,系统生成配电网告警事件,告警事件是将存在逻辑关联的离散告警按规则整合而成的[8],通过客户端人机交互,给使用者以直观的对当前配电网运行态势的了解,并且可在人机界面上调用与告警事件相关的其他应用功能。

规则执行流程图见图5。

3.3.1 告警事件生成

根据规则生成的告警事件主要由以下要素构成[9]:

1)事件的名称、发生的时间、事件的类型、事件状态、事件重要等级等事件基本信息。

2)事件所包含的逻辑关联的所有告警信息,即哪些告警信号发生产生了此告警事件。

3 ) 分析该告警事件发生的原因,并给出解决问题消除告警的辅助决策方案。

3.3.2 人机交互

基于告警事件驱动的人机交互使得调度员能够从复杂而巨大的告警信息中解脱出来,只需要关注具体的少量的告警事件,就可以很好的对配电网进行监控。

基于告警事件驱动的人机交互客户端主要具备如下功能:

1 ) 告警客户端接收 / 发送模块接收到告警后台发送的告警事件。

2)根据不同的规则,如显示规则、责任区规则、等级规则等,对告警事件进行过滤和分类。

3)将分析和过滤后的事件发送到告警显示模块。

4)可按业务需要将使用者划分为不同类型的用户,根据告警事件的类型将事件发送给不同类型的用户登录的客户端人机界面。

5)每一类用户又可以按事件重要等级分层显示告警事件。

6)每个告警事件显示单元能够展开查看其所包含的所有关联告警信息。

7)根据告警事件类型的不同,告警事件显示单元上提供不同的调用入口,以便用户直接调用与告警发生相关的配电网应用功能,例如弹出相关电气接线图。

4 应用实例

依据本文 提出的基 于时态产生式规则的配电网告警综合推理机制,在D5200配电网运行控制与管理系统中进行了应用功能验证,内容如下:

1)建立规则库。

系统提供 便捷的规 则编辑工具,可以快速增、删、改推理规则,可对前提条件、时态约束等进行编辑。

根据配电网业务的需要,总结归纳了几种常用的规则,具体见表2。

2)规则匹配。

本次验证 中 , 选取了一 条规则进行匹配,生成告警事件,内容如下:

1规则名称:XX配电网开关事故跳闸事件(R1)。

2条件:XX开关分闸信号(必要条件),该开关的关联保护信号(必要条件C2),该开关分闸造成的风险告警(C3),该开关变位的SOE信号(C4)。

3规则描述:R1=[C1&&C2(C3||C4),|t1-t2|<3&&(t1-t3)<10&&|t1-t4|<3]。

当收到XX开关分闸信号时,预生成一个配电网开关正常分闸事件,当满足时态约束在开关变位发生3s内收到该开关的过流保护信号,这时开关事故分闸事件的两个必要条件全部满足,原来预生成的开关正常分闸事件变为开关故障跳闸事件。

在时态约束的范围内,即开关变位信号发生前后3s内收到的该开关的SOE信号,以及开关变位信号发生之后10s内收到的该开关产生的风险告警信号都归属到这次的配电网开关事故分闸事件中。

3)告警综合监视界面。

本次验证中,前台客户端界面按配电网调度人员、配电网自动化人员、配电网运行检修人员三种角色配置了三个主题界面,每个界面按告警重要等级不同分为事故告警事件、重要告警事件、一般告警信息3层。例如:发生了“225苏绣2号线英华配电所210开关事故跳闸”事件,人机界面上会第一时间在事故告警层弹出该事件告警,鼠标点击可以展开看到该事件包含的所有关联告警信息,以及产生该事件的可能原因和推荐解决方案。并且提供了图形定位、地理图定位、风险展示、停电分析等按钮用于调用相关的配电网应用功能。

5 结语

本文提出 了一种基 于时态产生式规则的配电网告警综合推理机制,该推理机制按照配电网告警的业务需求,分析归纳生成基于时态产生式的配电网告警逻辑关联规则,规则前提条件满足后生成了值班员需要的能够直观看到的配电网告警事件,化解了值班员面对大量离散告警信息而无法从中提取或遗漏重要告警信息的尴尬局面,消除了遗漏重要告警信号,延误处理造成事故的风险,减轻值班员监控工作量,弥补因值班员技术业务水平参差不齐而带来的安全隐患,同时有利于分析告警事件,获得产生这些告警事件的原因、造成的影响以及相应的解决方案,从而提高事故异常处理的准确性和快速性、保障电网安全运行。

摘要:传统的配电网告警信息量大,信息类型复杂,无分析推理过程,调度员难以分析出当前配电网运行中发生的重要事件,从而影响事故处理效率。针对配电网告警存在的问题,提出了一种基于时态产生式规则的告警推理方法,实现了实时告警信号与告警规则的关联匹配,并根据规则中的逻辑进行分析,对离散的告警信息进行综合推理,生成对应的告警事件。在D5200配电网运行控制与管理系统上的测试结果验证了基于时态产生式规则进行告警综合推理,生成调度人员需要的告警事件的可行性。

基于规则的推理 篇7

装配序列规划 (ASP) 经过多年研究, 已取得了不少研究成果, 建立了相对成熟的装配序列规划体系。然而, 现实的产品装配规划是个极其复杂的问题, 多数研究者在进行装配序列规划时会对该问题进行一些简化, 也即传统的装配序列规划问题只考虑简化的单调装配序列规划问题, 其特点是: (1) 规划零件为顺序装配, 每次完成两个零件或子装配体间的装配; (2) 零件间的所有装配关系一次建立, 且在装配过程中保持不变。

单调装配序列规划忽略了在装配过程中存在的拆装混合、反复试装等非单调情况。为了弥补传统单调装配序列规划算法的不足, 专家学者进行了研究:文献[1]针对虚拟装配中装配过程模型信息表达不完整的问题, 提出了一种基于层次链的产品装配过程建模方法, 对复杂的装配过程进行表示;文献[2]在分析装配单元、装配过程在产品装配过程中引入和退出装配环境的优先关系基础上, 提出基于有向图和无向图的连接图模型, 建立了集成装配过程信息的装配模型;文献[3]提出了虚拟环境下评价装配模型好坏的依据, 并给出了一种分层装配序列规划方法;文献[4]针对自动装配规划和交互式规划都存在不足的情况, 将虚拟现实和仿生算法结合起来, 提出一种生成优化装配序列的新方法;文献[5]针对卫星装配工艺特点, 分析了包含拆装混合信息的装配序列规划问题。上述研究工作都开始涉及到装配序列规划中的非单调情况, 但对非单调装配信息模型表达和序列规划技术研究不成体系, 没有对非单调的情况做详细分析, 所建模型不能很好地辅助生成装配序列, 这些都会影响非单调装配序列规划的有效性和实用性。

本文提出了一种基于知识规则与几何推理的非单调装配序列规划方法, 通过对非单调装配过程及其特点进行详细分析, 采用包含状态信息的层次关联图及装配知识规则两种方式对非单调装配信息进行表达, 基于该装配信息进行非单调装配序列的生成。该方法集几何推理的数学严谨性与装配经验知识的灵活性一体, 能有效解决非单调装配序列规划问题。

1 非单调装配过程分析

针对非单调装配过程的特点, 给出如下定义。

非单调装配顺序定义:对于一个装配顺序, 如果每个零件的装配是一次到位的, 即对于任一零件, 该零件安装后与之前已装配零件之间的相对位置始终保持不变, 不被后继的装配操作所更改, 则称此装配顺序是单调的。反之, 则称此装配顺序是非单调的。如图1所示的装配过程便是非单调装配顺序, 因为最后一步的操作改变了子装配1-2的原有结构。

对于非单调装配过程中存在的零部件状态不唯一的问题, 传统的以零部件为节点的装配模型无法如实反映。为了完整的表达产品的非单调装配模型, 我们引入粗粒度的装配任务类型 (Assembly Task, AT) 和细粒度的装配状态信息 (Assembly State, AS) , 对非单调装配过程进行表达。

装配任务AT:装配任务类型 (Assembly Task, AT) 是指为完成一个或多个零部件 (文中的零部件是指装配过程中的当前操作对象, 既可以是子部件, 也可以是零件) 的装调所需实施的连续过程。通过对不同形式的非单调装配过程进行分析, 总结归纳非单调装配过程可能包含的结构形式, 我们将非单调装配的装配任务类型分为组装任务、调整任务、拆卸任务。其中组装任务即传统单调装配任务, 调整任务和拆卸任务为非单调装配任务。

装配单元AU:一个完整的产品装配流程即将不同的零件或部件按照指定的约束顺序组装成总装配体的过程, 其中的零件或部件即称为装配过程中的装配单元 (Assembly Unit, Unit) 。由概念可知, 装配单元节点不严格区分零件和部件, 而将零件或部件统一看作其上一级装配体的结构成员。

基于非单调装配过程中装配任务的类型划分, 本文对非单调装配过程装配单元 (AU) 划分为关键节点、组装单元、关联关系组。其中关键节点即包含状态变化信息的非单调节点, 关键节点及其状态变化所对应的组装单元构成关联关系组。

装配状态AS:装配过程中零部件状态信息不唯一是非单调装配过程区别与传统装配过程的关键, 而装配状态 (Assembly State, AS) 是非单调装配过程中关键节点在某个时间点的状态表现, 它是装配过程中的零件属性信息。以拆卸任务为例, 在一个完整的拆卸任务中, 每个拆装节点至少包括“装、拆、装”三个状态变迁过程。同时, 零件装配状态的变化也对应装配过程的不断完善。

2 非单调装配信息模型的表达

2.1 包含状态信息的层次关联图

对于如卫星装配等结构复杂、零部件种类多的装配体, 用传统的装配模型表示会形成组合爆炸的问题, 使装配序列规划变得非常复杂。结合前文对于非单调装配过程所做的分析, 基于装配任务类型AT和装配状态信息AS, 丰富传统层次关联模型的内涵, 建立了一个集成零部件状态信息的层次表示模型。在该装配层次模型中, 产品的装配模型由装配任务-装配单元-装配状态三个层次。通过装配工艺知识确定子装配体、关联关系组, 简化装配层次模型, 并生成简化的层次关联图, 为后续的序列规划奠定基础。

由分析可知, 非单调装配多是由于装配作业是面向工艺组织而产生的, 其非单调节点定义在相应零件设计阶段、装配工艺规划之前, 故关键节点的状态信息及其对应的关联关系组也为已知条件。状态信息层很好地利用了装配过程中的已知信息, 丰富了非单调装配体的层次关系树的信息。

2.2 装配知识规则

层次联接关系图从图形角度为装配序列规划提供了完整、清晰的装配体信息。但装配序列规划是数字化装配系统中一个复杂的问题, 现如今的单纯的推理算法无法考虑装配过程中出现的拆装混合、重复试装等非单调问题。充分利用装配经验知识, 简化装配规划模型, 将一些已有的、常见的、符合习惯的装配部件的装配顺序按照一定的描述规范来建立一个规则库, 在装配序列生成推理时, 将装配体中的任一独立装配单元的联接关系图以及结构的相关装配工艺信息输入规则库中搜索与之相匹配的装配部件, 如果结构、功能类似则自动生成装配序列。该方法能在装配序列生成阶段剔除不符合装配工艺的装配序列, 提高装配序列规划的效率。

本文将该规则库定义为装配知识规则库。装配知识规则库主要是一系列成熟的装配知识按照一定的描述规范组建成的规则库, 而装配知识是指装配工艺人员在长期的日常生产实践中整理、挑选、总结出的装配经验。它由特定领域的描述、关系和过程组成。按照装配知识的特点划分, 将其分为两大类。

事实型知识:主要来源于具体产品的装配工艺事实, 主要用于同层子装配体之间、稳定的子装配体中所有零件之间装配顺序的判定以及子装配体和基础件的判定。事实型装配知识包括装配基础件判定知识、装配单元的判定知识。

经验型知识:即装配经验型知识, 指装配工艺人员在长期日常生产实践中总结出的用于判定独立装配单元中所有零件之间装配顺序的装配经验。经验型装配知识包括装配状态稳定性知识、装配操作方便性知识等。

根据基于装配知识特点的分类建立装配知识规则表, 如表1所示。

3 基于知识规则与几何推理的序列生成

根据以上分析, 提出一种基于知识规则与几何推理的装配序列分段规划方法来解决非单调装配序列生成难题。该方法基本思路是:在数字化预装配平台上, 以设计阶段产生的产品层次模型为基础, 根据实际需要, 由工艺人员依据装配知识规则对层次结构树直接进行调整与重构, 从而完成面向装配规划的产品子装配体再划分以及装配序列的初步划分;同时在子装配体划分的基础上, 采用几何推理的方法完成子装配体的装配规划, 最后完成非单调装配序列的规划。

非单调装配序列分段生成方法总体思路如下, 如图3所示。

(1) 首先输入装配模型信息, 包括层次关系模型、装配信息模型, 基于层次装配模型中的联接关系图进行装配基础件定义、子装配体提取;

(2) 参考装配工艺信息丰富层次关联图, 添加关键节点的状态信息及其对应的关联关系组;

(3) 比对装配知识规则库, 进一步提取装配信息, 构造整个装配体及各子装配体的联接关系图, 并将子装配体对应的超结点进行压缩得到层次联接关系图;

(4) 基于简化的整体联接关联图及零部件状态信息, 进行装配序列生成。参考装配知识规则库, 如果存在结构、功能类似的部分则可以直接运用装配经验知识正向推理生成装配序列;如果在装配知识规则库中没有搜索到与之相匹配的装配部件, 则利用拆卸法生成各子装配体装配序列;

(5) 正逆向序列结合得到总体装配序列, 并采用层次链装配过程模型对装配过程进行记录。

3.1 基于装配知识规则的推理

装配知识推理实质是一个装配序列专家系统, 在这个系统中主要是由两个相互独立的装配知识规则库和推理机组成。装配知识规则库中存放着依次按照条件规则标识号、条件表述、适用条件、条件标识号以及相对应的结论规则标识号、结论表述、结论可信度、结论标识号的装配经验知识。推理机主要的功能是实现事实与规则是否匹配的推理决策过程。黑板则主要是用来临时记录条件规则标识号, 条件标识号以及结论规则标识号、结论标识号等的有效工具。

在推理装配序列时, 首先将装配体中的任一子装配体的装配约束信息以及装配工艺信息确定事实输入装配知识规则库中搜索与之相匹配的装配部件, 如果结构、功能类似的规则, 则可以计算每一条规则的可信度CF值 (一般取值为0.5~1.0之间) 并且CF值最大的规则直接输出装配序列;如果在装配知识规则库中没有搜索到与之相匹配的装配部件则推理结束。整个装配知识推理的流程如图4所示。

基于上述的基于规则推理的装配序列生成的方法以及前文的装配知识规则库, 可针对某些具体和特定条件, 快速实现装配序列规划, 从而有效解决非单调装配序列规划问题, 提高装配序列规划的效率。

3.2 基于优先约束表生成可行序列

对于装配经验知识不能解决的问题, 则釆用基于优先约束的几何推理来生成子装配体的装配序列。

产品的装配顺序是由优先约束关系决定的, 包括硬约束和软约束两方面。只有满足优先约束的装配顺序才是可行的。采用虚拟环境下人机交互式拆卸的方法生成优先约束。将每个零件的拆卸操作定义为一个拆卸任务, 每个拆卸任务记录该零件的拆卸路径、拆卸方向和拆卸工具等信息。虚拟拆卸过程中, 根据零件之间的碰撞干涉信息生成硬约束, 根据人的经验和知识生成软约束。

定义优先约束表来记录和表达零件之间的优先约束关系。优先约束表来源于产品的装配关联图, 是一个n行n列的二维表格, 行标题Pi (1<i<n) 和列标题Pj (1<j<n) 分别表示产品的n个零件。表中的每一个元素Pij表示装配行元素Pi和列元素Pj间的优先约束关系集合。

定义1如果Pij的值为0, 它表示Pi和Pj之间不存在装配联接关系。

定义2如果Pij的值为1, 它表示Pi和Pj之间存在装配联接关系。

定义3如果Pij的值为1, 它表示Pi可以作为第一个装配的基准件。

定义4如果Pij的值包含优先约束算子“>xi”, 它表示Pi和Pj之间的装配必须先于引用联接xi所对应零件之间的装配。

定义5引用联接“xi”是为了方便表达零件之间的优先约束关系而定义的一个标记。根据需要, 任何两个零件之间的装配关系都可定义为引用联接。

基于优先约束列表的子装配体可行序列生成流程如图5所示。

4 结语

本文对非单调装配过程及其特点进行了分析, 采用包含状态信息的层次关联图及装配知识规则两种方式对非单调装配信息进行表达。最后提出了基于知识规则与几何推理相结合的非单调装配序列生成方法, 有效解决了包含拆装混合信息的大型、结构复杂装配体的装配序列生成问题。

摘要:针对传统装配序列规划不考虑非单调因素的问题, 提出一种基于知识规则与几何推理的非单调装配序列规划方法。首先, 对非单调装配过程及其特点进行了分析, 并采用包含状态信息的层次关联图及装配知识规则两种方式对非单调装配过程信息进行表达。最后依据所建立的装配信息模型, 采用基于知识规则与几何推理相结合的非单调装配序列生成方法, 实现非单调装配序列的规划。

关键词:制造业信息化,非单调装配,序列规划,知识规则

参考文献

[1]侯伟伟, 刘检华, 宁汝新, 等.基于层次链的产品装配过程建模方法[J].计算机集成制造系统, 2009, 15 (8) :1522-1527.

[2]张开富, 李原, 邵毅, 等.一种集成装配过程信息的装配建模方法[J].西北工业大学学报, 2005, 23 (2) :222-226.

[3]Yin Zhouping, Ding Han, Li Hanxiong, Xiong Youlun.A Connector Based Hierarchical Approach to Assembly Sequence Planning for Mechanical Assemblies.Computer Aided Design, 2003, 35 (1) :37-56.

[4]夏平均, 姚英学, 刘江省, 李建广.基于虚拟现实和仿生算法的装配序列优化[J].机械工程学报, 2007, 43 (4) :44-51.

[5]张渊.面向卫星总装的装配建模及规划[D].西安:西北工业大学, 2011.

[6]郭晓明, 马良荔, 徐兴华.复杂约束条件下的分层装配模型[J].计算机工程, 2011, 37 (18) :260-263.

[7]李晓枫, 王仲奇, 康永刚.基于DELMIA的装配过程仿真及其在飞机数字化柔性工装设计中的应用[J].锻压装备与制造技术, 2012, (6) :92-95.

[8]李刚, 马良荔, 郭晓明.交互式拆卸引导装配路径规划方法研究[J].计算机应用与软件, 2012, 29 (10) :248-250.

[9]符磊, 余剑峰, 张杰.基于多级骨架模型的关联设计方法研究[J].锻压装备与制造技术, 2013, 48 (4) :94-98.

基于规则的推理 篇8

规则推理 ( Rule - based Reasoning) 把专家的知识经验归纳成计算机可以表示的规则, 容易被用户理解, 适合知识丰富的应用领域; 案例推理 ( Case - based Reasoning) 使用以前同类问题的求解来解决当前问题, 在通用问题求解、故障诊断、辅助设计等领域得到较多研究, 适合经验丰富的应用领域。 这两种推理方式各有优缺点及不同的应用场合, 在决策支持系统中较多地将两者相结合, 形成优势互补的推理系统, 求解既有演绎信息又有类比信息的问题, 但常采用串行结合方式, 案例库和规则库缺乏交互则两者不能很好地取长补短、协同工作[2]。

本文依据IT外包发展过程, 将CBR和RBR两种推理方法从机理内部相结合, 构建IT外包决策支持系统框架并实现系统的原型。对CBR中案例的检索是系统的关键, 常用的方法有决策树、粗糙集、 聚类分析、最近相邻等, 但它们仅适用于确定性属性。考虑IT外包过程信息量大, 属性复杂而繁多, 存在案例信息不完备或描述不完备情况, 在传统的案例相似性度量算法中加入了案例的结构特征, 避免IT外包案例中属性值缺失问题; 同时根据IT外包案例特征的分析, 为不同类型的属性设计了不同的相似度算法。

1融合CBR和RBR的集成推理方法

RBR是从问题已有信息开始, 正向使用规则, 若规则的前件部分与问题情况相匹配, 就将其放入候选队列中, 在消除冲突后, 从候选队列中选择一条作为启用规则, 取出其结论[3]。

CBR是检索过去成功解决问题的相似案例, 比较目标案例与其背景及条件的不同进行一系列调整和修改, 重用以前的知识和经验来解决当前问题[4]。 典型CBR过程如图1所示。

( 1) 检索: 进行一系列检索和相似度计算, 对案例库中案例进行筛选, 找出与目标案例相似的若干案例。

( 2) 重用: 比较检索案例与目标案例的不同, 将相似度较高且被用户认可的解决方案提交以重用。

( 3) 修改: 若案例相似度没达到已设阈值或用户对方案不够满意, 则对方案修改后再提交给用户。

( 4) 保留: 将相似度小于设定阈值的新案例存入案例库中。

CBR和RBR的结合主要有两种方式: 一种以RBR为前导、CBR为补充, 用于领域知识不够充足的情况; 另一种以CBR为前导、RBR为补充, 用于领域知识丰富且实时性要求较高的情况[5]。

在IT外包管理过程中, 相关的技术条件和环境具有不确定性, 出现的问题常以个案方式处理。这里融合CBR和RBR对IT外包过程进行推理, 将CBR在上述四个阶段需要的RBR辅助和支持结为一体, 通过RBR调度系统对其访问, 在不影响各自独立性和完整性的前提下RBR是否及何时被调用取决于CBR对RBR调度系统的请求。其推理框架如图2所示。

框架中CBR和RBR同时工作, 在CBR的每个阶段中都可使用RBR调度系统来调用对应RBR辅助模块使其更好地工作, 并可使用RBR支持模块进行优化, RBR系统还可通过用户调整及自我学习机制达到调整与学习的目的。

2案例相似性度量算法设计

在CBR和RBR的混合推理中, 核心是CBR中案例的检索, 即相似度算法设计。最常用的是最近相邻算法 ( Nearest Neighbor Algorithm) , 根据属性相似度加权求和得到案例相似度, 但没有考虑模糊属性及属性不完备情况。这里在传统的NNA中加入案例结构相似度及模糊属性相似度来求案例的全局相似度[6]。

2. 1结构相似度

计算比较的两个案例非空属性集的交集属性的相似度, 排除空值属性。若源案例T与目标案例R比较, 计算过程如下:

( 1) 计算T、R包含的非空属性集合, 分别记为X、Y;

( 2) 计算X、Y的交集与并集, 分别记为M、N;

( 3) 计算M、N包含的属性权重之和, 分别记为w1、w2;

( 4) 则源案例T和目标案例R的结构相似度为:

2. 2属性相似度

( 1) 确定性属性。采用如下基于海明距离的相似度方法:

其中: sim ( Ti, Ri) 表示案例T和R第i个属性的相似度, ti、ri分别为T和R第i个属性的值。 对于确定数属性CN, maxi和mini分别为第i个属性的最大和最小值; 对于确定符号属性CS, 若ti= ri, 则两个属性完全相同, 否则表示两个属性是完全不同的。

( 2) 不确定性属性, 即模糊概念FL、模糊数FN、模糊区间FNI, 采用隶属函数来表示。采用梯形函数对模糊属性的相似度进行计算较为简便[7], 隶属函数的模糊集合表示为:

其中: 、m、p、q是参数, p、q一般由专家确定; 对于FN、FNI, p、q一般取cm和cm, c默认值一般为0. 1。模糊属性相似度通过计算两个隶属函数对应面积的重叠率得到, 公式为:

其中A表示模糊集合对应隶属函数的面积, ti∩ ri表示两个模糊集合的交。

2. 3案例全局相似度

根据案例T与R的结构和属性相似度, 得全局相似度为:

其中: S为案例结构相似度, wi为案例T和R交集属性集中的第i个属性在参与匹配的属性中所占的权重, 可根据实际选用层次分析法AHP、网络层次分析法ANP等权重确定方法计算得到。

3 IT外包决策支持系统功能结构模型

根据上述融合CBR和RBR的推理框架, 设计了如图3所示的IT外包决策支持系统功能结构模型, 系统主要由IT外包知识库、推理机、调度器、 综合数据库、知识获取机构、解释机构、人机接口等组成[8]。

( 1) IT外包知识库: 由规则库、案例库、模型库组成。规则库存放IT外包领域专家经验知识; 案例库存放已有的及系统生成的IT外包案例; 模型库存放IT外包每个阶段需要的结构模型, 用于方案的评价和选择。

( 2) 推理机: 是整个系统的核心, 根据用户输入的IT外包案例信息, 利用IT外包知识库进行推理, 得出结论。

( 3) 调度器: 是系统的控制中枢, 根据CBR和RBR融合机制, 决定在CBR的每一个阶段是否需要及何时启动RBR。

( 4) 数据库: 存放问题求解过程中的中间数据和结果。

( 5) 知识获取: 对IT外包领域专家、知识工程师的经验和知识进行抽象, 编辑成系统可识别的规则、模型、案例存入IT外包知识库中。

( 6) 人机接口: 采集用户输入的IT外包问题描述信息, 输出经过推理得到的IT外包方案, 完成IT外包领域专家、知识工程师的知识更新和完善, 通过它对系统进行总体控制。

( 7) 解释机构: 向用户解释系统的行为, 包括结论的正确性及系统输出其它候选解的原因。

4系统实现及实例分析

4. 1系统实现

这里以Visual Studio 2008为开发工具、以SQL Server 2008为后台数据库开发上述框架对应的IT外包决策支持系统原型, 主要思路为:

( 1) 首先通过人机接口输入IT外包问题描述, 解释机构对描述信息进行解释抽象, 调度器根据要求决策推理策略, 推理机通过CBR得到与用户描述相近的IT外包案例, 通过RBR得到与用户描述相近的IT外包规则, 共同对用户提供参考。

( 2) 建立IT外包决策指标体系, 与选用的评价模型预先存入模型库以备调用, 根据本文的案例相似度算法对目标案例与全部候选案例逐个进行比较, 计算案例的全局相似度。

( 3) 根据案例的全局相似度排序结果, 若大于预设的阈值, 可直接参考该IT外包案例的方案来解决目标问题, 否则根据RBR中的规则或用户的人为干预来对方案进行调整修改。

( 4) 解决问题之后, 系统根据自我学习机制决定是否将本次的求解作为新案例保存到案例库中, 若当前案例相似度大于自学习策略设定阈值, 则不用加到案例库中。

在系统运行初期, 由于案例库中案例较少, 可将规则提炼为标准案例以留指导, 同时对案例库中的案例方案进行详细分析, 归纳出典型案例的规则并保存到知识库中。随着系统的不断学习积累, 系统生成方案的效率及有效性也随着增加。

4. 2实例分析

IT外包过程的每个阶段都面临着不同的决策任务。IT外包发起阶段的任务主要是可行性分析, 以及分析驱动因素、战略目标等; IT外包设计阶段的任务主要是确定外包范围、选择接包商、签订外包合同等; IT外包实施阶段的任务主要是管理外包关系、监控外包合同等; IT外包评估阶段的任务主要是评价外包绩效、决定外包关系等。

以IT外包设计阶段的接包商决策为例, 案例库中有20家IT接包商案例, 规则库中有若干条IT接包商决策的规则, 模型库中有IT接包商评价指标体系及相应的评价模型[9]。为了叙述简便, 以仅选取IT接包商评价指标体系的一级指标体系为例, 设定目标案例为T, 源案例为S, 其中属性的类别及权重由系统调用模型库来得到, 通过原型系统的IT接包商决策信息界面输入案例T的属性信息, 调用案例库得到S的属性信息。主要信息如表1所示。

案例T和S的全局相似度计算过程为: 根据公式 ( 1) 计算两个案例的结构相似度S = 0. 964; 根据公式 ( 2) 、 ( 3) 、 ( 4) 计算两个案例的每个属性的相似度, 计算确定性属性使用公式 ( 2) , 计算不确定性属性使用公式 ( 3) 及 ( 4) ; 最后根据公式 ( 5) 计算两个案例的全局相似度为: sim ( X, Y) = 0. 964 * ( 0. 066 * 0. 274 + 0. 354 * 1 + 0. 233 * 0. 586 + 0. 116 * 0. 453 + 0. 195 * 1 + 0. 036 * 0 ) =0.729

计算每个案例与目标案例的相似度, 并按大小进行排序, 若用户对检索结果满意, 直接选用相似度最高的案例解决方案, 否则根据规则或经验对案例进行调整学习。

5结论

针对IT外包管理过程的复杂性和模糊性问题, 提出构建融合案例和规则推理的IT外包决策支持系统并实现系统原型, 将CBR和RBR从机理内部相结合, 充分利用IT外包案例中的经验及领域专家知识, 提高系统的综合推理和决策能力。对系统的核心案例检索部分使用了基于结构和属性的双重相似度算法, 同时对属性按其特征进行分类, 较好地解决案例中存在的属性值缺省及模糊属性的相似度计算问题, 提高案例检索效率。

参考文献

[1]张培, 马建龙, 曾珍香.基于CAS理论的IT外包决策过程研究[J].工业技术经济, 2009, 28 (4) :62-65

[2]张兴, 王英林, 张申生.可重构知识管理系统中案例与规则的集成推理方法[J].计算机应用与软件, 2008, 25 (2) :2-4

[3]靳鹏飞, 夏清国.CBR和RBR在GSM无线网络优化中的应用[J].科学技术与工程, 2006, 6 (9) :1292-1294

[4]曹立军, 王兴贵, 秦俊奇, 等.融合案例与规则推理的故障预测专家系统[J].计算机工程, 2006, 32 (1) :208-210

[5]谢胜强, 吴忠.基于CBR和RBR的设备采购决策支持系统[J].计算机工程与应用, 2003 (12) :71-73

[6]张英菊, 仲秋雁, 叶鑫, 等.基于案例推理的应急辅助决策方法研究[J].计算机应用研究, 2009, 26 (4) :1412-1415

[7]陈朝阳, 张代胜, 任佩红.CBR诊断系统实例获取的合成相似性度量方法[J].机械工程学报, 2004, 40 (5) :48-51

[8]王雷, 周洪亮, 张宏建, 等.基于CBR与RBR混合推理的仪表设计专家系统[J].自动化仪表, 2007, 28 (3) :33-36

基于规则的推理 篇9

目前由L.A.Zadeh教授提出的模糊推理在学术界是一个热门研究方向, 并已经成为模糊控制技术的数学核心.但传统的CRI方法都是基于紧密型规则库的, 一旦规则库中规则的前件之间存在空隙, 而输入正好在空隙上时, 上述模糊推理方法便失效了.针对这种情况, KóczyHirota在1993年提出了著名的线性插值推理方法 (简称KH方法) , 从而拉开了模糊插值推理研究的序幕.但KH方法并不能很好地保证推理结果的凸性和正规性, 故而许多学者为模型加入约束条件, 但条件越多就越难运用到实际中, 因此学者们开始探寻新的模糊插值推理方法.

2000年后模糊插值推理已经成为学者们研究的热门, 目前已有几种成型的模糊插值推理方法, 这些方法具有各自的优点, 但又普遍具有计算繁琐的缺点.故以探求一种简单方便的模糊插值推理方法为目标, 本文提出了“点—斜”模糊插值推理方法.

由于在实际的逻辑系统中模糊规则多为三角形和梯形隶属函数, 这两种函数的关键参数都是顶点、底点和两腰斜率, 故可以用这些参数对应的关系去解决问题.已有的模糊插值推理方法中, HCL方法便是利用底点和两腰斜率来求三角形隶属函数的, 这种方法的思想是:首先从各规则与输入的底点距离出发确定结论的底点, 其次从各规则与输入的左、右分支的斜率关系出发确定结论两腰的斜率, 再次调节结论两腰的斜率值使两腰交点的纵坐标为1, 进而得到顶点, 最后通过结论顶点与底点推出结论的表达式, 但在求顶点时涉及了调参, 无疑增加了计算量.

HCL方法的启发, “点—斜”模糊插值推理方法的思想——针对三角形、梯形隶属函数, 首先从各规则与输入的顶点距离出发确定结论的顶点;其次从各规则与输入的左、右分支的斜率关系出发确定结论两腰的斜率;最后通过结论顶点与两腰的斜率的值推出结论的表达式, 从而完成推理, 这种方法的特点是易理解、易操作.

二、“点—斜”模糊插值推理方法

推理模型是多样的, 但本文仅针对两规则单输入单输出模型给出推理方法, 模型如下:

规则1:A1⇒B1;

规则2:A2⇒B2;

输 入:A*;

输 出:B2.

其中“规则”即为“大前提”, “输入”即为“小前提”, 而A1, A2为大前提前件, B1, B2为大前提后件.

根据引言中提到的“点—斜”模糊插值推理方法的思想, 设计步骤如下:

第一步:求出规则以及输入的前件A1, A2与A*顶点的位置比例关系, 然后使规则以及输入的后件B1, B2与B*顶点亦满足此关系, 从而确定B*的顶点.第二步:找出A1, A2与A*左、右分支的斜率关系, 使B*的左、右分支与B1, B2亦满足此关系, 从而确定B*的两腰.这样便可以确定B*的隶属函数, 从而完成插值推理.由于这种方法用到了各模糊集合的顶点与腰的斜率, 故称此法为“点—斜”模糊插值推理法.

由于三角形隶属函数与梯形隶属函数顶点的数目不同, 故下文将分别展开论述.

第一步:求B*的顶点

值得强调的是本文中方法都是针对规则与输入均为一型非单点模糊集的情况.

(1) 当规则与输入的前件和后件均为三角形隶属函数.

假设A1, A2, A*, B1, B2与B*的顶点为a1, a2, a, b1, b2与b, 左分支斜率为k1, k2, k, h1, h2, h, 右分支斜率为t1, t2, t, m1, m2, m, 如图1所示.

由模糊集合的截集不难求得

a1= (A1) 1, a= (A*) 1, a2= (A2) 1,

b1= (B1) 1, b2= (B2) 1.

经典的线性插值推理方法给出集合务须满足d (A1, A*) ∶d (A*, A2) =d (B1, B*) ∶d (B*, B2) 的条件, 那么本文方法使顶点满足此关系即可, 即有

a-a1a2-a=b-b1b2-b (1)

整理, 得 (a-a1) b2- (a-a1) b= (a2-a) b- (a2-a) b1.

从而可推出求解b点的公式:

b= (a-a1) b2+ (a2-a) b1a2-a1. (2)

(2) 当规则与输入的前件和后件均为梯形隶属函数.

假设A1, A2, A*, B1, B2与B*上底的左、右顶点为a1, a′1;a2, a′2;a, a′;b1, b′1;b2, b′2与b, b′, 左分支斜率为k1, k2, k, h1, h2, h, 右分支斜率为t1, t2, t, m1, m2, m, 如图2所示.

由模糊集合的截集不难求得

a1=inf{ (A1) 1}, a=inf{ (A*) 1}, a2=inf{ (A2) 1},

a′1=sup{ (A1) 1}, a′=sup{ (A*) 1}, a′2=sup{ (A2) 1},

b1=inf{ (B1) 1}, b2=inf{ (B2) 1},

b′1=sup{ (B1) 1}, b′2=sup{ (B2) 1}.

与第1种的原理一致, 分别确定左、右顶点的关系如下:

左顶点所成比例关系:a-a1a2-a=b-b1b2-b. (3)

右顶点所成比例关系:a-a1a2-a=b-b1b2-b. (4)

从而可推出求解左、右顶点b, b′的公式如下:

左顶点公式:b= (a-a1) b2+ (a2-a) b1a2-a1. (5)

右顶点公式:b= (a-a1) b2+ (a2-a) b1a2-a1. (6)

综上我们便可根据不同的规则与输入求出推理结果B*对应的顶点.

第二步:求B*两腰的斜率

由于三角形与梯形同样都有两腰, 并且求解的方法是一致的, 故不需分情况, 下文将给出求两腰斜率的方法.

首先指出A1, A2, A*, B1, B2与B*左、右分支斜率一如前文定义, 即左分支斜率为k1, k2, k, h1, h2, h, 右分支斜率为t1, t2, t, m1, m2, m.

对于A1, A2, A*对应的左、右斜率, ∃α, β∈R使得

{k=αk1+βk2, t=αt1+βt2

成立.求解这个式子, 不难得到:

k1t1=k2t2时, 方程可能无解也可能有无数解, 但求不出唯一解, 故令h=k, m=t, 即求出了B*两腰的斜率.

k1t1k2t2时, 方程存在唯一解, 故令

h=|αh1+βh2|, m=-|αm1+βm2|. (7)

(此处将h取恒正, m取恒负是为了保证B*的凸性)

即求出了B*两腰的斜率.

综上便可求出任意规则与输入情况对应的推理结果B*两腰的斜率.

这样当一个具体实例给出时, 我们可以根据实际情况找出对应的方法求出推理结果B*的顶点, 再求出两腰的斜率, 从而确定B*的隶属函数, 完成推理.

三、运算实例

输入与规则的前件和后件均为三角形隶属函数, 其中:

A1 (x) ={15x, x5, -x+6, x>5, A2 (x) ={12x-112, x13, -x+14, x>13, A* (x) ={x-7, x8, -x+9, x>8, B1 (x) ={12x, x2, -12x+2, x>2, B2 (x) ={x-10, x11, -12x+132, x>11B*.

解 首先通过各隶属函数易求得对应A1, A2, A*, B1, B2的顶点为a1=5, a2=13, a=8, b1=2, b2=11, 左斜率为k1=15k2=12, k=1, h1=12, h2=1, 右斜率为t1=-1, t2=-1, t=-1, m1=-12m2=-12.

其次应用上文方法求结论的顶点与两腰斜率.

第一步求顶点, 代入第1种情况公式 (2) , 得

b= (8-5) ×11+ (13-8) ×213-5=5.375.

第二步求两腰斜率, 代入A1, A2, A*左、右分支斜率公式 (7) , 有

{1=15α+12β-1=-α-β

求解得α=-53β=83.

h=|12× (-53) +1×83|=116m=-| (-12) × (-53) + (-12) ×83|=-12.

最后通过顶点和左、右腰斜率求的B*的隶属函数如下:

B* (x) ={116x-42548, x438, -12x+5916, x>438.

四、结 论

本文在借鉴线性插值推理方法基础上, 提出了一种新的基于顶点和斜率的模糊插值推理方法——“点—斜”模糊插值推理方法.该方法克服了KH线性插值推理难以保证推理结果的凸性和正规性等问题, 即此方法能很好地保证推理结果的凸性和正规性, 且适用于推理规则与输入的前件和后件不一定是同型函数的情况, 这为模糊插值推理又提供了一个十分有用的工具.

基于规则的推理 篇10

虽然许多推理机中包含了通用规则, 但远远达不到人们智能推理查询的要求。因为在本体中, 简单地通过父类查子类的规则已经不能满足智能推理的深层次要求。如要实现更深层次的推理, 必须设置基于本体中类属性的自定义规则。也就是说, 不同的领域本体中, 需要设置相关自定义规则来实现深层次智能推理查询, 而在智能推理机的自定义规则设置中, 还没有形成特定的规范。自定义规则的构造方法是根据本体中各类的逻辑关系推理出相关类的属性特征, 通过属性特征查询所需要的数据。

本文提出一种基于本体的智能推理查询自定义规则构造方法, 借助SPARQL查询语言工具, 获取用户所关心的领域知识, 得到相关度和概念正确度比通用规则推理机更高的推理查询结果。相对于传统的数据库查询, 基于领域本体规则的推理查询具有更高的准确性, 进而提升筛选有用信息的效率, 扩大智能推理的应用范围。

1 智能推理基础

目前, 许多推理机被使用在推理相关研究中。其中, Jena是针对本体提供推理机, 并且它支持对本体的解析。在本体解析过程中, 推理能够获取本体中特殊形式的知识集合, 从而解决语义中的应用问题。

1.1 Jena结构

Jena是由惠普实验室语义网研究项目开发的一个开源项目, 是用于构建语义网应用的Java应用程序框架。它为RDF、RDFS和0WL提供了可编程的环境。Jena系统内包括:用于对RDF文件和模型进行处理的RDF API;用于对RDF、RDFS、0WL文件进行解析的解析器;RDF模型的持续性存储方案;用于检索过程推理的基于规则的推理机子系统;用于对Ontology进行处理和操作的Ontology子系统;用于信息搜索的SPARQL查询语言。Jena查询结构如图1所示。

1.2 Jena在领域本体推理中的工作原理

本文推理过程:先构建自定义规则;再把自定义规则导入Jena推理机中, 推理机能对目标本体进行推理, 产生含有自定义规则内容的本体Model;然后, Model API会对新产生的Model进行查询操作, 从而实现所制订的规则中的思想和目的。推理机工作机制如图2所示。

2 语义推理自定义规则构造方法

2.1 Jena内置推理机与通用规则引擎的不足及其解决方案

Jena提供的推理机能够支持本体基本构造的推理和本体一致的检查。通过使用本体的内置属性, 可以满足一般查询需求。但在实际应用中, 只有这些内建规则 (即通用规则) 形成的推理准则是不够的。例如, 用Protégé构建的手机关系本体图 (见图3) 。

在手机本体中, 两个不同类的关系不能如Sibling (兄弟) 关系那样简单地直接传递。RAM (手机内存) 的父类是Hardware (硬件) , 而Hardware的父类是Mobile。同样, Operating system (操作系统) 类的直接父类是Software (软件) 类, 软件和硬件是兄弟类, 可以直接传递。但是RAM和Operating system不能直接看成是兄弟类。从上述类关系图不能断定这个兄弟类的关系, 除非人工定义这层关系。

在推理机中, 本体中的类之间的关系需要明确定义, 或者通过传递、对称属性关系相连, 有间接关系才能被推理出来, 经过推理后才能被查询到。由于本体的自动构建技术不成熟, 本体构建仍主要由人工完成。在人工定义复杂系统关系时, 容易因疏忽而导致数据不完整或关系错误。针对OWL推理机的定义关系不足的情况, 通过自定义规则实现查询目标。例如, 上述手机关系的例子可以定义传递性规则如下:

此规则明确了推理新关系的方法, 推理机导入这条自定义规则后, 能使用SPARQL语言通过RAM查到它的间接兄弟类Operating system。使用自定义规则能解决内置推理机在定义关系上的不足。设置自定义规则的推理机可以添加一定数量的OWL常识, 进而查询出由OWL规则未明确定义的复杂关系, 这是对内置的OWL推理机中规则不足的一种有效解决途径。

2.2 本体中Jena推理自定义规则构造

首先, Jena允许用户定制自己的规则创建特定的推理机, 允许以这样的自定义规则形成对通用规则的补充, 进而满足实际应用领域的个性化需求。其次, 为了实现更深层次的推理需求, 必须设置自定义规则。

综上所述, 可以根据规则的构造方式, 将自定义规则表示为:一个规则的前提和一个规则结论。无论前提还是结论都可由一个或者多个原子规则组成。其中, 原子规则可以有以下形式:C (x) , P (x, y) , Q (x, y) 。x, y可以是变量, 也可以是OWL个体。具体如下:

Rule: (父类A有一个子类B) , (父类A存在一个特殊的对象属性)

→ (子类B是否存在这个特殊属性或推理其他属性)

Rule: (类A有一个兄弟类B) , (类A存在一个特殊的对象属性)

→ (兄弟类B是否存在这个特殊属性或与类A是相同类)

自定义规则的构造本质是根据本体中的逻辑结构推理出某类原本不存在的属性, 类属性是反映推理结果和应用推理结果的方式。以手机商品领域本体为例, 语义自定义查询规则如下:

Rulel说明如果某手机x属于y品牌, 而y品牌生成大屏幕的手机, 则手机x是大屏幕手机。

Rule2说明如果手机x属于品牌y, 而手机z属于品牌y, 则x和z有相同的操作系统。

3 基于领域本体推理的自定义规则实现

3.1 推理规则实现方法

首先, 使用Protégé创建领域本体文件, 然后通过Jena中的本体解析器和API接口把本体中的数据转换成RDF Model持久化存储到数据库中。最后, 调用ARQ查询引擎, 使用SPARQL查询语言实现对模型的查询。此本体查询中含有类查询、属性查询、实例查询。

在查询中导入2.2中的Rule1, 以手机商品本体为例, 核心代码介绍如下:

(1) 使用Model Factory中的CreateOntology Model () 方法来创建Model。

(2) 定义自定义规则, String gz=”[“rule1:……”。

(3) 设置SPARQL查询语句, String cx=”PREFIX Phone:……”。

(4) 创建推理机。

Reasoner tl=new Generic Rule Reasoner (Rule.Parse Rules (gz) ) 。

(5) 使用Create infModel (tl, mx) 方法来创建含有推理规则的infModel。

(6) 使用Query Factory中的Create方法生成查询, 返回结果。QueryExecution方法执行查询, execSelect () 方法返回结果。

查询结果如下:

(手机A;Has big screen eg;三星I9300) //三星I9300手机是大屏幕手机

3.2 基于自定义规则的推理查询实现

不同的SPARQL推理查询规范可以实现不同的推理查询规则, 其中通用规则可适用不同的领域本体, 并随着不同领域本体的信息而改变;自定义规则却不能随领域本体的信息而改变。所以, 针对不同领域本体实现推理查询, 必须设置对应的自定义推理规则。这些自定义推理规则可以根据具体情况在Jena中设置, 最后借助SPARQL查询语言得以实现。

本文介绍适用于更深层次推理查询规范, 这些查询规范可以实现所创造的自定义推理规则。但对于不同领域本体还是有一定差异, 以手机商品为例, 具体如下:

(1) 查询类c的自身对象属性 (不包含父类的对象属性) 。

手机x有一个对象属性y (电池容量) , 如果y的值大于1500mAh, 则可以推理查询出x是大电池容量的手机。这条规则的实现是用SPARQL查询中对象属性查询完成的。

(2) 查询类c的所有实例。

(3) 查询某个实例的某个属性值。

(4) 查询某类的实例及对应实例的某个属性值

4 结语

针对本体智能推理查询中的自定义规则构造规范缺失问题, 本文提出一种构造Jena中自定义规则的方法。该方法针对不同的领域本体时, 需要研究领域本体中各类之间的关系。经此过程, 能很好地构造对应的自定义规则。Jena中的通用规则已经不能满足用户对推理查询的需求, 本文提出的自定义规则方法解决了本体中类属性的推理查询。应用SPARQL查询语言实现智能推理查询的方法局限于类属性方面, 而类与类之间关系的推理查询, 还需要构造更全面的自定义规则。自定义规则的构造是促进语义研究问题发展的关键。

参考文献

[1]田宏, 马朋云.基于Jena的城市交通领域本体推理和查询方法[J].计算机应用与软件, 2011, 28 (8) :57-59.

[2]纪兆辉.本体的查询与推理研究[J].微电子学与计算机, 2011, 28 (10) :51-54.

[3]张宗仁, 杨天奇.基于自然语言理解的SPARQL本体查询[J].计算机应用, 20l0, 30 (12) :3397-3399.

上一篇:财政治理下一篇:专业信息教育