導航:首頁 > 源碼編譯 > 遺傳演算法在資源分配的優缺點

遺傳演算法在資源分配的優缺點

發布時間:2023-02-10 15:24:19

『壹』 使用遺傳演算法求解支持向量有什麼優缺點

遺傳演算法是一種全局優化概率演算法,主要的優點有

  1. 遺傳演算法對所求解的優化問題沒有太多的數學要求,由於他的進化特性,搜素過程中不需要問題的內在性質,對於任意形式的目標函數和約束,無論是線性的還是非線性的,離散的還是連續的都可處理。

  2. 2.進化運算元的各態歷經性使得遺傳演算法能夠非常有效地進行概率意義的全局搜素。

  3. 3.遺傳演算法對於各種特殊問題可以提供極大的靈活性來混合構造領域獨立的啟發式,從而保證演算法的有效性。

『貳』 請問蟻群演算法和遺傳演算法的優缺點比較(不要一大段一大段的,簡潔概括即可)

遺傳演算法有比較強的全局搜索能力,特別是當交叉概率比較大時,能產生大量的新個體,提高了全局搜索范圍,遺傳演算法適合求解離散問題,具備數學理論支持,但是存在著漢明懸崖等問題。
蟻群演算法適合在圖上搜索路徑問題,計算開銷會大。

兩者都是隨機演算法,只不過遺傳演算法是仿生學的演算法;蟻群演算法是數學演算法,是應用目前最廣的演算法 。針對不同的研究方向,它所體現出來的優缺點是不一樣的,將這兩個演算法混合,優勢互補,提高優化性能,並且分別來求解離散空間的和連續空間的優化問題。

希望可以幫到您,望採納!

『叄』 遺傳演算法結合貪婪演算法的優缺點

演算法,優化。
1、演算法。遺傳演算法從問題解的串集開始搜索,而不是從單個解開始。這是遺傳演算法與傳統優化演算法的極大區別。貪婪演算法是一種不追求最優解。
2、優化。遺傳演算法傳統優化演算法是從單個初始值迭代求最優解的;容易誤入局部最優解。遺傳演算法從串集開始搜索,覆蓋面大,利於全局擇優。貪婪演算法只希望得到較為滿意解的方法。

『肆』 遺傳演算法的優缺點

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

『伍』 遺傳演算法的迭代次數是怎麼確定的,與什麼有關

1. 遺傳演算法簡介

遺傳演算法是用於解決最優化問題的一種搜索演算法,演算法的整體思路是建立在達爾文生物進化論「優勝劣汰」規律的基礎上。它將生物學中的基因編碼、染色體交叉、基因變異以及自然選擇等概念引入最優化問題的求解過程中,通過不斷的「種群進化」,最終得到問題的最優解。

2. 遺傳演算法實現步驟

在講下面幾個基於生物學提出的概念之前,首先我們需要理解為什麼需要在最優化問題的求解中引入生物學中的各種概念。

假設我們需要求一個函數的最大值,但這個函數異常復雜以至於無法套用一般化的公式,那麼就會想到:如果可以將所有可能的解代入方程,那麼函數最大值所對應的那個解就是問題的最優解。但是,對於較復雜的函數來說,其可能的解的個數的數量級是我們所無法想像的。因此,我們只好退而求其次,只代入部分解並在其中找到最優解。那麼這樣做的核心就在於如何設定演算法確定部分解並去逼近函數的最優解或者較好的局部最優解。

遺傳演算法就是為了解決上述問題而誕生的。假設函數值所對應的所有解是一個容量超級大的種群,而種群中的個體就是一個個解,接下去遺傳演算法的工作就是讓這個種群中的部分個體去不斷繁衍,在繁衍的過程中一方面會發生染色體交叉而產生新的個體。另一方面,基因變異也會有概率會發生並產生新的個體。接下去,只需要通過自然選擇的方式,淘汰質量差的個體,保留質量好的個體,並且讓這個繁衍的過程持續下去,那麼最後就有可能進化出最優或者較優的個體。這么看來原來最優化問題居然和遺傳變異是相通的,而且大自然早已掌握了這樣的機制,這著實令人興奮。為了將這種機制引入最優化問題並利用計算機求解,我們需要將上述提到的生物學概念轉化為計算機能夠理解的演算法機制。

下面介紹在計算機中這種遺傳變異的機制是如何實現的:

基因編碼與解碼:

在生物學中,交叉與變異能夠實現是得益於染色體上的基因,可以想像每個個體都是一串超級長的基因編碼,當兩個個體發生交叉時,兩條基因編碼就會發生交換,產生的新基因同時包含父親和母親的基因編碼。在交叉過程中或者完成後,某些基因點位又會因為各種因素發生突變,由此產生新的基因編碼。當然,發生交叉和變異之後的個體並不一定優於原個體,但這給了進化(產生更加優秀的個體)發生的可能。

