幾種智能算法的原理和應用介紹專題培訓課件_第1頁
幾種智能算法的原理和應用介紹專題培訓課件_第2頁
幾種智能算法的原理和應用介紹專題培訓課件_第3頁
幾種智能算法的原理和應用介紹專題培訓課件_第4頁
幾種智能算法的原理和應用介紹專題培訓課件_第5頁
已閱讀5頁,還剩72頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、幾種智能算法的原理和應用介紹主要內容:1. 遺傳算法2. 蟻群算法3. 模擬退火算法4. 粒子群算法5. 總結與體會1. 遺傳算法1.1 遺傳算法簡介1.2 遺傳算法的基本思想1.3 遺傳算法的基本操作1.4 遺傳算法的構成要素1.5 遺傳算法的操作步驟1.6 遺傳算法的特點1.7 遺傳算法的應用領域1.8 遺傳算法的應用舉例1.1 遺傳算法簡介 遺傳算法簡稱GA(Genetic Algorithms)是1962年由美國Michigan大學的Holland教授提出的模擬自然界遺傳機制和生物進化論而成的一種并行隨機搜索最優化方法。 遺傳算法是以達爾文的自然選擇學說為基礎發展起來的。自然選擇學說包

2、括以下三個方面: (1)遺傳:這是生物的普遍特征,親代把生物信息交給子代,子代總是和親代具有相同或相似的性狀。生物有了這個特征,物種才能穩定存在。 (2)變異:親代和子代之間以及子代的不同個體之間的差異,稱為變異。變異是隨機發生的,變異的選擇和積累是生命多樣性的根源。 (3)生存斗爭和適者生存:具有適應性變異的個體被保留下來,不具有適應性變異的個體被淘汰,通過一代代的生存環境的選擇作用,性狀逐漸逐漸與祖先有所不同,演變為新的物種。1.2 遺傳算法的基本思想 遺傳算法將“優勝劣汰,適者生存”的生物進化原理引入優化參數形成的編碼串聯群體中,按所選擇的適應度函數并通過遺傳中的復制、交叉及變異對個體進

3、行篩選,使適適應度高的個體被保留下來,組成新的群體,新的群體既繼承了上一代的信息,又優于上一代。這樣周而復始,群體中個體適應度不斷提高,直到滿足一定的條件。遺傳算法的算法簡單,可并行處理,并能到全局最優解。1.3 遺傳算法的基本操作 遺傳算法的基本操作主要有:復制、交叉、變異。(1)復制(Reproduction Operator) 復制是從一個舊種群中選擇生命力強的個體位串產生新種群的過程。具有高適應度的位串更有可能在下一代中產生一個或多個子孫。 復制操作可以通過隨機方法來實現。首先產生01之間均勻分布的隨機數,若某串的復制概率為40%,則當產生的隨機數在0.401.0之間時,該串被復制,否

4、則被淘汰。1.3 遺傳算法的基本操作(2)交叉(Crossover Operator) 復制操作能從舊種群中選擇出優秀者,但不能創造新的染色體。而交叉模擬了生物進化過程中的繁殖現象,通過兩個染色體的交換組合,來產生新的優良品種。 交叉的過程為:在匹配池中任選兩個染色體,隨機選擇一點或多點交換點位置;交換雙親染色體交換點右邊的部分,即可得到兩個新的染色體數字串。 交叉體現了自然界中信息交換的思想。交叉有一點交叉、多點交叉、還有一致交叉、順序交叉和周期交叉。一點交叉是最基本的方法,應用較廣。它是指染色體切斷點有一處,例:1.3 遺傳算法的基本操作(3)變異(Mutation Operator) 變

5、異運算用來模擬生物在自然的遺傳環境中由于各種偶然因素引起的基因突變,它以很小的概率隨機地改變遺傳基因(表示染色體的符號串的某一位)的值。在染色體以二進制編碼的系統中,它隨機地將染色體的某一個基因由1變為0,或由0變為1。 若只有選擇和交叉,而沒有變異,則無法在初始基因組合以外的空間進行搜索,使進化過程在早期就陷入局部解而進入終止過程,從而影響解的質量。為了在盡可能大的空間中獲得質量較高的優化解,必須采用變異操作。變異操作如下所示:1.4 遺傳算法的構成要素 遺傳算法的構成要素主要有:染色體編碼方法、個體適應度評價、遺傳算子及遺傳算法的運行參數。(1)染色體編碼方法 基本遺傳算法使用固定長度的二

