《智能優化算法解析》 課件 第2章-基于進化規律的智能優化算法_第1頁
《智能優化算法解析》 課件 第2章-基于進化規律的智能優化算法_第2頁
《智能優化算法解析》 課件 第2章-基于進化規律的智能優化算法_第3頁
《智能優化算法解析》 課件 第2章-基于進化規律的智能優化算法_第4頁
《智能優化算法解析》 課件 第2章-基于進化規律的智能優化算法_第5頁
已閱讀5頁,還剩77頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于進化規律的智能優化算法1遺傳算法2差分進化算法3生物地理學優化算法主要內容CONTENTS1.遺傳算法4遺傳算法的提出1.1

算法背景遺傳算法(GeneticAlgorithm)是一種源于生物遺傳與進化的智能優化算法,其求解思想受到了達爾文的自然進化論與孟德爾的遺傳學等學科的啟發。自然界中生物的生存繁殖體現了生物對自然環境的適應能力。人們通過模擬生物的進化機理與繁殖行為,提出了許多智能優化算法。自然選擇中優勝劣汰的進化規則,是一種隨機的全局優化和搜索方法。5算法的發展過程1.1

算法背景遺傳算法最早起源于1965年美國密歇根大學教授Holland提出用計算機模擬遺傳操作來進行問題求解的思想。1967年,Holland的學生Bagley在博士論文中首次提出了“遺傳算法”的概念。隨后,Holland提出了著名的模式定理(SchemaTheorem),從理論上證明了遺傳算法用于尋求最優解的可行性。1975年,Holland出版了第一本關于遺傳算法的專著《自然系統與人工系統的自適應性》,并在20世紀80年代實現了遺傳算法在機器學習一些問題上的應用。遺傳算法之父JohnHolland61.1

算法背景1989年,Goldberg出版了《搜索、優化、機器學習中的遺傳算法》,系統地論述了遺傳算法的原理與應用,奠定了現代遺傳算法的基礎。1991年,Davis出版了《遺傳算法手冊》,從應用層面普及了遺傳算法,從此以后,遺傳算法開始廣泛用于各種優化問題的求解。1965Holland提出遺傳算法思想Bagley提出遺傳算法概念Holland實現了遺傳算法在機器學習一些問題上的應用Goldberg奠定了現代遺傳算法的基礎Davis出版了《遺傳算法手冊》至今19671975197519911989Holland提出模式定理《遺傳算法手冊》遺傳算法發展編年圖《搜索、優化、機器學習中的遺傳算法》71.1

算法背景算法的發展前沿近些年,遺傳算法的研究主要集中在衍生算法的設計、遺傳算法與其他優化算法的融合、遺傳算法的應用等方面。衍生算法近年來,許多新興領域都融合了遺傳算法的應用。算法應用算法融合盡管遺傳算法是一種全局搜索算法,但受求解問題和資源限制,有時會陷入局部最優。因此,許多學者嘗試引入其他機制來提升其求解能力。考慮到遺傳算法的局部搜索能力不足,人們在遺傳算法中融入其他局部尋優能力更強的算法,形成混合遺傳算法,以提高其運行效率與求解質量。近年來,許多新興領域都融合了遺傳算法的應用。如在計算機視覺、交通預測領域等,對傳統遺傳算法的一些缺陷做了針對不同運用領域的改進。81.1

算法背景模擬退火算法(SimulatedAnnealing)是一種受金屬退火過程啟發的搜索算法。遺傳算法與模擬退火算法融合形成了遺傳退火算法,在遺傳算法的一般流程中,首先通過交叉、變異等遺傳操作獲得新的個體,再單獨對每個生成的個體執行模擬退火操作,將其結果送入下一代種群中。通過上述過程的不斷迭代,最終得到最優個體。算法的發展前沿91.2

算法概述遺傳算法概述遺傳算法借助生物遺傳與進化的思想求解問題的最優解。問題的可行解稱為個體,它是遺傳算法的基本處理對象,也對應于遺傳學中的一條染色體。一般來說,個體采用特定的編碼形式進行表示,編碼中的單個元素稱為基因,對應于基本的遺傳物質單位。問題的一組解稱為種群。適應度(Fitness)是衡量可行解優劣的標準,對應于個體適應環境的能力。遺傳算法的求解目標是找到適應度最高的個體,該個體對應于問題的最優解。每個個體(染色體)包含6個基因,種群由4個個體組成101.2

算法概述遺傳算法常用于求解函數的最優化問題,令f(x)表示目標函數,決策變量x

=[x1,x2

,…,xL]T代表染色體,決策變量的所有取值構成了問題的解空間。找到最接近的問題最優解如何具體實現這種“進化”每一次進化中,按照優勝劣汰的規則將適應度較高的個體傳遞到下一代,新的種群中包含更優良的個體令第t代的種群為集合經過一次進化,種群被更新為集合111.2算法概述遺傳算法從到的轉換是通過多種遺傳算子實現的,下面介紹三種基本的遺傳算子,它們對應于生物進化中染色體的交叉、變異等過程,這些算子是實現遺傳算法的核心。交叉:將

中的染色體隨機成對,每對染色體以交叉概率

