大膽想象一下,如果計(jì)算機(jī)可以自行編寫程序,這會(huì)為人類帶來什么樣的變化?
與其辛苦研究計(jì)算機(jī)解決問題的方法論,敲出精準(zhǔn)的代碼,不如告訴計(jì)算機(jī)你想要什么,讓它自己運(yùn)行算法去解決你的需求。
聽起來是不是很優(yōu)秀呢?
“進(jìn)化計(jì)算”正是研究這一大膽想法的學(xué)科。
我們可以把“進(jìn)化計(jì)算”看做是一類人工智能和機(jī)器學(xué)習(xí)的分支。最早提出于20世紀(jì)50年代,進(jìn)化計(jì)算旨在讓計(jì)算機(jī)自行解決問題,而不需要人類編寫一步步復(fù)雜的編程代碼。理論上來說,這可能會(huì)讓原本需要編寫幾周的代碼在幾分鐘之內(nèi)就可以實(shí)現(xiàn)。
這種理念可以讓計(jì)算機(jī)去完成人類很難理解或者難以實(shí)現(xiàn)的復(fù)雜問題。計(jì)算機(jī)學(xué)家已經(jīng)將進(jìn)化計(jì)算應(yīng)用到了一些實(shí)際問題上,包括為蝦飼料配置最佳組合、最佳資產(chǎn)組合、通信技術(shù)、游戲行業(yè)和自動(dòng)包裝等。
那些研究進(jìn)化計(jì)算的科學(xué)家們?cè)谶@60多年時(shí)間里提出了大量建議。然而,進(jìn)化計(jì)算的理論并沒有在研究領(lǐng)域之外被廣泛應(yīng)用。
所以,為什么進(jìn)化計(jì)算一直進(jìn)展緩慢?
進(jìn)化計(jì)算的原理
進(jìn)化計(jì)算沿用了查爾斯.達(dá)爾文的自然選擇學(xué)說,就是我們通常所知的“適者生存”。也就是說,一個(gè)物種里最弱小的(或者不太容易生存的)相繼死亡而強(qiáng)壯的會(huì)生存。經(jīng)過許多代以后,這樣的物種會(huì)進(jìn)化得越來越適應(yīng)周圍環(huán)境。
進(jìn)化計(jì)算中,計(jì)算機(jī)為每個(gè)問題創(chuàng)造了大量的潛在答案。由于這些方案通常都是隨機(jī)產(chǎn)生的,所以計(jì)算機(jī)剛開始肯定也不能我們關(guān)心的問題。但是,有些方案要比其他的更好。計(jì)算機(jī)可以從中排除最差的答案,找到最優(yōu)解并發(fā)掘更多潛在答案。不同的答案會(huì)被融合在一起(這通常被叫做“交叉”),從而獲得一個(gè)可以不斷被測(cè)試和實(shí)驗(yàn)的新一代答案。
就像自然選擇學(xué)說一樣,另一個(gè)關(guān)于進(jìn)化計(jì)算的重要元素是突變。所以,每過一段時(shí)間,被測(cè)試的答案就會(huì)產(chǎn)生一個(gè)既小而隨機(jī)的變化。這就意味著,新的潛在方法會(huì)被創(chuàng)造,而僅僅使用交叉法是不能實(shí)現(xiàn)的。
理想情況下,由交叉和變異組合成的潛在新方案,會(huì)比他們的“父母”更好。但“進(jìn)化”也不是每次都發(fā)生的,只有更多迭代產(chǎn)生,更好的解答才能浮現(xiàn)。對(duì)于進(jìn)化學(xué)習(xí)來說,擁有數(shù)以萬計(jì)的迭代是有跡可循的,就像自然選擇需要數(shù)以萬年去選擇一個(gè)物種生存一樣。
基因編程樹
進(jìn)化計(jì)算中最有名的莫過于基因編程。在基因編程中,一個(gè)計(jì)算機(jī)程序會(huì)讓另一個(gè)程序經(jīng)過演變來處理特定的問題。用戶提供了一些衡量程序優(yōu)劣的度量,然后演化過程接管,一切順利的話,就會(huì)返回一個(gè)解決問題的程序。
遺傳算子
盡管在科研界,基因編程研究已經(jīng)取得了巨大進(jìn)展,但是進(jìn)化計(jì)算依舊很被難投入到商用中。這究竟是為什么呢?
為什么進(jìn)化計(jì)算一直沒被投入商用?
不同于其他很多技術(shù),進(jìn)化計(jì)算還未真正被商業(yè)領(lǐng)域接受。3D打印是在20世紀(jì)80年代發(fā)明的,經(jīng)過很長(zhǎng)一段時(shí)間的發(fā)展,現(xiàn)在已被用于工業(yè)制造。同樣,增強(qiáng)現(xiàn)實(shí)、虛擬現(xiàn)實(shí)和人工智能也從研究領(lǐng)域中涌現(xiàn)出來,成為大型科技公司的主要產(chǎn)品。
阻礙進(jìn)化計(jì)算商用的一個(gè)關(guān)鍵問題是,研究人員未能把重點(diǎn)放在商業(yè)領(lǐng)域感興趣的問題上。
舉個(gè)例子。計(jì)算機(jī)科學(xué)家已經(jīng)深入研究了如何利用進(jìn)化計(jì)算來為車輛制定路線。但是,研究者們通常只是研究問題的一些簡(jiǎn)單方面,而非是問題本質(zhì)。很多汽車路徑優(yōu)化,用的是兩點(diǎn)之間直線最短的原理。
在現(xiàn)實(shí)世界中,車輛行駛的路線很少遵循直線,而且必須考慮單向系統(tǒng)、故障、法律問題(比如司機(jī)必須休息多久)、時(shí)間限制以及其他很多問題。這種復(fù)雜性正是進(jìn)化計(jì)算能夠提供幫助的地方。
如果我們能夠充分定義問題在現(xiàn)實(shí)世界中發(fā)生的情況,那么進(jìn)化算法應(yīng)該能夠處理其復(fù)雜性。
另一個(gè)問題是,進(jìn)化計(jì)算的結(jié)果有的時(shí)候很難解釋。舉例來說,盡管基因編程系統(tǒng)可能會(huì)創(chuàng)造一個(gè)完美的答案,但是這個(gè)答案是如何實(shí)現(xiàn)的,可能對(duì)于一個(gè)程序員來說是一個(gè)秘密,因?yàn)橄到y(tǒng)產(chǎn)生的代碼可能十分復(fù)雜,并且難以理解。
進(jìn)化計(jì)算系統(tǒng)的實(shí)現(xiàn)和支持也很復(fù)雜,這可能會(huì)讓一些商業(yè)組織望而卻步。如果有一個(gè)易于使用的框架來隱藏大部分潛在的復(fù)雜性,這將會(huì)有所幫助。盡管這些框架存在于科學(xué)界,但它們不容易被商業(yè)部門使用,更不用說家庭用戶了。
IBM著名的軟件工程師弗雷迪克.布魯克斯曾經(jīng)這樣說道:你是不能通過增加人力來處理規(guī)模不斷擴(kuò)大的軟件開發(fā)項(xiàng)目的。
如果有朝一日進(jìn)化計(jì)算能夠被投入商用,這對(duì)軟件開發(fā)商來說將會(huì)是一個(gè)巨大的幫助。
-
云計(jì)算
+關(guān)注
關(guān)注
39文章
7835瀏覽量
137496 -
編程
+關(guān)注
關(guān)注
88文章
3619瀏覽量
93781 -
自動(dòng)化系統(tǒng)
+關(guān)注
關(guān)注
3文章
255瀏覽量
29667
原文標(biāo)題:號(hào)稱能自動(dòng)編程60年,“進(jìn)化計(jì)算”究竟進(jìn)化到哪一步了?
文章出處:【微信號(hào):BigDataDigest,微信公眾號(hào):大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論