導航:首頁 > 源碼編譯 > 蟻群演算法的特徵

蟻群演算法的特徵

發布時間:2024-03-02 08:02:02

『壹』 什麼是粒子群演算法

粒子群演算法介紹(摘自http://blog.sina.com.cn/newtech)
優化問題是工業設計中經常遇到的問題,許多問題最後都可以歸結為優化問題. 為了解決各種各樣的優化問題,人們提出了許多優化演算法,比較著名的有爬山法、遺傳演算法等.優化問題有兩個主要問題:一是要求尋找全局最小點,二是要求有較高的收斂速度. 爬山法精度較高,但是易於陷入局部極小. 遺傳演算法屬於進化演算法( Evolutionary Algorithms) 的一種,它通過模仿自然界的選擇與遺傳的機理來尋找最優解. 遺傳演算法有三個基本運算元:選擇、交叉和變異. 但是遺傳演算法的編程實現比較復雜,首先需要對問題進行編碼,找到最優解之後還需要對問題進行解碼,另外三個運算元的實現也有許多參數,如交叉率和變異率,並且這些參數的選擇嚴重影響解的品質,而目前這些參數的選擇大部分是依靠經驗.1995 年Eberhart 博士和kennedy 博士提出了一種新的演算法;粒子群優化(Partical Swarm Optimization -PSO) 演算法 . 這種演算法以其實現容易、精度高、收斂快等優點引起了學術界的重視,並且在解決實際問題中展示了其優越性.

粒子群優化(Partical Swarm Optimization - PSO) 演算法是近年來發展起來的一種新的進化演算法( Evolu2tionary Algorithm - EA) .PSO 演算法屬於進化演算法的一種,和遺傳演算法相似,它也是從隨機解出發,通過迭代尋找最優解,它也是通過適應度來評價解的品質. 但是它比遺傳演算法規則更為簡單,它沒有遺傳演算法的「交叉」(Crossover) 和「變異」(Mutation) 操作. 它通過追隨當前搜索到的最優值來尋找全局最優 .

粒子群演算法

1. 引言

粒子群優化演算法(PSO)是一種進化計算技術(evolutionary computation),有Eberhart博士和kennedy博士發明。源於對鳥群捕食的行為研究

PSO同遺傳演算法類似,是一種基於疊代的優化工具。系統初始化為一組隨機解,通過疊代搜尋最優值。但是並沒有遺傳演算法用的交叉(crossover)以及變異(mutation)。而是粒子在解空間追隨最優的粒子進行搜索。詳細的步驟以後的章節介紹

同遺傳演算法比較,PSO的優勢在於簡單容易實現並且沒有許多參數需要調整。目前已廣泛應用於函數優化,神經網路訓練,模糊系統控制以及其他遺傳演算法的應用領域

2. 背景: 人工生命

"人工生命"是來研究具有某些生命基本特徵的人工系統. 人工生命包括兩方面的內容

1. 研究如何利用計算技術研究生物現象
2. 研究如何利用生物技術研究計算問題

我們現在關注的是第二部分的內容. 現在已經有很多源於生物現象的計算技巧. 例如, 人工神經網路是簡化的大腦模型. 遺傳演算法是模擬基因進化過程的.

現在我們討論另一種生物系統- 社會系統. 更確切的是, 在由簡單個體組成的群落與環境以及個體之間的互動行為. 也可稱做"群智能"(swarm intelligence). 這些模擬系統利用局部信息從而可能產生不可預測的群體行為

例如floys 和 boids, 他們都用來模擬魚群和鳥群的運動規律, 主要用於計算機視覺和計算機輔助設計.

在計算智能(computational intelligence)領域有兩種基於群智能的演算法. 蟻群演算法(ant colony optimization)和粒子群演算法(particle swarm optimization). 前者是對螞蟻群落食物採集過程的模擬. 已經成功運用在很多離散優化問題上.

粒子群優化演算法(PSO) 也是起源對簡單社會系統的模擬. 最初設想是模擬鳥群覓食的過程. 但後來發現PSO是一種很好的優化工具.

3. 演算法介紹

如前所述,PSO模擬鳥群的捕食行為。設想這樣一個場景:一群鳥在隨機搜索食物。在這個區域里只有一塊食物。所有的鳥都不知道食物在那裡。但是他們知道當前的位置離食物還有多遠。那麼找到食物的最優策略是什麼呢。最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。

PSO從這種模型中得到啟示並用於解決優化問題。PSO中,每個優化問題的解都是搜索空間中的一隻鳥。我們稱之為「粒子」。所有的例子都有一個由被優化的函數決定的適應值(fitness value),每個粒子還有一個速度決定他們飛翔的方向和距離。然後粒子們就追隨當前的最優粒子在解空間中搜索

PSO 初始化為一群隨機粒子(隨機解)。然後通過疊代找到最優解。在每一次疊代中,粒子通過跟蹤兩個"極值"來更新自己。第一個就是粒子本身所找到的最優解。這個解叫做個體極值pBest. 另一個極值是整個種群目前找到的最優解。這個極值是全局極值gBest。另外也可以不用整個種群而只是用其中一部分最為粒子的鄰居,那麼在所有鄰居中的極值就是局部極值。

在找到這兩個最優值時, 粒子根據如下的公式來更新自己的速度和新的位置

v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)
present[] = persent[] + v[] (b)

v[] 是粒子的速度, persent[] 是當前粒子的位置. pbest[] and gbest[] 如前定義 rand () 是介於(0, 1)之間的隨機數. c1, c2 是學習因子. 通常 c1 = c2 = 2.

程序的偽代碼如下

For each particle
____Initialize particle
END

Do
____For each particle
________Calculate fitness value
________If the fitness value is better than the best fitness value (pBest) in history
____________set current value as the new pBest
____End

____Choose the particle with the best fitness value of all the particles as the gBest
____For each particle
________Calculate particle velocity according equation (a)
________Update particle position according equation (b)
____End
While maximum iterations or minimum error criteria is not attained

在每一維粒子的速度都會被限制在一個最大速度Vmax,如果某一維更新後的速度超過用戶設定的Vmax,那麼這一維的速度就被限定為Vmax

4. 遺傳演算法和 PSO 的比較

大多數演化計算技術都是用同樣的過程
1. 種群隨機初始化
2. 對種群內的每一個個體計算適應值(fitness value).適應值與最優解的距離直接有關
3. 種群根據適應值進行復制
4. 如果終止條件滿足的話,就停止,否則轉步驟2

從以上步驟,我們可以看到PSO和GA有很多共同之處。兩者都隨機初始化種群,而且都使用適應值來評價系統,而且都根據適應值來進行一定的隨機搜索。兩個系統都不是保證一定找到最優解

但是,PSO 沒有遺傳操作如交叉(crossover)和變異(mutation). 而是根據自己的速度來決定搜索。粒子還有一個重要的特點,就是有記憶。

與遺傳演算法比較, PSO 的信息共享機制是很不同的. 在遺傳演算法中,染色體(chromosomes) 互相共享信息,所以整個種群的移動是比較均勻的向最優區域移動. 在PSO中, 只有gBest (or lBest) 給出信息給其他的粒子,這是單向的信息流動. 整個搜索更新過程是跟隨當前最優解的過程. 與遺傳演算法比較, 在大多數的情況下,所有的粒子可能更快的收斂於最優解

5. 人工神經網路 和 PSO

人工神經網路(ANN)是模擬大腦分析過程的簡單數學模型,反向轉播演算法是最流行的神經網路訓練演算法。進來也有很多研究開始利用演化計算(evolutionary computation)技術來研究人工神經網路的各個方面。