交換部分染色體,產生兩個新的染色體;選擇:根據個體的適應度值,從

中選擇出一些優良的個體遺傳到

中;變異:中的每一個染色體都會以變異概率

將其中若干基因位上的值變為其等位基因值,以形成新的染色體。121.2.1

算法設計流程遺傳算法的設計流程綜合上述遺傳算法的概念與算子,可以將遺傳算法的一般流程總結如下。結束種群初始化開始終止?選擇生成新一代種群交叉變異適應度評估是否131.2.2

算法參數算法的常用參數種群規模N近年來,許多新興領域都融合了遺傳算法的應用。該參數影響算法的搜索能力與運行效率。若N的設置較大,一次進化所覆蓋的可行解較多,可以保證種群的多樣性,從而提高算法的搜索能力。但是,由于種群的個數較多,算法計算量也會相應的增加,這將降低算法的運行效率。若N設置較小,雖然能夠降低算法的計算量,但是同時也降低了遺傳過程中種群包含更多優良染色體的能力。一般地,N的建議設置為20至100。該參數影響算法的計算量以及后續交叉、變異算子的效果。L的設置跟優化問題相關,一般由解的形式和所選擇的編碼方法決定。對于二進制編碼方法,染色體的長度由解的取值范圍和所需精度確定。對于浮點數編碼方法,染色體的長度與解的維數相同。決定了進化中交叉染色體的平均數目。過大會破壞染色體中基因的有效模式,而

過小則會導致新個體的迭代速度變慢。一般的建議取值為0.4至0.99.

能夠增加種群進化的多樣性,決定了進化中種群變異基因的平均個數。由于變異對已找到的較優解具有一定的破壞作用,

值一般不宜過大,較大的

可能會導致算法從較好的搜索狀態倒退回原來較差的搜索狀態。的取值一般為0.001至0.1.染色體的長度L交叉概率與變異概率141.3

編碼方法算法常用編碼方式利用遺傳算法求解問題時并不直接對變量進行操作,而是先對問題的解進行編碼,隨后再對編碼進行選擇、交叉、變異等操作。編碼是遺傳算法的關鍵步驟,直接影響遺傳算法的有效性與效率。隨著遺傳算法的發展,人們提出了許多編碼方案。常用的編碼方式包括以下三種:二進制編碼、浮點數編碼、符號編碼。實際的編碼通常需要滿足兩條編碼原則:即有意義積木塊編碼原則與最小字符集編碼原則。前者要求編碼能夠更易生成適應度高的個體,即與所求問題相關、低階、短定義長度模式的編碼方案。后者要求在問題得到精準表述的前提下,編碼字符集盡可能最小。151.3.1

二進制編碼二進制編碼是最常用的編碼方式,編碼的符號集由二進制符號0與1組成。編碼是二值符號構成的符號串,符號串的長度L可以確定解空間的大小,它由問題的求解精度決定。編碼過程就是將問題的解(如實數)轉換為二進制串。例如,待求決策變量的取值范圍為,采用長度為L的二進制編碼就可以產生

個可能的編碼,每一個編碼與取值范圍內的特定精度值存在對應關系,具體關系如下:二進制編碼的精度為:二進制編碼的優點在于其符合最小字符集原則,交叉、變異等遺傳操作易于實現。其缺點是對連續函數做離散化操作時容易產生誤差。161.3.2

浮點數編碼浮點數編碼允許個體的基因值以實數的形式存在。在浮點數編碼中,每個染色體由一串浮點數組成,這些浮點數與問題的決策變量直接對應。二進制編碼中,編碼精度受到編碼長度的影響,二進制符號串的長度越長,精度越高,其搜索空間也越大,這將給遺傳算法的運行帶來極大的影響。與二進制編碼相比,浮點數編碼的優勢在于其能更直接地表示實數解,避免了二進制編碼在轉換過程中可能出現的精度損失。因此,浮點數編碼在處理連續變量的優化問題時更為精確和有效。注意:浮點數編碼需要保證交叉與變異等遺傳操作前后的基因值均落在設定的區間范圍內,否則,就會得到不可行解。浮點數編碼比較適合精度要求高、搜索空間大的優化任務。此外,由于編碼反映了決策變量的真實值,能夠利用浮點數編碼蘊含問題有關的一些信息與知識。C3C2C1C4171.3.3

符號編碼符號編碼不具有數值含義,編碼的基因取值來自具有代碼含義的符號集。常見的符號集有字母集:{A,

B,C,D,E},代碼集:{A1,A2,A3,A4,A5},序號集:{1,2,3,4,5}。符號編碼符合有意義積木塊編碼原則,容易在其中融入待求問題特有的知識。但是在設計交叉、變異算子時需要考慮問題的約束要求,以防影響遺傳算法的搜索性能。C5該旅行路線可以表示為x:C5,C2,C3,C1,C4181.4

