程序自主進化

首先來講講爲什麼要研究程序自主進化。

在這個全球步伐隨互聯網騰飛的時代,人們的需求快速增長。因此,各種應用軟件或Web應用都需要隨着用戶的需求而高速頻繁更新。而更新往往不是那麼簡單的。很多中小型軟件公司在開發一個產品時,片面的追求開發速度,並不願意花太多時間去爲以後程序的擴展和複用做過多設計。這就造成了這樣一種囧態,在用戶需求發生巨大變動或累積時,舊的產品已不能再滿足用戶需求,軟件公司就需要從0開始,重新開發一個符合需求的軟件,這是要付出極大的代價的。

可以看出,中小企業爲了得到更多的客戶和減少資金投入,儘可能的縮短開發時間,避開一些繁雜的設計,只要能儘快拿出能用的軟件就行。而另一方面,這種做法的弊端會隨着時間推移慢慢顯露出來,給軟件公司帶來更大的問題和負擔。

個人認爲,即便不存在以上問題,軟件本身的智能可進化也可能是一種趨勢,因爲在我看來,軟件自身智能進化,是互聯網智能化的基礎。就好比大自然的進化一樣,需要人類和其他高等生物本身具有進化的能力。人並不能完全掌控互聯網,就像人不能掌控大自然一樣。我們在大自然中已經擁有了不錯的地位,就不要妄想在互聯網的世界裏依然稱王。互聯網的世界裏應該有它自己的“生命”,這個“生命”不是人類,而應該是各種各樣的程序。

基於以上分析,我認爲研究程序的自主進化很有必要。下面我們來看一看程序進化研究的現狀。

相關數據顯示,現在的互聯網上流竄着大量的難以查殺的病毒(病毒也是程序),互聯網數以億計的計算機就像是一個巨大的培養皿,提供給病毒一個很好的進化環境。在這樣的環境下,低級簡單的病毒逐漸被淘汰,而高級複雜的病毒存活了下來。如此優勝劣汰之下,病毒勢必會產生進化。雖然這種進化並不是標準意義上的進化,更多隻是對自身參數和觸發方式的修改。但誰能保證,這樣的進化會不會越來越智能。而且這樣的進化完全是人們不可知的。

     國外已經有很多的團隊和工作室已經在做這方面的研究。比如用PROLOG規則的自添加實現程序的自編程,比如能自主學習的智能機器人。我曾在網上看到一個工作室,用程序虛擬機器人,然後隨機產生100個這樣的機器人,這100個機器人中大部分不會走路,甚至一動就會倒下,然後從這100個機器人中選出一部分優秀的,讓他們自繁下一代。到第10代的時候,很多機器人已經能夠蹣跚行走了。到20代時,機器人除了跳躍已經能夠做很多動作了。(具體請參見BBC-神祕的混沌理論)。

也有一部分人認爲,程序要實現智能化、不能停留在代碼層面。應該實現更底層的智能化、比如智能邏輯電路。就像人的大腦突觸和神經元的進化一樣。當然,在我看來,這更像是硬件的進化。

目前很多軟件都能做到主動收集數據、接收數據、分析數據並儲存數據。這意味着軟件也可以和人類一樣向外界學習。軟件可以根據環境的變化不斷完善自己的程序。當然,目前大多是不循序程序肆意修改的,這需要操作系統做一點改變,如果可以操作系統也智能化最好,因爲操作系統本身也是一個大的程序。

當然,軟件的進化目前依然有很多難題。

第一個,速度,雖然目前CPU的最快運算速度已經達到每秒幾億次,但這對於實現程序智能進化還不夠。如果以後量子計算機能夠普及,或許會大大加快軟件本身智能進化的速度。

第二個,算法,每種事物都應該有其對應的數學模型,只是目前沒有人發現。進化也是如此,就像胚細胞最初都一樣,爲什麼後來會進化成各種各樣的組織細胞。這應該都是可以用數學模型來描述的。這也是著名的混沌理論中的一種觀點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章