導航:首頁 > 源碼編譯 > 為什麼遺傳演算法算的不準

為什麼遺傳演算法算的不準

發布時間:2022-07-06 02:54:00

A. 為什麼遺傳演算法優化後的的神經網路得到的模擬結果誤差比不優化的還大呢求高手解答。

有可能不優化的結果出現了過擬合現象

B. 遺傳演算法求最小值時為什麼每次結果都不一樣,而且差別很大。那這么找到最小值呢

這說明遺傳演算法本身不收斂,還存在較大的優化空間。
建議對種群初始化方法、交叉變異方法、種群更新運算元等做優化,增加最優保存策略,保證能收斂到最優解。

C. 遺傳演算法的不足之處

(1)編碼不規范及編碼存在表示的不準確性。
(2)單一的遺傳演算法編碼不能全面地將優化問題的約束表示出來。考慮約束的一個方法就是對不可行解採用閾值,這樣,計算的時間必然增加。
(3)遺傳演算法通常的效率比其他傳統的優化方法低。
(4)遺傳演算法容易過早收斂。
(5)遺傳演算法對演算法的精度、可行度、計算復雜性等方面,還沒有有效的定量分析方法。

D. 為什麼Matlab優化工具箱的遺傳演算法每次優化的結果都不一樣

為什麼Matlab優化工具箱的遺傳演算法每次優化的結果都不一樣?這是因為演算法的初值是隨機的,所以重復計算就會有差錯。為了保證計算結果,可以每次重啟matlab軟體後執行程序,這樣得到結果就基本一致了。

E. 遺傳演算法有那些缺點

1、早熟。這是最大的缺點,即演算法對新空間的探索能力是有限的,也容易收斂到局部最優解。
2、大量計算。涉及到大量個體的計算,當問題復雜時,計算時間是個問題。
3、處理規模小。目前對於維數較高的問題,還是很難處理和優化的。
4、難於處理非線性約束。對非線性約束的處理,大部分演算法都是添加懲罰因子,這是一筆不小的開支。
5、穩定性差。因為演算法屬於隨機類演算法,需要多次運算,結果的可靠性差,不能穩定的得到解。
大致這些,lz可查閱相關專業書籍!

F. 遺傳演算法是不是每次算出來的結果都不一樣

隨機類演算法的每次計算結果肯定都不一樣,對於非0-1優化問題,一般是運行若干次,取平均值作為優化的最終結果。

G. matlab遺傳演算法求最小值我的機器算出來為什麼和答案不一樣

智能演算法每次所得結果都不一樣,你可以搜搜看看。
因為演算法中有隨機性,因此解是不一樣的。

H. 遺傳演算法的優缺點

優點:

1、遺傳演算法是以決策變數的編碼作為運算對象,可以直接對集合、序列、矩陣、樹、圖等結構對象進行操作。這樣的方式一方面有助於模擬生物的基因、染色體和遺傳進化的過程,方便遺傳操作運算元的運用。

另一方面也使得遺傳演算法具有廣泛的應用領域,如函數優化、生產調度、自動控制、圖像處理、機器學習、數據挖掘等領域。

2、遺傳演算法直接以目標函數值作為搜索信息。它僅僅使用適應度函數值來度量個體的優良程度,不涉及目標函數值求導求微分的過程。因為在現實中很多目標函數是很難求導的,甚至是不存在導數的,所以這一點也使得遺傳演算法顯示出高度的優越性。

3、遺傳演算法具有群體搜索的特性。它的搜索過程是從一個具有多個個體的初始群體P(0)開始的,一方面可以有效地避免搜索一些不必搜索的點。

另一方面由於傳統的單點搜索方法在對多峰分布的搜索空間進行搜索時很容易陷入局部某個單峰的極值點,而遺傳演算法的群體搜索特性卻可以避免這樣的問題,因而可以體現出遺傳演算法的並行化和較好的全局搜索性。

