天天看點

《Java遺傳算法程式設計》—— 1.3 進化計算的曆史

本節書摘來異步社群《java遺傳算法程式設計》一書中的第1章,第1.3節,作者: 【英】lee jacobson(雅各布森) , 【美】burak kanber(坎貝爾),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

20世紀50年代,進化計算首次作為一種優化工具被嘗試,當時的計算機科學家将達爾文的生物進化論思想應用于候選解構成的種群。他們建立理論,認為有可能應用進化算子,如交叉(它是生物繁殖的模拟)和變異(這是新的遺傳資訊添加到基因組中的過程)。這些算子和選擇壓力共同作用,讓遺傳算法在一段時間後,能夠“進化”出新的解。

在20世紀60年代,“進化政策”(應用自然選擇和進化思想的一種優化技術)最初由rechenberg(1965,1973)提出,他的想法後來被schwefel(1975,1977)發展。其他計算機科學家當時在類似的研究領域獨立地工作,如fogel l.j,owens, a.j以及walsh, m.j(1966年),他第一個引入了進化程式設計的領域。他們的技術包括用有限狀态機表示候選解,以及應用變異來建立新解。

在20世紀50年代和60年代,一些研究進化的生物學家開始用計算模拟進化。然而,是holland, j.h.(1975)在20世紀60年代和70年代首先提出并發展了遺傳算法的概念。1975年,在開創性著作《adaption in natural and artificial systems(自然與人工系統中的适應)》中,holland終于提出了他的想法。holland的書展示了達爾文的進化論可以如何被抽象并用計算機模組化,用于優化政策。他的書解釋了染色體如何模組化為1和0的序列,通過實作自然選擇中的技術,如變異、選擇和交叉,擁有這些染色體的種群可以如何進化。

在20世紀70年代首次被引入後的幾十年裡,holland原創的遺傳算法定義已經逐漸改變。這在某種程度上是因為,近期進化計算領域的研究人員偶爾将來自不同方法的思想融合在一起。雖然這模糊了許多方法學之間的界限,但它為我們提供了豐富的工具,幫助我們更好地解決具體問題。在本書中,術語“遺傳算法”既指holland的遺傳算法的經典定義,也指更寬泛的、今天的解釋。

計算機科學家至今仍在研究所學生物學和生物系統,以便得到啟發,創造更好的算法。最近的一個仿生優化算法是蟻群優化算法,它由marco, d. (1992)于1992年首先提出。蟻群優化算法對螞蟻的行為模組化,以此作為解決各種優化問題的方法,如旅行商問題。