6、進制符號來表示群體中的個體,其等位基因是由二值符號集0,1所組成。初始個體基因值可用均勻分布的隨機值生成,如:就可表示一個個體,該個體的染色體長度是18。1.4 遺傳算法的構成要素(2)個體適應度評價 基本遺傳算法與個體適應度成正比的概率來決定當前群體中每個個體遺傳到下一代群體中的概率多少。為正確計算這個概率,要求所有個體的適應度必須為正數或零。因此,必須先確定由目標函數值J到個體適應度f之間的轉換規則。(3)遺傳算子 基本遺傳算法使用下述三種遺傳算子: 選擇運算:使用比例選擇算子; 交叉運算:使用單點交叉算子; 變異運算:使用基本位變異算子或均勻變異算子。1.4 遺傳算法的構成要素(4)基本

7、遺傳算法的運行參數 有下述4個運行參數需要提前設定: M :群體大小,即群體中所含個體的數量,一般取為20-100; G :遺傳算法的終止進化代數,一般取為100-500; Pc:交叉概率,一般取為0.4-0.99; Pm:變異概率,一般取為0.0001-0.1。1.5 遺傳算法的操作步驟 對于一個需要進行優化的實際問題,一般可按下述步驟構造遺傳算法: 第一步:確定決策變量及各種約束條件; 第二步:建立優化模型,即確定出目標函數的類型及數學描述形式或量化方法; 第三步:確定表示可行解的染色體編碼方法; 第四步:確定解碼方法; 第四步:確定個體適應度的量化評價方法,即確定出由目標函數值到個體適應

8、度的轉換規則; 第五步:設計遺傳算子,即確定選擇運算、交叉運算、變異運算等遺傳算子的具體操作方法。 第六步:確定遺傳算法的有關運行參數,即M,G,Pc,Pm等參數。1.5 遺傳算法的操作步驟 遺傳算法流程圖:1.6 遺傳算法的特點遺傳算法的主要特點有: (1)遺傳算法是對參數的編碼進行操作,而非對參數本身,這就是使得我們在優化計算過程中可以借鑒生物學中染色體和基因等概念,模仿自然界中生物的遺傳和進化等機理; (2)遺傳算法同時使用多個搜索點的搜索信息。傳統的優化方法往往是從解空間的單個初始點開始最優解的迭代搜索過程,單個搜索點所提供的信息不多,搜索效率不高,有時甚至使搜索過程局限于局部最優解而

9、停滯不前。 遺傳算法從由很多個體組成的一個初始群體開始最優解的搜索過程,而不是從一個單一的個體開始搜索,這是遺傳算法所特有的一種隱含并行性,因此遺傳算法的搜索效率較高。 (3)遺傳算法直接以目標函數作為搜索信息。傳統的優化算法不僅需要利用目標函數值,而且需要目標函數的導數值等輔助信息才能確定搜索方向。而遺傳算法僅使用由目標函數值變換來的適應度函數值,就可以確定進一步的搜索方向和搜索范圍,無需目標函數的導數值等其他一些輔助信息。1.6 遺傳算法的特點 遺傳算法可應用于目標函數無法求導數或導數不存在的函數的優化問題,以及組合優化問題等。 (4)遺傳算法使用概率搜索技術。遺傳算法的選擇、交叉、變異等

10、運算都是以一種概率的方式來進行的,因而遺傳算法的搜索過程具有很好的靈活性。隨著進化過程的進行,遺傳算法新的群體會更多地產生出許多新的優良的個體。 (5)遺傳算法在解空間進行高效啟發式搜索,而非盲目地窮舉或完全隨機搜索; (6)遺傳算法對于待尋優的函數基本無限制,它既不要求函數連續,也不要求函數可微,既可以是數學解析式所表示的顯函數,又可以是映射矩陣甚至是神經網絡的隱函數,因而應用范圍較廣; (7)遺傳算法具有并行計算的特點,因而可通過大規模并行計算來提高計算速度,適合大規模復雜問題的優化。 1.7 遺傳算法的應用領域 遺傳算法的應用領域主要有:函數優化、組合優化、生產調度問題、自動控制、機器人