演化計算可以用來研究神經網路的三個方面:網路連接權重,網路結構(網路拓撲結構,傳遞函數),網路學習演算法。

不過大多數這方面的工作都集中在網路連接權重,和網路拓撲結構上。在GA中,網路權重和/或拓撲結構一般編碼為染色體(Chromosome),適應函數(fitness function)的選擇一般根據研究目的確定。例如在分類問題中,錯誤分類的比率可以用來作為適應值

演化計算的優勢在於可以處理一些傳統方法不能處理的例子例如不可導的節點傳遞函數或者沒有梯度信息存在。但是缺點在於:在某些問題上性能並不是特別好。2. 網路權重的編碼而且遺傳運算元的選擇有時比較麻煩

最近已經有一些利用PSO來代替反向傳播演算法來訓練神經網路的論文。研究表明PSO 是一種很有潛力的神經網路演算法。PSO速度比較快而且可以得到比較好的結果。而且還沒有遺傳演算法碰到的問題

這里用一個簡單的例子說明PSO訓練神經網路的過程。這個例子使用分類問題的基準函數(Benchmark function)IRIS數據集。(Iris 是一種鳶尾屬植物) 在數據記錄中,每組數據包含Iris花的四種屬性:萼片長度,萼片寬度,花瓣長度,和花瓣寬度,三種不同的花各有50組數據. 這樣總共有150組數據或模式。

我們用3層的神經網路來做分類。現在有四個輸入和三個輸出。所以神經網路的輸入層有4個節點,輸出層有3個節點我們也可以動態調節隱含層節點的數目,不過這里我們假定隱含層有6個節點。我們也可以訓練神經網路中其他的參數。不過這里我們只是來確定網路權重。粒子就表示神經網路的一組權重,應該是4*6+6*3=42個參數。權重的范圍設定為[-100,100] (這只是一個例子,在實際情況中可能需要試驗調整).在完成編碼以後,我們需要確定適應函數。對於分類問題,我們把所有的數據送入神經網路,網路的權重有粒子的參數決定。然後記錄所有的錯誤分類的數目作為那個粒子的適應值。現在我們就利用PSO來訓練神經網路來獲得盡可能低的錯誤分類數目。PSO本身並沒有很多的參數需要調整。所以在實驗中只需要調整隱含層的節點數目和權重的范圍以取得較好的分類效果。

6. PSO的參數設置

從上面的例子我們可以看到應用PSO解決優化問題的過程中有兩個重要的步驟: 問題解的編碼和適應度函數
PSO的一個優勢就是採用實數編碼, 不需要像遺傳演算法一樣是二進制編碼(或者採用針對實數的遺傳操作.例如對於問題 f(x) = x1^2 + x2^2+x3^2 求解, 粒子可以直接編碼為 (x1, x2, x3), 而適應度函數就是f(x). 接著我們就可以利用前面的過程去尋優.這個尋優過程是一個疊代過程, 中止條件一般為設置為達到最大循環數或者最小錯誤

PSO中並沒有許多需要調節的參數,下面列出了這些參數以及經驗設置

粒子數: 一般取 20 – 40. 其實對於大部分的問題10個粒子已經足夠可以取得好的結果, 不過對於比較難的問題或者特定類別的問題, 粒子數可以取到100 或 200

粒子的長度: 這是由優化問題決定, 就是問題解的長度

粒子的范圍: 由優化問題決定,每一維可是設定不同的范圍

Vmax: 最大速度,決定粒子在一個循環中最大的移動距離,通常設定為粒子的范圍寬度,例如上面的例子里,粒子 (x1, x2, x3) x1 屬於 [-10, 10], 那麼 Vmax 的大小就是 20

學習因子: c1 和 c2 通常等於 2. 不過在文獻中也有其他的取值. 但是一般 c1 等於 c2 並且范圍在0和4之間

中止條件: 最大循環數以及最小錯誤要求. 例如, 在上面的神經網路訓練例子中, 最小錯誤可以設定為1個錯誤分類, 最大循環設定為2000, 這個中止條件由具體的問題確定.

全局PSO和局部PSO: 我們介紹了兩種版本的粒子群優化演算法: 全局版和局部版. 前者速度快不過有時會陷入局部最優. 後者收斂速度慢一點不過很難陷入局部最優. 在實際應用中, 可以先用全局PSO找到大致的結果,再有局部PSO進行搜索.

另外的一個參數是慣性權重, 由Shi 和Eberhart提出, 有興趣的可以參考他們1998年的論文(題目: A modified particle swarm optimizer)

『貳』 遺傳演算法--GA

        遺傳演算法(GA)屬於 人工智慧啟發式演算法 ,啟發式演算法的目標就是 尋找原始問題的最優解 ,該演算法的定義為

         人類通過直觀常識和生活經驗,設計出一種以搜索最優解為目的,通過模擬大自然規律的演算法,該演算法在可以在接受的花銷(計算時間和存儲空間)范圍內找到問題實例的一個可行解,且該可行解和真實最優解的誤差一般不可以被估計

        當下主要有的啟發式演算法包括 遺傳演算法、退火法,蟻群演算法、人工神經網路等 ,這篇文章主要介紹遺傳演算法

        遺傳演算法的基本原理是模擬達爾文進化論 "物競天擇,適者生存" 的自然法則,其核心思想為

(1)將原始問題的參數,抽象為基因編碼

(2)將原始問題的可行解,抽象為基因排列的染色體組合

(3)將原始問題的解集規模,抽象為一定數量染色體組成的種群

(4)尋找可行解的過程,抽象為種群的進化過程(染色體選擇、交叉、變異等)

(5)比較可行解的優劣,抽象為量化比較不同種群對當前環境的適應程度

(6)逼近最優解的過程,抽象為淘汰適應度差的種群,保留適應度高的種群進行下一次進化

(7)問題的最優解,抽象為經過多次進化後,最終生存下來的精英種群

        理論上,通過有限次種群進化,生存下來的種群都是 精英染色體 ,是最適合當前環境條件的種群,也就可以無限逼近原始問題的最優解

相關生物學術語:

    為了大家更好了解遺傳演算法,在此之前先簡單介紹一下相關生物學術語,大家了解一下即可。

基因型(genotype):性狀染色體的內部表現;

表現型(phenotype):染色體決定的性狀的外部表現,或者說,根據基因型形成的個體的外部表現;

進化(evolution):種群逐漸適應生存環境,品質不斷得到改良。生物的進化是以種群的形式進行的。

適應度(fitness):度量某個物種對於生存環境的適應程度。

選擇(selection):以一定的概率從種群中選擇若干個個體。一般,選擇過程是一種基於適應度的優勝劣汰的過程。

復制(reproction):細胞分裂時,遺傳物質DNA通過復制而轉移到新產生的細胞中,新細胞就繼承了舊細胞的基因。

交叉(crossover):兩個染色體的某一相同位置處DNA被切斷,前後兩串分別交叉組合形成兩個新的染色體。也稱基因重組或雜交;

變異(mutation):復制時可能(很小的概率)產生某些復制差錯,變異產生新的染色體,表現出新的性狀。

編碼(coding):DNA中遺傳信息在一個長鏈上按一定的模式排列。遺傳編碼可看作從表現型到基因型的映射。

解碼(decoding):基因型到表現型的映射。

個體(indivial):指染色體帶有特徵的實體;

種群(population):個體的集合,該集合內個體數稱為種群

大體實現過程

遺傳演算法中每一條染色體,對應著遺傳演算法的一個解決方案,一般我們用適應性函數(fitness function)來衡量這個解決方案的優劣。所以從一個基因組到其解的適應度形成一個映射。 遺傳演算法的實現過程實際上就像自然界的進化過程那樣。

基本遺傳演算法概述

    1.[開始]生成n個染色體的隨機群體(適合該問題的解決方案)

    2.[適應度]評估群體中每個染色體x的適應度f(x)

    3.[新種群]通過重復以下來創建新種群直到新種群完成的步驟

        3.1 [選擇]根據種群的適合度選擇兩個親本染色體(更好的適應性,更大的選擇機會)

        3.2 [交叉]以交叉概率跨越父母形成新的後代(兒童) )。如果沒有進行交叉,後代就是父母的確切副本。

        3.3 [突變]突變概率突變每個基因座(染色體中的位置)的新後代。

    4.[接受]在新種群中放置新後代[替換]使用新生成的種群進一步運行演算法

    5.[測試]如果滿足結束條件,則停止並返回當前種群中的最佳解

    6。[循環]轉到步驟2

