CSDN博客

img PercyLee

谈以演化计算思想做机器证明与推理的构想[1]

发表于2003/9/26 22:53:00  1016人阅读

谈以演化计算思想做机器证明与推理的构想

-----------说演化证明与推理的可能性

        作者:李连华(percylee@126.com

摘要:本文详细讨论由演化计算思想来做机器证明与推理工作的可能性,提出了演化证明与推理的相关概念和初步框架,并由此对演化证明与推理作出了展望。

关键字:机器证明与推理,演化计算,演化证明与推理,人工智能

 

证明与推理,是智能的高级表现形式;而机器证明与推理,则为人工智能的核心领域之一。近年来国内在机器证明的几何定理证明的道路上,取得了骄人的成绩,尤其是吴文俊先生与他的“吴方法”,开创了几何定理证明乃至机器证明的新局面,而展开了其“数学机械化”的梦想。

演化计算,作为一种新兴的计算模型,其成功已足以成为智能计算的基础。作为基于随机搜索策略的自组织、自适应系统,演化计算具有广泛的适应性。

大概从几个月前,根据自己在演化计算方面的经验,与一点点的机器证明知识,我开始思考这个问题:是否可以依据演化计算的思想,来做机器证明与推理的工作?这样,我们可以给之一个新的定义,不妨称为演化证明与推理

我目前还没有关于“吴方法”的详细的资料,只能找到简短的描述,不足以有所借鉴。所以以下的讨论,自然不是由几何定理的机器证明展开,而是从形式系统出发。

当然,从形式系统出发,证明与推理过程是严格基于逻辑推理的公理与形式规则的,而演化计算的基本策略是随机策略,又如何将它们融合在一起,让演化计算很好的为机器证明与推理服务呢?换句话,这种思路是不是可能且有效的?下面我从初步的思路出发,主要谈这个问题,并在这个过程中,给出一些新的定义,试图展示演化证明与推理的初步框架。

 

数据表达形式

形式系统的建立,是基于形式语言的。用演化计算的思想,来做机器证明与推理,首先的问题是:

   如何找到一种数据表达形式,即可以完全表达形式语言与形式系统,又可以方便的进行演化计算的编码?

如果说演化证明与推理如新生的微芽,那么这个问题,就是种子的第一层外壳。不给出一个很好的答案,有很多思想的冲动,但却不知如何表达了。

形式语言,我们以一阶语言φ为例,当然,我们可以加入模态算子 □ 和 ◇,但目前来讲还是没有太大必要。在讨论人类具体的证明过程给我们的启示时,我们再引入模态逻辑的证明序列。

一阶语言φ,主要构成部分为:

1,  非逻辑符号

(1)       个体常元,如c

(2)       谓词变元,如F

(3)       函数变元,如f

2,  逻辑符号

(1)       个体变元,如x

(2)       量词符号(作用域符号),如" $

(3)       联结词符号,如Ø∧,∨等;

(4)       辅助符号,如‘(’,‘,’,‘)’等。

 

    在此基础上,有项和公式的定义,我们不再赘述。只举两个公式的例子如下:

              公式1α β→α) ;

        公式2: "xα→β"xα"x β) ;

显然对于一阶谓词逻辑演算的形式系统Kφ,它们分别是公理(K1)和(K6)。这些逻辑公式表义是非常丰富的。不考虑其它,我们先问,用什么形式,作为我们数据表达的形式?对于数学讨论,使用“串”是非常好的。但对于我们的讨论,却并非如此,算法设计就过于复杂,有很多问题要面对。比如公式(1)是一个公理,但它的形式不是唯一的,亦等价于下面的公式:

公式3α ((β→γα) ;

但若要机器明白这一点,对于使用串的算法,即使可以做出来,也是相当复杂的。更不用说更为复杂的公式形式了。

有一个比较自然的表达形式,就是采用“树”,公式(1)和公式(3)树形结构为:

这样,似乎很方便(我们后边再谈),而且,对于演化计算的编码来讲,也是非常容易的。但是,问题很快又来了,公式(2)如何表达?这种限定域的信息,如何方便的表达出来,而兼顾演化计算的编码效率?

 

这个问题,前后困扰了我一个多月,曾想改造树形结构,后又想用广义表,后又回来改造树形结构。

初步的,我们给出如下的表达系统:

需要说明的是,图中p是一个指针,可指向(3)的接点或为空,而(3)中的string_val,可以是如下面的字符串:

                    "x1 "x2 $y

对于谓词变元与联结词的处理基本上是相同的,只是后者指向子树的指针的个数是一定的;而对于个体常元与个体变元的处理也是相同的。由此,我们可以表达公式(2)如下:

其中,三个限定域接点内容分别为:

string_val1: "x ;

string_val2: "x ;

string_val3: "x

且,αβ都是公式,实质上都是子树,所以它们表示为一个带p指针的结点。

使用这个表达方式,我们可以基本上解决形式系统的表示问题,如果要改变(扩充)形式系统的逻辑形式,比如我们要讨论模态逻辑,则模态算子可以视作一元的逻辑算子,表示类似于Ø

我们下面的讨论,都是基于这种数据的表达方式。

 

演化证明与推理的相关定义

为了便于做进一步的讨论,我们需要解决如下的问题:

    形式系统的公理与形式规则,实际上都代表了一类公式,这我们应如何处理?公式之间一定的关系如何表达?

比如,对于公理(K1),在图1中就展示了它的两个结论(注意我们可以视这样的树形式为我们图2的表达方式的简略形式)。如何判定它们是“相同”的呢?

我们给出如下的定义。

公式树T  基于图2的表达方式,所给出的形式系统的公式,称为公式树,记为T。图3是一个公式树的标准形式,图1则看作相应的简略形式。

公式树的标志集K  若公式树为形式系统相应的公理、形式规则或内定理,则有唯一的等式集描述树中的一些结点关系,它表现了该公理、形式规则或内定理的内涵本质,我们称之为该公式树的标志集,记为K。比如,对于公理(K1),图1中有两个不同的公式树,树的根结点为root,其左孩子为root->leftChild,右孩子为root->rightChild,则该公式树的标志集为:

{ root=→, root->rightChild=→, root->leftChild = root->rightChild->rightChild }

家族H  形式系统的任意一个公理、形式规则或内定理,它的所有公式树都在同一个家族里,则这样的家族相应于其公理、形式规则或内定理是一一对应的,家族的标志为该公式树的标志集,家族记为H

团体O  公式树的一个集合,如果不是一个家族,我们称之为一个团体,记为O

同家族关系~  若两个公式树T1T2在同一家族H里,则T1T2具有“同家族关系”,记为~,后可加小括号说明家族名称,即:

T1T2 H 等价于 T1 HT2 H

 

这样,根据这些概念,我们可以写算法判定图1中的两个公式树是“相同”的,即在同一家族,若公式(1)对应为公式树T1,公式(2)对应为公式树T2,公理(K1)对应为家族H1,则:

                           T1 T2 H1)。

 

                                                 <未完>

 

------------------------------------------

声明:本文作者保留所有权利

0 0

相关博文

我的热门文章

img
取 消
img