11、、圖像處理等。(1)函數優化 函數優化是遺傳算法的經典應用領域,也是遺傳算法進行性能評價的常用算例。尤其是對非線性、多模型、多目標的函數優化問題,采用其他優化方法較難求解,而遺傳算法卻可以得到較好的結果。(2)組合優化。 隨著問題的增大,組合優化問題的搜索空間也急劇擴大,采用傳統的優化方法很難得到最優解。遺傳算法是尋求這種滿意解的最佳工具。例如,遺傳算法已經在求解旅行商問題、背包問題、裝箱問題、圖形劃分問題等方面得到成功的應用。1.7 遺傳算法的應用領域(3)生產調度問題 在很多情況下,采用建立數學模型的方法難以對生產調度問題進行精確求解。在現實生產中多采用一些經驗進行調度。遺傳算法是解決復雜

12、調度問題的有效工具,在單件生產車間調度、流水線生產車間調度、生產規劃、任務分配等方面遺傳算法都得到了有效的應用。(4)自動控制 在自動控制領域中有很多與優化相關的問題需要求解,遺傳算法已經在其中得到了初步的應用。例如,利用遺傳算法進行控制器參數的優化、基于遺傳算法的模糊控制規則的學習、基于遺傳算法的參數辨識、基于遺傳算法的神經網絡結構的優化和權值學習等。1.7 遺傳算法的應用領域(5)機器人 例如,遺傳算法已經在移動機器人路徑規劃、關節機器人運動軌跡規劃、機器人結構優化和行為協調等方面得到研究和應用。(6)圖像處理 遺傳算法可用于圖像處理過程中的掃描、特征提取、圖像分割等的優化計算。目前遺傳算

13、法已經在模式識別、圖像恢復、圖像邊緣特征提取等方面得到了應用。1.8 遺傳算法的應用舉例1 用遺傳算法求函數極值利用遺傳算法求Rosenbrock函數的極大值:求解該問題遺傳算法的構造過程:(1)確定決策變量和約束條件決策變量為:(2)建立優化模型1.8 遺傳算法的應用舉例(3)確定編碼方法 用長度為10位的二進制編碼串來分別表示兩個決策變量x1,x2。10位二進制編碼串可以表示從0到1023之間的1024個不同的數,故將x1,x2的定義域離散化為1023個均等的區域,包括兩個端點在內共有1024個不同的離散點。 從離散點-2.048到離散點2.048 ,分別對應于從0000000000(0)

14、到1111111111(1023)之間的二進制編碼。 將x1,x2分別表示的兩個10位長的二進制編碼串連接在一起,組成一個20位長的二進制編碼串,它就構成了這個函數優化問題的染色體編碼方法。使用這種編碼方法,解空間和遺傳算法的搜索空間就具有一一對應的關系。例如:表示一個個體的基因型,其中前10位表示x1,后10位表示x2。1.8 遺傳算法的應用舉例(4)確定解碼方法 解碼時需要將20位長的二進制編碼串切斷為兩個10位長的二進制編碼串,然后分別將它們轉換為對應的十進制整數代碼,分別記為y1和y2。 依據個體編碼方法和對定義域的離散化方法可知,將代碼y轉換為變量x的解碼公式為:例如,對個體:它由兩

15、個代碼所組成上述兩個代碼經過解碼后,可得到兩個實際的值1.8 遺傳算法的應用舉例(5)確定個體評價方法 由于Rosenbrock函數的值域總是非負的,并且優化目標是求函數的最大值,故可將個體的適應度直接取為對應的目標函數值,即選個體適應度的倒數作為目標函數 選擇運算使用比例選擇算子,交叉運算使用單點交叉算子,變異運算使用基本位變異算子。(6)確定個體評價方法 群體大小M=80,終止進化代數G=100,交叉概率Pc=0.60,變異概率Pm=0.10。(7)確定遺傳算法的運行參數1.8 遺傳算法的應用舉例(8)實驗過程完全隨機生成初始種群 循環八次,達到暫時的最優值:3414.8 對應的x1、x2

