2012-05-31 94 views
3

所以我在閱讀進化算法,並且感到困惑。進化算法'方法'之間的主要區別是什麼?

什麼是進化規劃,進化策略和遺傳算法的「傳統」的差別,我相信在現今,他們已基本收斂到同樣的事情?

我的理解是,遺傳算法有所不同「基因」產生的結果,進化策略改變這在某種程度上改變了個人參數。這意味着什麼意思numerical parameters(http://en.wikipedia.org/wiki/Evolutionary_algorithm)?進化規劃然後主要通過實數變異來變化?

是進化規劃和尋找一個程序來解決問題的遺傳編程方式,而遺傳算法和尋找解決使用候選人問題的進化策略的方法呢?這種區分對我來說是不可見的,我在進化策略和遺傳算法中看到的唯一區別是參數與染色體和實數與整數的列表?

謝謝。

回答

4

希望這將澄清一點東西給你:

進化算法:算法嘗試,考生解決方案的特定人羣裏面,找到一個「最適合」的解決方案。該算法開始隨機候選人,並試圖通過複製,突變,重組和選擇

從那裏演變從那裏,你有幾個「標準方式」呼喚的進化算法幾個家庭的。這些名稱是由學術研究給出的;我相信,在命名規則的細微差別都從細微的原因和缺乏可用的詞彙來隨着時間的推移:

  • 遺傳算法:給定的人羣被定義爲「數字串」(traditionnaly一0和1的矢量)。

  • 遺傳編程:給定的人羣是一組結構不同的計算機程序。問題是哪個程序是解決特定問題的「最佳選擇」。如果你熟悉Lisp處理,你會知道整個程序可以表示爲一棵樹;想象一下你的算法改變或重組了這些樹。最終你會得到很多從你原來的候選人中演變出來的計劃,有些人會比其他人更好地解決你的問題。

  • 進化規劃:給定具有固定的結構,但參數的特定計算機程序,所研究的人口是一組通過這些參數的變化所得到的節目。例如,如果您認爲您的問題可以用有限狀態機表示,則此技術可以幫助您查找狀態數,狀態之間的授權轉換以及這些轉換的可能性。

  • 演進策略:給定人口的喜歡研究的候選人中突變率實數+參數向量試圖達到最佳。想象一下,你從(c1,c2,c3)三維向量的總體開始。在每一代,你都可以通過向c1,c2和c3添加一個隨機值來改變它們。隨機值可能基於標準差爲S的高斯分佈。以S的大值開始可能很有趣,因此突變會產生遍佈整個地方的向量,一旦開始尋找有趣的向量,就開始減少S以便圍繞這些有趣的媒介「聚焦」。

請記住,這些名稱只是命名約定。有些擅長描述他們的意思,有些則不太優化。人工智能領域的進化命名仍然是一項進展;-)

+0

我欣賞進化命名;)。你能否詳細說明爲什麼你需要大量的計算機程序來選擇「解決」一個問題(遺傳編程),以及爲什麼/如何選擇它們的常量。一個例子?此外,您是否可以詳細說明如何使用進化策略?我不明白爲什麼進化策略會更好地完成某件事情。參數*和*實數矢量會有所不同嗎?會發生什麼? –

+0

你好;我試圖盡最大努力添加與現實生活並不太相近的例子,但又足夠接近命名「分類」。我無法想象當時那些首先試圖對所有動物和植物進行分類的人有多難 - http://en.wikipedia.org/wiki/Carl_Linnaeus –

+0

他們是獨立發明的,所以我懷疑它們有多少衝突。 –

相關問題