陳凱
一只出門遠(yuǎn)行的兔子在大森林里遇到了岔路,一條路寬敞明亮,另一條狹窄幽暗,那么該走哪條路呢?這只兔子(假設(shè)它很笨)從包袱里掏出指路神器,想聽聽指路神器的建議。以上是筆者在課堂上使用的教學(xué)場(chǎng)景,它很虛幻,好像童話故事,筆者稱之為虛幻但真切的情境,一方面,很多小說或電影里都有類似的情節(jié),另一方面,這也是在玩電子游戲時(shí),玩家常常要面對(duì)的場(chǎng)景。有人會(huì)問,用應(yīng)用市場(chǎng)上常見的某某導(dǎo)航軟件來決定路線,難道不更貼近生活實(shí)際嗎?若考慮到參與選擇并做出決策的親歷性和真切性,并同時(shí)考慮到問題的純粹性和簡(jiǎn)潔性,筆者更愿意將童話故事作為自己的教學(xué)場(chǎng)景。關(guān)于虛構(gòu)場(chǎng)景的內(nèi)在真實(shí)與外在現(xiàn)實(shí)之間的復(fù)雜關(guān)系,哲學(xué)界已有頗多討論,這里就不展開了。
一個(gè)產(chǎn)生混亂數(shù)據(jù)的系統(tǒng)——沒有任何作用
假設(shè)兔子面對(duì)寬敞明亮的道路,并在使用指路神器時(shí),輸入了關(guān)于道路的信息,若道路狀態(tài)就是“寬敞明亮”和“狹窄幽暗”兩種,那么當(dāng)然就可以用一位二進(jìn)制編碼來將現(xiàn)實(shí)狀態(tài)編碼為數(shù)據(jù),如“寬敞明亮”編碼為“1”,“狹窄幽暗”編碼為“0”;對(duì)于輸出來說,“1”代表可以走這條路,“0”代表不能走這條路。
兔子從包袱里拿出的一號(hào)指路神器內(nèi)部的結(jié)構(gòu)如圖1所示。
這里借用Logisim軟件的數(shù)字邏輯電路來模擬操作過程,步驟是:先用輸入按鈕確定道路的狀態(tài)是“0”還是“1”,然后雙擊圖樣得到輸出結(jié)果。兔子第一次操作得到的結(jié)果是“1”,不過第二次操作,得到的就是“0”,后來它發(fā)現(xiàn),得到“0”和“1”的次數(shù)其實(shí)是隨機(jī)的。很顯然,這個(gè)所謂的指路神器沒有任何用處。
其實(shí),電路圖中, 是一個(gè)隨機(jī)發(fā)生器,其結(jié)果和扔硬幣是差不多的。但若要把隨機(jī)發(fā)生器拆掉,那也是不行的,兔子發(fā)現(xiàn),為這個(gè)裝置供電的設(shè)備,也被集成到了隨機(jī)發(fā)生器中。這個(gè)設(shè)定乍看上去有些奇怪,但從物理學(xué)的角度說,能量和混亂度兩者間的確是有關(guān)系的。
好在包袱里有不少電子元件,接下來,當(dāng)然是要讓這個(gè)系統(tǒng)變得更穩(wěn)定。
一個(gè)產(chǎn)生更穩(wěn)定信息的系統(tǒng)——但對(duì)兔子沒用
將不穩(wěn)定的輸出信號(hào)變穩(wěn)定,可以采用一種奇怪的方法,就是多用幾個(gè)隨機(jī)發(fā)生器,再配上一些邏輯門就可以了。例如,若要得到穩(wěn)定的“1”,則可使用或門,若要得到穩(wěn)定的“0”,則可使用與門,如果在電路中加上一個(gè)移位寄存器,則能看到輸出“0”和“1”的比例,為了使效果更逼真,需要在最開始,為不同的隨機(jī)發(fā)生器獲取不同的隨機(jī)種子。在實(shí)驗(yàn)中可以看出,三個(gè)隨機(jī)發(fā)生器生成的“0”和“1”的比例大概是1比7,由此對(duì)應(yīng)的信息熵是0.543564,信息熵的計(jì)算可以借助信息熵計(jì)算工具,之前文章里已有介紹,這里不再重復(fù)敘述。整個(gè)裝置的邏輯電路圖如下頁圖2所示。
如果有時(shí)間,還可以將此裝置的運(yùn)行與相同功能程序代碼的運(yùn)行相呼應(yīng),如圖3所示的Python代碼,實(shí)驗(yàn)結(jié)果與數(shù)字電路裝置大致相同。
很容易推測(cè)得出,如果增加更多的隨機(jī)發(fā)生器,則輸出結(jié)果就更加穩(wěn)定,不妨稱之為二號(hào)指路神器(如圖4)。
和一號(hào)裝置有明顯區(qū)別的是,這個(gè)裝置可以得到更穩(wěn)定的輸出“1”,兔子也至少可以獲得“1”這個(gè)信息,并且可以看出,這個(gè)系統(tǒng)是如何通過邏輯門消除混亂的。這其實(shí)也對(duì)應(yīng)著香農(nóng)關(guān)于信息的定義:信息是消除隨機(jī)不確定性的東西。越來越多的混亂信號(hào)源,反而會(huì)產(chǎn)生越來越穩(wěn)定的信號(hào),是不是有些不可思議的感覺?其實(shí),這要?dú)w功于信號(hào)源和邏輯門共同組成的邏輯運(yùn)算的規(guī)則系統(tǒng),為了維護(hù)這個(gè)規(guī)則系統(tǒng)的運(yùn)行,是需要依賴外在能量的。也就是說,在外在能量的支持下,一個(gè)系統(tǒng)可以消除隨機(jī)不確定性而產(chǎn)生信息。
但這個(gè)系統(tǒng)對(duì)兔子來說,并沒有啥作用,因?yàn)闊o論它面對(duì)的是寬敞明亮還是狹窄幽暗的道路入口,所謂指路神器給出的結(jié)果都是一樣的。這當(dāng)然不是說,這個(gè)裝置是全然沒有用處的,因?yàn)檫@個(gè)裝置很直觀地展現(xiàn)出系統(tǒng)消除混亂的過程,如果學(xué)習(xí)了更多復(fù)雜系統(tǒng)相關(guān)知識(shí),就能知道,可以通過將系統(tǒng)的運(yùn)行結(jié)果反饋到系統(tǒng)輸入端,對(duì)初始混亂的數(shù)據(jù)進(jìn)行反復(fù)迭代,逐步模擬出有更高“智慧”的裝置。
一個(gè)簡(jiǎn)單的知識(shí)系統(tǒng)——對(duì)兔子有用
在上述裝置的結(jié)構(gòu)上進(jìn)一步擴(kuò)充(如圖5),這個(gè)系統(tǒng)才能說對(duì)兔子是有用的,指路神器中存放有兔子先行者們的歷史數(shù)據(jù),走寬敞明亮道路的32只兔子,存活了23只,走狹窄幽暗道路的32只兔子,存活了1只。電路圖左下角的按鈕,是用來確定當(dāng)前面對(duì)的到底是哪一條道路的入口。注意,這只笨兔子并不會(huì)數(shù)據(jù)分析,但這個(gè)指路神器卻可以告訴它,是否應(yīng)該走當(dāng)前的道路。那五個(gè)隨機(jī)發(fā)生器偶爾會(huì)產(chǎn)生出干擾信號(hào),會(huì)使得系統(tǒng)不完全按照歷史數(shù)據(jù)來做出決定,但這其實(shí)也很符合現(xiàn)實(shí),因?yàn)榭陀^世界本來就不是一個(gè)確定性的世界。
這個(gè)系統(tǒng)的運(yùn)行結(jié)果是,寬敞明亮的道路是應(yīng)該優(yōu)先選擇的。雖然最終的電路圖略為復(fù)雜,但教學(xué)中的重點(diǎn)并不是電路的搭建,而是從一個(gè)只能產(chǎn)生混亂數(shù)據(jù)的系統(tǒng),逐步擴(kuò)充到一個(gè)能具有一定“智慧”的決策系統(tǒng)的演變過程,教師可以只進(jìn)行演示實(shí)驗(yàn),也可以讓學(xué)生動(dòng)手交互操作,觀察輸入和輸出數(shù)據(jù)的情況。在整個(gè)裝置逐步演變和擴(kuò)充的過程中,涉及信息和信息熵的概念、二進(jìn)制編碼、布爾值與邏輯運(yùn)算等知識(shí),這樣,就能通過一個(gè)統(tǒng)一的實(shí)驗(yàn)框架,將日常教學(xué)中零散的知識(shí)內(nèi)容融合到一起,并且,將較為抽象的概念,以動(dòng)態(tài)直觀的形式展現(xiàn)出來。