16、坐標為:(-1.9799,-1.9159) 種群向暫時的最優染色體靠近。1.8 遺傳算法的應用舉例平均分配坐標軸生成初始種群 循環八次,達到最優值:3905.9 對應的x1、x2坐標為:(-2.0480,-2.0480) 種群向最優染色體靠近。1.8 遺傳算法的應用舉例 上述七個步驟構成了用于求函數極大值的優化計算基本遺傳算法。采用上述方法進行仿真,經過100步迭代,最佳樣本為即當時,Rosenbrock函數具有極大值,極大值為3905.9。1.8 遺傳算法的應用舉例2 用遺傳算法進行圖像匹配(1)問題描述: 從一張圖片中找出與另一張圖片相似的部分。(為了便于說明問題,本實驗中目標圖片為匹配圖

17、片加黑色背景隨機生成,如下圖所示:)1.8 遺傳算法的應用舉例2 用遺傳算法進行圖像匹配(2)編碼 對匹配圖片左上角第一個像素在目標圖片內的位置進行編碼(要求匹配圖片不能超出目標圖片的邊界),采用二進制編碼。(3)計算適應度 適應度函數取為兩幅圖片對應位置上的值差的平方和的倒數。(4)選擇 按適應度函數的大小計算種群中某個體被選中的概率,按概率選擇下一代種群。1.8 遺傳算法的應用舉例2 用遺傳算法進行圖像匹配(5)交叉 單點交叉、多點交叉(要求匹配圖片不能超出目標圖片的邊界)。(6)變異 要求匹配圖片不能超出目標圖片的邊界。1.8 遺傳算法的應用舉例(7)實驗結果與分析 對于此類簡單的圖片匹

18、配的問題,遺傳算法通常能較快的收斂到一個較好的位置,但對于復雜一些的圖片匹配問題,容易收斂到局部極值點。2. 蟻群算法2.1 螞蟻生物學特征2.2 Deneubourg雙橋實驗2.3 蟻群算法的定義2.4 蟻群算法的原理2.5 蟻群算法的規則2.6 蟻群算法的特點2.7 蟻群算法的應用領域2.8 蟻群算法的應用舉例2.1 螞蟻的生理學特征 螞蟻在8000萬年前就建立起了自己的社會。許多“螞蟻城市”往往由5000萬個成員組成,并且是一個組織完好的復雜“城市”。 螞蟻的群體行為主要包括尋找食物、任務分配和構造墓穴。 研究中主要是以螞蟻尋找食物之后能選擇一條最短路徑來連接蟻穴和食物源。 螞蟻具有智能

19、么? 生物學家通過對螞蟻的長期觀察研究發現,每只螞蟻的智能并不高,看起來沒有集中的指揮,但他們卻能協同的工作,集中食物建立起穩固的蟻穴,依靠群體的能力發揮出了超出個體的智能。2.2 Deneubourg雙橋實驗 Pasteels,Deneubourg和Goss(1987)全部都在實驗中研究真實螞蟻信息素的遺留行為,他們稱之為“雙橋實驗”。在這個雙橋實驗模型中,蟻穴通過一個蟻穴和食物源之間用兩個長度相等的橋連接。作者使用能夠辨認路徑的阿根廷螞蟻,簡而言之這些螞蟻可以預測或者搜索他們的群類。2.2 Deneubourg雙橋實驗等長雙橋實驗 在前面的設定下,螞蟻開始探索蟻穴周圍的環境最終到達食物源。

20、沿著他們的在蟻穴和食物源之間的路徑,阿根廷釋放信息素,開始每個螞蟻都隨機選擇兩條橋之間的的一個,在隨后的階段里因為隨機的波動,其中一個橋的信息素表現出比另外一條的信息素更為集中,因此吸引了更多的螞蟻。這個行為增加了這個橋上的信息素,也就吸引了更多的螞蟻。因此,過了一段時間以后,整個種群都聚合于使用這個高度集中的橋運送。2.2 Deneubourg雙橋實驗 Goss,Aron,Deneubourg和Pasteel(1989)提出上述雙橋實驗的變種,在其中一個橋要比另一個橋更長,如下圖所示;在這種情況下,螞蟻選擇了近的路徑首先到達了蟻穴。因此,短橋比長橋得到了更為密集的信息素增長了螞蟻選擇短橋的的

21、可能性。Goss,Aron,Deneubourg和Pasteel(1990)將觀察的的真實的螞蟻建立到假設的模型中。首先,假設橋上殘留的信息素量和過去一段時間經過該橋的螞蟻數成正比(信息素揮發的情況);其次某一時刻螞蟻按照橋上信息素量的多少來選擇某支橋,即螞蟻選擇某支橋的概率與經過該橋的螞蟻數成正比。當所有的m只螞蟻都經過兩支橋以后,設Am和Bm分別為經過A橋和B橋的螞蟻數(Am+Bm=m),則第m+1只螞蟻選擇A(B)橋的概率為:2.2 Deneubourg雙橋實驗公式表明:往A走的螞蟻越多,選擇分支A的概率就越高。 n和k用以匹配真實實驗數據。 “n”決定選擇公式的非線性程度。(n越大,信

22、息素多一點的分支選擇概率越高) “k”表示對未標記的分支的吸引程度。(k越大,則進行非隨機化選擇所需的信息素濃度越高) 這種概率的表達方式是實際的螞蟻路徑選擇實驗推導而來的,比較符合實驗的參數設置是n=2和k=20.2.3 蟻群算法的定義 蟻群算法(ant colony optimization, ACO),又稱螞蟻算法,是一種用來在圖中尋找優化路徑的機率型算法。 這種算法具有分布計算、信息正反饋和啟發式搜索的特征,本質上是進化算法中的一種新型的啟發式優化算法。 人工蟻群與真實螞蟻的異同比較:相同點: (1)都存在一個群體中個體相互交流通信的機制 (2)都要完成一個相同的任務 (3)利用當前信

