2011-07-17 33 views
3

我試圖設計一個非線性適應度函數,其中我最大化變量A並最小化變量B.問題是最大化A對於單個數字值幾乎是對數更重要。 B需要最小化,與A相比,當小(小於1)時,它變得不那麼重要,當它變大(> 1)時變得更重要,所以指數衰減。適應度函數和遺傳算法的選擇

主要目標是優化A,所以我想模擬爲A =利潤,B =成本

我的目標應該是把一切都正使得我可以用一個輪盤賭選擇,或者將它更好地使用排名/系統類型?我的算法的目的是形狀優化。

感謝

+0

您的健身功能描述看起來不完整。你有沒有推導出它的數學公式? – ThomasMcLeod

+0

看看這個主題http://stackoverflow.com/questions/6589146/need-help-on-like-dislike-voting-system - 也許它可以幫助你構建正確的健身功能。 – stemm

+0

您是否擔心當地最低和最高?否則,我會考慮實施一個更簡單的爬山搜索:http://en.wikipedia.org/wiki/Hill_climbing – Patrick

回答

0

的描述很模糊,但假設你確實有功能應該是什麼樣的想法和你只是想知道你是否需要修改它,這樣的比例選擇可以很容易地使用, 那就不要。無論健身功能如何,您應該默認使用錦標賽選擇等。控制選擇壓力是你必須做的最重要的事情之一,以獲得一致的好結果,輪盤選擇不允許你控制。你通常很早就會受到巨大的壓力,這會導致過早收斂。在少數情況下這可能更可取,但這不是我開始調查的地方。

4

在考慮多目標的問題,目標是通常來識別躺在帕累託曲線上的所有解決方案 - 帕累托最優集。有look here for a 2-dimensional visual example。算法完成後,您需要一組不受任何其他解決方案支配的解決方案。 因此,您需要定義一個帕累託排名機制,既考慮到目標 - 在深入的解釋,以及鏈接到更讀記一多,go here

這樣,纔能有效地探索一切沿着pareto前端的解決方案你不想要一個鼓勵早熟的實現,否則你的算法將只探索帕累託曲線的一個特定區域的搜索空間。我將實現一個選擇算子,該算子保持每個迭代的最優解集的所有成員,即所有解決方案不受另一個+的支配,並加上參數控制的其他解決方案的百分比。這樣您就可以鼓勵沿着帕累託曲線進行探索。

您還需要確保您的突變和交叉操作符也能正確調整。有了任何新穎的演化算法應用,部分問題就是試圖爲問題領域確定最佳參數集......這就是它變得非常有趣的地方!

+0

我現在的健身功能就像(x + 1)/ sqrt(1 + y^2/2^2)o y的值爲1.3和.8無關緊要,但值爲3.0。 我對pareto排名的理解是,我需要大約100人的大小,這是我選擇健身功能的主要原因。儘管如此,我也應該可以嘗試實施帕累託排名。 – randomafk