电力机器人逻辑推理规则研究
2022-08-31苑津莎张卫华
苑津莎,张 瑾,马 姿,杨 宏,张卫华
(华北电力大学 电子与通信工程系,河北 保定 071003)
0 引言
机器人应用于电力系统巡检具有巨大的优势。在满足有环境安全限制的生产现场需要方面,电力机器人发挥了重大作用,比如高空线路作业、高压设备检修、线路巡检、核电设备清洁、海缆巡检等[1-3]。
机器人在作业时需要具有主动意识,有审时度势、根据情况做出判断并采取适合措施的能力。机器人应能仿照人的思维方式,掌握一些基本的判断方法,比如演绎推理、归纳推理、溯因推理、类比推理[4-6]等方法,依据不同环境做出不同响应。
深度学习方法虽可以帮助机器人完成挖掘知识、建立模型、识别模式和处理分类,但在利用现有的如定理、规则等的知识仍存在分析问题能力较弱的问题;故机器人逻辑推理的应用是不可替代的。
国外学者在机器人思维方面做了许多研究工作并取得一定成果,如知识存储可采用的网络本体语言(web ontology language,OWL)系统。
OWL作为一种本体描述语言,具有较强的语义表达能力,且能对描述的本体逻辑进行可判定推理[7-9]。根据各类特征需求,OWL可以分为OWL Lite、OWL描述逻辑(description logic,DL)和OWL Full3种子语言;这3种语言表达能力依次增强,推理能力依次减弱。
目前,常使用OWL DL建立本体。由于该语言仅局限于描述逻辑,因此使用时还需要先构建合适的语言规则再进行推理。
语义网规则语言(semantic web rule language,SWRL)由W3C提出,用于描述推理规则。SWRL由Rule ML(rule markup language)演变并与OWL本体相结合,是一种以语义的方式描述规则的语言,其目的是提高本体的推理能力。
谓词逻辑推理是人工智能较早使用且沿用至今的知识表示方法。文献[10]将中文文本中的语义信息提取并将其转换为结构化本体,在融合领域背景本体库后,使用描述逻辑推理机判断并检测语义内容的逻辑一致性。文献[11]针对因语境不确定性导致的模糊问题,从2种不同语境逻辑角度出发的方法,分别诠释了谓词模糊问题与主词或句子的语义模糊问题的回避方式。文献[12]设计了含有模糊用户定制数据类型谓词的模糊数据类型信息的表示和符号分析流程,把具备智能体和可供性属性的词组成概念声明表,使用模型构建与功能分析法,结合谓词逻辑生成本体关联关系和逻辑本体,从而丰富并完善了基于符号逻辑本体建模的开发流程。文献[13]利用逻辑定标定义谓词逻辑属性,实现了多值背景转换;结合形式化语言表达对象间关系,实现了气象灾害领域概念内涵和外延在本体知识库下的逻辑表达和智能推理应用。
逻辑推理近几十年的研究大多是理论研究工作,面向实用的研究几乎没有。分析其主要原因为:在处理具体问题时,推理的规则粒度太小且数量庞大,用其组成系统解决问题过于困难[14]。
本文研究了机器人演绎推理的规则方法,提出了一种组合逻辑扩展规则及构建方法。该方法对机器人逻辑推理规则进行扩充,使机器人演绎推理的更容易组成较复杂的系统,使逻辑扩展规则可达到类似软件工程中的面向对象的效果。
1 谓词逻辑推理
谓词逻辑是大多数推理工具(包括 SWRL)的基础[15-17]。谓词逻辑推理(以下简称,推理),如公式(1)所示[18]。
式(1)中各量及逻辑符号含义见表1所示。式中“→”左边的Pi称前提,右边Q是逻辑的结论。例如推论x与y是兄弟,则
表1 谓词推理中各变量含义Tab. 1 The meaning of each variable in predicate reasoning
式中:x、y、z表示某人。
由谓词逻辑公式构成的式(2)推理规则如图1所示。
图1 兄弟关系的推理规则Fig. 1 The logical reasoning rules for brotherhood
式(1)中,原子公式写成P(x)或P(y,z)的形式,对应OWL类(class)和属性(property)。原子公式还可以是具有函数作用关系(built-in)的内置函数。
图1中的规则分为1部分,标签
表示输出结果,标签包含各项前提,属于要输入的部分。式(2)中原子公式在图1中用标签从图1中还可以看出,由于语言习惯的差异,图中英文所表达逻辑推理中的内容尚不够准确。因语言风俗习惯的原因,用外文表示中文含义总有不贴切的地方;所以,需要优先考虑使用中文语言以便于人与机器人的交流。鉴于此,在知识图谱、思想意识、语言表述相关的设计、存储等方面,应尽量使用中文表述,如知识图谱中的元素名称等,应开发中文处理工具。对于涉及的机器人思维方式、语言等,更应采用中文做机器人的母语。
2 改进的逻辑推理规则
为了使逻辑推理规则实用化,对图1中推理规则进行改进扩展。
讨论下面问题:假设x,y均为男性,并已知他们的年龄,判断x是y的哥哥,改用中文习惯表示。
式中:谓词哥哥(x,y)表示x是y的哥哥,y是x的弟弟;父亲(z,x)表示z是x的父亲;男(x)表示x是男性,等价于x.性别=男。
性别在机器人大脑存储的OWL文件中是人x的属性,其属性值是男或女。x.年龄表示x的年龄的值。同样y.年龄表示y的年龄的值。谓词不相同(x,y)在这里表示x和y不是同一个人。
y是x的哥哥的逻辑推理如式(4):
如图2所示,将式(3)和式(4)推理组合一起构成一个规则,称为扩展规则。图2中,标签换成了中文,
换为<输出>,替换为<输入>等。图2 通过父亲判断兄弟关系的扩展规则Fig. 2 The rules for judging brotherhood through fathers
图2的规则分为3部分,除了输出结果(用标签<输出>表示)和输入部分(用标签<输入>表示)外,增加了计算部分,用标签<计算方法>表示。
在输入参数中,式(3)和式(4)中原子公式父亲(z,x)、父亲(z,y)和不相同(x,y)、男(x)和男(y)是相同的,可以保持图1中的处理方法,放在输入部分的<前件>元素中;不同的部分,如大于(x.年龄,y.年龄)改为输入x.年龄和y.年龄的值,放在标签<计算量>中,需要由规则引擎去处理。
将计算功能用规则存储。<计算方法>元素记录了需计算的方法步骤,由规则引擎读入后执行。计算步骤和相关符号选用了C语言设计方法。计算结果返回规则引擎调用者。增加的<计算方法>元素部分,告知规则引擎如何计算,其需要的变量在输入部分的标签<计算量>中。
规则依次会有2个推理结果,按排序分别为结果1至结果 2,放在<输出>元素中。这里省略的<结果2>。
当完成一个推理需要多个规则链接时,完成推理的方法有正向链接和反向链接2种,也可称为正向推理和逆(反)向推理。
正向链接:从前提条件开始匹配,查找规则库中符合前提条件的规则进行推理;若该次推理的结果不是目标结果,在此条件下再次查找规则进行推理。
反向链接:将要求证的输出结果与规则匹配。当输入条件不满足当前查询的规则时,将未满足的条件作为下一步查找规则结果的检索值,重复该步骤直到找出与已知条件匹配的规则;否则查找失败。
在图2的规则中,正向链接没有问题,可照常应用;反向链接由于有多个结果,输入条件中没有区分,故在<结果>元素中设计了<因源>子元素,用于前提条件的补充。<因源>子元素只是用于反向链接时规则检索,对其他应用相当于一个类似说明的元素。
上面的规则还可进一步扩展,通过父亲判断兄弟姐妹关系。
定义:谓词姐姐(x,y)表示x是y的姐妹关系,x是y的姐姐,y是x的妹妹;谓词姐弟(x,y)表示x是y的姐弟关系,x是y的姐姐,y是x的弟弟;谓词兄妹(x,y)表示x是y的兄妹关系,x是y的哥哥,y是x的妹妹。
式(5)至式(8)给出了其他 4个谓词逻辑推理表达式。
将式(3)至式(8)合在一起,于是可写成一个扩展规则。通常可以将相关的输入或输出的规则构成一个扩展规则。
举例:通过母亲建立家庭成员的关系。假设x是y的母亲,z是x的父亲,则可推理出式(9)—(11)。
建立规则如图3所示。这里省略了扩展规则输出部分。
图3 通过母亲建立家庭成员关系的规则Fig. 3 The rules for establishing family relationships through mothers
图3中,将谓词函数名称作为变量,代表不同的谓词。本例中,变量C可取值为父亲、母”和弟弟。
为了使设计的规则具有通用性,下面考虑在专业领域中对规则的要求。
3 机器人存储专业知识的方法
为发挥机器人的更大作用,需让机器人掌握专业知识,使其达到本科甚至研究生专业水准。具有专业知识的机器人在应用中解决问题的能力会有飞跃式的提高,甚至可以利用机器人从事科研工作。
本文以电路课程为例,在所给出的让机器人掌握专业知识的方案中,将电路课程的基本概念、原理、定义、定理转换成知识图谱,存储到机器人大脑。
本文提出将规则用于计算公式的表示方法,以便让机器人可以根据电路知识求解电路课程中习题,从而使机器人具备解决电路专业相关问题的能力。
在直流电路中,电阻上的电流和电压的关系由欧姆定律决定,即
当电阻上的电压为U1、电阻值为R1时,将式(12)写成谓词逻辑推理形式,为:
在电路分析计算中,令U等于U1、R等于R1,则通过电阻的电流I等于f(U1,R1)。式(14)中,等于(U,U1)和等于(R,R1)恒满足,故只需计算f(U1,R1)赋予I即可。
图4给出了电路欧姆定律的推理规则。
图4 欧姆定律推理规则Fig. 4 Ohm's law reasoning rules
通过图4,可以将欧姆定律规则与前述家庭关系规则进行对比分析,观察统一了规则的格式和形式。
欧姆定律是从实验数据总结出来的规律,也是从大量样本数据学习得来的。通过深度学习方法也可以得到相应的结果。但是当参数变化以后,深度学习的方法需要重新学习训练,消耗大量收集样本和训练的成本。比如,对于2个电阻并联电路,用欧姆定律可直接得到结果,深度学习方法需要重新搜集样本训练建立新模型。
在尚没有可用的规律、定理、规则的问题处理中,深度学习方法有广阔应用空间。在通过学习归纳推导出规律后,应尽量采用这些规律来解决问题,而不应采用深度学习方法从头开始通过学习训练解决问题。
从机器人思维来讲:学习训练是第一步;从中得到规律、规则是进一步升华;用这些规律、规则解决问题才能达到思维境地——让机器人创新。
4 案例分析
基于以上对逻辑推理扩展规则的分析,本文提出了构建逻辑推理扩展规则的方法。具体步骤如下。
步骤1:对所要表示的问题进行需求分析。
步骤2:分析规则的输入和输出值域范围,对涉及的相关规则整理归类,确定扩展规则的范围。例如,电力物资仓库的供货方案的订货时间为 0至∞;将相关规则合并扩展等。
步骤3:检查规则间的矛盾,并予消除。
步骤4:定义问题在不同条件下的多个输出,表示每一个输出的推理结果。
步骤5:将各谓词逻辑推理式前提条件中的共同原子式,写入<前件>元素。
步骤6:分析规则中前提条件的不同部分,提取输入变量,写入<输入量>元素。查询每一逻辑规则的输入是否有冗余。
步骤7:采用程序设计方法,设计计算逻辑,构建<计算方法>元素。
步骤8:填写<因源>元素。
步骤9:检验逻辑推理扩展规则是否正确。
在某电力物资仓库的供货方案中,一个典型的案例经需求分析整理后,供货要求和逻辑推理表达式如表2所示。
表2 供发货方案的逻辑表示Tab. 2 Logical representation of the supply and delivery plan
参考表2,在该问题中,各谓词逻辑公式前提条件中无相同原子式部分。设:用户端x1=订货时间,x2=需求量,供货端y,库存量为y1。于是,表1中的谓词逻辑推理公式均可用变量x1,x2和y1通过计算得到。
采用判断树方法设计算法流程,结果如图5所示。
图5 供发货方案Fig. 5 The supply and delivery plan
图6给出了供发货方案逻辑规则。从图6的规则结果中看出,方案的输出谓词逻辑表示出现困难,只是给出了类似标识的谓词,所以只能通过标识再去查找操作细则。为节省篇幅,这里省略了<因源>标签。
图6 供发货方案的逻辑规则Fig. 6 The logic rules for the supply and delivery plan
图5的供发货问题用一个组合扩展规则即可表示其逻辑关系,简化了问题的处理方法,类似面向对象软件工程方法,可以方便的构建复杂系统。根据供货方案,设置了全部可能的路径进行测试,图6中的共发货规则测试结果与图5共发货方案相同。
虽然谓词逻辑演算已经过多年研究,但其主要研究方向为推理演算及可行性,目前并没有向应用需求方向发展。所以,在机器人推理方面,仍需要进一步研究拓展。
5 结论
本文针对逻辑推理规则的实用化问题,提出了一种可应用于较复杂情景的组合逻辑扩展规则方法;给出了一种机器人掌握专业知识的方案,提出了将逻辑推理规则用于计算公式的表示方法。
将组合逻辑的方法用于一个实际的电力物资供发货方案,初步验证了本文方法有效性。
后续研究:在此规则的表述方法上,构建规则组件、规范组件接口,并通过不同情况测试来优化规则组件。