分类号O158 单位代码11395密级学号1204210135学生毕业论文题目主式的求法及应用作者王定超院(系) 数学与统计学院专业数学与应用数学指导教师祁兰答辩日期2016年5月21日榆林学院毕业论文诚信责任书本人重声明:所呈交的毕业论文,是本人在导师的指导下独立进行研究所取得的成果。
毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。
尽我所知,除文中已经注明引用的容外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果.对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明.本人毕业论文与资料若有不实,愿意承担一切相关的法律责任。
论文作者签名:年月日摘要主式即主合取式与主析取式,它是数理逻辑中重要的基石也是推动计算机科学发展的动力,其方法与应用颇有价值.本文通过介绍主式的相关定理、定义并作出相应解释,以及由式的不唯一性引出主式的唯一性,得到求主式的三种方法:真值表法、真值指派法、等值演算法,并给出主式的四种应用:判断几个命题公式是否等价、命题公式的类型、求公式的成真成假赋、解决实际问题.关键词:主式;真值表;真值指派法;等值演算法The method and application of p rincipal normal formABSTRACTPrincipal normal form are the host conjunctive normal form and the host disjunctive normal form. It is an important cornerstone in the mathematical logic and the power of impelling the computer science development. The method and the application is of great value. In this paper, we make corresponding explanation and the non-uniqueness of the paradigm leads to the uniqueness of principal normal form by the introduction of related theorem of principal normal form and definition. We get the methods of principal normal form: truth table method, true value assignment method, and equivalent calculating method, and then give the applications of principal normal form: judging several propositional formulas whether equivalent or not, the type of propositional formula, seeking the formula of becoming true or false, and solve practical problems.Keywords:principal normal form; truth table; true value assignment method; equivalent calculating method目录摘要 (I)ABSTRACT (II)目录 (III)1 引言 (1)2 预备知识 (2)3 主式的求法 (4)3.1真值表法 (4)3.2真值指派法 (6)3.3 等值演算法 (8)4 主式的应用 (12)4.1求公式的成真成假赋 (12)4.2 判断公式是否等值 (12)4.3 判断公式的类型 (13)4.4 解决实际问题 (15)4 小结 (17)参考文献 (18)致 (19)1 引言主式即主析取式与主合取式,它是离散数学数理逻辑的一个重要分支并是计算机科学基础的必备知识,它与计算机有着不可分割的关系.在计算机科学的操作系统、数据结构、算法分析、编译系统、系统结构、逻辑结构等都含有主式的知识.随着计算机科学对人们的生活越来越重要,数理逻辑支撑学科的迅速发展,而主式理论及应用是数理逻辑重要的概念之一,其方法和应用也颇具价值.式分为合取式与析取式,而合取式与析取式在命题公式中不唯一,为使命题公式的式唯一即析取式与合取式进行规化,化成命题公式的主合取式与主析取式.本文主要介绍主式的三种方法——等值演算法、真值指派法、真值表法.利用真值表法可以快速,有效的得到主式;真值指派法适合一些特殊的式得到主式,这两种方法都可以避免传统算法中较复杂的等值演算法.利用主式可以求公式的成真成假赋值、判断公式的类型、几个公式的等值、在实际问题上也有一些具体应用,并给出相应例子加深理解主式的方法和应用.2 预备知识定义2.1[1] 在一公式中,仅由命题变元及否定构成的析取式(合取式),称该公式为简单析取式(简单合取式),其中每个命题变元或其否定,称为析取项(合取项).定义 2.2[1] 一个命题公式A 称为合取式(析取式),当且仅当A 可表示为简单析取式的合取(简单合取式的析取),即11()nni i i i A A A A ==⇔⇔;其中i A 为简单析取式(简单合取式)1i n ≤≤.定义 2.3[2] 在含有n 个命题变项的简单析取式(简单合取式)中,若每个命题变项和它的否定式不同时出现,而二者之一必出现且反出现一次,且第i 个命题变项或它的否定式出现从左算起的第i 位上(若命题变项无角标,就按字典顺序排列).称这样的简单析取式(简单合取式)为极大项(极小项).用i m 表示极小项,i M 表示表示极大项,以P ,Q ,R 三个命题变元为列,见下表2-1,2-2.表2-1 使相应公式为真的极小项表2-2 使相应公式为假的极大项性质 2.1[3] n 个命题变元可构成2n个极大(小)项.性质 2.2[3] 全体极大(小)项的合(析)取式永为0(1).性质 2.3[3] 任意两个极大(小)项的析(合)取式永为1(0),即i j ≠时,()10i j i j M M m m ∨=∧=.性质2.4[3] 每个极大(小)项当其真值指派与编码相同时,其真值为0(1),其余21n -种指派情况下均为1(0).定义2.4[2] 由不同极大(小)项组出的合取(析取)式称为主合(析)取式.3 主式的求法由于主式是由极大项或极小项构成,从极大项和极小项的定义,可知:i iM m ⌝⇔i im M ⌝⇔因此,主合取式和主析取式有着“互补”关系[4].设命题公式A 中含有n 个命题变元,且A 的主析取式中含有k 个小项12,,,ki i i m m m ,则A ⌝的主析取式中必含有其余的2n k -个小项,不妨含为122,,,n kj j j m m m -,即122n kj j j A m m m -⌝⇔∨∨于是A A ⇔⌝⌝122()n kj j j m m m -⇔⌝∨∨∨122n kj j j m m m -⇔⌝∧⌝∧⌝122nkj j j M M M -⇔∧∧∧.故由给定公式的主析取式可以求出主合取式.本文主要给出求主析取式的三种方法:等值演算法、真值指派法、真值表法.3.1真值表法公式A 在全部可能的真值指派所取的真值表,称为真值表[3].真值表由表的 左部分列出公式的每一种解释,右部分给出相应每种解释公式得到的真值. 若真值用0和1表示真和假,则对公式中n 个不同命题变元的2n 个解释,可按n 为二进数从小到大或从大到小次序表示出来,假如公式A 有2个命题变元,它便有22个解释,写成相应的二进制数为00、01、10、11. 命题公式真值表的构造步骤如下:(1) 命题变元按字典序列排列;(2) 对公式的每个解释,以二进制数从小到大或从从大到小顺序列出;(3) 若公式复杂,可先列出各子公式的真值(若有括号,则应从里层向外层展开),最后列出所得公式的真值.真值表法求主式的步骤如下: (1)写出相应的真值表;(2)列出真值为1的极小项进行析取得到主析取式;(3)列出真值为0的极小项,通过“互补”得到相应的极大项进行合取为主合取式.例3.1 求命题公式:()()()A P Q P R Q R ∧∨⌝∧∨∧的主式. 解 由题意,使用真值表可得,表3-1 使相应公式为真的极小项其真值为1的极小项为1367,,,m m m m 故A 主析取式: ()()()P Q P R Q R ∧∨⌝∧∨∧)()())((P Q R P Q R P Q R P Q R ⌝∧⌝∧∨⌝∧∧∨∧∧⌝∨∧∧⇔1367m m m m ⇔∨∨∨由真值为0的极小项通过主式的“互补”得到相应的极大项为0245,,,M M M M 故A 主合取式: ()()()P Q P R Q R ∧∨⌝∧∨∧ 0245M M M M ⇔∧∧∧例3.2 求命题公式:()A P Q R →↔的主式. 解 由题意,使用真值表可得,表3-2 使相应公式为真的极小项其真值为1的极小项为1347,,,m m m m 则A 主析取式: ()P Q R →↔ 1347m m m m ⇔∨∨∨()()()()P Q R P Q R P Q R P Q R ⇔⌝∧⌝∧∨⌝∧∧∨∧⌝∧⌝∨∧∧其真值为0的极小项通过主式的“互补”所得极大项为0256,,,M M M M则A 主合取式: ()P Q R →↔ 0256M M M M ⇔∧∧∧3.2真值指派法设A 为含有命题变元12,,...,n P P P 的命题公式,给12,,...,n P P P 一组确定的取值,称做公式A 关于12,,...,n P P P 的一组真值指派[3].其真值用1和0表示真和假. 真值指派法求主析取式构造步骤如下: (1)把命题公式化为析取式;(2)析取式中每一项若是极小项,则分别取二进制数;若含有不是极小项,进行补项,再分别取二进制数.如,,P Q R 三个元,析取式()P Q ∧补项取真值指派为(1,1,1),(1,1,0);(3)若有相同的指派进行合并,写出每个指派的极小项进行析取,则得到主析取式.例3.3[2] 求命题公式:()()()A P Q P R Q R ∧∨⌝∧∨∧的主式.解 由题意知命题公式A 为析取式,利用真值指派法可得: 其真值为1的指派为(1,1,0),(1,1,1),(0,0,1),(0,1,1),(0,1,1),(1,1,1) 删去重复的,知(1,1,0),(1,1,1),(0,0,1),(0,1,1) 故A 的主析取式:()()()P Q P R Q R ∧∨⌝∧∨∧ 1367m m m m ⇔∨∨∨)()())((P Q R P Q R P Q R P Q R ⌝∧⌝∧∨⌝∧∧∨∧∧⌝∨∧∧⇔由主式的“互补”得到相应的极大项为0245,,,M M M M故A 主合取式:()()()P Q P R Q R ∧∨⌝∧∨∧0245M M M M ⇔∧∧∧例3.4 求命题公式:()A P Q R →↔的主式. 解 将命题公式A 化成析取式得: ()P Q R →↔()()()P Q R P R Q R ⇔∧⌝∧⌝∨⌝∧∨∧ 其真值为1的指派为(1,0,0),(0,0,1),(0,1,1),(0,1,1),(1,1,1) 删去重复的知:(1,0,0),(0,0,1),(0,1,1),(1,1,1) 则A 主析取式: ()P Q R →↔()()()()P Q R P Q R P Q R P Q R ⇔⌝∧⌝∧∨⌝∧∧∨∧⌝∧⌝∨∧∧ 1347m m m m ⇔∨∨∨由主式的“互补”所得极大项为0256,,,M M M M 则A 主合取式: ()P Q R →↔0256M M M M ⇔∧∧∧3.3 等值演算法在等值演算法求主式中,需要利用以下等值公式[4]. 下面任意的命题公式由,,A B C 三个元代表.1.双重否定律A A ⇔⌝⌝2.结合律()()A B C A B C ∨∨⇔∨∨ ()()A B C A B C ∧∧⇔∧∧ 3.分配律()()()∨∧⇔∨∧∨(∨对∧的分配律)A B C A B A C∧∨⇔∧∨∧(∧对∨的分配律)()()()A B C A B A C4.交换律A B B A∧⇔∧∨⇔∨, A B B A5.德摩根律⌝∧⇔⌝∨⌝A B A BA B A B⌝∨⇔⌝∧⌝, ()()6.等价等值法A B A B B A↔⇔→∧→()()7.蕴涵等值法→⇔⌝∨A B A B8.归谬论→∧→⌝⇔⌝()()A B A B A9.同一律A∧⇔01A∨⇔, 1110.零律11A∧⇔A∨⇔0011.吸收律A AB A∧∨⇔A AB A∨∧⇔, ()()12.矛盾律A A∧⌝⇔13.排中律∨⌝⇔1A A在求主式之前,要先求出公式的式,下面给出求给定公式式的步骤[4]:(1)消去连结词,→↔(若存在);(2)否定号的移(利用德摩根斯)或者消去(利用双重否定律);(3)利用分配律:利用∧对∨的分配律求析取式,利用∨对∧的分配律求合取式.公式的析取式和合取式是不唯一的.而任何命题公式的主式都是存在的,并且是唯一的[5].利用等值演算法求主式的步骤如下:(1)将命题公式化为析取式;(2)析取式中所有永假的析取式要除去;(3)将析取式中重复出现的合取项和相同的变元合并;(4)对合取项添加补入没有出现的命题变元本身和否定形式的合取,然后应用分配展开式.例3.5 求命题公式:()()()A P Q P R Q R ∧∨⌝∧∨∧的主式. 解 故A 的主析取式为: ()()()P Q P R Q R ∧∨⌝∧∨∧[()][()][()]P Q R R P R Q Q Q R P P ⇔∧∧∨⌝∨⌝∧∧∨⌝∨∧∧∨⌝)()())((P Q R P Q R P Q R P Q R ⌝∧⌝∧∨⌝∧∧∨∧∧⌝∨∧∧⇔1367m m m m ⇔∨∨∨由主式的“互补”得到相应的极大项为0245,,,M M M M故A 主合取式: ()()()P Q P R Q R ∧∨⌝∧∨∧0245M M M M ⇔∧∧∧例3.6[5] 求命题公式:()A P Q R →↔的主式.解 故A 的主析取式为: ()P Q R →↔ ()P Q R ⇔⌝∨↔[()][()]P Q R R P Q ⇔⌝∨→∧→⌝∨ [()][()]P Q R R P Q ⇔⌝⌝∨∨∧⌝∨⌝∨ [()]()P Q R R P Q ⇔∧⌝∨∧⌝∨⌝∨()()()()()()P Q R P Q P P Q Q R R R P R Q ⇔∧⌝∧⌝∨∧⌝∧⌝∨∧⌝∧∨∧⌝∨∧⌝∨∧ ()()()P Q R P R Q R ⇔∧⌝∧⌝∨⌝∧∨∧简单合取式P R ⌝∧,Q R ∧在此析取式中都不是极小项,及求出它们派生的 极小项.()P R ⌝∧()P Q Q R ⇔⌝∧⌝∨∧ ()()P Q R P Q R ⇔⌝∧⌝∧∨⌝∧∧ 12m m ⇔∨ ()Q R ∧ ()P P Q R ⇔⌝∨∧∧()()P Q R P Q R ⇔⌝∧∧∨⌝∧∧ 37m m ⇔∨而简单合取式P Q R ∧⌝∧⌝已是极小项4m ,于是 ()P Q R →↔ 1347m m m m ⇔∨∨∨()()()()P Q R P Q R P Q R P Q R ⇔⌝∧⌝∧∨⌝∧∧∨∧⌝∧⌝∨∧∧由主式的“互补”所得极大项为0256,,,M M M M 则A 主合取式: ()P Q R →↔ 0256M M M M ⇔∧∧∧4 主式的应用4.1求公式的成真成假赋值若公式A 中含(1)n n ≥个命题变项,A 的主析取式中含(02)nS S ≤≤个极小项,则A 有S 个成真赋值,它们是所含极小项角标的二进制表示,其余2n S -个赋列值都是成假赋值如:1347()P Q R m m m m →↔⇔∨∨∨,各极小项均含三个变元,因而各极小项的角标均为二进制数,它们分别为001,011,100,111.这四个赋值为该主式的赋值.当然,主析取式中出现的极小项为0256,,,m m m m ,它们的角标的二进制表示000,010,101,110为该公式的成假赋值[6].4.2 判断公式是否等值若公式,A B 中共含有n 个命题变项,按n 个命题变项求出,A B 的主析取式','A B ,若''A B =,则A B ⇔,否则A B ≠.例4.1[5] 判断下列两组公式是否等值: (1) :a ()P Q R →→ :b ()P Q R ∧→ (2) :a ()P Q R →→ :b ()P Q R ∧→解 (1)用等值值派法分别求出主合取式: :a ()P Q R →→ ()P Q R ⇔⌝⌝∨∨ ()P Q R ⇔∧⌝∨()()P R Q R ⇔∨∧⌝∨成假指派为(1,1,0),(0,0,0),(0,1,0)()P Q R →→126M M M ⇔∧∧()P Q R ∧→()P Q R ⇔⌝∧∨()P Q R ⇔⌝∨⌝∨成假指派为(1,1,0)()P Q R ∧→6M ⇔由于a 和b 的主合取式不同,所以a b ≠.(2)先求出a 和b 的主合取式::a ()P Q R →→()P Q R ⇔→⌝∨()P Q R ⇔⌝∨⌝∨6M ⇔由(1)知得主合取式()P Q R ∧→6()P Q R M ⌝∨⌝∨⇔,所以a b ⇔.4.3 判断公式的类型公式中含n 个命题变项,若(1)A 为重言式当且仅当A 的主析取式全部2n个极小项.(2)A 为矛盾式当且仅当A 的主合取式含2n 个极大项,此时记A 的主析取式为0.(3)A 为可满足式当且仅当A 的主析取式中至少含一个极小项[7].例4.2[5] 用公式的主析取式判断公式的类型:(1)()P Q Q ⌝→∧ (3) ()P Q R ∨→(2)()P P Q →∨解 (1)利用等值演算法求下式的极小项()P Q Q ⌝→∧()P Q Q ⇔⌝⌝∨∧()P Q Q ⇔∧⌝∧0⇔公式(1)是矛盾式.(2)应用等值指派法求下式的极小项()P P Q →∨P P Q ⇔⌝∨∨0123m m m m ⇔∨∨∨1⇔公式(2)为重言式.(3)应用等值指派法求下式的极小项()P Q R ∨→()P Q R ⇔⌝∨∨()P Q R ⇔⌝∧⌝∨()()P R Q R ⇔⌝∨∧⌝∨成假指派为(1,1,0)(0,1,0)(1,0,0)(1,1,0)246M M M ⇔∧∧01357m m m m m ⇔∨∨∨∨易知,该公式是可满足的,因为它的主析取式没含全部8个极小项,所以不是重言式.4.4 解决实际问题在纯数学或应用数学上,数理逻辑的主式在数字游戏和看似简单的趣味数学问题,具有独特的魅力.例4.3[2] 三说四说谎,四说王五说谎,王五说三,四都在说谎,问三、四、王五三人,到底谁说真话,谁说假话?解 设A :三说真话, B :四说真话, C :王五说真话.,,A B B C C A B ⌝⌝⌝∨⌝都是真,由题意知求下式的成假指派:()()()A B B C C A B ⌝∧⌝∧⌝∨⌝()()()()()()A B B A B C C B C A B A B C ⇔→⌝∧⌝→∧→⌝∧⌝→∧→⌝∧⌝∧⌝∧⌝→()()()()(())(())A B B A B C C B C A B A B C ⇔⌝∨⌝∧∨∧⌝∨⌝∧∨∧⌝∨⌝∧⌝∧⌝⌝∧⌝∨()()()()()()A B A B B C B C A C A B C ⇔⌝∨⌝∧∨∧⌝∨⌝∧∨∧⌝∨⌝∧∨∨成假指派(1,1,0),(1,1,1),(0,0,0),(0,0,1),(0,1,1),(1,0,1),(1,0,0)由主式“互补”得成真指派(0,1,0)()()()A B B C C A B ⌝∧⌝∧⌝∨⌝()A B C ⇔⌝∧∧⌝即四说的是真话,三、王五都说假话.例 4.4[8] 在举重比赛中,有三个裁判员.当认为杠铃已“完全举上”时,就按一下自己面前的按钮.裁决“完全举上”的信号(显示灯)只有在三个裁判同时按下自己面前的按钮,或者有两个裁判(但其中一个必须是主裁判)同时按下自己面前的按钮时,显示灯才亮.试设计此表决装置的自动控制逻辑线路.解 对于三个裁判员表决器的设计,我们设主裁判和两个副裁判前的按钮分别为,,,A B C F 表示显示灯的状态(1F =灯亮;0F =灯不亮).依题意用真值表法列出表4.1的真值表表4-1 使相应公式为假的极大项F 主析取式为 567F m m m ⇔∨∨)(()()P Q R P Q R P Q R ∧⌝∧∨∧∧⌝∨∧∧⇔画出表决器的线路如图4-1.图4-14 小结本文通过介绍主式的相关定理和定义,引出我们探讨的知识——主式的求法与应用.主式即由主析取式和主合取式组成并它们可以“互补”,这可以方便、清晰的理解主式的解法.求主式的三种方法:真值表法、真值指派法、等值演算法,真值表适用于几个命题变元;真值指派法适合一些特殊的式;这两种方法都可以避免传统的等值演算法,而等值演算法适合复杂的命题变元.利用主式可以判断几个命题公式是否等价、判断公式的类型、通过成真成假赋值给出命题公式的真值表并在实际生活中也可以发现主式的应用,如判断说谎问题、裁决表的逻辑线路、计算机数据结构等.本文在解题过程中根据题的特点,用不同的方法一一解出答案,用不同思路方便加深理解主式的求法和应用.由于篇幅有限,本文只涉及主式的一部分解法,还有其他解法和应用,如:主式的DNA算法[4],可以利用DNA发夹结构模型进行理解主式;在计算机编译系统、系统结构等应用.我们可以在今后系统的研究主式的DNA算法以及其他应用.参考文献[1]盘林,丽双,洋,王春立.离散数学[M].:高等教育,1998.[2]金一庆,金延赞,三元.离散数学[M].:大学,1998.[3]倪子伟,蔡经球.离散数学[M].:科学,2008.[4]王宝丽,喜研.由合取式求主析取式的一种新方法[J].学院学报,2010,28(5):15-16.[5]耿素云,屈婉玲.立昂.离散数学[M].:高等教育,2008.[6]左孝凌,为鑑,永才.离散数学[M].:科学技术文献,1981.[7]胡纪华.主式在推理有效性判断中的应用[J].学院学报,2011,23(3):89-91.[8]王俊邦,罗振声.趣味离散数学[M].:大学,1998.致通过这一阶段的努力我的毕业论文《主式的求法及应用》终于完成了这意味着大学生活即将结束在.大学阶段我在学习上和思想上都受益非浅这除了自身的努力外与各位老师、同学和朋友的关心、支持和鼓励是分不开的.在本论文的写作过程中我的导师:祁兰老师.从选题到开题报告从写作提纲到一遍又一遍地指出每稿中的具体问题严格把关循循善诱,在此我表示衷心感,同时我还要感在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友.写作毕业论文是一次再系统学习的过程毕业论文的完成同样也意味着新的学习生活的开始.我将铭记我曾是一名学院学子,在今后的工作中把数学与统计学院的优良传统发扬光大.感答辩委员会的各位老师们,你们百忙之中抽出时间来审阅论文,为我指点迷津!你们!致人:王定超2016年5月21日。