適應度函數適應度函數遺傳算法采用適應度來度量種群中個體的優良程度,適應度高的個體存活到下一代的概率大,適應度低的個體存活到下一代的概率較小。在遺傳算法中,度量適應度的函數稱為適應度函數。然而,由于最優化問題的性質不同(最大化與最小化問題),其對應的轉換方法也存在差異。以直接轉換法為例,將解空間中某一點的目標函數值表示為,個體的適應度函數值表示為最小化:最大化:191.4適應度函數還可以采用界限構造法實現目標函數值到適應度函數值的轉換,這類方法利用的上下界估計值來確定適應度函數值。最大化問題表示最小化問題最大化問題表示的最小估計值表示的最大估計值適應度函數201.4

適應度函數適應度決定了個體存活到下一代的概率,一般來說,采用直接轉換法與界限構造法計算適應度時,算法的收斂速度難以得到有效的控制。在進化的初期階段,少數適應度較高的個體可能會控制選擇過程,降低種群的多樣性,進而產生早熟或提前收斂的現象;而在進化的末期階段,大部分個體的適應度差異太小,競爭性不足,同樣會影響算法的運行效率。因此,遺傳算法通常會對適應度進行適當的縮放,以滿足遺傳算法在不同階段對適應度函數的需求,這種縮放的過程被稱為適應度的尺度變換。常見的尺度變換包括線性變換法、冪次變換法、指數變換法等。具體地,適應度函數的線性變換法可以表示為:式中,與代表尺度變換的系數,

與分別為原適應度與變換后的新適應度適應度函數的尺度變換211.4

適應度函數系數與的確定需滿足以下兩個條件保證一部分接近于種群平均適應度的個體會存活到下一代變換后的最大適應度為原種群平均適應度的倍數冪函數變換法通常采用如下形式:最大化問題另外兩種適應度函數的尺度變換簡介如下:冪函數變換法通常采用如下形式:冪次m需要根據問題靈活設定,且需要隨著算法的進行不斷調整。指數變換法一般表示為:實系數γ越小,選擇該個體的可能性越大。適應度函數的尺度變換22在遺傳算法中,選擇算子就是確定種群中哪些個體能夠存活到下一代的操作。選擇算子的客觀依據是適應度評價,它需要確保適應度高的個體更有可能保留到下一代,從而避免重要基因的損失,并保證遺傳算法的收斂性和效率。常見的選擇算子包括:適應度比例方法、最佳個體保存方法、排擠方法、確定性采樣、期望值方法、無回放余數隨機采樣、隨機競標賽方法、排序選擇等。下面介紹3種常見的選擇算子。1.5

選擇算子選擇算子231.5.1

適應度比例的方法適應度比例方法(FitnessProportionalMethod)是最常用的選擇方法。基本思想:個體的選擇概率和其適應度值成正比關系,即個體的適應度越高,被選中的機會越大。具體地,對于包含N個個體的種群,第i個體的比例選擇策略可以表示為:表示個體i被選中的概率,表示個體i的適應度,為種群中所有個體的適應度之和。優點:簡單直觀,它能夠確保比較優秀的個體存活的機會更高缺點:易導致種群快速失去多樣性,增加了早熟收斂(過早陷入局部最優解)的風險24輪盤賭選擇(RouletteWheelSelection)是比例選擇的一個隨機變種,它在保持種群多樣性的同時,能夠給予適應度高的個體更多被選擇的機會。其基本流程如下:1.5.1

適應度比例的方法1)計算種群中個體適應度值的總和;2)計算個體適應度占總適應度的比例,獲得單個個體的選擇概率;3)每個個體根據其選擇概率獲得其在輪盤上的扇面角份額;4)模擬輪盤操作,通過指針指向的扇面來確定哪個個體被選中。上例操作過程如下:輪盤賭選擇方法首先設定一個帶指針的選擇點,每次輪盤轉動停止后指針所指的個體即為這次被選中的個體。基礎的輪盤賭選擇每次只能選擇一個個體,而后來衍生的隨機遍歷選擇法則通過設置等距的n個選擇指針一次同時選擇n個個體。改進的適應度比例方法25遺傳算法選擇個體后還需要通過交叉、變異等操作,有可能破壞優良個體中的基因。因此,人們希望在選擇過程中盡可能地避免優良個體的損失。最佳個體保存方法可以有效解決這一問題。基本思想:將種群中適應度最高的個體保留,不讓其參與交叉、變異等操作,直接將其復制到下一代中,并替換適應度最低的個體。1.5.2

最佳個體保存方法最優個體保存方法的優點是能夠保留優化歷史中的最優個體,使其不受交叉、變異等操作的影響。其缺點是會使得某些局部最優個體不易被淘汰,陷入局部最優而影響算法的全局搜索能力。計算當前種群中每個個體的適應度,選擇適應度值最高與最低的個體若當前種群中最高適應度個體的適應度大于所有歷史時刻種群中最佳個體的適應度,用當前種群最高適應度的個體替代歷史最佳個體用歷史最佳個體替換當前種群中適應度最低的個體26上述排序方法中,選擇操作依賴于個體具體的適應度值,因而在實際進行個體選擇操作時,需要對個體的適應度值進行一定的預處理,例如,保證每個個體的適應度取值為非負。排序選擇(Rank-basedSelection)不依賴于適應度的具體數值,僅關注適應度值的排序關系。其基本思想是對種群中的個體按照適應度值進行排序,并按照該排序來確定個體被選中的概率。1.5.3

