机器证明介绍(2)

原创 2003年07月07日 08:26:00

      

       (续文章《机器证明介绍(1)》)   

       机器证明,一个出发点,就是“寓理于算”,但这条路并不平坦。数理逻辑大家在探讨思维的符号化工作,计算机科学家也在探索计算机本身的能力极限。一代一代的人,在思索,人类的智慧的奥秘何在;机器如何完成这项工作,如何做的更好,乃至和人类一样好?

    上次说到这个公式的证明:
                            ┣ (α→β)→(α→α)
    它的证明序列很简单,如下:
    (1)  α→(β→α)                          (A1)
    (2)  (α→(β→α))→((α→β)→(α→α))  (A2)
    (3)  (α→β)→(α→α)                    (M)(1)(2)

    我在介绍证明思路形成的过程时,曾用到词语“眼前一亮”,但之于科学,这个描述是不好的。在这个问题上,张景中先生曾论述过关于几何定理证明中的人类证明与机器证明过程的异同,我加以扩充,描述如下:
    (1)检验:对所有已知条件进行观察和计算,以确定命题;
    (2)搜索:依据已有的(常用的)引理和结论,寻找更多的可知信息,如果这些结果不能达到目的,就把它 们作为进一步工作的基础;
    (3)规约:从结论出发,利用已知信息消去所依赖的某些已知量和条件,使结论的真假趋于明显或易于检验;
    (4)转化:改变命题的形式;如考虑传递律和反证法。


       手段(1)的机器模拟已经实现。手段(3)的研究取得了最大的成功,吴文俊先生的几何定理证明方法,就属于此类。(2)则是比较传统的常规手段,是规约的补充和转化基础。而手段(4),充分体现了人类思维的灵活性和丰富性,目前还难于机械化。

      上例子的思路形成,可以体现这些结论。然而毫无疑问,即使手段(4)的完美机械化,也需要我们的进一步努力;更何况,我想机器证明,待开拓的地方还远不止这些。

       那么,让我们开始沿着历史的脚步,来细致的看一下,机器证明中的试探法,计算机辅助证明,判定法和证明算法等研究方向的思路;希望我们都能于此感到美妙的兴趣,并有所乐。乐之乃我的目的,不过您若准备自己动手查资料,想深入下去,我则手舞足蹈了。  

       1,试探法
    使用试探法证明定理,可以从前提出发,或者从结论出发。
    从前提出发,就是由前提(包括公理、定义、已证明的定理以及所要证明的定理的假设)中的某些命题推出若干命题作为中间结论;再把中间结论加到前提之中,又推出若干中间结论。如此下去,若推出了所要的结论,则定理得到证明,否则就要考虑其它的途径,从前提的另一些命题推出另外的中间结论,试探推出待证明定理。
   从结论出发,则是考虑有了怎样的命题就能推出所要的结论,从而归约为证明这些命题;类似于上面的过程,若定理的前提包括了所需要的命题,则定理得到证明,否则仍需考虑另外的途径。
   试探法是一种手段,使用它只是有可能得到问题的解,但并不保证一定能得到解。而且,在定理得到证明之前,我们不能肯定它是不是不可证明的。
   
    在历史上,Newell-Shaw-Simon曾用试探法证明命题逻辑中的重言式。他们使用的形式系统,不是自然推理系统,而是重言式系统,即我们上次介绍的命题推理形式系统p。下面是他们的试探法:
   
    设要证明的A是形式定理,把A看作所要解决的问题。
    第一步,试验代入规则。比如:由α→(β→α) 可以推出:
                          α→((α→β)→α),
                          (α→β)→(β→(α→β)),
         如果能用代入规则由存储在“形式定理表”中的某个形式定理(包括形式公理)推出A,证明结束;否则代入规则无效,转入下一步。
    第二步,试验分离规则。在形式定理表中寻找(B→A)形式的公式,若有,则问题就由证明A归约为证明B,B称为子问题。于是使用B试验代入规则给以证明:如果B能够得到证明,则A的证明结束,否则把B送入“子问题表”。于是继续试验分离规则,若找不到(B→A)形式的公式,转入下一步。
    第三步,试验蕴涵词传递规则。蕴涵词传递规则不是定义中的一部分,它可由定义证明,但它非常有用,具体如下:

    α→β,β→r┣α→r     (Tr)
    具体方法为,先检查A是不是蕴涵式,如果不是,则不能进行第三步,于是在子问题表中取出下一个公式,转第二步;如果A是蕴涵式,例如有B→D形式的公式,则在形式定理表中找B→C或C→D形式的公式,若找到B→C形式的公式,则问题由证明A(即B→D)归约为证明C→D,而若找到C→D形式的公式,则问题归约为证明B→C。B→C或C→D是子问题,于是对之进行代入规则证明。若这个证明成功,则证明结束,否则把子问题存入子问题表,继续在形式定理表中寻找B→C或C→D形式的公式,并且重复方才的过程,如果找不到,则在子问题表中取出下一个公式,并转入第二步。

    以上证明A的过程中,停机条件是下面四种情形之一:A得到证明;机器时间用完;机器存储器用完;子问题表中的公式用完。因此,当证明过程结束时,A并不一定能得到证明。

    著名数理逻辑学家王浩曾给出一个算法,比这个试探法要简捷的多,证明了罗素的巨著《数学原理》中的几百条关于命题逻辑的定理,仅用了9分钟。这是一项意义深远的工作。有兴趣深入的读者可查阅注释2提供的参考资料。

     今天我们的旅程暂且到此,下次我们接着今天的足迹。热切的感谢您对理论科学的关注。

      注2:[王浩]. Toward Mechanical Mathematics , IBM Journal for Research and Development ,4,224-268,1960

      本文参考资料:

      1,[陆钟万]. 数理逻辑与机器证明. 科学出版社,1983

      2,[张景中]. 几何定理机器证明研究展望. 中国科学院院刊第二期,1997