影響GA的因素

    從遺傳演算法概述可以看出,交叉和變異是遺傳演算法中最重要的部分。性能主要受這兩個因素的影響。在我們解釋有關交叉和變異的更多信息之前,我們將給出一些有關染色體的信息。

染色體編碼

染色體應該以某種方式包含它所代表的解決方案的信息。最常用的編碼方式是二進制字元串。然後染色體看起來像這樣:

每個染色體由二進制字元串表示。字元串中的每個位都可以表示解決方案的一些特徵。另一種可能性是整個字元串可以表示一個數字 - 這已在基本的GA小程序中使用。當然,還有許多其他的編碼方式。編碼主要取決於解決的問題。例如,可以直接編碼整數或實數,有時對某些排列等進行編碼很有用。

染色體交叉

在我們確定了將使用的編碼之後,我們可以繼續進行交叉操作。 Crossover對來自親本染色體的選定基因進行操作並產生新的後代。最簡單的方法是隨機選擇一些交叉點,並在此點之前從第一個父項復制所有內容,然後在交叉點之後復制另一個父交叉點之後的所有內容。交叉可以說明如下:( |是交叉點):

還有其他方法可以進行交叉,例如我們可以選擇更多的交叉點。交叉可能非常復雜,主要取決於染色體的編碼。針對特定問題進行的特定交叉可以改善遺傳演算法的性能。

4.染色體突變

在執行交叉之後,發生突變。突變旨在防止群體中的所有解決方案落入解決問題的局部最優中。突變操作隨機改變由交叉引起的後代。在二進制編碼的情況下,我們可以將一些隨機選擇的位從1切換到0或從0切換到1.突變可以如下所示:

突變(以及交叉)技術主要取決於染色體的編碼。例如,當我們編碼排列時,可以將突變作為兩個基因的交換來進行。

GA的參數

    1.交叉和突變概率

    GA有兩個基本參數 - 交叉概率和變異概率。

     交叉概率 :交叉的頻率。如果沒有交叉,後代就是父母的精確副本。如果存在交叉,則後代由父母染色體的部分組成。如果交叉概率為100%,那麼所有後代都是由交叉產生的。如果它是0%,那麼全新一代都是從舊種群的染色體的精確拷貝製成的(但這並不意味著新一代是相同的!)。交叉是希望新染色體將包含舊染色體的良好部分,因此新染色體將更好。但是,將舊人口的一部分留給下一代是好的。

     突變概率 :染色體部分突變的頻率。如果沒有突變,則在交叉(或直接復制)後立即生成後代而不進行任何更改。如果進行突變,則改變染色體的一個或多個部分。如果突變概率為100%,則整個染色體發生變化,如果是0%,則沒有變化。突變通常會阻止GA陷入局部極端。突變不應該經常發生,因為GA實際上會改變為隨機搜索。

    2.其他參數

     種群規模 :種群中有多少染色體(一代)。如果染色體太少,GA幾乎沒有可能進行交叉,只探索了一小部分搜索空間。另一方面,如果染色體太多,GA會減慢。研究表明,經過一定的限制(主要取決於編碼和問題),使用非常大的種群是沒有用的,因為它不能比中等規模的種群更快地解決問題。

     3      選擇

正如您從GA概述中已經知道的那樣,從群體中選擇染色體作為交叉的父母。問題是如何選擇這些染色體。根據達爾文的進化論,最好的進化能夠創造出新的後代。選擇最佳染色體的方法有很多種。例如輪盤賭選擇,Boltzman選擇,錦標賽選擇,等級選擇,穩態選擇和其他一些選擇。

1.輪盤賭選擇

父母根據他們的健康狀況選擇。染色體越好,它們被選擇的機會就越多。想像一下輪盤賭輪,人口中的所有染色體都放在那裡。輪盤中截面的大小與每條染色體的適應度函數的值成比例 - 值越大,截面越大。有關示例,請參見下圖。

輪盤賭中放入一塊大理石,並選擇停止的染色體。顯然,具有較大適應值的染色體將被選擇更多次。

該過程可以通過以下演算法來描述。

[Sum]計算總體中所有染色體擬合度的總和 - 總和S.

[Select]從區間(0,S)-r生成隨機數。

[循環]遍歷總體並從0 - 總和中求和。當總和s大於r時,停止並返回您所在的染色體。當然,對於每個群體,步驟1僅執行一次。

2.排名選擇

當健身值之間存在很大差異時,先前的選擇類型會出現問題。例如,如果最佳染色體適應度是所有擬合度總和的90%,那麼其他染色體將很少被選擇的機會。等級選擇首先對群體進行排序,然後每個染色體接收由該等級確定的適合度值。最差的將是健身1,第二個最差的2等等,最好的將具有適應度N(人口中的染色體數量)。您可以在下面的圖片中看到,在更改適應性與排名確定的數字後情況如何變化。

排名前的情況(適合度圖)

排名後的情況(訂單號圖)

現在所有染色體都有機會被選中。然而,這種方法會導致收斂速度變慢,因為最好的染色體與其他染色體的差別不大。

3.穩態選擇

這不是選擇父母的特定方法。這種選擇新種群的主要思想是染色體的很大一部分可以存活到下一代。穩態選擇GA以下列方式工作。在每一代中,選擇一些好的(具有更高適應性)染色體來創建新的後代。然後去除一些不好的(具有較低適合度)染色體並將新的後代放置在它們的位置。其餘人口倖存下來。

4.精英

精英主義的想法已經被引入。當通過交叉和變異創建新的種群時,我們有很大的機會,我們將失去最好的染色體。精英主義是首先將最佳染色體(或少數最佳染色體)復制到新種群的方法的名稱。其餘人口以上述方式構建。精英主義可以迅速提高GA的性能,因為它可以防止丟失最佳找到的解決方案。

交叉(Crossover)和突變 (Mutation)

交叉和變異是GA的兩個基本運算符。 GA的表現非常依賴於它們。運算符的類型和實現取決於編碼以及問題。有多種方法可以執行交叉和變異。在本章中,我們將簡要介紹一些如何執行多個編碼的示例和建議。

1.二進制編碼

交叉

單點交叉 - 選擇一個交叉點,從第一個父項復制從染色體開始到交叉點的二進制字元串,其餘從另一個父項復制

選擇兩點交叉 - 兩個交叉點,從第一個父節點復制從染色體開始到第一個交叉點的二進制字元串,從第一個父節點復制從第一個交叉點到第二個交叉點的部分,其餘的是再次從第一個父級復制

均勻交叉 - 從第一個父項或第二個父項中隨機復制位

算術交叉 - 執行一些算術運算以產生新的後代

突變

位反轉 - 選擇的位被反轉

2.置換編碼

交叉

