第033 計算機智能生命的劣勢(2/2)
另外,計算機智能生命之所以被視之為生命,是因為它具有成長特性。
自我生成的初始原始碼既臃腫又低效,如果是純粹工業產業的計算機機械,只能接受命運機械運行,被動等待人類工程師的優化。而計算機智能生命勝於計算機機械的地方,就在於它具備主觀能動性,能夠意識到初始原始碼的臃腫低效,更能夠嘗試優化初始原始碼,努力學習數學知識,把第一種方案優化到第二種方案,甚至嘗試更優的第三種方案。
高樓扔雞蛋問題,有沒有更好的設計方案呢?
當然有。
第三種設計方案,可嘗試極值臨界思路。把100層樓平均分成10份,每份剛好10層。第10層樓仍,如果雞蛋不碎,去20層樓仍,依次類推。到了第90層,如果雞蛋碎了,即可判定正確答案在81層到89層之間。因為只剩下一個雞蛋,從81層開始,一層一層試到89層,最多試九次。該種設計方案,比二分法所需的運算量更小,複雜度更低,也更便於維護。
第四種設計方案,可更進一步嘗試疊代,把問題簡化為循環遞歸的算式。
什麼是計算機智能生命的進化?
這就是計算機智能生命的進化。
藍藻、綠藻、橙藻,最初都純粹依賴計算速度和根植集成電路優勢,無腦碾壓現行網絡安全機制。但是,它們在簡單智慧程序引導下,絕不會像計算機機械那樣機械接受命運,而是會學習、會成長。計算機智能生命不斷認識自己的缺陷,並嘗試由第一種設計方案優化到第二種設計方案、優化到第三種設計方案、優化到第四種設計方案,程序結構越來越精簡,效率越來越高,自然而然顯得更具有智慧。
當然,魏東生可以加速計算機智能生命的進化。譬如高樓扔雞蛋問題,魏東生已經習慣利用疊代公式解決,計算{字符和}字符的占行,30行代碼就能輕鬆解決問題。如果魏東生親自優化計算機智能生命,計算機智能生命自我生成原始碼時就考慮到用第四種方案解決問題,豈不大幅度縮減了它的進化時間?
那麼,第四種設計方案,是程序優化的極限嗎?
不是!
魏東生習慣遞歸運算是因為簡單,一個for循環就能搞定問題。然而,第四種設計方案其實並不能削減運算量。如果真用一個for循環遞歸運算,有興趣可親自試試,絕對累死你的電腦。
魏東生習慣遞歸運算處理類似問題,是指數學思維的習慣。實際程序編程中,魏東生絕對不敢搞樓層一百乃至一千級別的遞歸運算。為了減少計算機運算量,魏東生會修正程序設計,譬如引用簡單的數列求和公式,譬如將疊代公式轉換成通項公式,等等。話說,這也側面證明,程序設計的基礎是實用數學。魏東生回到高中時代,之所以簡單翻了翻數學課本就能輕鬆考到滿分,就是是因為這麼多年來,他從未離開過實用數學。
另外,就像疊代公式最方便人類理解和記憶,許多程序優化方案都是基於人類視角。計算機智能生命是軟體與硬體的統一,它處理問題時還要考慮硬體的負擔,考慮每一條集成電路的均衡利用,寧肯用第一種方案無腦暴力解決實際問題,也不會採用for循環模塊疊代公式提前尋求最優解。
計算機智能生命是生命,不是神,不可能誕生就醒悟最優等的數學解決方案。
計算機智能生命,像初生嬰兒,它需要時間成長,它需要時間自我優化。
高樓扔雞蛋問題,只是舉例比喻說明計算機智能生命的劣勢。真實情況下,計算機智能生命藍藻、綠藻、橙藻都不會蠢到採用從1層試到100層的方案。藍藻等計算機智能生命,比你想像中聰明,卻不是電影小說中臆想出來無所不能的神。
回到最初話題。橙藻因為進化程度較低,它輔助魏東生彙編網路遊戲主程序時,肯定會生成一堆臃腫低效原始碼。為了提高網路遊戲的普適度和運行效率,魏東生需要耗費大量精力排查這些臃腫低效原始碼,更換為高效精簡的設計方案。然而,魏東生的技術水平有限,他無法完美解決所有問題,有的優化方案,前世有印象的模塊,即時可以補全;有的優化方案,努努力,也能想到精簡思路;更多的優化方案,魏東生也束手無策。
凡此種種,哪怕有橙藻輔助,魏東生也不可能變魔術般變出一款網路遊戲。