實驗五:遺傳算法求解函數(shù)最值問題實驗

實驗五:遺傳算法求解函數(shù)最值問題實驗

ID:38690792

大?。?70.50 KB

頁數(shù):19頁

時間:2019-06-17

實驗五:遺傳算法求解函數(shù)最值問題實驗_第1頁
實驗五:遺傳算法求解函數(shù)最值問題實驗_第2頁
實驗五:遺傳算法求解函數(shù)最值問題實驗_第3頁
實驗五:遺傳算法求解函數(shù)最值問題實驗_第4頁
實驗五:遺傳算法求解函數(shù)最值問題實驗_第5頁
資源描述:

《實驗五:遺傳算法求解函數(shù)最值問題實驗》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、.實驗五:遺傳算法求解函數(shù)最值問題實驗一、實驗?zāi)康氖褂眠z傳算法求解函數(shù)在及y的最大值。二、實驗內(nèi)容使用遺傳算法進行求解,篇末所附源代碼中帶有算法的詳細注釋。算法中涉及不同的參數(shù),參數(shù)的取值需要根據(jù)實際情況進行設(shè)定,下面運行時將給出不同參數(shù)的結(jié)果對比。定義整體算法的結(jié)束條件為,當(dāng)種群進化次數(shù)達到maxGeneration時停止,此時種群中的最優(yōu)解即作為算法的最終輸出。設(shè)種群規(guī)模為N,首先是隨機產(chǎn)生N個個體,實驗中定義了類型Chromosome表示一個個體,并且在默認構(gòu)造函數(shù)中即進行了隨機的操作。..然后程序進行若干次的迭代,在每次迭代過程中,進行選擇、交叉及變異三個操作

2、。1.選擇操作首先計算當(dāng)前每個個體的適應(yīng)度函數(shù)值,這里的適應(yīng)度函數(shù)即為所要求的優(yōu)化函數(shù),然后歸一化求得每個個體選中的概率,然后用輪盤賭的方法以允許重復(fù)的方式選擇選擇N個個體,即為選擇之后的群體。但實驗時發(fā)現(xiàn)結(jié)果不好,經(jīng)過仔細研究之后發(fā)現(xiàn),這里在x、y取某些值的時候,目標(biāo)函數(shù)計算出來的適應(yīng)值可能會出現(xiàn)負值..,這時如果按照把每個個體的適應(yīng)值除以適應(yīng)值的總和的進行歸一化的話會出現(xiàn)問題,因為個體可能出現(xiàn)負值,總和也可能出現(xiàn)負值,如果歸一化的時候除以了一個負值,選擇時就會選擇一些不良的個體,對實驗結(jié)果造成影響。對于這個問題,我把適應(yīng)度函數(shù)定為目標(biāo)函數(shù)的函數(shù)值加一個正數(shù),保證得

3、到的適應(yīng)值為正數(shù),然后再進行一般的歸一化和選擇的操作。實驗結(jié)果表明,之前的實驗結(jié)果很不穩(wěn)定,修正后的結(jié)果比較穩(wěn)定,趨于最大值。2.交叉操作首先是根據(jù)交叉概率probCross選擇要交叉的個體進行交叉。這里根據(jù)交叉參數(shù)crossnum進行多點交叉,首先隨機生成交叉點位置,允許交叉點重合,兩個重合的交叉點效果互相抵消,相當(dāng)于沒有交叉點,然后根據(jù)交叉點進行交叉操作,得到新的個體。..3.變異操作首先是根據(jù)變異概率probMutation選擇要變異的個體。變異時先隨機生成變異的位置,然后把改位的01值翻轉(zhuǎn)。經(jīng)過一定的進化之后得到最終種群,從中選擇最優(yōu)的個體即可得到最終的結(jié)果。

4、..4.運行結(jié)果借助matlab軟件,我們可以知道該函數(shù)在該定義域下的圖像為:以下設(shè)置不同的參數(shù)值進行對比試驗:表1不同參數(shù)的對比實驗NlencrossnummaxGenerationprobCrossprobMutate實驗一實驗二..11010410000.850.152.614332042.7469711725010450000.850.152.871765122.88383150320020450000.850.152.892027452.893073594200304100000.850.152.894406562.888525515200305100000

5、.80.22.888068212.8916507363004041000000.850.152.893637392.89445359以上我們主要對種群規(guī)模N,個體染色體長度len,迭代次數(shù)maxGeneration進行比較??梢钥闯?,隨著種群規(guī)模的增大,染色體長度的增長,迭代次數(shù)的增加,算法得到的結(jié)果越來越精確。當(dāng)參數(shù)規(guī)模達到一定程度時,再增加參數(shù)的值會明顯地增加程序運行時間,但卻不一定能明顯改善解的質(zhì)量,反而可能因為一些隨機因數(shù)而產(chǎn)生質(zhì)量更差的解,如第6組實驗一所示。同時也大概比較了一下多點交叉的交叉點個數(shù)crossnum,交叉概率probCross,變異概率pro

6、bMutate等參數(shù),由于參數(shù)太多,這里沒有一一進行控制變量的比較。大致估算..可知,交叉概率及交叉點的個數(shù)影響交叉操作產(chǎn)生新個體的質(zhì)量,過多的交叉及變化過大的交叉可能會產(chǎn)生不好的結(jié)果,而過多的變異也應(yīng)該會造成算法的不穩(wěn)定。下面給出以上幾個實驗結(jié)果的實驗截圖,其中到現(xiàn)在為止結(jié)果最好的一個為:其余若干個為:5.實驗代碼改進后的源代碼如下:#include#include#include#include#includeusingnamespacestd;..//程序欲分配內(nèi)存的數(shù)組大小

7、constintmxn=10000;//最大的種群規(guī)模constintmxlen=1000;//最大的染色體長度//遺傳算法關(guān)鍵參數(shù)constintN=200;//種群的個體數(shù)constintlen=30;//每個個體的染色體的長度,x和y各占一半constintcrossnum=4;//交叉操作時多點交叉的交叉點個數(shù)constintmaxGeneration=2000;//最大進化代數(shù)constdoubleprobCross=0.85;//交叉概率constdoubleprobMutation=0.15;//變異概率//個體的染色體類classCh

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。