使用遺傳演算法求最優解

2021-05-22 03:07:45 字數 634 閱讀 4827

在2023年全國大學生數學建模競賽,學習過matlab遺傳演算法工具箱求最優解,用得也比較熟練,時隔兩年忘得差不多了!現在想用ga工具箱來解決乙個優化問題,不得不重新查資料學習使用!

這是乙個根據已知資料擬合乙個函式,使用最小二乘法作為適應度函式,求最小值

適應度函式如下

function f=zpp(m)

a=[0 49 98 147 196 294 391 489 587 685];

y1=[6.39 9.48 12.46 14.33 17.10 21.94 22.64 21.43 22.07 24.53];

n=size(a,2);%1表示行數,2表是列數

f=0;

for i=1:n

y=m(1)*(a(i)+m(2))/(m(3)+a(i)+m(2));

f=f+((y1(i)-y).^2);

end這是呼叫遺傳演算法工具箱進行最優求解,當然這裡只是近似最優,也有可能得不到精確的最優解,所以當得不到最優解時可以多次迭代!

option=gaoptimset('populationsize',100,'generations',5000,'plotfcns',@gaplotbestf);%種群數100,迭代數5000

ga(@zpp,3,option)

遺傳演算法求函式最優解

前兩天寫了乙個遺傳演算法求最優解的程式,今天拿出來簡單整理一下。最優解問題 四個變數取何值,該函式取最大值時?取值範圍 5到5 顯然,當四個未知數都為零的時候,函式取最大值,但如何利用遺傳演算法來實現,才是要研究的問題。1.染色體結構定義define.h struct chromosome 基因 d...

python遺傳演算法 Python 遺傳演算法實現

關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...

mysql遺傳演算法 原 遺傳演算法求函式極大值

1.遺傳演算法 genetic algorithms,ga 基於自然選擇和自然遺傳機制的搜尋演算法,它是一種有效的解決最優化問題的方法,進化演算法的一種。最早由美國michigan大學的john holland和他的同事及學生提出的。類似於自然界演化的基本法則,適者生存 是遺傳演算法的核心機制 複製...