單點交叉 - 選擇一個交叉點,將排列從第一個父項復制到交叉點,然後掃描另一個父項,如果該數字還沒有在後代中,則添加它注意:還有更多方法如何在交叉點之後產生休息

(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)

變異

順序更改 - 選擇並交換兩個數字

(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)

3.值編碼

交叉

可以使用來自二進制編碼的所有交叉

變異

添加一個小數字(用於實數值編碼) - 將一個小數字添加到(或減去)所選值

(1.29 5.68 2.86 4.11 5.55)=>(1.29 5.68 2.73 4.22 5.55)

4.樹編碼

交叉

樹交叉 - 在父母雙方中選擇一個交叉點,父母在該點被分割,交換點下面的部分被交換以產生新的後代

變異

更改運算符,數字 - 選定節點已更改

補充:

疑惑點:

初始種群是啥:

利用二進制(一般)表示最終解

例如:需要求解z=x^2+y^2的最大值,x={1,5,3,8},y={5,4,0,6}

用六位二進制數表示由x,y組成的解,例如:001100 表示x=1,y=4

001100 稱為一條基因序列,表示的是該問題的一種解決 方案

種群是包含多個基因序列(解決方案/個體)的集合

適應度函數是啥,有什麼作用:

適應度函數可以理解成「 游戲 規則」,如果問題較為復雜,需要自定義適應度函數,說明如何區分優秀與不優秀的個體; 如果問題比較簡單,例如上述求最大值的問題,則直接用此函數式作為適應度函數即可。作用:評定個體的優劣程度,從而決定其遺傳機會的大小。

怎麼選擇:

定義「適者生存不適者淘汰」的規則,例如:定義適應度高的被選擇的概率更大

怎麼交叉:

利用循環,遍歷種群中的每個個體,挑選另一個體進行交叉。例如,通過遍歷為基因序列A挑選出B配對,則取A的前半部分,B的後半部分,組合成新的個體(基因序列)C

如何變異:

隨機挑選基因序列上的某一位置,進行0-1互換

建議 GA的參數

如果您決定實施遺傳演算法,本章應該為您提供一些基本建議。這些建議非常籠統。您可能希望嘗試使用自己的GA來解決特定問題,因為沒有一般理論可以幫助您針對任何問題調整GA參數。

建議通常是對GA的經驗研究的結果,這些研究通常僅在二進制編碼上進行。

交叉率

交叉率一般應高,約為80%-95%。 (但是有些結果表明,對於某些問題,交叉率約為60%是最好的。)

突變率

另一方面,突變率應該非常低。最佳利率似乎約為0.5%-1%。

人口規模

可能令人驚訝的是,非常大的人口規模通常不會改善GA的性能(從找到解決方案的速度的意義上說)。良好的人口規模約為20-30,但有時大小為50-100是最好的。一些研究還表明,最佳種群規模取決於編碼字元串(染色體)的大小。這意味著如果你有32位染色體,那麼人口應該高於16位染色體。

選擇

可以使用基本的輪盤賭選擇,但有時排名選擇可以更好。查看有關選擇優缺點的章節。還有一些更復雜的方法可以在GA運行期間更改選擇參數。基本上,這些表現類似於模擬退火。如果您不使用其他方法來保存最佳找到的解決方案,則應確保使用精英主義。您也可以嘗試穩態選擇。

編碼

編碼取決於問題以及問題實例的大小。查看有關編碼的章節以獲取一些建議或查看其他資源。

交叉和變異

運算符取決於所選的編碼和問題。查看有關操作員的章節以獲取一些建議。您還可以查看其他網站。

搜索空間

    如果我們正在解決問題,我們通常會尋找一些最好的解決方案。所有可行解決方案的空間(所需解決方案所在的解決方案集)稱為搜索空間(也稱為狀態空間)。搜索空間中的每個點代表一種可能的解決方案。每個可能的解決方案可以通過其對問題的值(或適應度)進行「標記」。通過GA,我們在眾多可能的解決方案中尋找最佳解決方案 - 以搜索空間中的一個點為代表。然後尋找解決方案等於在搜索空間中尋找一些極值(最小值或最大值)。有時可以很好地定義搜索空間,但通常我們只知道搜索空間中的幾個點。在使用遺傳演算法的過程中,隨著進化的進行,尋找解決方案的過程會產生其他點(可能的解決方案)。

    問題是搜索可能非常復雜。人們可能不知道在哪裡尋找解決方案或從哪裡開始。有許多方法可用於尋找合適的解決方案,但這些方法不一定能提供最佳解決方案。這些方法中的一些是爬山,禁忌搜索,模擬退火和遺傳演算法。通過這些方法找到的解決方案通常被認為是很好的解決方案,因為通常不可能證明最佳方案。

NP-hard Problems

NP問題是一類無法用「傳統」方式解決的問題。我們可以快速應用許多任務(多項式)演算法。還存在一些無法通過演算法解決的問題。有很多重要問題很難找到解決方案,但是一旦有了解決方案,就很容易檢查解決方案。這一事實導致了NP完全問題。 NP代表非確定性多項式,它意味著可以「猜測」解決方案(通過一些非確定性演算法),然後檢查它。如果我們有一台猜測機器,我們或許可以在合理的時間內找到解決方案。為簡單起見,研究NP完全問題僅限於答案可以是或否的問題。由於存在輸出復雜的任務,因此引入了一類稱為NP難問題的問題。這個類並不像NP完全問題那樣受限。 NP問題的一個特徵是,可以使用一個簡單的演算法,可能是第一眼看到的,可用於找到可用的解決方案。但是這種方法通常提供了許多可能的解決方案 - 只是嘗試所有可能的解決方案是非常緩慢的過程(例如O(2 ^ n))。對於這些類型問題的更大的實例,這種方法根本不可用。今天沒有人知道是否存在一些更快的演算法來提供NP問題的確切答案。對於研究人員來說,發現這樣的演算法仍然是一項重大任務(也許你!:-))。今天許多人認為這種演算法不存在,因此他們正在尋找替代方法。替代方法的一個例子是遺傳演算法。 NP問題的例子是可滿足性問題,旅行商問題或背包問題。可以獲得NP問題匯編。

參考:

         https://www.jianshu.com/p/ae5157c26af9

        https://www.jianshu.com/p/b36b520bd187

『叄』 螞蟻的特點和習性

螞蟻是一種有社會性的生活習性的昆蟲,屬於膜翅目,螞蟻的觸角明顯的膝狀彎曲,腹部有一、二節呈結節狀,一般都沒有翅膀,只有雄蟻和沒有生育的雌蟻在交配時有翅膀,雌蟻交配後翅膀即脫落。螞蟻是完全變態型的昆蟲,要經過卵、幼蟲、蛹階段才發展成成蟲,螞蟻的幼蟲階段沒有任何能力,它們也不需要覓食,完全由工蟻喂養,工蟻剛發展為成蟲的頭幾天,負責照顧蟻後和幼蟲,然後逐漸地開始做挖洞、搜集食物等較復雜的工作,有的種類螞蟻工蟻有不同的體型,個頭大的頭和牙也發展的大,經常負責戰斗保衛蟻巢,也叫兵蟻。
螞蟻求助編輯網路名片
螞蟻螞蟻是一種有社會性的生活習性的昆蟲,屬於膜翅目,螞蟻的觸角明顯的膝狀彎曲,腹部有一、二節呈結節狀,一般都沒有翅膀,只有雄蟻和沒有生育的雌蟻在交配時有翅膀,雌蟻交配後翅膀即脫落。螞蟻是完全變態型的昆蟲,要經過卵、幼蟲、蛹階段才發展成成蟲,螞蟻的幼蟲階段沒有任何能力,它們也不需要覓食,完全由工蟻喂養,工蟻剛發展為成蟲的頭幾天,負責照顧蟻後和幼蟲,然後逐漸地開始做挖洞、搜集食物等較復雜的工作,有的種類螞蟻工蟻有不同的體型,個頭大的頭和牙也發展的大,經常負責戰斗保衛蟻巢,也叫兵蟻。