排序選擇注意:概率值的計算是排序選擇的關鍵。將種群中所有的個體按照適應度大小進行排序設計適合求解問題的概率分配表,依次為每一個個體分配一個概率值利用這些概率值,設計比例選擇方法,選擇用于生成下一代種群的個體271.5.3

排序選擇Baker提出了一種線性排序算法,通過如下公式計算個體i的選擇概率:隨機聯賽選擇(Stochastic

TournamentSelection)也是一種基于排序的選擇方法,基本思想:首先,確定聯賽規模NS,并從種群中隨機選擇NS個個體;隨后,對NS個個體進行適應度大小排序,將適應度高的個體遺傳到下一代。基于排序方法的優點是無需對適應度值進行處理。然而,該類方法在選擇時仍依賴于選擇概率,概率分配過程決定選擇概率的求取,因此,排序選擇容易產生較大的誤差。

是最差個體的選擇概率,

為最優個體的選擇概率由于選擇概率僅僅與排序關系有關,即使兩個個體的適應度值相同,其順序不同也會導致選擇概率不同。28交叉算子是產生新個體的主要手段。交叉運算是指將一對染色體以特定的方式交換部分基因,形成兩個新個體的過程。交叉操作是在個體的染色體編碼上進行的,具體設計與待求問題相關:一方面要求交叉操作不能破壞編碼中的優良模式,另一方面要求產生的新個體具有較好的遺傳性質。1.6

交叉算子交叉算子291.6.1二值交叉二進制編碼的交叉操作主要包含單點交叉、兩點交叉、多點交叉等。單點交叉(One-pointCrossover):單點交叉是最基本的交叉算子。過程如下:首先,將種群中的個體進行配對;隨后,對于任意一對個體,設置某基因座后的位置為交叉點;最后,按照交叉概率pc在交叉點后交換兩個個體的染色體片段,產生新的個體。下表給出了單點交叉的示例,交叉點在染色體的第k?1個基因和第k個基因之間。交叉點父代染色體1:x1…xk?1xkxk+1xk+2…xL父代染色體2:y1…yk?1ykyk+1yk+2…yL交叉操作(↓)子代染色體1:x1…xk?1ykyk+1yk+2…yL子代染色體2:y1…yk?1xkxk+1xk+2…xL301.6.1二值交叉兩點交叉(Two-pointCrossover):兩點交叉在設置交叉點時選擇兩個交叉點位置,將交叉點之間覆蓋的染色體片段進行互換,產生兩個新個體。兩點交叉的過程如下,交叉點1與交叉點2分別選在第k個基因之后與第k+2個基因之前,這個范圍內的基因進行交換,產生新的個體。

交叉點1交叉點2

父代染色體1:x1x2…xkxkxk+1xk+2…xL父代染色體2:y1y2…yk-1ykyk+1yk+2…yL交叉操作↓子代染色體1:x1x2…xkykyk+1xk+2…xL子代染色體2:y1y2…yk-1xkxk+1yk+2…yL311.6.1二值交叉多點交叉(Multi-pointCrossover)操作與兩點交叉類似,先設定多個交叉點,然后再執行交叉操作。均勻交叉(Uniform

Crossover)是多點交叉的一個特例,它將兩個個體中每個基因座上的基因都按同一方式進行交換。實際執行時會通過一個與染色體長度相等的掩碼向量來實現,該掩碼向量的每一個元素均為隨機采樣產生的0

1二進制值。其中,掩碼向量取值為0時,兩個個體對應基因座上的基因維持不變;掩碼向量取值為1時,兩個個體對應基因座上的基因進行交換。一般來說,多點交叉中交叉點的增加會破壞基因的一些固有模式,不利于生成優良個體,因此,實際操作時交叉點不宜過多。321.6.2浮點數交叉對于浮點數編碼,遺傳算法采用算數交叉的方式獲得新的個體。一般地,算數交叉采用父代個體的線性組合生成子代個體。給定第t代種群中的一對個體與,其子代與的計算方式如下:

為超參數,可以取常數或者可調節的變量33變異算子通過模擬生物進化的變異現象產生新的個體。在遺傳算法中,變異算子是指將染色體中一些基因座上的基因用其等位基因進行替換,從而產生新個體的運算操作。對于二值編碼,變異操作或者將原先為1的基因值替換為0,或者將原先為0的基因值替換為1。變異操作具有兩個重要的目的:其一,變異能夠促使遺傳算法進一步搜索交叉算子無法觸及的區域,實現增強遺傳算法的局部搜索能力的目的;其二,變異能夠通過改變基因值增加個體的多樣性,防止早熟現象。1.7

變異算子變異算子341.7變異算子(1)基本變異算子基本變異(Simple

Mutation)是指按變異概率對基因進行隨機變化。其基本過程如下:首先,對于染色體中的每一個基因,依據變異概率pm判斷該基因是否會進行變異;隨后,將變異點上的基因值替換為其等位基因,產生一個新的個體。(2)逆轉變異算子逆轉變異是指從個體的染色體中隨機選擇多個基因變異點,通過交換這些點上的基因來生成新個體的過程。1

