盧赫:“什麽叫自動機?“


    艾達否:“自動機就是對信號序列進行判定的數學模型。我嘴裏的自動機特質有限狀態機,當這個機處於某種狀態時,它會讀到相應的信號,根據轉移函數跳到下一個狀態,可以視作一台沒有內存結構的計算機。


    比如你現在餓了,那你就要去食堂,把晶瑩飽滿、粘糯有較勁、香到不可思議的新米飯一勺一勺填進嘴裏,直到胃被塞滿。饑餓感是信號,餓了要吃飯是狀態,去食堂是轉移函數,飽是執行完轉移函數之後的新狀態。


    你每時每刻都在處理各種各樣的狀態,直到停機,或者說死掉。”


    盧赫:“那什麽叫圖靈完備?”


    艾達否:“能模擬圖靈機的自動機稱作圖靈完備。”


    盧赫:“什麽叫圖靈機?”


    艾達否:“一個可以執行任何算法的簡單模型。它有一個無限長的紙帶,紙帶被分成一個個相鄰的格子,每個格子都可以寫上至多一個字符;它還有一個讀寫頭,可以讀取、擦除、寫入當前格子的內容,也可以每次向左或向右移動一個格子;它有一個字符表,包含紙帶上可能出現的所有字符;


    它還要有一個狀態寄存器,追蹤每一步計算過程機器所處的狀態直到停機;它還可以包含一個指令集,用來指定讀寫頭的行為,比如你告訴讀寫頭:當你身處編號53的格子並看到其內容為0時,擦除,改寫為1,並向右移一格。此外,令下一狀態為運行。


    舉個栗子,如果它的字符集隻包含0、1和空白,那麽它就是一個包含3個信號的圖靈機。如果它的紙帶上寫了個110,那麽你可以讓它執行一係列的指令執行位反轉算法,把110改寫成001。比如:指針遇0寫入1紙帶右移,遇1寫入0紙帶右移。


    那你要問了,如果指針遇到空字符呢?


    你沒有告訴它遇到空字符怎麽做,所以它隻會不斷讀取空字符,但不操作。這個時候你可以給它加一個狀態指令:遇到空字符就停機,它就可以完美執行你的位反算法。它現在可以被視為一個包含3個信號和1個狀態的有限狀態機。


    如果你吃飽了撐著沒事幹,想要把它設計得複雜一些,比如想讓它一做完位反轉運算就複原,把110變成001後再複原成110。那麽你給它兩個狀態:當讀寫頭在向右移動的過程中讀到空字符時,改為向左移動;當讀寫頭在向左移動的過程中遇到空字符時,停機。這是一個包含3個信號和2個狀態的有限狀態機.。


    隻要你給它添加足夠多的狀態,並把這個假想模型物理實現,就能夠讓它執行一切複雜算法,隻要這個算法是可計算的。”


    盧赫:“你在這裏做了限定,隻能執行可計算的算法。”


    艾達否:“沒錯,它隻能解決可計算的問題。你可以給它一個正整數 n,讓它判斷n是否是質數,但不能問它今天中午食堂會有什麽飯。你可以給它一個邏輯蘊含的命題,要求它求出逆否命題,但不能包含悖論,比如理發師給並且隻給那些不給自己理發的人理發,那他給不給自己理發?”


    盧赫:“這麽簡單的結構,對於複雜算法它是如何算的呢?”


    艾達否:“它算起來也很簡單。三種基本函數:零函數、後繼函數、投影函數,外加三種基本操作:函數組合、原始函數遞歸以及極小化,就能夠解決一切可計算問題[1]。”


    盧赫:“……我換個我能聽懂的問題吧,怎樣判斷一個語言是圖靈完備的?”


    艾達否:“如果一個語言能夠實現上述的三種基本函數和基本操作,並且能夠據此實現偏遞歸函數,那麽它就是圖靈完備的。”


    盧赫:“為什麽這麽說?”


    艾達否:“因為隻有能實現偏遞歸,才能夠實現無限循環,在沒收到停機指令時,永遠運行下去[2]。能夠實現遞歸和無限循環是圖靈完備的必要條件。”


    盧赫:“……我再換一個問題,你憑什麽說基因組語言是圖靈完備的?”


    艾達否:“遞歸你知道吧,首先是把複雜問題拆解為一係列子問題,直到最低層級的子問題太過簡單以至於無法拆分,這是''遞''。接下來,一旦最低層級的子問題被解決,上一層的子問題也就解決了,直到最頂層的複雜問題,這是''歸''。


    複雜問題:要人快快死。最低層級的子問題:基因上要有接口或者被胡亂編輯。某一天,接口來了,最低層子問題被解決,人自然很快就死了。這個過程也許無法用確切的函數來描述,但我願稱之為廣義遞歸。”


    盧赫:“讓人死有那麽難嗎?怎麽就死得快就是遞歸了?”


    艾達否:“有。從基因突變到第一個癌細胞產生,再到瘤子大到可以被ct掃描出來,平均時間是15年。死很容易,但無外力影響的時候,單靠體內循環死怎樣死得這麽快,是一個很複雜的問題。”


    盧赫:“我假裝認為你說得對,但你要告訴我,為什麽這個複雜問題非得是“死”?就不能是活嗎?對於生命體而言,活才是本能吧?”


    艾達否:“你知道為什麽常見的堿基是4種嗎?2、6、8、10……?”


    盧赫:“你繼續。”


    艾達否:“根據遺傳信息可複製性要求,堿基數n必須為偶數,n\/2為嘌呤型,n\/2為嘧啶型。簡化假設單堿基突變是主要突變形式,但堿基突變造成錯對,錯對有轉換,比如a變c,和癲換,比如a變g兩種形式,它們發生的機率也不同。


    假設a、b分別為兩種錯對的突變常數,k為一個密碼子內的堿基數,可以給出突變總頻率m:


    m=ak(n\/2-1)+bk(n\/2-1)


    當n為2時,m為0,沒有突變就完全沒有進化,不符合現實,排除。


    當n為4時,m為k(a+b)。n越大,m越大。


    為什麽生命體裏總是存在基因修複機製?因為它要穩定,不能被奇奇怪怪的突變給搞死。要穩定,堿基就不能有那麽多,好幾十億年了,常用堿基還是4個,因為這樣最穩定。”


    盧赫:“所以呢?生命要穩定,要活,那為什麽遇到大幅編輯,不是努力修複,而是想盡辦法快點死?”


    艾達否:“修複速度和能力是有限的,遭難的快點死絕,沒遭難的就能繼續活。我們每個個體都是一個複雜係統,組合起來的群體也是一個複雜係統。有句話我覺得很有道理:一切有死之物都希望通過生育繁衍這個唯一可能的方式達到永生,個體永生不了,但群體可以。”


    盧赫:“我不明白。群體怎樣判斷出大幅編輯的個體不利於群體的延續的?且不說群體智慧究竟是否在生物種群中存在,這群體怎麽就這麽自信?”


    艾達否:“因為它知道。也許是死是活是一個可計算的問題,它提前算出來了。”


    盧赫:“??”


    艾達否:“也許,它是一台非確定圖靈機吧。”


    盧赫:“???”


    艾達否:“理論上,它與標準圖靈機計算能力相同,但不同的是,它擁有兩個轉移函數,每一步計算可以選擇兩個轉移函數中的任何一個。它的每一步計算,就相當於是將一個線程分成了兩個,兩個不同的轉移函數選擇各自對應一個子線程。


    依據這種結構,有時候一個看起來不知道可否計算的問題,可以被它輕鬆解決。比如,判定一個數獨的題目是否合法。它隻要在每一個分支上填不同答案,看看是否有其中一個分支的答案合法就好了。


    對於一個規模為n^2的數獨來說,每一條分支的時間複雜度是o(n^2),所以我可以說判定一個數獨是否合法,這對於非確定圖靈機來說,是一個np完全問題。


    np完全問題的另一種定義是能被非確定圖靈機計算的問題。”


    盧赫:“照你這麽說,生命體智慧宇宙最強,那我們還造什麽高性能計算機?隻要是可計算的問題,自己悟悟總能悟出來?”


    艾達否:“這不矛盾。計算機是生命體造的,是一個複雜問題的子問題而已,隻是有點舍本逐莫了。總之,我的想法是,物種進化等於基因突變加自然選擇,現在隻有基因突變但沒有自然環境壓力,群體卻依然做出了如此決絕的選擇,一定有重要原因在裏麵,我們應該相信自己給出的這個最優解。”


    盧赫:“先不管你的理論靠不靠譜,你的意思是,基因編輯行不通,一大幅編輯就早晚幾代人一起死,接口更跟個毒藥一樣,一沾上就是慢性中毒。明知道那屎山代碼裏有bug卻什麽都做不了,眼見著人被折磨?”


    淩晨4點半的一切都令人討厭,不論是咕咕叫的肚子,還是艾達否牛啤哄哄卻沒有任何應用價值的理論。盧赫的心完全冷了下來。


    可對麵的人依然神采奕奕的,“你怎麽這麽死板呢?大幅編輯行不通可以小幅編輯,找到靠譜的界限就行了。接口拿去禍害經濟物種,別往自己身上用。


    而且,人辛苦進化到生態位最頂端,被自然奴役了幾十萬年終於可以奴役一下自然了,為什麽要對自己動刀子?


    在體外使用基因組語言,服務於科技的方方麵麵,它不香嗎?”


    —————————————


    [1-2]見下章

章節目錄

閱讀記錄

四進製造物主所有內容均來自互聯網,繁體小說網隻為原作者非奇異矩陣的小說進行宣傳。歡迎各位書友支持非奇異矩陣並收藏四進製造物主最新章節