23、息進行路徑選擇的隨機選擇策略不同點: (1)人工螞蟻他們的移動是從一個狀態到另一個 狀態的轉換 (2)人工螞蟻具有一個記憶其本身過去行為的內在狀態 (3)人工螞蟻存在于一個與時間無關聯的環境之中 (4)人工蟻不是盲從的,受環境空間的啟發 (5)人工蟻可以根據要求增加功能2.4 蟻群算法的原理 螞蟻在運動過程中會通過在路上釋放一種特殊的分泌物信息素來尋找路徑。當它碰到一個還沒有走過的路口是就隨機的選擇一條路徑前行,同時釋放出與路徑長度有關的信息素。螞蟻走的路越長,則釋放的信息量越小。當后來的螞蟻再次碰到這個路口時,選擇信息量較大的路徑的概率相對較大,這樣便形成了一個正反饋機制。最優路徑上得信息量

24、越來越大,而其他路徑上的信息量卻隨時間逐漸減少最終整個蟻群會找出最優路徑。 (1)蟻群之間通過信息素和環境進行通信。 (2)螞蟻對環境的反應由其內部模式決定。 (3)個體水平上,每個螞蟻相對獨立;群體水平上,每只螞蟻的行為是隨機的。 蟻群算法的理論假設2.5 蟻群算法的規則蟻群算法中的螞蟻滿足的規則主要有以下幾個方面: 螞蟻觀察到的范圍是一個方格世界,螞蟻有一個參數為速度半徑(一般是3),那么它能觀察到的范圍就是3*3個方格世界,并且能移動的距離也在這個范圍之內。 (1)范圍 螞蟻所在的環境是一個虛擬的世界,其中有障礙物,有別的螞蟻,還有信息素,信息素有兩種,一種是找到食物的螞蟻灑下的食物信息

25、素,一種是找到窩的螞蟻灑下的窩的信息素。每個螞蟻都僅僅能感知它范圍內環境信息。環境以一定的速率讓信息素消失 。 (2)環境2.5 蟻群算法的規則 在每只螞蟻能感知的范圍內尋找是否有食物,如果有就直接過去。否則看是否有信息素,并且比較在能感知的范圍內哪一點的信息素最多,這樣,它就朝信息素多的地方走,并且每只螞蟻都會以小概率犯錯誤,從而并不是往信息素最多的點移動。螞蟻找窩的規則和上面一樣,只不過它對窩的信息素做出反應,而對食物信息素沒反應。 (3)覓食規則 每只螞蟻都朝向信息素最多的方向移,并且,當周圍沒有信息素指引的時候,螞蟻會按照自己原來運動的方向慣性的運動下去,并且,在運動的方向有一個隨機的

26、小的擾動。為了防止螞蟻原地轉圈,它會記住最近剛走過了哪些點,如果發現要走的下一點已經在最近走過了,它就會盡量避開。 (4)移動規則2.5 蟻群算法的規則 如果螞蟻要移動的方向有障礙物擋住,它會隨機的選擇另一個方向,并且有信息素指引的話,它會按照覓食的規則行為。 (5)避障規則 每只螞蟻在剛找到食物或者窩的時候撒發的信息素最多,并隨著它走遠的距離,播撒的信息素越來越少。 (6)撒播信息素規則 根據這幾條規則,螞蟻之間并沒有直接的關系,但是每只螞蟻都和環境發生交互,而通過信息素這個紐帶,實際上把各個螞蟻之間關聯起來了。比如,當一只螞蟻找到了食物,它并沒有直接告訴其它螞蟻這兒有食物,而是向環境播撒信