1010

1

011

10111

01變異點1

1010

1

011

10111

00變異點變異點交換351.7變異算子(3)均勻變異算子均勻變異(Uniform

Mutation)是指以很小的概率將各個基因座上的基因值用某范圍內均勻分布的隨機數替代。其過程如下:首先,將染色體中所有基因座上的基因依次指定為變異目標;隨后,對于每一個變異點,以變異概率

將基因座上的基因值替換為隨機數。令第i個基因座上的基因為變異點,則該點的新基因值為:

為[0,1]之間均勻分布的隨機數。2.差分進化算法

372.1算法原理個體編碼在差分進化算法中,種群可以表示為:表示種群中個體的數目,第

個個體表示為向量為維度,

為實數。

382.1算法原理差分操作基本思想:首先,對當前種群中的個體進行變異和交叉操作,產生新一代個體;然后,基于貪婪策略,利用當前個體和新一代個體構建新一代種群,選擇過程采用一對一的生存準則。差分進化算法使用向量描述個體與個體之間的差異設計算子。三個關鍵的差分算子分別是:變異算子、交叉算子和選擇算子。392.2差分操作變異算子基本思想:通過組合當前種群中的若干個體來生成一個變異向量(MutationVector),利用種群中個體之間的差異來引導搜索過程。基本過程:DE//其中,

代表選擇方法,表示選擇的隨機差分向量個數。隨機選擇基向量隨機選擇兩個差向量計算差分向量生成變異向量從當前種群中隨機選擇的個體稱為基向量通過兩個差向量計算差分向量,即將差分向量乘以一個用于縮放的變異因子

,然后加到基向量上,生成變異向量:再從種群中隨機選擇另外兩個不同的個體,分別表示為差向量和2.2差分操作變異算子下圖展示了2維空間中的一個變異操作,基向量為,兩個差向量生成的差分向量為

,變異向量由基向量與差分向量生成。圖例:差分進化算法的變異算子402.2差分操作變異算子變體差分變異算子的設計十分靈活,對于目標個體,由于差向量的個數和基向量的選取方式不同,變異個體的生成方式存在多種變體。常見的變體包含以下幾種:DE/best/1:基向量選取當前種群中適應度最好的個體:DE/rand/2:隨機選擇2對個體來生成變異向量:DE/current-to-best/1:結合當前個體與種群中最優個體的信息:412.2差分操作交叉算子差分進化算法中的交叉算子是指將變異向量與當前的目標向量結合,形成試驗向量的過程,試驗向量將作為新的候選解。該交叉過程不僅保留了原有個體的信息,還包含了變異個體的信息。具體地,目標個體采用目標向量表示,差分變異生成的包含個體差異的變異向量為,交叉操作生成的試驗個體(候選解)表示為試驗向量。通常,差分變異的交叉操作包含二項式交叉(BinomialCrossover)和指數交叉(ExponentialCrossover)兩種方式。422.2差分操作二項式交叉二項式交叉采用如下公式生成試驗向量中第

維的值式中,

為針對第

維生成的隨機數,范圍為[0,1];rand[1,L]為[1,L]之間的隨機自然數,為交叉概率,取值范圍為[0,1]。二項式交叉通過比較隨機數與交叉概率的大小來生成試驗向量,當隨機數小于交叉概率時,試驗向量當前維度的值由變異向量提供,反之則由目標向量提供。另一條件rand[1,L]則是為了確保至少能夠從獲得一個參數,防止所有維度均來自目標向量,導致進化失敗。432.2差分操作指數交叉指數交叉更新試驗向量中第

維的策略如下:代表以向量維度L為模的取模操作,

為隨機產生的維度索引,代表交叉操作的起始位置。

為交叉的長度,由交叉概率與[0,1]之間的隨機數共同產生,產生過程如下:初始時令,如果rand[0,1]<且,則,否則,輸出

。在指數交叉過程中,從起始點

到之間的數值由變異向量提供,其他維度由目標向量提供。指數交叉操作的特點是從隨機起始點連續地引入變異向量的特征,保持了變異向量的局部連續性。442.2差分操作交叉算子示例在圖(1)所示的二項式交叉中,交叉位置是離散的。試驗向量

中每個位置的值由交叉概率來決定是源自目標向量

還是變異向量;在圖(2)所示的指數交叉中,交叉位置是連續的。在試驗向量

中,一段長度為

的向量均來自變異向量,其余位置來自目標向量

,其中,長度

由交叉概率來確定。二項式與指數交叉示例452.2差分操作選擇算子差分進化算法的選擇操作采用“貪婪選擇”策略,通過比較當前個體(目標向量)和其對應試驗個體(試驗向量)的適應度值,選擇適應度更優的個體進入下一代。其基本步驟如下:1)計算適應度:計算目標向量和試驗向量的適應度值。2)比較適應度:比較目標向量和試驗向量的適應度。3)一對一選擇優勝者:將適應度較優的個體保留到下一代。對于目標向量和試驗向量,產生下一代個體的方法如下:式中,