中文名稱: 螞蟻
別稱: 蟻、玄駒、昆蜉
界: 動物界
門: 節肢動物門
綱: 昆蟲綱
目: 膜翅目
亞目: 細腰亞目
科: 胡蜂總科、蟻科

目錄

蟻穴
外形特徵
分布范圍
生活習性螞蟻住房
螞蟻壽命
蟻型與分工
生長繁殖
螞蟻為什麼能搬比它重幾十倍的東西?
養殖方法人工換巢方法
螞蟻的飼養
螞蟻的語言
葯用知識
古今螞蟻故事螞蟻改變歷史
螞蟻哲學
吃掉精銳德軍
相關動畫及藝術《別惹螞蟻》
螞蟻屍體創作
螞蟻妙用手術用蟻
編程用蟻
蟻群演算法
螞蟻防治
兩種論點
化學成分
葯理作用
螞蟻種類墨西哥蜜蟻
軍蟻
鈍猛蟻幼蟲
切胸蟻
蟻穴
外形特徵
分布范圍
生活習性 螞蟻住房
螞蟻壽命
蟻型與分工
生長繁殖
螞蟻為什麼能搬比它重幾十倍的東西?
養殖方法 人工換巢方法
螞蟻的飼養
螞蟻的語言
葯用知識古今螞蟻故事
螞蟻改變歷史 螞蟻哲學 吃掉精銳德軍相關動畫及藝術
《別惹螞蟻》 螞蟻屍體創作螞蟻妙用
手術用蟻 編程用蟻 蟻群演算法螞蟻防治兩種論點化學成分葯理作用螞蟻種類
墨西哥蜜蟻 軍蟻 鈍猛蟻幼蟲 切胸蟻展開 編輯本段蟻穴
螞蟻絕對是建築專家, 蟻穴內有許多分室,這些分室各有用處。 在沙漠中有一種螞蟻,建的窩遠看就如一座城堡, 有4.5米之高。那些窩廢棄之後,就會被一些動物拿來當自己的窩了,它們的4.5米就相當於人類的4500米。 一般蟻穴中心的地方都是給蟻王住的,蟻王任務就是吃東西,交配,生孩子。 那裡牢固,安全,舒服。 道路四通八達。螞蟻的窩外面還有一圈土。 其他儲備食物的地方,裡面通風,涼快,冬暖夏涼。
編輯本段外形特徵
螞蟻
螞蟻目前有21亞科283屬(主流沿用的是16亞科的分類系統和21亞科的系統相比,新的系統從猛蟻亞科中分出了若干亞科)。一般體小,顏色有黑、褐、黃、紅等,體壁具彈性,光滑或有毛。口器咀嚼式,上顎發達。觸角膝狀,4~13節,柄節很長,末端2~3節膨大。腹部第1節或1、2節呈結狀。有翅或無翅。前足的距離大,梳狀,為凈角器(清理觸角用)。螞蟻的外部形態分頭、胸、腹三部分,有六條腿。螞蟻卵約0.5毫米長,呈不規則的橢圓形,乳白色,幼蟲蠕蟲狀半透明,工蟻體細小,體長約2.8毫米,全身棕黃,單個蟻要細看才易發現。雄、雌蟻體都比較粗大。腹部肥胖,頭、胸棕黃色,腹部前半部棕黃色,後半部棕褐色。雄蟻體長約5.5毫米。雌蟻體長約6.2毫米。室內環境常見的有法老蟻等。
編輯本段生活習性
螞蟻住房
潮濕溫暖的土壤。 它們通常生活在乾燥的地區,但能在水中存活兩個星期。
螞蟻壽命
螞蟻的壽命很長,工蟻可生存幾星期至3-7年,蟻後則可存活十幾年或幾十年,甚至50多年。一個蟻巢在1個地方可生長1年。
蟻型與分工
螞蟻發育為完全變異形態。所有的蟻科都過社會性群體生活。一般在一個群體里有四種不同的蟻型。 l.蟻後: 有生殖能力的雌性,或稱母蟻,又稱蟻王,在群體中體型最大,特別是腹部大,生殖器官發達,觸角短,胸足小,有翅、脫 大頭蟻工蟻
翅或無翅。主要職責是產卵、繁殖後代和統管這個群體大家庭。2.雄蟻:或稱父蟻。頭圓小,上顎不發達,觸角細長。有發達的生殖器官和外生殖器,主要職能是與蟻後交配。 3.工蟻:又稱職蟻。無翅,是不發育的雌性,一般為群體中最小的個體,但數量最多。復眼小,單眼極微小或無。上顎、觸角和三對胸足都很發達,善於步行奔走。工蟻沒有生殖能力。工蟻的主要職責是建造和擴大巢穴、採集食物、飼喂幼蟲及蟻後等。 4.兵蟻:「兵蟻」是對某些螞蟻種類的大工蟻的俗稱。 螞蟻建立群體,也是以通過婚飛方式兩性相識結交為起點。相識後一見鍾情,在飛行中或飛行後交尾。「新郎」壽命不長。 兵蟻
螞蟻交尾後不久死亡留下「遺孀」蟻後獨自過著孤單生活。蟻後脫掉翅膀,在地下選擇適宜的土質和場所築巢。她「孤家寡人」,力量有限,只能暫時造一小室,作為安身之地,並使已「受孕」的身體有個產房。待體內的卵發育成熟產出後,小幼蟲孵化出世,蟻後就忙碌起來。每個幼蟻的食物都由她嘴對嘴地喂給,直到這些幼蟻長大發育為成蟻,並可獨立生活時為止。當第一批工蟻長成時,它們便挖開通往外界的洞口去尋找食物,隨後又擴大巢穴建築面積,為越來越多的家族成員提供住房。自此以後,飽受艱苦的蟻後就坐享清福,成為這個群體大家族的統帥。撫育幼蟻和喂養蟻後的工作均由工蟻承擔。但蟻後還要繼續交配,不斷產生受精卵,以繁殖大家 螞蟻
族。蟻巢有各種形式,大多數種類在地下土中築巢,挖有隧道、小室和住所,並將掘出的物質及葉片堆積在入口附近,形成小丘狀,起保護作用。也有的蟻用植物葉片、莖稈、葉柄等築成紙樣巢掛在樹上或岩石間。還有的蟻生活在林區朽木中。更為特殊的是,有的蟻將自己的巢築在別的種類蟻巢之中或旁邊;而兩「家」並不發生糾紛,能夠做到和睦相處。這種蟻巢叫做混合性蟻巢,實為異種共棲。無論不同的蟻類或同種的蟻,其一個巢內蟻的數目均可有很大的差別。最小的群體只有幾十隻或近百隻蟻,也有的幾千隻蟻,而大的群體可以有幾萬只,甚至更多的蟻。 在我國華南一帶的闊葉林中,還有一種翹尾蟻,顧名思義,就是它那帶有螯針的尾端常翹起來,隨時准備進攻的樣子。它有種怪脾氣,經常與樹打交道。它喜歡用叼來的腐質物以及從樹上啃下來的老樹皮,再攙雜上從嘴裡吐出來的粘性汁液,在樹上築成足球大的巢,巢內分成許多層次,分別住著雄蟻、蟻後和工蟻,並在巢中生兒育女,成為一個"獨立王國"。開始時一樹一巢,當群體過大,而且又有新的蟻後出生時,新蟻後便帶領部分工蟻另造新居。有時為爭奪領域,常展開一場惡斗。為了在樹上捕捉其他小蟲為食,它可用細長而有力的足在樹冠的枝葉上奔跑。如兩樹相距較近,為免去長途奔波之勞,它們能巧妙地互相咬住後足,垂吊下來,借風飄盪,搖到另一棵樹上去,搭成一條"蟻索橋"。為了能較長久地連接兩樹之間的通途,承擔搭橋任務的工蟻還能不斷替換。樹上的食物捕盡,又結隊順樹而下,長途奔襲,捕捉地面上的小動物。獵物一旦被擒獲,翹尾蟻便會用螯針注入麻醉液,使獵物處於昏迷狀態,然後拉的拉,拽的拽,即使是一隻超過它 們體重百倍的螳螂或蚯蚓,也能被它們輕而易舉地拖回巢中。 蟻類的食性在不同亞科和不同種類之間有很大的差別。一般可分為肉食性、植食性和雜食性。螞蟻在一年中的大部分時間里都在辛勤地勞動。那麼到了嚴寒的冬天它們又到哪裡去覓食呢?它們是如何過冬的呢?原來聰明的螞蟻在入冬之前早有準備。它們首先搬運雜草種子,准備明年播種用;同時搬 螞蟻運蚜蟲、介殼蟲、角蟬和灰蝶幼蟲等到自己巢內過冬,從這些昆蟲身上吸取排泄物做為食料(奶蜜)。螞蟻為什麼知道冬天快來了呢?從現代科學的觀點看,螞蟻的這種本能是受它們體內的年生物鍾控制而起作用的,換句話說,它們是按照年生物鍾的運行規律做好越冬期食物儲備的。 與螞蟻互動形成的生物達到了驚人的程度。與螞蟻共生的生物,或專性或間性,植物超過了52科465種,動物則達到了數千種,還有大量未知的真菌和微生物。 螞蟻正在使用著非凡的生存策略——種植真菌,收獲種子,放牧產蜜昆蟲,編制巢穴,合作捕食,社會性寄生,蓄奴——這些都極大地刺激著科學家和公眾的好奇心。 螞蟻的顯微照片
螞蟻在世界各個角落都能存活,其秘訣就在於它們生活在一個非常有組織的群體中。它們一起工作,一起建築巢穴,使它們的卵與後代能在其中安全成長。 螞蟻有不同的類型,每一類都有其專門的職責。蟻後產卵,大部分卵將發育成雌性,它們被稱為工蟻。它們負責建築並保衛巢穴,照顧蟻後、卵和幼蟲,以及搜尋食物。到了一定的時候,雄蟻與新的蟻後會產生出來。它們有翅膀,從巢穴里集群飛出。交配以後,雄蟻即死去,新的蟻後則開始領導起又一個群體的生活。 在群體中,蟻後是最重要的成員。它是唯一能產卵的。這意味著它是這一群體中所有螞蟻的母親。工蟻喂養它,替它清潔身體,並將它的卵帶到另一處去照料。 某些澳大利亞螞蟻將它們的工蟻作為一種活的儲藏罐。當工蟻採集了大量的花蜜,即一種源自花中的甜甜的液體,將它吞進體內、身體變得膨大起來之後,它們就將自身掛在巢穴的天花板上,一直到有別的螞蟻需要食用它們體內儲藏的那些花蜜為止。 兵蟻正在林地上覓食。為搜尋食物,它們有時會在林地上排成長隊。它們總是很飢餓,因此幾乎會向任何東西發起進攻,有時甚至是大的哺乳動物。 不同的螞蟻吃不同的食物。收獲蟻吃種子,它們將種子收藏在地窖里;而割葉蟻吃蘑菇,它們將葉片搬運到地下,用來培植蘑菇。有些螞蟻則貯存一種叫蚜蟲的昆蟲,它們從蚜蟲體內抽取一種含糖的物質作為食物,這同人類從母牛身上擠奶的方式非常相似。 根據科學家的研究證明,螞蟻在洞穴里缺少糖份,對自己的生長發育很不好,為了能夠找到充分的糖份,所以螞蟻一旦發現甜的東西,觸角就會自主的硬起來,這是螞蟻的一個天性。 螞蟻是社會性很強的昆蟲,彼此通過身體發出的信息素來進行交流溝通,當螞蟻找到食物時,會在食物上撒布信息素,別的螞蟻就會本能地把有信息素的東西拖回洞里去。 當螞蟻死掉後,它身上的信息素依然存在,當有別的螞蟻路過時,會被信息素吸引,但是死螞蟻不會像活的螞蟻那樣跟對方交流信息(互相觸碰觸角),於是它帶有信息素的屍體就會被同伴當成食物搬運回去。 通常情況下,那樣的屍體不會被當成食物吃掉,因為除了信息素以外,每一窩的螞蟻都有自己特定的識別氣味,有相同氣味的東西不會受到攻擊,這就是同窩的螞蟻可以很好協作的基礎。 螞蟻在行進的過程中,會分泌一種信息素,這種信息素會引導後面的螞蟻走相同的路線。如果我們用手劃過螞蟻的行進隊伍,干擾了螞蟻的信息素,螞蟻就會失去方向感,到處亂爬。所以我們不要隨便干擾它們。 螞蟻 螞蟻的顯微照片
的顯微照片 螞蟻為典型的社會昆蟲,具有社會昆蟲的3大要素,即同種個體間能相互合作照顧幼體;具明確的勞動分工系統;且子代能在一段時間內照顧上一代。 另外要指出的,「白蟻」不是螞蟻,白蟻除了與螞蟻一樣具有社會生活習性外,在生理結構上和螞蟻有很大的差別。 生物的行為是指生物體進行的在外部可以察覺得到的有適應意義的活動。行為學就是研究這些活動的學科。形態和行為首先被人們注意,但是直到19世紀人們才獲得生物行為研究的理論武器和實驗手段。進化論學說將動物的行為提高到了適應性層次。 目前對生物行為的歸類非常混亂。從遺傳和發育的角度一般將其分為先天行為和後天行為,也就是本能行為和學習行為。但這種分類方法並不常用,人們一般按照行為的功能對其劃分,遺憾的是這種劃分方式並不嚴格,存在大量的重疊區域。