因此,為了在計算機里實現交叉和變異,就需要對十進制的解進行編碼。對於計算機來說其最底層的語言是由二進制0、1構成的,而0、1就能夠被用來表示每個基因點位,大量的0、1就能夠表示一串基因編碼,因此我們可以用二進制對十進制數進行編碼,即將十進制的數映射到二進制上。但是我們並不關心如何將十進制轉換為二進制的數,因為計算機可以隨機生成大量的二進制串,我們只需要將辦法將二進制轉化為十進制就可以了。

二進制轉換為十進制實現方式:

假設,我們需要將二進制映射到以下范圍:

首先,將二進制串展開並通過計算式轉化為[0,1]范圍內的數字:

將[0,1]范圍內的數字映射到我們所需要的區間內:

交叉與變異:

在能夠用二進制串表示十進制數的基礎上,我們需要將交叉與變異引入演算法中。假設我們已經獲得兩條二進制串(基因編碼),一條作為父親,一條作為母親,那麼交叉指的就是用父方一半的二進制編碼與母方一半的二進制編碼組合成為一條新的二進制串(即新的基因)。變異則指的是在交叉完成產生子代的過程中,二進制串上某個數字發生了變異,由此產生新的二進制串。當然,交叉與變異並不是必然發生的,其需要滿足一定的概率條件。一般來說,交叉發生的概率較大,變異發生的概率較小。交叉是為了讓演算法朝著收斂的方向發展,而變異則是為了讓演算法有幾率跳出某種局部最優解。

自然選擇:

在成功將基因編碼和解碼以及交叉與變異引入演算法後,我們已經實現了讓演算法自動產生部分解並優化的機制。接下去,我們需要解決如何在演算法中實現自然選擇並將優秀的個體保留下來進而進化出更優秀的個體。

首先我們需要確定個體是否優秀,考慮先將其二進制串轉化為十進制數並代入最初定義的目標函數中,將函數值定義為適應度。在這里,假設我們要求的是最大值,則定義函數值越大,則其適應度越大。那是否在每一輪迭代過程中只需要按照適應度對個體進行排序並選出更加優秀的個體就可以了呢?事實上,自然選擇的過程中存在一個現象,並沒有說優秀的個體一定會被保留,而差勁的個體就一定被會被淘汰。自然選擇是一個概率事件,越適應環境則生存下去的概率越高,反之越低。為了遵循這樣的思想,我們可以根據之前定義的適應度的大小給定每個個體一定的生存概率,其適應度越高,則在篩選時被保留下來的概率也越高,反之越低。

那麼問題就來了,如何定義這種生存概率,一般來說,我們可以將個體適應度與全部個體適應度之和的比率作為生存概率。但我們在定義適應度時使用函數值進行定義的,但函數值是有可能為負的,但概率不能為負。因此,我們需要對函數值進行正數化處理,其處理方式如下:

定義適應度函數:

定義生存概率函數:

註:最後一項之所以加上0.0001是因為不能讓某個個體的生存概率變為0,這不符合自然選擇中包含的概率思想。

3. 遺傳算例

在這里以一個比較簡單的函數為例,可以直接判斷出函數的最小值為0,最優解為(0,0)

若利用遺傳演算法進行求解,設定交叉概率為0.8,變異概率為0.005,種群內個體數為2000,十進制數基因編碼長度為24,迭代次數為500次。

從遺傳演算法收斂的動態圖中可以發現,遺傳演算法現實生成了大量的解,並對這些解進行試錯,最終收斂到最大值,可以發現遺傳演算法的結果大致上與最優解無異,結果圖如下:

4. 遺傳演算法優缺點

優點:

1、 通過變異機制避免演算法陷入局部最優,搜索能力強

2、 引入自然選擇中的概率思想,個體的選擇具有隨機性

3、 可拓展性強,易於與其他演算法進行結合使用

缺點:

1、 遺傳演算法編程較為復雜,涉及到基因編碼與解碼

2、 演算法內包含的交叉率、變異率等參數的設定需要依靠經驗確定

3、 對於初始種群的優劣依賴性較強

『陸』 遺傳演算法、數值演算法、爬山演算法、模擬退火 各自的優缺點

遺傳演算法:優點是能很好的處理約束,能很好的跳出局部最優,最終得到全局最優解,全局搜索能力強;缺點是收斂較慢,局部搜索能力較弱,運行時間長,且容易受參數的影響。
模擬退火:優點是局部搜索能力強,運行時間較短;缺點是全局搜索能力差,容易受參數的影響。
爬山演算法:顯然爬山演算法較簡單,效率高,但是處理多約束大規模問題時力不從心,往往不能得到較好的解。
數值演算法:這個數值演算法的含義太廣,你說的是哪一種數值演算法?多數數組演算法與爬山演算法的有優缺點類似。