表示適應度函數,上式針對的是最大化問題,若目標是最小化問題,則選擇試驗個體作為下一代個體的條件為:462.3算法流程算法流程差分進化算法的主要步驟如下:步驟1:確定需要優化的目標函數。步驟2:確定參數。設置算法的關鍵參數,包括種群規模、變異縮放因子、交叉概率、最大迭代次數。步驟3:種群初始化。隨機生成個個體,每個個體都是一個

維向量。步驟4:變異。結合種群內多個個體來生成變異向量。步驟5:交叉。采用二項式或指數交叉生成試驗向量。步驟6:選擇。采用一對一生存準則,通過適應度值選擇下一代個體。步驟7:終止條件。達到最大迭代次數或目標函數值達到預定閾值,算法結束。472.3算法流程算法流程差分進化算法的設計流程如下圖所示:差分進化算法流程482.3算法流程關鍵參數的設計種群規模:種群規模必須滿足,以確保算法能夠選用足夠的個體產生變異個體,一般

的選擇在之間,

為空間的維度。變異縮放因子

:是一個常實數,決定偏差向量的放大比例。一般,

越大,算法更容易逃出局部極小點、收斂到全局最優點。交叉概率:交叉概率

是一個[0,1]范圍內的實數,控制試驗個體來自變異個體的概率。通常地,越大,算法更容易收斂,但也容易發生早熟現象。

的選擇經驗值是0.3。終止條件:除最大進化代數可作為差分進化的終止條件外,有時還需要采用其它判定準則,比如最優解適應度值的變化小于閾值時程序終止。492.4前沿進展差分進化機制的改進一般來說,差分進化算法的收斂速度要優于一般進化算法,但基礎的差分進化算法易陷入局部最優,出現早熟收斂的現象。為此,學者們在后續研究中提出了許多改進的差分進化算法,以提高其性能和適應性。對于差分進化算法本身,人們重點關注對初始化、變異算子、交叉算子等操作的改進,以及對變異縮放因子、交叉概率等控制參數確定方法的改進。在應用層面,差分進化算法被廣泛應用于大數據分析、生物信息學等領域。502.4前沿進展種群初始化種群初始化是差分進化中的主要步驟,它能夠控制最終解的質量并影響算法的收斂速度。2015年,Cluster-BasedPopulationInitializationfordifferentialevolutionframeworks提出了一種基于聚類的種群初始化方法,主要步驟:初始采樣與局部搜索:首先隨機采樣生成初始種群的個體,每個個體依次經過兩個局部搜索算法的優化:沿坐標軸的局部搜索和基于梯度的Rosenbrock算法。結合兩個搜索策略,用于提升解的局部優化效果。聚類:優化后的個體通過k均值聚類,根據歐幾里得距離將解分為多個簇,使用Silhouette系數選擇最佳的簇數,確保聚類結果最優。種群構建:每個簇中適應度最優的個體直接選入初始種群,剩余的個體則基于適應度從各簇中選取,保證種群覆蓋不同的域。512.4前沿進展差分變異算子2020年,受到人體止血過程的啟發,Differentialevolutionwithbiological-basedmutationoperator提出了一種適用于差分進化算法的止血算子:初始化:隨機生成初始種群并劃分為修正池與剩余池。每次迭代:算法根據止血算子的變異策略分別對兩種池進行變異、交叉和選擇操作,確保局部搜索和全局搜索的平衡。利用動態調整變異因子,算法能夠保持種群的多樣性,從而有效避免早熟收斂。522.4前沿進展差分進化算法的應用在工業控制領域:MultilevelImageThresholdingBasedon2DHistogramandMaximumTsallisEntropy-ADifferentialEvolutionApproach提出了一種基于多試驗向量的差分進化算法,通過試驗向量生成器來融合不同的搜索策略,適用于許多復雜的工程設計問題。在電氣能源領域:ACaseLearning-BasedDifferentialEvolutionAlgorithmforGlobalOptimizationofInterplanetaryTrajectoryDesign采用基于線性種群規模縮減的自適應差分進化算法來估計太陽能電池的參數。在圖像處理領域:Biogeography-BasedOptimization提出了一種基于二維直方圖的多級閾值方法來提高檢測目標之間的分離程度,其中,差分進化算法被用于最大化Tsallis熵。在衛星導航領域中:AnAnalysisoftheEquilibriumofMigrationModelsforBiogeography-BasedOptimization提出了一種基于案例學習的差分進化算法,用于星際飛行軌道設計問題。533.

