⑴ 蟻群演算法的介紹
蟻群演算法(ant colony optimization, ACO),又稱螞蟻演算法,是一種用來在圖中尋找優化路徑的機率型演算法。它由Marco Dorigo於1992年在他的博士論文中提出,其靈感來源於螞蟻在尋找食物過程中發現路徑的行為。蟻群演算法是一種模擬進化演算法,初步的研究表明該演算法具有許多優良的性質。針對PID控制器參數優化設計問題,將蟻群演算法設計的結果與遺傳演算法設計的結果進行了比較,數值模擬結果表明,蟻群演算法具有一種新的模擬進化優化方法的有效性和應用價值。
⑵ 蟻群演算法車輛路徑優化問題信息素如何選擇
述了。
目前蟻群演算法主要用在組合優化方面,基本蟻群演算法的思路是這樣的:
1. 在初始狀態下,一群螞蟻外出,此時沒有信息素,那麼各自會隨機的選擇一條路徑。
2. 在下一個狀態,每隻螞蟻到達了不同的點,從初始點到這些點之間留下了信息素,螞蟻繼續走,已經到達目標的螞蟻開始返回,與此同時,下一批螞蟻出動,它們都會按照各條路徑上信息素的多少選擇路線(selection),更傾向於選擇信息素多的路徑走(當然也有隨機性)。
3. 又到了再下一個狀態,剛剛沒有螞蟻經過的路線上的信息素不同程度的揮發掉了(evaporation),而剛剛經過了螞蟻的路線信息素增強(reinforcement)。然後又出動一批螞蟻,重復第2個步驟。
每個狀態到下一個狀態的變化稱為一次迭代,在迭代多次過後,就會有某一條路徑上的信息素明顯多於其它路徑,這通常就是一條最優路徑。
關鍵的部分在於步驟2和3:
步驟2中,每隻螞蟻都要作出選擇,怎樣選擇呢?
selection過程用一個簡單的函數實現:
螞蟻選擇某條路線的概率=該路線上的信息素÷所有可選擇路線的信息素之和
假設螞蟻在i點,p(i,j)表示下一次到達j點的概率,而τ(i,j)表示ij兩點間的信息素,則:
p(i,j)=τ(i,j)/∑τ(i)
(如果所有可選路線的信息素之和∑τ(i)=0,即前面還沒有螞蟻來過,概率就是一個[0,1]上的隨機值,即隨機選擇一條路線)
步驟3中,揮發和增強是演算法的關鍵所在(也就是如何數學定義信息素的)
evaporation過程和reinforcement過程定義了一個揮發因子,是迭代次數k的一個函數
ρ(k)=1-lnk/ln(k+1)
最初設定每條路徑的信息素τ(i,j,0)為相同的值
然後,第k+1次迭代時,信息素的多少
對於沒有螞蟻經過的路線:τ(i,j,k+1)=(1-ρ(k))τ(i,j,k),顯然信息素減少了
有螞蟻經過的路線:τ(i,j,k+1)=(1-ρ(k))τ(i,j,k)+ρ(k)/|W|,W為所有點的集合
為什麼各個函數要如此定義,這個問題很難解釋清楚,這也是演算法的精妙所在。如此定義信息素的揮發和增強,以及路徑選擇,根據馬爾可夫過程(隨機過程之一)能夠推導出,在迭代了足夠多次以後,演算法能夠收斂到最佳路徑。
組合優化很有意思的,像禁忌搜索、模擬退火、蟻群演算法、遺傳演算法、神經網路這些演算法能夠解決很多生活中的實際問題,樓主有空可以招本書看看。
⑶ 蟻群演算法可以應用在哪些領域為什麼……
蟻群應用演算法可以用於圖論,因為它是基於尋路演算法的。
⑷ 蟻群演算法的核心是什麼,怎麼能和傳統演算法相結合
蟻群演算法 (ant colony optimization, ACO,Ant colony optimization algorithms ) 將最優解比喻成食物,而把搜索過程比擬成蟻群在空間中尋找食物的過程,對解空間結構的認知通過「信息素」的「濃度」來表達,較好的解(路徑、節點)會吸引更多的搜索力量(螞蟻)。
ACO 本身是一種進化演算法,在調度研究中取得了一些應用,但對於實際規模的問題,通常也是束手無策,解決的關鍵在於問題本身結構的分析和利用。
⑸ 蟻群演算法是什麼
蟻群演算法,又稱螞蟻演算法,是一種用來在圖中尋找優化路徑的機率型演算法。 它由Marco Dorigo於1992年在他的博士論文中提出,其靈感來源於螞蟻在尋找食物過程中發現路徑的行為。蟻群演算法是一種模擬進化演算法,初步的研究表明該演算法具有許多優良的性質。針對PID控制器參數優化設計問題,將蟻群演算法設計的結果與遺傳演算法設計的結果進行了比較,數值模擬結果表明,蟻群演算法具有一種新的模擬進化優化方法的有效性和應用價值。
原理
設想,如果我們要為螞蟻設計一個人工智慧的程序,那麼這個程序要多麼復雜呢?首先,你要讓螞蟻能夠避開障礙物,就必須根據適當的地形給它編進指令讓他們能夠巧妙的避開障礙物,其次,要讓螞蟻找到食物,就需要讓他們遍歷空間上的所有點;再次,如果要讓螞蟻找到最短的路徑,那麼需要計算所有可能的路徑並且比較它們的大小,而且更重要的是,你要小心翼翼地編程,因為程序的錯誤也許會讓你前功盡棄。這是多麼不可思議的程序!太復雜了,恐怕沒人能夠完成這樣繁瑣冗餘的程序。
然而,事實並沒有你想得那麼復雜,上面這個程序每個螞蟻的核心程序編碼不過100多行!為什麼這么簡單的程序會讓螞蟻干這樣復雜的事情?答案是:簡單規則的涌現。事實上,每隻螞蟻並不是像我們想像的需要知道整個世界的信息,他們其實只關心很小范圍內的眼前信息,而且根據這些局部信息利用幾條簡單的規則進行決策,這樣,在蟻群這個集體里,復雜性的行為就會凸現出來。這就是人工生命、復雜性科學解釋的規律!那麼,這些簡單規則是什麼呢?
⑹ 蟻群演算法的概念,最好能舉例說明一些蟻群演算法適用於哪些問題!
概念:蟻群演算法(ant colony optimization, ACO),又稱螞蟻演算法,是一種用來在圖中尋找優化路徑的機率型演算法。它由Marco Dorigo於1992年在他的博士論文中提出,其靈感來源於螞蟻在尋找食物過程中發現路徑的行為。蟻群演算法是一種模擬進化演算法,初步的研究表明該演算法具有許多優良的性質.針對PID控制器參數優化設計問題,將蟻群演算法設計的結果與遺傳演算法設計的結果進行了比較,數值模擬結果表明,蟻群演算法具有一種新的模擬進化優化方法的有效性和應用價值
其原理:為什麼小小的螞蟻能夠找到食物?他們具有智能么?設想,如果我們要為螞蟻設計一個人工智慧的程序,那麼這個程序要多麼復雜呢?首先,你要讓螞蟻能夠避開障礙物,就必須根據適當的地形給它編進指令讓他們能夠巧妙的避開障礙物,其次,要讓螞蟻找到食物,就需要讓他們遍歷空間上的所有點;再次,如果要讓螞蟻找到最短的路徑,那麼需要計算所有可能的路徑並且比較它們的大小,而且更重要的是,你要小心翼翼的編程,因為程序的錯誤也許會讓你前功盡棄。這是多麼不可思議的程序!太復雜了,恐怕沒人能夠完成這樣繁瑣冗餘的程序
應用范圍:螞蟻觀察到的范圍是一個方格世界,螞蟻有一個參數為速度半徑(一般是3),那麼它能觀察到的范圍就是3*3個方格世界,並且能移動的距離也在這個范圍之內
引申:跟著螞蟻的蹤跡,你找到了什麼?通過上面的原理敘述和實際操作,我們不難發現螞蟻之所以具有智能行為,完全歸功於它的簡單行為規則,而這些規則綜合起來具有下面兩個方面的特點: 1、多樣性 2、正反饋 多樣性保證了螞蟻在覓食的時候不置走進死胡同而無限循環,正反饋機制則保證了相對優良的信息能夠被保存下來。我們可以把多樣性看成是一種創造能力,而正反饋是一種學習強化能力。正反饋的力量也可以比喻成權威的意見,而多樣性是打破權威體現的創造性,正是這兩點小心翼翼的巧妙結合才使得智能行為涌現出來了。 引申來講,大自然的進化,社會的進步、人類的創新實際上都離不開這兩樣東西,多樣性保證了系統的創新能力,正反饋保證了優良特性能夠得到強化,兩者要恰到好處的結合。如果多樣性過剩,也就是系統過於活躍,這相當於螞蟻會過多的隨機運動,它就會陷入混沌狀態;而相反,多樣性不夠,正反饋機制過強,那麼系統就好比一潭死水。這在蟻群中來講就表現為,螞蟻的行為過於僵硬,當環境變化了,螞蟻群仍然不能適當的調整。 既然復雜性、智能行為是根據底層規則涌現的,既然底層規則具有多樣性和正反饋特點,那麼也許你會問這些規則是哪裡來的?多樣性和正反饋又是哪裡來的?我本人的意見:規則來源於大自然的進化。而大自然的進化根據剛才講的也體現為多樣性和正反饋的巧妙結合。而這樣的巧妙結合又是為什麼呢?為什麼在你眼前呈現的世界是如此栩栩如生呢?答案在於環境造就了這一切,之所以你看到栩栩如生的世界,是因為那些不能夠適應環境的多樣性與正反饋的結合都已經死掉了,被環境淘汰了! 蟻群演算法的實現 下面的程序開始運行之後,螞蟻們開始從窩里出動了,尋找食物;他們會順著屏幕爬滿整個畫面,直到找到食物再返回窩。 其中,『F』點表示食物,『H』表示窩,白色塊表示障礙物,『+』就是螞蟻了。
具體參考http://ke..com/view/539346.htm
希望對你有幫助,謝謝。
⑺ 關於蟻群演算法的問題
第一種情況,如果都是從統一城市出發,並且按照最大概率就沒有意義了,此時不應該按照最大概率,應該是隨機概率。
第二個問題,應該是隨機選擇