-5

我正在研究遺傳算法項目。我需要使用基本遺傳算法來查找Rastrigin函數或Easom函數(對於y = 0)的最大值/最小值。使用遺傳算法尋找函數的最小值

+0

通常的程序是獲取並連接幾個相關的matlab庫,而不太關心理論或實現。你的問題到底在哪裏,你是否有一些「簡單」功能的示例代碼? – LutzL

+0

@Lutzl不,我不知道。其實我正在用JAVA/C++編寫代碼,我不明白如何使用GA來優化函數。我使用GA編寫了人口演化代碼,但從未使用GA進行函數優化。 – Aman

+0

你有一些人口,你計算每個人在個體的功能價值和最小值的個體獲得更高的人口適應性。 – viceriel

回答

2

好的,我們來看看Easom的功能吧。

問題陳述

在尋找最小值:

F(X)= -cos(X1)COS(X2)EXP( - (X1-PHI)^ 2 - (X2-PHI )^ 2)

表示選擇

對於實數的示例矢量。每個元素的值的間隔是< -5; 5>。

健身

GA的主要問題。我們有例如兩個人:

Individual1: [-1 | 2.7 | -0.68 | 3.78 || -2.14 | 1.63 | -1.75 | -3.8]

Individual2: [1 | 1 | 1 | 1 || -0.5 | -0.5 | -0.5 | -0.5]

第一個人被解碼爲4.8和-6.06。他的健身功能是-9.23073 ...×10^-40。

第二個人被解碼爲4和-2。他的健身是 -4.30104456071396041116767479151655914468678005731098 ...×10^-13

而現在這個問題。健身是如此之低,所以我們可以考慮爲0。你有兩種選擇。等待戈多(也許在一代人中誕生了具有全球最低價值的占卜者)。或者你可以使用啓發式。啓發式是基於將健身分爲主要健身和次要健身兩個值。主要適應度是函數中x的值。該值始終爲0,因此開始無法搜索。次要健身有目的的啓發式搜索方式。你定義了一些函數,例如x的平均值。因此,個人1的次要適應度爲-0.63,個人2爲1.因此,個人2是「更好的」,他將有更高的選擇等概率。

次要健身只會讓您的搜索方式。
可以這樣錯嗎?是的,這是啓發式的。 重要的是,次要的功能目的是爲具有相同主要功能的個人創造偏好。當主要健身不同時,我們使用主要健身作爲定位的價值。

例子:

Individual1健身:專業:-0.1 |輕微:3

Individual2 fitness:Major:0 |輕微:8

第一個是因爲身體素質較好。