PLA算法总结及其证明

PLA算法总结及其C++实现 PLA(Perception Learning Algorithm)适用于二维及高维的线性可划分问题。问题的答案只有同意或者不同意。例如银行可以根据顾客的个人信息来判断是...
  • DreamerMonkey
  • DreamerMonkey
  • 2015年03月04日 20:34
  • 5588

机器学习基石笔记(3-6)——机器学习的类型及机器学习有效性证明

3 Types of Learning 3.1 Learning with Different Output Space   (1)二值分类问题:输入空间是一个特征向量,输出空间只有2个值。    ...
  • u012332571
  • u012332571
  • 2017年03月12日 13:21
  • 360

机器学习【周志华】课后习题2.5证明

昨天买了本周志华的机器学习的书,看完了前两章,做了一下课后习题,发现2.5这个题基本上找不到答案,反正我是没有找到,这里我试图给出自己的证明思路。 首先要想证明这个问题,一定要知道AUC是怎...
  • lingyu666hapy
  • lingyu666hapy
  • 2017年06月02日 09:52
  • 219

机器学习简介

stanford university 机器学习视频地址:http://open.163.com/special/opencourse/machinelearning.html stanford ...
  • wenyoung
  • wenyoung
  • 2016年10月16日 22:26
  • 2032

模型评估与选择(中篇)-ROC曲线与AUC曲线

P-R曲线以二分类问题为例进行说明。分类结果的混淆矩阵如下图所示。假设,现在我们用某一算法h对样本进行二分类(划分为正例、反例)。由于算法可能与理想方法存在误差,因此在划分结果中,划分为正例的那部分样...
  • qq_37059483
  • qq_37059483
  • 2017年11月21日 18:54
  • 194

【排序】时间复杂度为O(N^2)的排序——冒泡、选择和插入排序

相关阅读:Java常用排序算法/程序员必须掌握的8大排序算法排序冒泡排序冒泡排序的时间复杂度为 O(n^2)冒泡排序的具体步骤请看下图:这里在写一个简单的冒泡排序题目吧题目:对于一个int数组,请编写...
  • tzs_1041218129
  • tzs_1041218129
  • 2017年01月22日 20:12
  • 1082

【机器学习】代价函数

代价函数(Cost Function/Squared Error Function)为什么要求代价函数? 当我们做线性回归时,不可避免的会产生一些误差,当我们预测出来的结果和真实的结果的直线越贴和就...
  • g616265424
  • g616265424
  • 2017年11月29日 10:43
  • 25

台大机器学习——可行性证明2

回顾与预览 基于统计的学习流程: --- 如果备选函数集的大小|H|=M,M有限,训练数据量N足够大,则对于学习算法A选择的任意备选函数h,都有       E-out(h)≈E-in(h) ...
  • qq756161569
  • qq756161569
  • 2016年12月20日 19:38
  • 196

冒泡排序[简单复杂度高O(N^2)]

冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。 “冒泡排序”的原理是:每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数(即第5位)归位,第二趟只能将倒数...
  • wtyvhreal
  • wtyvhreal
  • 2015年01月27日 15:49
  • 1839

无偏估计实例证明

无偏估计 在概率论和数量统计中,学习过无偏估计,最近在学习论文时候,也经常论文中提到无偏估计。虽然对无偏估计有所了解,但是还是有些问题: 1)总体期望的无偏估计量是样本均值x-,总体方差的...
  • xuejiren
  • xuejiren
  • 2014年03月31日 15:06
  • 9951
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器证明介绍(2)
举报原因:
原因补充:

(最多只允许输入30个字)