『肆』 蟻群演算法的相關研究

跟著螞蟻的蹤跡,你找到了什麼?通過上面的原理敘述和實際操作,我們不難發現螞蟻之所以具有智能行為,完全歸功於它的簡單行為規則,而這些規則綜合起來具有下面兩個方面的特點:
1、多樣性
2、正反饋
多樣性保證了螞蟻在覓食的時候不至走進死胡同而無限循環,正反饋機制則保證了相對優良的信息能夠被保存下來。我們可以把多樣性看成是一種創造能力,而正反饋是一種學習強化能力。正反饋的力量也可以比喻成權威的意見,而多樣性是打破權威體現的創造性,正是這兩點小心翼翼的巧妙結合才使得智能行為涌現出來了。
引申來講,大自然的進化,社會的進步、人類的創新實際上都離不開這兩樣東西,多樣性保證了系統的創新能力,正反饋保證了優良特性能夠得到強化,兩者要恰到好處的結合。如果多樣性過剩,也就是系統過於活躍,這相當於螞蟻會過多的隨機運動,它就會陷入混沌狀態;而相反,多樣性不夠,正反饋機制過強,那麼系統就好比一潭死水。這在蟻群中來講就表現為,螞蟻的行為過於僵硬,當環境變化了,螞蟻群仍然不能適當的調整。
既然復雜性、智能行為是根據底層規則涌現的,既然底層規則具有多樣性和正反饋特點,那麼也許你會問這些規則是哪裡來的?多樣性和正反饋又是哪裡來的?我本人的意見:規則來源於大自然的進化。而大自然的進化根據剛才講的也體現為多樣性和正反饋的巧妙結合。而這樣的巧妙結合又是為什麼呢?為什麼在你眼前呈現的世界是如此栩栩如生呢?答案在於環境造就了這一切,之所以你看到栩栩如生的世界,是因為那些不能夠適應環境的多樣性與正反饋的結合都已經死掉了,被環境淘汰了! 蟻群演算法的由來:螞蟻是地球上最常見、數量最多的昆蟲種類之一,常常成群結隊地出現在人類的日常生活環境中。這些昆蟲的群體生物智能特徵,引起了一些學者的注意。義大利學者M.Dorigo,V.Maniezzo等人在觀察螞蟻的覓食習性時發現,螞蟻總能找到巢穴與食物源之間的最短路徑。經研究發現,螞蟻的這種群體協作功能是通過一種遺留在其來往路徑上的叫做信息素(Pheromone)的揮發性化學物質來進行通信和協調的。化學通信是螞蟻採取的基本信息交流方式之一,在螞蟻的生活習性中起著重要的作用。通過對螞蟻覓食行為的研究,他們發現,整個蟻群就是通過這種信息素進行相互協作,形成正反饋,從而使多個路徑上的螞蟻都逐漸聚集到最短的那條路徑上。
這樣,M.Dorigo等人於1991年首先提出了蟻群演算法。其主要特點就是:通過正反饋、分布式協作來尋找最優路徑。這是一種基於種群尋優的啟發式搜索演算法。它充分利用了生物蟻群能通過個體間簡單的信息傳遞,搜索從蟻巢至食物間最短路徑的集體尋優特徵,以及該過程與旅行商問題求解之間的相似性。得到了具有NP難度的旅行商問題的最優解答。同時,該演算法還被用於求解Job-Shop調度問題、二次指派問題以及多維背包問題等,顯示了其適用於組合優化類問題求解的優越特徵。
多年來世界各地研究工作者對蟻群演算法進行了精心研究和應用開發,該演算法現已被大量應用於數據分析、機器人協作問題求解、電力、通信、水利、采礦、化工、建築、交通等領域。
蟻群演算法之所以能引起相關領域研究者的注意,是因為這種求解模式能將問題求解的快速性、全局優化特徵以及有限時間內答案的合理性結合起來。其中,尋優的快速性是通過正反饋式的信息傳遞和積累來保證的。而演算法的早熟性收斂又可以通過其分布式計算特徵加以避免,同時,具有貪婪啟發式搜索特徵的蟻群系統又能在搜索過程的早期找到可以接受的問題解答。這種優越的問題分布式求解模式經過相關領域研究者的關注和努力,已經在最初的演算法模型基礎上得到了很大的改進和拓展。
經過一定時間,從食物源返回的螞蟻到達D點同樣也碰到障礙物,也需要進行選擇。此時A, B兩側的信息素濃度相同,它們仍然一半向左,一半向右。但是當A側的螞蟻已經完全繞過障礙物到達C點時,B側的螞蟻由於需走的路徑更長,還不能到達C點,圖3表示蟻群在障礙物前經過一段時間後的情形。
此時對於從蟻巢出發來到C點的螞蟻來說,由於A側的信息素濃度高,B側的信息素較低,就傾向於選擇A側的路徑。這樣的結果是A側的螞蟻越來越多,最終所有螞蟻都選擇這條較短的路徑,圖4 表示蟻群最終選擇的路徑
上述過程,很顯然是由螞蟻所留下的信息素的「正反饋」過程而導致的。螞蟻個體就是通過這種信息的交流來達到搜索食物的目的。蟻群演算法的基本思想也是從這個過程轉化而來的。
蟻群演算法的特點:
1)蟻群演算法是一種自組織的演算法。在系統論中,自組織和它組織是組織的兩個基本分類,其區別在於組織力或組織指令是來自於系統的內部還是來自於系統的外部,來自於系統內部的是自組織,來自於系統外部的是他組織。如果系統在獲得空間的、時間的或者功能結構的過程中,沒有外界的特定干預,我們便說系統是自組織的。在抽象意義上講,自組織就是在沒有外界作用下使得系統熵減小的過程(即是系統從無序到有序的變化過程)。蟻群演算法充分體現了這個過程,以螞蟻群體優化為例子說明。當演算法開始的初期,單個的人工螞蟻無序的尋找解,演算法經過一段時間的演化,人工螞蟻間通過信息激素的作用,自發的越來越趨向於尋找到接近最優解的一些解,這就是一個無序到有序的過程。
2)蟻群演算法是一種本質上並行的演算法。每隻螞蟻搜索的過程彼此獨立,僅通過信息激素進行通信。所以蟻群演算法則可以看作是一個分布式的多agent系統,它在問題空間的多點同時開始進行獨立的解搜索,不僅增加了演算法的可靠性,也使得演算法具有較強的全局搜索能力。
3)蟻群演算法是一種正反饋的演算法。從真實螞蟻的覓食過程中我們不難看出,螞蟻能夠最終找到最短路徑,直接依賴於最短路徑上信息激素的堆積,而信息激素的堆積卻是一個正反饋的過程。對蟻群演算法來說,初始時刻在環境中存在完全相同的信息激素,給予系統一個微小擾動,使得各個邊上的軌跡濃度不相同,螞蟻構造的解就存在了優劣,演算法採用的反饋方式是在較優的解經過的路徑留下更多的信息激素,而更多的信息激素又吸引了更多的螞蟻,這個正反饋的過程使得初始的不同得到不斷的擴大,同時又引導整個系統向最優解的方向進化。因此,正反饋是螞蟻演算法的重要特徵,它使得演算法演化過程得以進行。
4)蟻群演算法具有較強的魯棒性。相對於其它演算法,蟻群演算法對初始路線要求不高,即蟻群演算法的求解結果不依賴於初始路線的選擇,而且在搜索過程中不需要進行人工的調整。其次,蟻群演算法的參數數目少,設置簡單,易於蟻群演算法應用到其它組合優化問題的求解。
蟻群演算法的應用進展以蟻群演算法為代表的蟻群智能已成為當今分布式人工智慧研究的一個熱點,許多源於蜂群和蟻群模型設計的演算法己越來越多地被應用於企業的運轉模式的研究。美國五角大樓正在資助關於群智能系統的研究工作-群體戰略(Swarm Strategy),它的一個實戰用途是通過運用成群的空中無人駕駛飛行器和地面車輛來轉移敵人的注意力,讓自己的軍隊在敵人後方不被察覺地安全進行。英國電信公司和美國世界通信公司以電子螞蟻為基礎,對新的電信網路管理方法進行了試驗。群智能還被應用於工廠生產計劃的制定和運輸部門的後勤管理。美國太平洋西南航空公司採用了一種直接源於螞蟻行為研究成果的運輸管理軟體,結果每年至少節約了1000萬美元的費用開支。英國聯合利華公司己率先利用群智能技術改善其一家牙膏廠的運轉情況。美國通用汽車公司、法國液氣公司、荷蘭公路交通部和美國一些移民事務機構也都採用這種技術來改善其運轉的機能。鑒於群智能廣闊的應用前景,美國和歐盟均於近幾年開始出資資助基於群智能模擬的相關研究項目,並在一些院校開設群體智能的相關課程。國內,國家自然科學基金」十五」期間學科交叉類優先資助領域中的認知科學及其信息處理的研究內容中也明確列出了群智能領域的進化、自適應與現場認知主題。
蟻群優化演算法最初用於解決TSP問題,經過多年的發展,已經陸續滲透到其他領域中,比如圖著色問題、大規模集成電路設計、通訊網路中的路由問題以及負載平衡問題、車輛調度問題等。蟻群演算法在若干領域己獲得成功的應用,其中最成功的是在組合優化問題中的應用。
在網路路由處理中,網路的流量分布不斷變化,網路鏈路或結點也會隨機地失效或重新加入。蟻群的自身催化與正向反饋機制正好符合了這類問題的求解特點,因而,蟻群演算法在網路領域得到一定應用。蟻群覓食行為所呈現出的並行與分布特性使得演算法特別適合於並行化處理。因而,實現演算法的並行化執行對於大量復雜的實際應用問題的求解來說是極具潛力的。
在某群體中若存在眾多無智能的個體,它們通過相互之間的簡單合作所表現出來的智能行為即稱為集群智能(Swarm Intelligence)。互聯網上的交流,不過是更多的神經元連接(人腦)通過互聯網相互作用的結果,光纜和路由器不過是軸突和突觸的延伸。從自組織現象的角度上看,人腦的智能和蟻群也沒有本質上的區別,單個神經元沒有智能可言,單個螞蟻也沒有,但是通過連接形成的體系,是一個智能體。(作者: 李精靈 編選:中國電子商務研究中心)

