三百三十四節 真或假

投票推薦 加入書籤 小說報錯

  「複合命題由一個或多個簡單命題合成,那麼其合成的方式,我們稱之為『聯結詞』。比如,『這張卡片不是奴隸』,『這張卡片是16歲以上的男人』,『這張卡片是原籍福建或海南的人』,這是三個複合命題。」

  「第一個命題,是對『這張卡片是奴隸』這一簡單命題的一種否定,合成方式是『非』;第二個命題,由『這張卡片是16歲以上的人』和『這張卡片是男性』兩個簡單命題構成,合成方式是『與』,也就是兩個簡單命題同時為『真』時,複合命題為『真』;而第三個命題,由『這張卡片是原籍福建的人』和『這張卡片是原籍海南的人』兩個簡單命題構成,合成方式是『或』,也就是兩個簡單命題中的任意一個為『真』時,複合命題為『真』。」

  「所以,我們有了聯結多個命題使之成為更大命題的三種手段,與,或,非。其實還有另外兩種,不過暫時與分類機的設計無關,這裡先略過。」

  「我們用符號來表示命題和聯結詞,則任何一項查詢,都能表示為一個表達式。顯然,令表達式為『真』的卡片,就是我們要尋找的卡片。而分類機的作用,就是對所有卡片,判斷這個表達式是否為『真』。」

  「因此,凡是我們的分類機能夠判斷『真/假』的表達式,就是我們能夠解決的問題,凡是我們的分類機無法判斷真假的表達式,就是我們不能解決的問題。」

  「這就是我們對這一問題的初步抽象。」

  馮諾在黑板上寫下了幾個奇怪的符號∨(或)、∧(與)、┐(非),看起來像是旋轉了90度的大於號和小於號,還有倒過來的拉丁字母l。

  「好,現在可以寫一下

  『原籍福建或海南的人』這一命題的表達式了,海南是100,福建是122,所以我們令

  命題a:『地區碼第1位為1』,

  命題b:『地區碼第2位為0』,

  命題c:『地區碼第3位為0』,

  命題d:『地區碼第2位為2』,

  命題e:『地區碼第3位為2』,

  則,複合命題的表達式為:『(a∧b∧c)∨(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個卡袋中的卡片合在一起,其結果為:p1∨∨pk,即以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。

  後兩者合起來,即p7∨p8,是三亞田獨,但不包括奴隸。三者全部合起來,即p5∨p7∨p8,是我們所要的結果。因為這個表達式符合我們上面的形式,所以分類機可以解決。」

  「而『(a∧b∧c)∨(a∧d∧e)』,無論我們怎樣變換,是不能變換成上述表達式的,因而是當前的分類機所不能解決的。」

  「好,問題來了,怎樣變換表達式?」這時他看向了馮珊。

  「這是0和1的布爾代數。」馮珊答道,她的眼睛裡透出著迷的神色。

  馮諾點點頭,錢羽之和李加奈此前已經完全不知所云了,不過聽到布爾代數,他們有點反應過來了。

  馮諾只教過他倆最簡單的布爾代數,以至於他們以為布爾代數就是0和1的布爾代數。

  「然後呢?」馮諾繼續引導。

  「布爾代數是有補分配格!交運算是『與』,並運算是『或』,求補是『非』,滿**換律、結合律、吸收律,『與』和『或』彼此滿足分配律!0-1布爾代數還滿足冪等律!」

  這是布爾代數的理論部分,錢羽之和李加奈又糊塗了。

  「很好。」馮諾表揚了一句。

  「不過,」他又補充說,「格的基本運算律只是『與』和『或』兩種運算之間的,包括交換律、結合律、吸收律、冪等律、分配律等等。在命題邏輯里,還要考慮『非』的性質,這裡我暫時只說兩點:其一,雙重否定律,很顯然,命題的非命題的非命題,是其自身。其表達式的形式是——」

  馮諾在黑板上寫下:

  ┐┐a=a;

  「其二,德……唉,就叫『與或轉換律』吧,兩個命題的合取的非,是兩個命題的非的析取;兩個命題的析取的非,是兩個命題的非的合取。其表達式的形式是——」

  他又寫下:

  ┐(a∧b)=┐a∨┐b,

  ┐(a∨b)=┐a∧┐b。

  「我舉兩個例子你們就明白了,『不是16歲以上的男人』,也就意味著是『16歲以下的人』或『女人』;『不是原籍海南或福建的人』,也就意味著『不是原籍海南的人』並且『不是原籍福建的人』。」

  然後他繼續說道,「根據這些運算律,可以把邏輯命題的表達式變換成各種形式,不過,一般我們會變換成連續『與』的『或』,或者連續『或』的『與』,稱為析取範式和合取範式。」

  「好,有了理論工具,我們就能夠發現,目前分類機在設計上存在局限性。如果分類機能夠處理一般的析取範式或者合取範式,就不存在從設計上無法解決的問題了。——比如『找出原籍福建或海南的人』。」

  「這就要求我們的每個讀卡單元,不是僅能判斷一個簡單命題的真假,而是能夠判斷多個簡單命題構成的合取項或者析取項的真假。反映在分類機設計上,就是把讀卡單元目前僅包括1個工作繼電器和1個控制繼電器的簡單電路,改造成包含多個繼電器的開關電路。」

  「羽之,你這段時間已經很熟悉電路了。你來組裝一個有兩個開關和一個燈泡的電路,要求『只有2個開關都閉合,燈泡才亮』。」

  馮諾指了指一旁的工作檯。工作檯上有一大堆導線、繼電器、燈泡和開關,台下放著兩個笨重的鐘式電池,萬用表和其他幾種儀器則被丟在工作檯的角落裡。

  錢羽之熟練地來到工作檯前忙活起來,他首先從電池的正負極引出了導線,然後把燈泡連入電路,燈泡亮了。接著,他把兩個開關用導線連起來,又和燈泡、電池連在了一起。

  馮諾讓三名學生都去試一下,是不是只有2個開關都閉合時,燈泡才亮,如果有任意1個開關是斷開的,燈泡就熄滅。

  -------------------------------

  下次更新:第七卷-兩廣攻略篇61節

章節目錄