PS:望採納!

『柒』 遺傳演算法、粒子群演算法、蟻群演算法,各自優缺點和如何混合請詳細點 謝謝

遺傳演算法適合求解離散問題,具備數學理論支持,但是存在著漢明懸崖等問題。
粒子群演算法適合求解實數問題,演算法簡單,計算方便,求解速度快,但是存在著陷入局部最優等問題。
蟻群演算法適合在圖上搜索路徑問題,計算開銷會大。
要將三種演算法進行混合,就要針對特定問題,然後融合其中的優勢,比如將遺傳演算法中的變異運算元加入粒子群中就可以形成基於變異的粒子群演算法。

『捌』 遺傳演算法、數值演算法、爬山演算法、模擬退火 各自的優缺點

遺傳演算法:其優點是能很好地處理約束,跳出局部最優,最終得到全局最優解。缺點是收斂速度慢,局部搜索能力弱,運行時間長,容易受到參數的影響。

模擬退火:具有局部搜索能力強、運行時間短的優點。缺點是全局搜索能力差,容易受到參數的影響。

爬山演算法:顯然爬山演算法簡單、效率高,但在處理多約束大規模問題時,往往不能得到較好的解決方案。

數值演算法:這個數值演算法的含義太寬泛了,指的是哪種數值演算法,陣列演算法與爬山演算法一樣,各有優缺點。

(8)遺傳演算法在資源分配的優缺點擴展閱讀:

注意事項:

遺傳演算法的機制比較復雜,在Matlab中已經用工具箱中的命令進行了打包,通過調用可以非常方便的使用遺傳演算法。

函數GA:[x,Fval,reason]=GA(@fitnessfun,Nvars,options)x為最優解,Fval為最優值,@Fitnessness為目標函數,Nvars為自變數個數,options為其他屬性設置。系統的默認值是最小值,所以函數文檔中應該加上一個減號。

要設置選項,您需要以下函數:options=GaOptimset('PropertyName1','PropertyValue1','PropertyName2','PropertyName3','PropertyValue3'…)通過該函數,可以確定一些遺傳演算法的參數。

『玖』 遺傳演算法、粒子群演算法、蟻群演算法,各自優缺點和如何混合

遺傳演算法適合求解離散問題,具備數學理論支持,但是存在著漢明懸崖等問題.粒子群演算法適合求解實數問題,演算法簡單,計算方便,求解速度快,但是存在著陷入局部最優等問題.蟻群演算法適合在圖上搜索路徑問題,計算開銷會大.要將...

『拾』 遺傳演算法、粒子群、模擬退火相比於普通的蒙特卡洛演算法有什麼優勢他們相互的優缺點都是什麼

他們有類似之處,但差別也不小。
蒙特卡洛演算法是數值計算方法,原理是利用隨機數來解決計算問題。與它對應的是確定性演算法。也就是說該種演算法屬於隨機演算法,得到的解是近似解。
而遺傳演算法、粒子群、模擬退火雖然也是隨機近似演算法,但這三種都是仿生智能演算法,且比蒙特卡洛演算法要復雜,應用的領域也不太相同。
顯然,蒙特卡洛演算法很輕巧,求解問題更快速。

閱讀全文

與遺傳演算法在資源分配的優缺點相關的資料

熱點內容
柱加密區構造要求 瀏覽:514
地板木龍骨標准跟加密區別 瀏覽:150
解壓放鬆的好地方河南 瀏覽:965
搜狗怎麼移動到文件夾 瀏覽:617
文件自動選擇到文件夾 瀏覽:794
贈送的app怎麼在ipad下載 瀏覽:508
頸椎解壓後神經恢復 瀏覽:849
怎麼看app訂閱扣費 瀏覽:314
linux系統的負載均衡 瀏覽:419
遇到挫折解壓視頻 瀏覽:778
什麼指令看伺服器運行負載 瀏覽:84
因碩智能門鎖卡片是加密的么 瀏覽:336
為什麼會伺服器不可用 瀏覽:290
wow宏命令設置 瀏覽:264
解壓神器一張紙折疊魔術球 瀏覽:23
怎麼樣可以取消加密軟體oppo 瀏覽:580
屏幕共享源碼哪家比較不錯 瀏覽:665
vb中雙擊命令按鈕 瀏覽:208
伺服器做了磁碟陣列怎麼重裝 瀏覽:606
邏輯加密ic卡能用嗎 瀏覽:884