『伍』 蟻群演算法原理及其應用的圖書目錄

第1章 緒論
1.1 引言
1.2 螞蟻的生物學特徵
1.3 蟻群演算法的思想起源
1.4 蟻群演算法的研究進展
1.5 本書的體系結構
1.6 本章 小結
參考文獻
第2章 基本蟻群演算法原理及其復雜度分析
2.1 引言
2.2 基本蟻群演算法的原理
2.3 基本蟻群演算法的系統學特徵
2.4 基本蟻群演算法的數學模型
2.5 基本蟻群演算法的具體實現
2.6 基本蟻群演算法的復雜度分析
2.7 基本蟻群演算法的性能評價指標
2.8 本章 小結
參考文獻
第3章 蟻群演算法的收斂性研究
3.1 引言
3.2 圖搜索螞蟻系統(GBAS)的收斂性研究
3.3 一類改進蟻群演算法的收斂性證明
3.4 GBAS/tdev和GBAS/tdlb的確定性收斂證明
3.5 基本蟻群演算法的A.S.收斂性研究
3.6 一類分布式螞蟻路由演算法的收斂性研究
3.7 基於分支路由和Wiener過程的蟻群演算法收斂性證明
3.8 一種簡單蟻群演算法及其收斂性分析
3.9 遺傳一蟻群演算法的Markov收斂性分析
3.1 0一類廣義蟻群演算法(GACA)的收斂性分析
3.1 1本章 小結
參考文獻
第4章 蟻群演算法的實驗分析及參數選擇原則
4.1 引言
4.2 蟻群行為和參數對演算法性能影響的實驗分析
4.3 蟻群演算法參數最優組合的「三步走」方法
4.4 本章 小結
參考文獻
第5章 離散域蟻群演算法的改進研究
5.1 引言
5.2 自適應蟻群演算法
5.3 基於去交叉局部優化策略的蟻群演算法
5.4 基於信息素擴散的蟻群演算法
5.5 多態蟻群演算法
5.6 基於模式學習的小窗口蟻群演算法
5.7 基於混合行為的蟻群演算法
5.8 帶聚類處理的蟻群演算法
5.9 基於雲模型理論的蟻群演算法
5.1 0具有感覺和知覺特徵的蟻群演算法
5.1 1具有隨機擾動特性的蟻群演算法
5.1 2基於信息熵的改進蟻群演算法
5.1 3本章 小結
參考文獻
第6章 連續域蟻群演算法的改進研究
6.1 引言
6.2 基於網格劃分策略的連續域蟻群演算法
6.3 基於信息量分布函數的連續域蟻群演算法
6.4 連續域優化問題的自適應蟻群演算法
6.5 基於交叉變異操作的連續域蟻群演算法
6.6 嵌入確定性搜索的連續域蟻群演算法
6.7 基於密集非遞階的連續互動式蟻群演算法(cIACA)
6.8 多目標優化問題的連續域蟻群演算法
6.9 復雜多階段連續決策問題的動態窗口蟻群演算法
6.1 0本章 小結
參考文獻
第7章 蟻群演算法的典型應用
7.1 引言
7.2 車間作業調度問題
7.3 網路路由問題
7.4 車輛路徑問題
7.5 機器人領域
7.6 電力系統
7.7 故障診斷
7.8 控制參數優化
7.9 系統辨識
7.1 0聚類分析
7.1 1數據挖掘
7.1 2圖像處理
7.1 3航跡規劃
7.1 4空戰決策
7.1 5岩土工程
7.1 6化學工業
7.1 7生命科學
7.1 8布局優化
7.1 9本章 小結
參考文獻
第8章 蟻群演算法的硬體實現
8.1 引言
8.2 仿生硬體概述
8.3 基於FPGA的蟻群演算法硬體實現
8.4 基於蟻群演算法和遺傳演算法動態融合的軟硬體劃分
8.5 本章 小結
參考文獻
第9章 蟻群演算法同其他仿生優化演算法的比較與融合
9.1 引言
9.2 其他幾種仿生優化演算法的基本原理
9.3 蟻群演算法與其他仿生優化演算法的異同比較
9.4 蟻群演算法與遺傳演算法的融合
9.5 蟻群演算法與人工神經網路的融合
9.6 蟻群演算法與微粒群演算法的融合
9.7 蟻群演算法與人工免疫演算法的融合
9.8 本章 小結
參考文獻
第10章 展望
10.1 引言
10.2 蟻群演算法的模型改進
10.3 蟻群演算法的理論分析
10.4 蟻群演算法的並行實現
10.5 蟻群演算法的應用領域
10.6 蟻群演算法的硬體實現
10.7 蟻群演算法的智能融合
10.8 本章 小結
參考文獻
附錄A基本蟻群演算法程序
A.1 C語言版
A.2 Matlab語言版
A.3 VisualBasic語言版
附錄B相關網站
附錄C基本術語(中英文對照)及縮略語
附錄D(詞一首)鷓鴣天蟻群演算法

閱讀全文

與蟻群演算法的特徵相關的資料

熱點內容
外國免費手機vr資源網站 瀏覽:830
魔獸游戲伺服器怎麼弄 瀏覽:422
成人性教育的片在哪裡能看? 瀏覽:993
pdf壓縮破解版 瀏覽:180
簽字版pdf 瀏覽:309
主角姓庄穿越到香港當探長 瀏覽:271
百度網盤視頻是雙語的怎麼改為單語的 瀏覽:334
伺服器關閉玩家充的錢怎麼辦 瀏覽:251
日本男男影片 瀏覽:860
matlab實用教程pdf 瀏覽:769
伺服器加密方式哪種好 瀏覽:121
顯示加密服務超時 瀏覽:611
日語口譯pdf 瀏覽:433
外人如何評價身邊的程序員 瀏覽:105
霍夫曼編碼壓縮演算法 瀏覽:122
我想學習單片機 瀏覽:644
陳寶蓮拍過 瀏覽:336
遙調命令的設定命令實現過程 瀏覽:76
演算法中最壞情況都為多少 瀏覽:995
排序演算法圖形化展示 瀏覽:782