[0104] 4.2
[0105] 4.3
[0106] 4.4
[0107] 对于不同类型的模糊描述,本发明实施例采用不同的隶属度函数,得到相应 的隶属度。这样,所有的事实都有了相应的隶属度和隶属度函数。
[0108] 步骤S2:构建Rete推理网络,将所有规则和事实输入到Rete的推理过程中。 Rete的推理包括两个过程:根据规则集合生成Rete推理网络;将事实逐个输入到 Rete推理网络进行规则匹配。图2为本发明实施例的Rete推理网络的构建模型示 意图。如图2所示,Rete推理步骤包括:
[0109] 步骤S21,定义相关概念。
[0110] 对相关概念进行如下定义:
[0111] 事实:对象之间及对象属性之间的多元关系。
[0112] 规则:是由条件和结论构成的推理语句IF语句,一般表示为if...Then。一个 规则的if部分称为LHS,then部分称为RHS。
[0113] 模式:就是指IF语句的条件。这里IF条件可能是有几个更小的条件组成的大 条件。模式就是指的不能在继续分割下去的最小的原子条件。
[0114] 步骤S22,描述Rete推理过程。
[0115] 如图2所示,所述步骤S22进一步包括如下步骤:
[0116] 步骤S221,创建根节点,所述根节点为推理网络入口;
[0117] 步骤S222,加入规则i,其中,i为所加入规则的序号,i为从1开始的自然数; 对加入规则i的过程包括如下步骤:
[0118] 步骤S222a,从规则i中取出模式1;
[0119] 步骤S222b,检查模式1对应的Alpha节点是否已存在,如果存在则记录下节 点位置,如果不存在则将模式1作为一个Alpha节点加入到网络中,同时根据Alpha 节点的模式建立Alpha内存表;
[0120] 步骤S222c,重复步骤S222a和S222b,直到规则i中所有的模式处理完毕;
[0121] 步骤S222d,,按照如下方式组合Beta节点:
[0122] 第一Beta节点的第一输入节点为Alpha节点,第二输入节点为虚拟Beta节点; 或两个输入节点均为Alpha节点;
[0123] 后序Beta节点的第一输入节点为Alpha节点,第二输入节点为之前组合完成 的Beta节点;
[0124] 将每个Beta节点的两个父节点的内存表内联建立Beta内存表;
[0125] 步骤S222e,重复步骤S222d直到所有的Beta节点处理完毕;
[0126] 步骤S222f,将Then部分封装作为最后Beta节点的输出节点,称为Action节 点,规则i加入完毕;
[0127] 步骤S223,重复步骤S222,直到所有规则处理完毕。步骤S3:在Rete推理 过程的步骤S222d,对Beta节点的两个输入节点进行模糊集合运算,常用的模糊 运算有模糊交(T范式)算子、模糊并(S范式)算子、模糊补算子和模糊蕴涵算 子等。优选的,本发明实施例采用的是模糊交算子进行模糊推理运算。因为这种 模糊算子会得到较高的匹配成功率,而且执行效率更高,该模糊交算子的定义如 下:
[0128] 两个模糊集合A和B的交集也是模糊集合,计作A∩B,通常有函数 T:[0,1]×[0,1]→[0,1]来描述,它表示由模糊集A和B的隶属度函数向A和 B的交集的隶属度函数转换的一个函数,即
[0129]
[0130] 其中 是表达函数T的二元算子。
[0131] 它满足以下基本条件:
[0132] T(0,0)=0,T(a,1)=T(1,a)=a(有界性)
[0133] T(a,b)≤T(c,d),如果a≤c且b≤d(非减性)
[0134] T(a,b)=T(b,a)(交换性)
[0135] T(a,T(b,c))=T(T(a,b),c)(结合性)
[0136] 最常用的T范式算子为:
[0137] 极小:Tmin(a,b)=min(a,b)=a∧b,
[0138] 代数积:Tap(a,b)=ab,
[0139] 有界积:Tbp(a,b)=0∨(a+b-1),
[0140] 直积:
[0141] 优选的,本发明实施例采用的模糊算子是Tmin。
[0142] 下面通过一个具体的实施例并结合附图,对本发明做进一步详细说明。
[0143] 图3为本实施例的Rete算法建立规则网络和规则匹配示例图。Rete网络是一 个事实可以在其中流动的网络。Rete网络的节点可以分为四类:根节点(root)、 类型节点(type node)、Alpha节点、Beta节点。其中,根结点是一个虚拟节点, 是构建Rete网络的入口。类型节点中存储事实的各种类型,各个事实从对应的类 型节点进入Rete网络。
[0144] 如图3所示,首先,给出如下事实:
[0145] w1:(B1^on B2)w6:(B2^color blue)
[0146] w2:(B1^on B3)w7:(B3^left-of B4)
[0147] w3:(B1^color red)w8:(B3^on table)
[0148] w4:(B2^on table)w9:(B3^color red)
[0149] w5:(B2^left-of B3)
[0150] 所有的模式(原子条件)如下:
[0151] C1:(^on)
[0152] C2:(^left-of)
[0153] C3:(^color red)
[0155] C5:(^color blue)
[0156] C6:(^color green)
[0157] C7:(^color white)
[0158] C8:(^on table)
[0161] 图4为匹配三个规则的示例图,这里面所有的C1到C10都是示例条件,即假 设有相对应的事实可以匹配成功,具体的描述如下:
[0162] 规则一(P1)需满足的条件是:C1^C2^C3;
[0163] 规则二(P2)需满足的条件是:C1^C2^C4^5;
[0164] 规则三(P3)需满足的条件是:C1^C2^C4^C3;
[0165] 输入所有的事实到Alpha网络,根据规则推理过程S22进行事实匹配,得到 的结果就是图4所示的结果。
[0166] 图5为图4中的规则一(P1)的具体实施过程,这里面所用到的事实就是图3 所示的事实。图5中的Alpha网络可以参考图3中的虚线左半部分。具体过程描 述如下。
[0167] 如有以下规则:
[0168] IF C1^C2^C3THEN RHS(这里C1^C2^C3就是S21步骤规则概念中的LHS)
[0169] 则本实施例的Rete算法建立规则网络过程为:
[0170] 步骤S221,创建根节点root节点,为推理网络入口;
[0171] 步骤S222,加入规则P1,加入规则P1的过程包括如下步骤:
[0172] 步骤S222a,从规则P1中分别取出模式C1,C2,C3;
[0173] 步骤S222b,检查模式C1对应的Alpha节点是否已存在,如果存在则记录下 节点位置,如果不存在则将模式C1作为一个Alpha节点加入到网络中,同时根据 Alpha节点的模式建立Alpha内存表;
[0174] 步骤S222c,重复步骤S222a和S222b,直到规则P1中所有的模式处理完毕;
[0175] 步骤S222d,按照如下方式组合Beta节点:
[0176] 第一Beta节点的第一输入节点为Alpha节点,第二输入节点为虚拟Beta节点;
[0177] 第二Beta节点的第一输入节点为Alpha节点,第二输入节点为第一Beta节点;
[0178] 将每个Beta节点的两个父节点的内存表内联建立Beta内存表;
[0179] 步骤S222e,重复步骤S222d直到所有的Beta节点处理完毕;
[0180] 步骤S222f,将Then部分封装作为最后Beta节点的输出节点,称为Action节 点,规则P1加入完毕;
[0181] 步骤S223,重复步骤S222,直到所有规则处理完毕。
[0182] 对于规则IF C1^C2^C3THEN RHS的推理过程:创建Reta网络和根据Rete 网络匹配的过程就是图3所示实例。图4和图5是图3的分解示意,并且图4给 出了一般情况下(多个规则匹配)的示例过程,图5则为规则P1的事实匹配过程 (对应图3虚线右半部分)。
[0183] 结果一,刚开始所有事实的隶属度全是1,所以最后匹配成功的事实组合是 w1^w5^w9。
[0184] 结果二,现在更改事实的隶属度,假设采取梯形隶属度函数重新计算出w3和 w9的隶属度,u(w3)=0.9,u(w9)=0.7,在规则匹配的最后一步,即在S222d 中内联两个Beta的父节点时,采用T范式算子计算满足规则C2和C3事实集合的 运算,计算结果w1^w5^w3的隶属度为0.9,w1^w5^w9的隶属度为0.7,那么最 后的匹配结果就是w1^w5^w3。
[0185] 从以上实施例可以看出,本发明的基于Rete推理网络的复合推理方法,在模 糊的事实定义中推理得到确定的结果并赋予置信度,为大规模知识库推理提供了 模糊本体优化和扩展的解决方案。
[0186] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术 人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这 些改进和润饰也应视为本发明的保护范围。