27、息素,當其它的螞蟻經過它附近的時候,就會感覺到信息素的存在,進而根據信息素的指引找到了食物。2.6 蟻群算法的特點 在系統論中,自組織和它組織是組織的兩個基本分類,其區別在于組織力或組織指令是來自于系統的內部還是來自于系統的外部,來自于系統內部的是自組織,來自于系統外部的是他組織。如果系統在獲得空間的、時間的或者功能結構的過程中,沒有外界的特定干預,我們便說系統是自組織的。在抽象意義上講,自組織就是在沒有外界作用下使得系統墑增加的過程(即是系統從無序到有序的變化過程)。蟻群算法充分休現了這個過程,以螞蟻群體優化為例子說明。當算法開始的初期,單個的人工螞蟻無序的尋找解,算法經過一段時間的演化,人

28、工螞蟻間通過信息激素的作用,自發的越來越趨向于尋找到接近最優解的一些解,這就是一個無序到有序的過程。(1)蟻群算法是一種自組織的算法。2.6 蟻群算法的特點 每只螞蟻搜索的過程彼此獨立,僅通過信息激素進行通信。所以蟻群算法則可以看作是一個分布式的多agent系統,它在問題空間的多點同時開始進行獨立的解搜索,不僅增加了算法的可靠性,也使得算法具有較強的全局搜索能力。(2)蟻群算法是一種本質上并行的算法。2.6 蟻群算法的特點 從真實螞蟻的覓食過程中我們不難看出,螞蟻能夠最終找到最短路徑,直接依賴于最短路徑上信息激素的堆積,而信息激素的堆積卻是一個正反饋的過程。對蟻群算法來說,初始時刻在環境中存在

29、完全相同的信息激素,給予系統一個微小擾動,使得各個邊上的軌跡濃度不相同,螞蟻構造的解就存在了優劣,算法采用的反饋方式是在較優的解經過的路徑留下更多的信息激素,而更多的信息激素又吸引了更多的螞蟻,這個正反饋的過程使得初始的不同得到不斷的擴大,同時又引導整個系統向最優解的方向進化。因此,正反饋是螞蟻算法的重要特征,它使得算法演化過程得以進行。 (3)蟻群算法是一種正反饋的算法。2.6 蟻群算法的特點 相對于其它算法,蟻群算法對初始路線要求不高,即蟻群算法的求解結果不依賴子初始路線的選擇,而且在搜索過程中不需要進行人工的調整。其次,蟻群算法的參數數目少,設置簡單,易于蟻群算法應用到其它組合優化問題的

30、求解。 (4)蟻群算法具有較強的魯棒性。2.7 蟻群算法的應用領域 蟻群算法主要應用于:組合優化問題、車間作業調度問題、網絡路由問題、車輛路徑問題、機器人領域、電力系統、故障診斷、控制參數優化、巖土工程、生命科學等若干領域。2.8 蟻群算法的應用舉例蟻群算法解決TSP問題 旅行商問題,即TSP問題(Travelling Salesman Problem)又譯為旅行推銷員問題、貨郎擔問題,是數學領域中著名問題之一。假設有一個旅行商人要拜訪n個城市,他必須選擇所要走的路徑,路徑的限制是每個城市只能拜訪一次,而且最后要回到原來出發的城市。路徑的選擇目標是要求得的路徑路程為所有路徑之中的最小值。 TS

31、P問題是一個組合優化問題。該問題可以被證明具有NPC計算復雜性。因此,任何能使該問題的求解得以簡化的方法,都將受到高度的評價和關注。2.8.1 問題描述2.8 蟻群算法的應用舉例(1)螞蟻主體具有的特征:2.8.2 用蟻群算法解決TSP問題 在從城市i到j的過程中或者一次循環結束,在邊(i,j)釋放信息素。 有概率的訪問下一個城市,這個概率是兩城市間和連接兩城市的路徑上存有軌跡量的函數。 不允許螞蟻訪問已經訪問過的城市2.8 蟻群算法的應用舉例(2)引入相關記號 為了模擬實際蟻群的行為首先引入以下記號:2.8 蟻群算法的應用舉例(3)螞蟻從一個城市移動到另一個城市的概率 在初始時刻,各條路徑上

