数理逻辑及其在计算机中的应用
2015-03-20靳艳芳赵彦玲
靳艳芳,赵彦玲
(郑州工业应用技术学院,河南 郑州 451100)
1 数理逻辑概念及其发展
作为离散数学中专门研究推理逻辑的课程,数理逻辑是一门以数学方法为基础,用符号系统的形式来研究思维结构及规律的学科.古希腊著名学者亚里士多德最早提出用计算的形式对人类的思维进行描述和演示的表达形式.后17世纪德国著名数学家、哲学家莱布尼兹也曾努力发明一种通用的科学语言,可以像数学公式一样对所有思维的推理过程进行计算,并最终得出准确无误的结论,他的这想法正是现代数理逻辑的重要启蒙.
1847年,英国数学家布尔在大量试验和实践的基础上发表了《逻辑的数学分析》一文.在布尔看来,逻辑关系和一些数学运算之间存在着相似之处,数学中的代数系统具备存在差异性的解释.通过将代数系统的解释引申到逻辑领域,可以实现对思维的准确计算和演变.因此,贝尔根据这一理论创建了布尔代数,在他的代数系统中由两个不同代数组成一套符号系统,不同的符号用来表达逻辑中的不同概念.布尔在此基础上又建立了一系列的运算法则,这种在以代数方法为基础对思维逻辑进行研究的形式,为数理逻辑的产生奠定了一定的基础.而在现代计算机的编程中所使用的二进制,则正是由布尔代数中0和1这两个始终处于相互对立位置的代数构成.从本质上来说,现代计算机中的二进制就是对0和1一对矛盾概念进行逻辑的推理和判断.在这种形式的逻辑推理和判断的进程中,我们只需使用“是”或“非”就可以对逻辑进行运算.后来,一些数学研究者在布尔逻辑思想的基础上创造了代数f,即逻辑代数,并在此基础上于1946年第一台电子计算机诞生.最终,随着先进技术和数学科学的不断进步和发展,莱布尼兹所幻想的“对人类思维进行机器模拟”的愿望也成为了现实.
2 数理逻辑对计算机科学的重要性
数理逻辑能力是计算机工作者所要具备的基本素质,计算机技术的进步和发展与数学是密不可分的.可以说,如果没有一定的数学功底一个计算机科学工作者是很难在计算机这个行业中崭露头角的.对于单纯地应用计算机进行简单应用开发,如开发小系统、对图片进行处理等,可以不用较深的数学理论.然而,要想对计算机应用进行深入开发,如制作游戏、系统集成等,没有扎实的数学理论基础是很难能胜任这些工作的.数理逻辑等离散数学理论知识已经成为计算机专业学生所必须完成的专业课程.可见,数学思维和推理逻辑与计算机有着紧密相连的关系,在三者关系中,如果将计算机比喻成一座大厦,那么数学思维和推理逻辑就是建成这座大厦所必不可少的基础材料和重要支柱.在数学思维与计算机的结合应用中,离散数学中的数理逻辑是与计算机科学和发展关联性最强、发挥作用最大的一门学科,它是用来对学科的重要理论、技术及方法行描绘的重要工具.基于离散数学的数理逻辑与计算机的密切关系,在一些场合下数理逻辑和计算机甚至可以被当成同义词使用.一个计算机程序员如果具备扎实的数学功底和较高的数学修养,那么他在编写程序代码时就可以在缜密的逻辑思维指导下,编写出既简洁又高质量的代码,而促进计算机软件质量和水平的提高.比如,微软公司在面试员工时,经常会出很多需要具备发散思维、逻辑推理等能力还能解答出来的题目,这就说明微软公司对于员工的逻辑思维是非常看重的,只有员工具备了较强的数学思维才能真正地促进计算机科学及计算机行业的进步和发展.因此,数理逻辑是计算机科学的进步和发展所不可或缺的思维基础和持续动力,在计算机科学的发展进程中起着不可忽视的重要作用.
3 数理逻辑在计算机中的应用
3.1 数理逻辑为计算机程序语言提供思想和方法
随着知识工程和专家系统的不断出现和快速发展,人们逐渐意识到古典逻辑推理方法已经无法满足计算机程序设计的需要和现代科技的迅猛发展.特别是随着信息变化及传播速度的不断提高,一定程度上也提高了人类生活环境中信息的不确定性,要想实现对人类思维的模糊推理、复杂推理到深入研究,建立一个真正智能的系统来的越来越具有必要性.在这种时代背景下,非经典逻辑逐渐产生并快速发展.所谓非经典逻辑是指以计算机语言进行程序设计为媒介而实现的模糊逻辑、直觉逻辑、多值逻辑等数理逻辑.数理逻辑的相关推理理论主要是通过为其提供方法和思想来发挥计算机程序设计语言中重要的工具作用.可以说,人工智能系统的工作离不开推理,而逻辑思想则是已知前提到推理出未知结论的重要桥梁.
例1 数学中著名的n皇后问题:是否能够将为正整数n个皇后分别放到棋盘上,要求棋盘上的每一行一列以及每一条对角线上都有且只有一个皇后,如何放置才能实现?针对这一类题目时,可以运用数理逻辑中的命题逻辑来进行解答.首先设定n2个命题变项pij(1≤i≤n,1≤j≤n),其中变项pij即为第i行、第j列中有且仅有的皇后,则要满足题目中的要求需要满足以下命题公式:每行最多能有一个皇后:对任何 i,j和 k(1≤i≤n,1≤j≤k≤n),则有 -pij∨-pik=1成立;每行至少有一个皇后:则对任意的i(1≤i≤n),都有pi1∨pj2∨.......pin=1成立;对于每列至少有一个皇后:则对任意的j(1≤j≤n),都有 p1j∨p2j∨.......pnj=1成立;对于每列最多能有一个皇后:对任何 i,j和 k,(1≤j≤n,1≤i≤k≤n),-pij∨-pkj=1成立;对于每条对角线上最多有一个皇后:对任意i,j和k(1≤i,j,k≤n,k≠i).则如果 1≤j+i-k≤n,那么 pij∨-pk1j+i-k=1成立.依据上述论述,3皇后问题模型的符号可以用模型概述为:{p12,p21,p33},即第1行第2列、第2行第1列以及第3行第3列分别可以放置皇后;4皇后问题模型的符号可以用模型概述为:{p12,p24,p31},即第1行第2列、第2行第4列以及第3行第1列分别可以放置皇后;5皇后问题模型的符号可以用模型概述为:{p12,p24,p31,p43,p55},即第1行第2列、第2行第4列、第3行第1列、第4行第3列、第5行第5列分别可以放置皇后.以此类推,就可以推理出n皇后问题的排列规则.
例2 会跳舞的很有气质,丽丽会跳舞.因此,丽丽有气质.针对这一推理,可以这 F(x):x会跳舞.G(x)有气质.a:丽丽.会跳舞的人有气质:坌x(F(x)→G(x));丽丽会跳舞,则 F(a);丽丽有气质:G(a).对于上述逻辑命题可以符号为坌x(F(x)→G(x))∧F(a)→G(a).因此,此个体域为 D={a},经过量词消去等式可以简化为(F(a)→G(a))∧F(a)→G(a),根据假言推理定律,其结果必然为真.因此,可以证明丽丽是有气质的.
3.2 数理逻辑在计算机硬件设计中的应用
作为计算机科学进步和发展的重要理论基础,一般而言,数字逻辑在计算机科学中发挥的重要作用可以追溯到著名数学家布尔的布尔代数.布尔运算虽然在形式上运用了代数的演算方法,但究其本质而言其实质内容仍然是逻辑.因此,在计算机硬件的设计过程中,特别是面对解决选择的问题,通常用数理逻辑进行推理.
3.3 数理逻辑有利于扩大计算机的应用范围
基于数理逻辑可以通过推理逻辑的方式进一步揭露事物本质,因此,数理逻辑在计算机中的应用,有利于促进语言学、机械、心理学、哲学、法学等学科在计算机领域的广泛应用.一个计算机科学工作者的软件编程水平在很大程度上要取决于其编程的思维定式,而清晰的数学思维、高超人的推理逻辑则有利于编程者具备超强的编程思维,进而能够编写出让人耳目一新、标新立异的程序.目前,大部分科班出身的计算机科学工作者都是在语法编写程序的指导下来完成程序编写的,而仅有少部分具备了软件编程的思维.脱离了软件编程思维而编写程序的方式,很容易导致他们编写出来的程序毫无逻辑和创新可言.因此,为了培养计算机科学工作者的思维、促进计算机科学的进步和发展,加强他们数学思维的培养和锻炼是至关重要的.
总而言之,数理逻辑在推动人类社会及近现代科学的进步和发展的进程中发挥着不可替代的关键作用.在计算机科学中,数理逻辑通符号化的方式在计算机语言程序设计、计算机模型、计算机硬件系统等应用方面发挥着不可忽视的重要作用.因此,计算机科学工作者要想在软件编程工作中有所作为,必须注重自身数学思维的培养和锻炼,通过不断地加强数学思维,来充分发挥数理逻辑在计算机科学发展中的重要作用.
〔1〕徐洁磐,朱怀宏,宋方敏.离散数学及其在计算机中的应用[J].北京:人民邮电出版社,2008.1-323.
〔2〕许蔓苓.离散数学的方法和挑战[J].计算科学与发展,2002(06):1771-1772.
〔3〕何新军.引进数理逻辑的知识要符合传统逻辑的特点[J].中山大学学报论丛,2002(05).
〔4〕龚静,王青川.数理逻辑在计算机科学中的应用浅析[J].青海科技,2004(06).
〔5〕胡一之,刘恩久,唐南迪.计算机数理逻辑命题演算软件的研究[J].鞍山钢铁学院学报,1996(02).