生物地理學優化算法553.1算法原理生物地理學基礎概念適宜度指數在每個棲息地中,決定物種的生存數量與生存質量的是適宜度指數(HSI)。棲息地自然界中生物種群的分布在地理上具有明顯的區域邊界,這些地理區域被稱為棲息地(Habitat)。適宜度變量棲息地中的氣候、植被、地質、面積等因素的差異造就了不同的適宜度指數,這些影響因素被統稱為適宜度變量(SIV)。56生物地理學的數學模型主要描述了物種的遷移、新物種的出現、物種的滅絕。具體地,物種在棲息地中的分布一般處于相對平衡狀態,而在受到擾動后會呈現動態變化,這種動態變化可以通過遷出率(EmigrationRate)和遷入率(ImmigrationRate)來描述。3.1算法原理數學模型物種數目多競爭較為激烈較高的遷出率較低的遷入率高HSI棲息地物種數目少競爭較少較低的遷出率較高的遷入率低HSI棲息地狀態相對穩定和平衡物種動態性更為明顯57下圖給出了一個棲息地物種多樣性的簡單數學模型,其中和分別表示遷入率和遷出率,表示棲息地的物種數目,遷入率和遷出率均是關于3.1算法原理線性遷移率模型的函數。58對于遷入率曲線,當棲息地的物種數目時,物種的潛在遷入率最大。隨著物種的不斷遷入,物種數目增加,棲息地內可生存的空間減少,能夠成功遷入與生存的物種逐漸減少,造成遷入率不斷降低。當物種數量達到可容納的最大可能物種數目時,遷入率為0,此時不再有物種遷入。3.1算法原理線性遷移率模型59對于遷出率曲線,當棲息地物種數目為0時,遷出率為0。隨著物種數目增加,棲息地內的擁擠程度也隨之增加,于是就有一些物種將遷出該棲息地,去尋找潛在的新居住地。此時,遷出率將不斷增高。當物種數量達到最大值時,物種的遷出率也將達到最大值。3.1算法原理線性遷移率模型60當物種的遷入率與遷出率相等時,我們稱遷入和遷出達到平衡,此時,棲息地物種數目記為

(遷入率曲線與遷出率曲線的交點位置)。根據下圖可知遷入率和遷出率的表達式為:3.1算法原理線性遷移率模型61非線性遷移率模型3.1算法原理此時,與為S的二次函數。如果物種數量較小,遷入率從最大遷入率急劇減少,遷出率則從零開始緩慢增加。當物種數量趨近于飽和時,遷入率緩慢減小,遷出率急劇增大。三角函數遷移率模型此時,與為S的三角函數。當棲息地物種數量較大或較小時,遷入率和遷出率均從各自的極值處開始緩慢改變;當棲息地物種數目為中等時,遷移率從平衡值開始急劇變化,該過程表示棲息地通常需要較長的時間來達到物種數目的平衡。二次函數遷移率模型:62模型分析令表示棲息地包含

個物種的概率,從時刻到時刻,

的變化情況表示為:3.1算法原理式中,

和表示物種數量為

時的遷入率和遷出率。上式表明,某棲息地若要在時刻容納

個物種,必須滿足以下三個條件之一(對應式中的三項):1)在時刻t棲息地有

個物種,且時刻t到t+1時刻期間物種無遷入和遷出;2)在時刻t棲息地含有個物種,且僅有1個物種遷入;3)在時刻t棲息地含有個物種,且僅有1個物種遷出。63模型分析假定極小,多于1個物種的遷入可以忽略不計。對下式求極限,使得可以得到:3.1算法原理當

時,遷移后,當

時,.上述過程客觀地描述了棲息地的動態變化過程。策略概述3.2優化策略在生物地理學優化算法中,定義棲息地為特定優化問題的一個可行解。向量的每一個維度代表一個適宜度變量(SIV),例如,中的第

個SIV為,其取值由問題的約束條件來決定,如SIV。適宜度指標(HSI)是衡量可行解優劣的指標,即HSI:,對應于其他優化算法中的適應度。假設一個生態系統內包含

個棲息地,生物地理學優化算法通過不斷修改棲息地

實現種群的更新。棲息地進化的核心是遷移操作和變異操作。643.2優化策略遷移操作(1)基本的遷移操作遷移操作旨在通過物種遷移在不同的棲息地之間共享信息。在問題求解過程中,遷移對應于在不同的解之間共享信息,使得較好的解能夠把信息分享給其他解,使得較差的解能夠從其他解中接收信息。與的適宜度指數,將適宜度指數更高的解保留在種群中。基于遷出率從種群中選出其它棲息地的方法較為靈活,例如可以通過輪盤賭的方法來實現。遷移操作的實現過程如下:在每次迭代中,設種群中每個解的遷入率和遷出率分別為和,對其每個分量執行遷入操作,即以的概率將該分量的值修改為其他值。如果滿足遷入條件,則以遷出率的概率從種群中選擇一個遷出解,用對應位置的分量替換的當前分量。上述過程重復進行,當遍歷的所有分量后,產生一個新的解。此時,分別計算653.2優化策略遷移操作(2)其他遷移操作Zheng等人提出了一種混合型生物地理學優化算法,用于求解有約束的優化問題。在遷移步驟中,該算法將原始的遷移操作修改為一種混合遷移操作。具體地,對于解

,其遷移操作表示為:式中,,當時,混合遷移操作退化為原始的遷移操作。混合遷移操作將當前解自身的特征與遷出解的特征進行線性組合,可以在遷移操作中實現信息交互,促使較差解通過吸收較優解的特征來提高解的質量。此外,混合遷移操作還能避免較優解受遷移影響而導致質量下降的現象。663.2優化策略變異操作在自然界,災難性事件(疾病、自然災害等)可以極大地改變自然棲息地的HSI,使得物種的數目偏離生態系統的穩定值。生物地理學優化算法將這種變化建模為SIV突變,并使用物種數量的概率來確定突變率。在變異操作之前,生物地理學優化算法為種群中的每個個體(解)賦予一個概率,用來表示將該個體作為最優解的可能性。高HSI與低HSI解的概率較小,中等HSI解的概率較大。低HSI解高HSI解中等HSI解中等HSI解概率較大高HSI與低HSI解的概率較小中等HSI解673.2優化策略變異操作若解