32、的信息素量相等,設。 螞蟻k(k=1,2,m)在運動中根據各條路徑上的信息素量決定轉移方向。 位于城市i的螞蟻k選擇移動到城市j的概率為:公式 12.8 蟻群算法的應用舉例(4)禁忌表 與真實蟻不同,人工蟻群系統具有記憶功能。為了滿足螞蟻必須經過所有n個不同的城市這個約束條件,為每只螞蟻都設計了一個數據結構,成為禁忌表。用來記錄了t時刻螞蟻已經經過的城市,不允許該螞蟻在本次循環中再經過這些城市。當本次循環結束后禁忌表被用來計算該螞蟻所建立的解決方案。之后禁忌表清空螞蟻又可以自由地選擇。2.8 蟻群算法的應用舉例(5)信息素的調整 經過n個時刻,螞蟻完成一次循環,各路徑上的信息素根據如下公式調整

33、:其中:表示第k只螞蟻在時刻(t,t+1)留在路徑(i,j)上的信息素。表示本次循環路徑(i,j)上的信息素增量。公式 32.8 蟻群算法的應用舉例(6)實現過程2.8 蟻群算法的應用舉例2.8 蟻群算法的應用舉例2.8 蟻群算法的應用舉例(5)仿真結果 采用MATLAB來仿真實現蟻群算法解TSP問題 。對全國31個省會城市的一個TSP計算。通過程序仿真得到。實驗結果非常好!2.8.3 用遺傳算法解決TSP問題(1)用遺傳算法解TSP問題主要集中在以下幾個方面:2.8.3 用遺傳算法解決TSP問題 采用適當的表示方法表示個體的編碼; 設計可用的遺傳算子,以保持父代的特性避免新個體的不可行性;

34、防止算法過早的收斂。(2)編碼 路徑表示是TSP問題最自然、最直接的表示方式。它直接采用城市在路徑中的相對位置來進行表示。 例如,路徑517862934直接表示成(5 1 7 8 6 2 9 3 4)。2.8.3 用遺傳算法解決TSP問題(3)交叉部分映射雜交 首先隨機地在父體中選取兩個雜交點,并交換相應的段,再根據該段內的城市確定部分映射。在每個父體上先填入無沖突的城市,而對有沖突的城市依照映射關系選擇候選的城市,直到找到無沖突的城市填入,按此方法獲得了雜交后的兩個后代。 實例:如兩父串及匹配區域為 A9 8 4 | 5 6 7 | 1 3 2 0 B8 7 1 | 2 3 0 | 9 5

35、4 6 首先交換A和B的兩個匹配區域,得到 A9 8 4 | 2 3 0 | l 3 2 0 B8 7 1 | 5 6 7 | 9 5 4 對于A、B兩子串中匹配區域以外出現的遍歷重復,依據匹配區域內的位置映射關系,逐一進行交換。對于A有2到5,3到6,0到7的位置符號映射,對A的匹配區以外的2,3,0分別以5,6,7替換,則得 A”9 8 4 | 2 3 0 | 1 6 5 7同理可得: B”8 0 1 | 5 6 7 | 9 2 4 3這樣,每個子串的次序部分地由其父串確定。 2.8.3 用遺傳算法解決TSP問題(3)變異倒置變異 利用簡單的倒置操作來進行變異。即首先在父體中隨機地選擇兩個

36、截斷點,然后將該兩點內的子串中的城市進行反序操作。 A 1 2 3 | 4 5 6 | 7 8 9 0A1 2 3 | 6 5 4 | 7 8 9 0插入變異插入算子就是隨機選擇一個城市,并將它插入到一個隨機位置中去。 A 1 2 3 4 5 6 7 8 9 A1 2 5 3 4 6 7 8 9移位變異 移位算子是選擇一個子路徑巡回,然后把它插入一個隨機的位置 互換變異互換變異也被稱作基于次序的變異(order-based mutation),操作方法是:隨機的選擇兩個城市,并交換其所處的位置對于串AA 1 2 3 4 | 5 6 7 | 8 9若對換點為4,7,則經對換后,A為A1 2 3

37、7 | 5 6 4 | 8 92.8.3 用遺傳算法解決TSP問題 從群體規模來看,有變化規模的方式,也有恒定規模的群體構成方式等。 在遺傳算法中,最常見的選擇機制是依據適應度的比例概率選擇機制;在有限規模的群體中,適應度較高的個體有較大的機會繁殖后代,即生物進化論上的適者生存規則。在新一代群體構成方法方面存在: N方式:全部替換上一代群體的全刷新代際更新方式。 E方式:保留一個最好的父串的最佳保留(elitist)群體構造方式。 G方式:按一定比例更新群體中的部分個體的部分更新方式(或稱代溝方法,這種情況的極端是每代僅刪去一個最不適的個體的最劣死亡方式)。 B方式:從產生的子代和父代中挑選最

