我正在研究遺傳算法項目。我需要使用基本遺傳算法來查找Rastrigin函數或Easom函數(對於y = 0)的最大值/最小值。使用遺傳算法尋找函數的最小值
回答
好的,我們來看看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
第一個是因爲身體素質較好。
- 1. Matlab優化 - 使用遺傳算法最小化目標函數
- 2. 遺傳算法找到2個變量的函數的最小值
- 3. 從函數中尋找最小值的啓發式算法
- 4. 遺傳算法:最小生成數?
- 5. 用遞歸函數尋找最小值
- 6. 在Matlab中使用遺傳算法找到「y = x * x」的最小值
- 7. 使用Kruskal算法尋找圖的最小切割值
- 8. 遺傳/進化算法和局部最小/最大值
- 9. 選擇算子和最小化遺傳算法中的適應度函數
- 10. 遺傳算法的目標函數
- 11. 使用函數從數組中尋找最小值和最大值
- 12. 要使用遺傳算法
- 13. 尋找最短距離覆蓋最小單元數的算法
- 14. 使用遞歸尋找最小值
- 15. 尋找最小素因子的函數
- 16. 遺傳算法近似函數
- 17. 特定遺傳算法成本函數
- 18. 使用Kruskal算法尋找圖中的最小切點?
- 19. 遺傳算法的數獨
- 20. 遺傳算法
- 21. 尋找最短路徑數的算法
- 22. 使用貪婪算法尋找最小獨立支配集
- 23. 的遺傳算法
- 24. 在大熊貓中應用複雜的遺傳算法選擇最小值
- 25. 遞歸算法來尋找數組中的最小元素
- 26. 在數組中尋找最小值,fortran
- 27. 使用單純形和遺傳算法最小化非常嘈雜的6參數函數-python language
- 28. 使用遞歸尋找數組的最小值?
- 29. 使用MIPS尋找數組中的最小值
- 30. 遺傳算法。如何找到人口的最佳規模
通常的程序是獲取並連接幾個相關的matlab庫,而不太關心理論或實現。你的問題到底在哪裏,你是否有一些「簡單」功能的示例代碼? – LutzL
@Lutzl不,我不知道。其實我正在用JAVA/C++編寫代碼,我不明白如何使用GA來優化函數。我使用GA編寫了人口演化代碼,但從未使用GA進行函數優化。 – Aman
你有一些人口,你計算每個人在個體的功能價值和最小值的個體獲得更高的人口適應性。 – viceriel