的概率很低,將其作為問題的最優解不合理,那么它變異為其他解的概率較高;反之,若解

的概率

很高,則它突變為其他解的概率就比較低。因此,生物地理學優化算法將突變過程中解的變異率設置為與解的概率成反比:式中,表示變異率,為人為設定的超參數。注意:生物地理學優化算法中的變異操作能夠增加種群的多樣性。若沒有變異過程,高概率的解將在種群中占據主導地位。一方面,變異過程讓適應度較高的解發生變異,從而避免其持續占據主導而導致早熟收斂;另一方面,適應度較低的解發生變異能夠使其有機會提高適應度,產生效果更好的解。683.3算法流程算法流程結合遷移與變異操作,生物地理學優化算法核心步驟如下:步驟1:隨機生成待求解問題的一組解,構成初始種群。步驟2:計算種群中各個解的適應度指標。步驟3:計算解的遷入率、遷出率,基于遷入率與遷出率,執行遷移操作。步驟4:計算變異率,基于變異率,執行變異操作。步驟5:更新當前已找到的最優解

,若

不在當前種群中,則將其加入種群。步驟6:計算種群中各個解的適應度指標。步驟7:若不滿足終止條件,轉步驟3;若滿足終止條件,算法結束,返回最優解

。693.3算法流程算法流程圖生物地理學優化算法流程703.4算法改進算法改進學者們在生物地理學優化算法中進一步融入了精英策略,即通過遷移操作直接生成新的解,并將較優的一個解保留在種群中,而非僅對現有解進行修改。具體地,棲息地遷入率和遷出率的公式變為如下形式:式中,與分別表示當前種群中適應度的最大值和最小值。在實際運用生物地理學優化算法進行求解時,建議的參數設置如下:種群大小N=50,最大遷移率,最大變異率.713.4算法改進算法改進全局遷移的局限性:生物地理學優化算法是一種基于全局拓撲結構的優化算法,它假定任意兩個棲息地之間均可能存在物種的遷移。然而,這一假設容易讓算法陷入局部最優,從而影響求解效果。改進思路:引入局部拓撲結構來改進生物地理學優化算法。下圖給出了全局拓撲結構與局部拓撲結構的差異:將每個棲息地視為一個節點,潛在的遷移路線視為邊,全局拓撲結構中的目標棲息地能夠收到來自其它所有棲息地的信息,而局部拓撲結構中的目標棲息地僅能收到其相鄰棲息地的信息。723.4算法改進生態地理學優化算法基本思想:物種的遷移不僅取決于棲息地內部物種的多樣性,還取決于外部的生態阻隔。遷移的成功與否不僅取決于遷入物種,還取決于棲息地原有生態系統對遷入物種的阻抗。生態地理學優化算法定義了兩種不同的遷移方式:局部遷移和全局遷移,相鄰棲息地之間的遷移路徑稱為廊道,不相鄰棲息地之間的遷移路徑則被視為濾道或險道。生態系統廊道代表平原等極易遷移的路線,遷移過程暢通,幾乎不會受到阻隔物種相似性極高濾道代表山川等有一定難度的遷移路線,有一部分生物能夠通過并完成遷移物種相似性中等險道代表海峽等極難的遷移路線,僅有極少的生物才能順利通過物種相似性極低733.4算法改進局部遷移局部遷移僅發生在相鄰的棲息地之間,其過程如下:令

為遷入的棲息地,對于第

維,在的鄰居中按遷出率選擇一個遷出棲息地,其中,代表鄰居棲息地的索引。則遷移過程表示如下:式中,為進化動力系數,描述了兩個棲息地之間的生態差異,可以用它來代表兩個棲息地之間的物種競爭。和越大,鄰居棲息地對目標棲息地影響越大。時,遷移對物種更新無影響;時,此時不考慮生態差異的局部遷移操作。743.4算法改進全局遷移全局遷移同時發生在相鄰和不相鄰的棲息地之間,其過程如下:令為遷入的棲息地,對于第

維,全局遷移需要在的鄰居中選擇一個遷出棲息地,在不相鄰的棲息地中選擇一個遷出棲息地,其中,表示不相鄰棲息地的索引,則遷移過程表示如下:式中,

為適應度函數,表示不成熟度。全局遷移依賴于兩個棲息地的協作,從中選擇一個棲息地作為主要遷入棲息地,剩余的為次要遷入棲息地,選擇的準則為棲息地的適應度值。主要棲息地在遷移過程中占據主導,次要棲息地要與原棲息地之間進行物種競爭。753.4算法改進算法流程選擇局部遷移還是全局遷移是通過不成熟度來進行控制,結合局部與全局遷移策略,生態地理學優化算法的主要步驟如下:步驟1:隨機生成問題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論