38、好的若干個個體的群體構成形式。 一般講,N方式的全局搜索性能最好,但收斂速度最慢;B方式收斂速度最快,但全局搜索性能最差;E方式和G方式的性能介于N方式和B方式之間。在求解貨郎擔問題的應用中,多選用E方式。 (4)選擇機制和群體構成2.8.3 用遺傳算法解決TSP問題 算法簡單,從總體趨勢上看,算法總是朝著路徑和變小的方向收斂的,得到的結果也較好,不過收斂速度較慢,且存在比較好的染色體(路徑)被淘汰的情況。(5)實驗結果與分析3.模擬退火 算法3.1 模擬退火算法簡介3.2 模擬退火算法基本原理3.3 優化問題與物理退火的類比3.1 模擬退火算法簡介模擬退火的思想 開始使勁晃動(先高溫加熱)然

39、后慢慢降低搖晃的強度(逐漸降溫)退火過程。 想象在不平的表面上如何使一個乒乓球掉到最深的裂縫中如果只讓其在表面滾動,則它只會停留在局部極小點/ 如果晃動平面,可以使乒乓球彈出局部極小點/ 技巧是晃動足夠大使乒乓球彈出局部極小點,但又不能太大把它從全局極小點中趕出。模擬退火的思路算法的目的 解決NP復雜性問題; 克服優化過程陷入局部極小; 克服初值依賴性。3.2 模擬退火算法基本原理(1)物理退火過程 加溫過程。其目的是增強粒子的熱運動,使其偏離平衡位置。當溫度足夠高時,固體將溶解為液體,溶解過程與系統的熵增過程聯系,系統能量也隨溫度的升高而增大,使得每一粒子的狀態都具有充分的隨機性。 等溫過程

40、。物理學的知識告訴我們,對于與周圍環境交換熱量而溫度不變的封閉系統,系統狀態的自發變化總是朝自由能減少的方向進行,當自由能達到最小時,系統達到平衡態。 冷卻過程。目的是使粒子的熱運動減弱并漸趨有序,系統能量逐漸下降,從而得到低能的晶體結構。在常溫時達到基態,內能減為最小。 退火是指將固體加熱到足夠高的溫度,使分子呈隨機排列狀態,然后逐步降溫使之冷卻,最后分子以低能狀態排列, 固體達到某種穩定狀態。 物理退火過程的發展階段3.2 模擬退火算法基本原理(2)數學表述 物體加熱至一定溫度后,所有分子在狀態空間D中自由運動,隨著溫度的下降,分子逐漸停留在不同的狀態。在溫度最低時,分子重新以一定的結構排

41、列。 在溫度T, 分子停留在狀態r滿足Boltzmann概率分布:其中:表示分子能量的一個隨機變量;表示狀態r的能量;為Boltzmann常數,為概率分布的標準化因子:;。3.2 模擬退火算法基本原理在同一個溫度T,選定兩個能量E1E2,有四個能量點r = 1, 2, 3, 4三個溫度點t = 20, 5, 0.5狀態與溫度關系的例子r=1r=2r=3r=4T=200.2690.2560.2430.232T=50.3290.2690.2210.181T=0.50.8650.1170.0160.0023.2 模擬退火算法基本原理 (1)在同一個溫度,分子停留在能量小狀態的概率大于停留在能量大狀態

42、的概率; (2)溫度越高,不同能量狀態對應的概率相差越小;溫度足夠高時, 各狀態對應概率基本相同; (3)隨著溫度的下降,能量最低狀態對應概率越來越大;溫度趨于0 時,其狀態趨于1。 在一定溫度下,搜索從一個狀態隨機地變化到另一個狀態;隨著溫度的不斷下降直到最低溫度,搜索過程以概率1停留在最優解。上表表明:模擬退火算法求解思路:3.3 優化問題與物理退火的類比優化問題物理退火解分子狀態最優解能量最低狀態目標函數能量設定初始溫度熔解過程Metropolis抽樣等溫過程溫度的下降冷卻過程4.粒子群算法4.1 粒子群算法簡介4.2 粒子群算法的基本原則4.3 粒子群算法的基本條件4.4 粒子群算法的數學表述4.1 粒子群算法簡介 粒子群算法(particle swarm optimization,PSO)由Kennedy和Eberhart在1995年提出,該算法模擬鳥集群飛行覓食的行為,鳥之間通過集體的協作使群體達到最優目的,是一種基于Swarm Intellige

溫馨提示

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

評論

0/150

提交評論