4、遺傳演算法基於概率規則,而不是確定性規則。這使得搜索更為靈活,參數對其搜索效果的影響也盡可能的小。

5、遺傳演算法具有可擴展性,易於與其他技術混合使用。以上幾點便是遺傳演算法作為優化演算法所具備的優點。

缺點:

1、遺傳演算法在進行編碼時容易出現不規范不準確的問題。

2、由於單一的遺傳演算法編碼不能全面將優化問題的約束表示出來,因此需要考慮對不可行解採用閾值,進而增加了工作量和求解時間。

3、遺傳演算法效率通常低於其他傳統的優化方法。

4、遺傳演算法容易出現過早收斂的問題。

(8)為什麼遺傳演算法算的不準擴展閱讀

遺傳演算法的機理相對復雜,在Matlab中已經由封裝好的工具箱命令,通過調用就能夠十分方便的使用遺傳演算法。

函數ga:[x, fval,reason]= ga(@fitnessfun, nvars, options)x是最優解,fval是最優值,@fitnessness是目標函數,nvars是自變數個數,options是其他屬性設置。系統默認求最小值,所以在求最大值時應在寫函數文檔時加負號。

為了設置options,需要用到下面這個函數:options=gaoptimset('PropertyName1', 'PropertyValue1', 'PropertyName2', 'PropertyValue2','PropertyName3', 'PropertyValue3', ...)通過這個函數就能夠實現對部分遺傳演算法的參數的設置。

I. 加速遺傳演算法為什麼不穩定了我編了很多回還是不穩定,不知道是怎麼回事了

遺傳演算法本身就是一種隨機搜索演算法,其所得最優值在實際最優值附近波動
而且對於大部分問題,得到最優解的變數組合是可以有多個的
所以每次都會有不同的結果
只要每次運行所得的適應度函數值相差不大,就說明結果是對的,
否則不是運算元的操作方法不當就是遺傳演算法的程序實現過程有表達的錯誤。

J. 遺傳演算法出來的結果不穩定

有兩種可能:1.有多種組合等於X,因此組合有多種
2.你的遺傳演算法容易局部收斂

對於2解決辦法:增加判斷,當種群最優染色體一直不變持續N代,重新初始化一個種群,或者往種群中注入新的隨機染色體來跳出局部收斂區域。

對補充的回答:
遺傳演算法本身就是一種智能尋優的隨機演算法,搜索過程中存在隨機性,在具有多個最優解的情況下,很難每次都尋優到同一組參數組合,因為每次的搜索路徑是不同的。

如果樓主真是尋求最後結果一樣的效果的話,可以先得到一組最優組合數字集合S,按從小到大排列處理後變為S'(n1,n2...ni)

然後搜索過程中的某組數字集合Q的目標函數
既滿足:
相加的和最接近X,
還要滿足:
1.數字個數=i
2.臨時將Q從小達到排列,各個位置上的元素和S'的元素最接近

這樣可能會增加很多計算時間,但理論上是可以每次都得到S

閱讀全文

與為什麼遺傳演算法算的不準相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:579
python員工信息登記表 瀏覽:377
高中美術pdf 瀏覽:161
java實現排列 瀏覽:513
javavector的用法 瀏覽:982
osi實現加密的三層 瀏覽:233
大眾寶來原廠中控如何安裝app 瀏覽:916
linux內核根文件系統 瀏覽:243
3d的命令面板不見了 瀏覽:526
武漢理工大學伺服器ip地址 瀏覽:149
亞馬遜雲伺服器登錄 瀏覽:525
安卓手機如何進行文件處理 瀏覽:71
mysql執行系統命令 瀏覽:930
php支持curlhttps 瀏覽:143
新預演算法責任 瀏覽:444
伺服器如何處理5萬人同時在線 瀏覽:251
哈夫曼編碼數據壓縮 瀏覽:426
鎖定伺服器是什麼意思 瀏覽:385
場景檢測演算法 瀏覽:617
解壓手機軟體觸屏 瀏覽:350