三百三十四节 真或假
“复合命题由一个或多个简单命题合成,那么其合成的方式,我们称之为‘联结词’。比如,‘这张卡片不是奴隶’,‘这张卡片是16岁以上的男人’,‘这张卡片是原籍福建或海南的人’,这是三个复合命题。”
“第一个命题,是对‘这张卡片是奴隶’这一简单命题的一种否定,合成方式是‘非’;第二个命题,由‘这张卡片是16岁以上的人’和‘这张卡片是男性’两个简单命题构成,合成方式是‘与’,也就是两个简单命题同时为‘真’时,复合命题为‘真’;而第三个命题,由‘这张卡片是原籍福建的人’和‘这张卡片是原籍海南的人’两个简单命题构成,合成方式是‘或’,也就是两个简单命题中的任意一个为‘真’时,复合命题为‘真’。”
“所以,我们有了联结多个命题使之成为更大命题的三种手段,与,或,非。其实还有另外两种,不过暂时与分类机的设计无关,这里先略过。”
“我们用符号来表示命题和联结词,则任何一项查询,都能表示为一个表达式。显然,令表达式为‘真’的卡片,就是我们要寻找的卡片。而分类机的作用,就是对所有卡片,判断这个表达式是否为‘真’。”
“因此,凡是我们的分类机能够判断‘真/假’的表达式,就是我们能够解决的问题,凡是我们的分类机无法判断真假的表达式,就是我们不能解决的问题。”
“这就是我们对这一问题的初步抽象。”
冯诺在黑板上写下了几个奇怪的符号v(或)、∧(与)、┐(非),看起来像是旋转了90度的大于号和小于号,还有倒过来的拉丁字母l。
“好,现在可以写一下
‘原籍福建或海南的人’这一命题的表达式了,海南是100,福建是122,所以我们令
命题a:‘地区码第1位为1’,
命题b:‘地区码第2位为0’,
命题c:‘地区码第3位为0’,
命题d:‘地区码第2位为2’,
命题e:‘地区码第3位为2’,
则,复合命题的表达式为:‘(a∧b∧c)v(a∧d∧e)’。”
“我们的分类机是如何判断真假的呢?是通过检验穿孔卡是否穿孔,也就是说,分类机的每个读卡单元,能够判断复合命题中的一个简单命题的真假。同时,通过一个控制继电器,我们可以让每个读卡单元,判断仅有1个‘非’联结词的复合命题,也就是一个简单命题的非命题的真假。”
“假如我们仅有1个读卡单元,那么仅此而已。但是现在我们有10个读卡单元,所以事情要复杂一些。不过仍然是可以分析的。请大家注意,每个读卡单元侧面的卡袋,装入的卡片的特点:
k号卡袋中的卡片,是1~k-1号命题的‘非’命题的‘与’、再‘与’k号命题。
经过k号读卡单元的剩余卡片,是满足1~k号所判断的命题的‘非’命题的‘与’。
1~k号卡袋里面的卡片,合起来是满足1~k号所判断的命题的‘或’。
假设我们的读卡单元所判断的简单命题(或简单命题的非命题)为p1,p2,...,p10。
则我们所能够判断的命题表达式为:
1号卡袋:p1
2号卡袋:┐p1∧p2
3号卡袋:┐p1∧┐p2∧p3
4号卡袋:┐p1∧┐p2∧┐p3∧p4
...
10号卡袋:┐p1∧┐p2∧...∧┐p9∧p10
最终剩余卡片:┐p1∧┐p2∧...∧┐p10
最后由于这些卡片被彼此分开,所以我们最终可以自由选择任意多个卡袋的卡片合在一起,也就是上述表达式之间的‘或’;其中最重要的,是从1~k号的连续k个卡袋中的卡片合在一起,其结果为:p1v...vpk,即以p1为开头的连续‘或’运算;
而经过k号读卡单元后机器上剩余的卡片,可表示为┐p1∧...∧┐pk,即以┐p1为开头的连续‘与’运算。”
“所以,凡是能变换成上述形式表达式的命题,就是分类机能够查找的,否则,就是分类机不能查找的。”
“我给加奈出的问题,找出三亚大区除奴隶以外的卡片,可以分解成如下的简单命题或简单命题的非命题:
命题a:‘地区码第1位不为1’,
命题b:‘地区码第2位不为0’,
命题c:‘地区码第3位不为0’,
命题d:‘地区码第4位不为1’,
命题e:‘地区码第5位为1’,
命题f:‘地区码第5位不为2’
命题g:‘地区码第6位不为9’
命题h:‘地区码第7位不为9’
┐a∧┐b∧┐c∧┐d∧e,这是10011,三亚榆林,它符合5号卡袋的表达式,所以这些卡片位于5号卡袋中,可以记为p5。
┐a∧┐b∧┐c∧┐d∧┐e∧┐f∧g,这是100120~100128,三亚田独11~89公社,它符合7号卡袋的表达式,所以这些卡片位于7号卡袋中,可记为p7。
┐a∧┐b∧┐c∧┐d∧┐e∧┐f∧┐g∧h,这是1001290~1001298,三亚田独90~98公社,它符合8号卡袋的表达式,所以这些卡片位于8号卡袋中,可记为p8。
后两者合起来,即p7vp8,是三亚田独,但不包括奴隶。三者全部合起来,即p5vp7vp8,是我们所要的结果。因为这个表达式符合我们上面的形式,所以分类机可以解决。”
“而‘(a∧b∧c)v(a∧d∧e)’,无论我们怎样变换,是不能变换成上述表达式的,因而是当前的分类机所不能解决的。”
“好,问题来了,怎样变换表达式?”这时他看向了冯珊。
“这是0和1的布尔代数。”冯珊答道,她的眼睛里透出着迷的神色。
冯诺点点头,钱羽之和李加奈此前已经完全不知所云了,不过听到布尔代数,他们有点反应过来了。
冯诺只教过他俩最简单的布尔代数,以至于他们以为布尔代数就是0和1的布尔代数。
“然后呢?”冯诺继续引导。
“布尔代数是有补分配格!交运算是‘与’,并运算是‘或’,求补是‘非’,满**换律、结合律、吸收律,‘与’和‘或’彼此满足分配律!0-1布尔代数还满足幂等律!”
这是布尔代数的理论部分,钱羽之和李加奈又糊涂了。
“很好。”冯诺表扬了一句。
“不过,”他又补充说,“格的基本运算律只是‘与’和‘或’两种运算之间的,包括交换律、结合律、吸收律、幂等律、分配律等等。在命题逻辑里,还要考虑‘非’的性质,这里我暂时只说两点:其一,双重否定律,很显然,命题的非命题的非命题,是其自身。其表达式的形式是——”
冯诺在黑板上写下:
┐┐a=a;
“其二,德……唉,就叫‘与或转换律’吧,两个命题的合取的非,是两个命题的非的析取;两个命题的析取的非,是两个命题的非的合取。其表达式的形式是——”
他又写下:
┐(a∧b)=┐av┐b,
┐(avb)=┐a∧┐b。
“我举两个例子你们就明白了,‘不是16岁以上的男人’,也就意味着是‘16岁以下的人’或‘女人’;‘不是原籍海南或福建的人’,也就意味着‘不是原籍海南的人’并且‘不是原籍福建的人’。”
然后他继续说道,“根据这些运算律,可以把逻辑命题的表达式变换成各种形式,不过,一般我们会变换成连续‘与’的‘或’,或者连续‘或’的‘与’,称为析取范式和合取范式。”
“好,有了理论工具,我们就能够发现,目前分类机在设计上存在局限性。如果分类机能够处理一般的析取范式或者合取范式,就不存在从设计上无法解决的问题了。——比如‘找出原籍福建或海南的人’。”
“这就要求我们的每个读卡单元,不是仅能判断一个简单命题的真假,而是能够判断多个简单命题构成的合取项或者析取项的真假。反映在分类机设计上,就是把读卡单元目前仅包括1个工作继电器和1个控制继电器的简单电路,改造成包含多个继电器的开关电路。”
“羽之,你这段时间已经很熟悉电路了。你来组装一个有两个开关和一个灯泡的电路,要求‘只有2个开关都闭合,灯泡才亮’。”
冯诺指了指一旁的工作台。工作台上有一大堆导线、继电器、灯泡和开关,台下放着两个笨重的钟式电池,万用表和其他几种仪器则被丢在工作台的角落里。
钱羽之熟练地来到工作台前忙活起来,他首先从电池的正负极引出了导线,然后把灯泡连入电路,灯泡亮了。接着,他把两个开关用导线连起来,又和灯泡、电池连在了一起。
冯诺让三名学生都去试一下,是不是只有2个开关都闭合时,灯泡才亮,如果有任意1个开关是断开的,灯泡就熄灭。
-------------------------------
下次更新:第七卷-两广攻略篇61节