浅谈数理逻辑在计算机科学中的应用
文章整理编辑---论文文库工作室(QQ1548927986)
摘 要:数理逻辑是离散数学课程中研究推理的逻辑学科,它为确定一个给出的论证是否
有效提供各种法则和技巧,在计算机科学里用来检验程序的正确性,也可以验证定理和推论,同时在计算机模型、计算机程序设计语言、计算机硬件系统等方面有着重要作用。研究数理逻辑在计算机科学领域中的应用,必须从研究数理逻辑的符号化开始讨论、加以分析、验证结论。
关键词:数理逻辑;命题逻辑;一阶逻辑;推理理论
离散数学是现代数学的重要分支,是研究离散量的结构及相互关系的学科,它在计算机理论研究及软、硬件开发的各个领域都有着广泛的应用。其内容大致包含数理逻辑、集合论、代数结构、组合数学、图论和初等数论6部分,这6部分从不同的角度出发,研究各种离散量之间数与形的关系。本文主要研究数理逻辑部分在计算机科学领域中的应用。 1.为计算机的可计算性研究提供依据
数理逻辑分为命题逻辑和一阶逻辑两部分,命题逻辑是一阶逻辑的特例。在研究某些推理问题时,一阶逻辑比命题逻辑更准确。数理逻辑中的可计算谓词和计算模型中的可计算函数是等价的,互相可以转化,计算可以用函数演算来表达,也可以用逻辑系统来表达。 某些自然语言的论证看上去很简单,直接就可以得出结论,但是通过数理逻辑中的两种符号化表达的结果却截然不同,让人们很难理解,这就为计算机的可计算性研究埋下伏笔。下面举一个简单例子加以说明。
例1 凡是偶数都能被2整除。6是偶数,所以6能被2整除。
可见,一个复杂的命题或者公式可以利用符号的形式来说明含义,来判断正确性,这使得计算机科学中的通过复杂文字验证的推理过程变得简单、明了了。 2.为计算机硬件系统的设计提供依据
数理逻辑部分在计算机硬件设计中的应用尤为突出,数字逻辑作为计算机科学的一个重要理论,在很大程度上起源于数理逻辑中的布尔运算。计算机的各种运算是通过数字逻辑技术实现的,而代数和布尔代数是数字逻辑的理论基础,布尔代数在形式演算方面虽然使用了代数的方法,但其内容的实质仍然是逻辑。范式正是基于布尔运算和真值表给出的一个典型公式。
下面以计算机科学中比较典型的开关电路的设计为实例说明数理逻辑中布尔代数和范式的应用。整个开关电路从功能上可以看做是一个开关,把电路接通的状态记为1(即结果为真),把电路断开的状态记为0(即结果为假),开关电路中的开关也要么处于接通状态,要么处于断开状态,这两种状态也可以用二值布尔代数来描述,对应的函数为布尔函数,也叫线路的布尔表达式。接通条件相同的线路称为等效线路,找等效线路的目的是化简线路,使线路中包含的节点尽可能地少。利用布尔代数可设计一些具有指定的节点线路,数学上既是按给定的真值表构造相应的布尔表达式,理论上涉及到的是范式理论,但形式上并不难构造。
例2 关于选派参赛选手,赵,钱,孙三人的意见分别是:赵:如果不选派甲,那么不选派乙。钱:如果不选派乙,那么选派甲; 孙:要么选甲,要么选乙。以下诸项中,同时满足赵,钱,孙三人意见的方案是什么?
解答:把赵,钱,孙三个人的意见看做三条不同的线路,对三条线路化简得到接通状态
(既使公式结果为1)。
可见,这类选择问题应用数理逻辑来解决,不但思路清晰、运算结果准确,而且省时、省力。
3.为计算机程序设计语言提供主要思想
专家系统和知识工程的出现使人们认识到仅仅研究那些从真前提得出真结果的那种古典逻辑推理方法是不够的,因为人类生活在一个充满不确定信息的环境里,进行着有效的推理。因此,为了建立真正的智能系统,研究那些更接近人类思维方式的非单调推理、模糊推理等就变得越来越必要了,非经典逻辑应运而生。非经典逻辑一般指直觉逻辑、模糊逻辑、多值逻辑等。这些也可以用计算机程序设计语言来实现。计算机程序设计语言的理论基础是形式语言、自动机与形式语义学,数理逻辑的推理理论为二者提供了主要思想和方法,程序设计语言中的许多机制和方法,如子程序调用中的参数代换、赋值等都出自数理逻辑的方法。推理是人工智能研究的主要工作。逻辑的思想就是通过一些已知的前提推理出未知的结论。 例3 著名的n皇后问题是:是否可以将n(n为正整数)个皇后放在的棋盘上,使得每行每列都有且仅有一个皇后,并且每条对角线上如果有皇后且仅有一个。
通过上述几个实例的验证,会发现数理逻辑在计算机科学中的应用非常广泛,可以把计算机科学中表面上看似不相干的内容通过找出其内在的联系作为前提,利用数理逻辑中的推理理论得到结论。
参考文献:
[1] 郭远华.若干逻辑自动推理方法研究[J].华东师范大学博士学位论文.2009.
[2] 屈婉玲、耿素云、张立昂.离散数学(第2版)[M].北京:清华大学出版社,2008.