1. 程式人生 > >群體智慧優化演算法

群體智慧優化演算法

群體智慧優化演算法介紹


由於在研究生期間一直研究 粒子群優化演算法(Particle Swarm Optimization),所以對其他的一些 群體智慧優化演算法(Swarm Intelligence)也是有一定的瞭解的,既然自己在這方面還算有一些自己的見解,所以,就把這些內容分享出來,讓更多的人瞭解這方面的內容,在需要用到這方面內容去做研究或者寫畢設或者做專案的過程中,能夠快速的入門。

什麼是群體智慧優化演算法

在研究生期間我研究的是粒子群優化演算法,主要將其用在目標跟蹤等方面,所以,有了介紹粒子群優化演算法的想法,但是,在介紹粒子群優化演算法之前,有必要先介紹一下群體智慧優化演算法,因為粒子群優化演算法是屬於群體智慧優化演算法中的一種比較常用的演算法。

群體智慧優化演算法的定義

定義:群體智慧優化演算法主要模擬了昆蟲、獸群、鳥群和魚群的群體行為,這些群體按照一種合作的方式尋找食物,群體中的每個成員通過學習它自身的經驗和其他成員的經驗來不斷地改變搜尋的方向。任何一種由昆蟲群體或者其他動物社會行為機制而激發設計出的演算法或分散式解決問題的策略均屬於群體智慧(Swarm Intelligence)
白話解釋

:模仿昆蟲或者一些動物的覓食或者其他行為,這些動物群體按照一中合作的方式尋找食物,不斷的交流食物資訊,能夠很快的找到更多的食物。通過對他們的行為的研究抽象出來的一種演算法,就是群體智慧優化演算法。(例如,一個個體找到了食物,就會通知其他個體來這個有食物的地方,這就是一種行為)

群體智慧優化演算法的原則

  • 鄰近原則:群體能夠進行簡單的空間和時間計算;
  • 品質原則:群體能夠響應環境中的品質因子;
  • 多樣性反應原則:群體的行動範圍不應該太窄;
  • 穩定性原則:群體不應在每次環境變化時都改變自身的行為;
  • 適應性原則:在所需代價不太高的情況下,群體能夠在適當的時候改變自身的行為。

常見的群體智慧優化演算法

群體智慧優化演算法出現後,可以說是非常的受歡迎,很多研究學者也都提出了一些自己的群體智慧優化演算法,但是,受到大家認可(應用較為廣泛)的演算法大致為:

  • 蟻群演算法-------------1992年提出
  • 粒子群優化演算法----1995年提出
  • 菌群演算法-------------2002年提出
  • 蛙跳演算法-------------2003年提出
  • 人工蜂群演算法-------2005年提出

除了幾種常見的演算法之外,還有很多很多被提出的群體智慧優化演算法,例如:螢火蟲演算法、布穀鳥演算法、蝙蝠演算法、狼群演算法、煙花演算法、合同網協議演算法等等。

挖坑

後續會對一下幾種演算法進行詳細的介紹(先挖個坑-_-)。

蟻群演算法

未完待續

粒子群優化演算法

粒子群優化演算法在1995 年由Eberhart 博士和kennedy 博士提出,源於對鳥群捕食的行為研究 。該演算法最初是受到飛鳥叢集活動的規律性啟發,進而利用群體智慧建立的一個簡化模型。粒子群演算法在對動物叢集活動行為觀察基礎上,利用群體中的個體對資訊的共享使整個群體的運動在問題求解空間中產生從無序到有序的演化過程,從而獲得最優解。未完待續(會單獨寫一篇文章詳細介紹)

菌群演算法

菌群優化演算法(BFO)是近些年來發展起來的,基於大腸桿菌覓食行為模型的一種新型群智慧演算法。它是一種簡單有效的隨機全域性優化技術。未完待續(會單獨寫一篇文章詳細介紹)

蛙跳演算法

蛙跳演算法的思想是:在一片溼地中生活著一群青蛙。溼地內離散的分佈著許多石頭,青蛙通過尋找不同的石頭進行跳躍去找到食物較多的地方。每隻青蛙個體之間通過文化的交流實現資訊的交換。每隻青蛙都具有自己的文化。每隻青蛙的文化被定義為問題的一個解。溼地的整個青蛙群體被分為不同的子群體,每個子群體有著自己的文化,執行區域性搜尋策略。在子群體中的每個個體有著自己的文化,並且影響著其他個體,也受其他個體的影響,並隨著子群體的進化而進化。當子群體進化到一定階段以後,各個子群體之間再進行思想的交流(全域性資訊交換)實現子群體間的混合運算,一直到所設定的條件滿足為止。未完待續(會單獨寫一篇文章詳細介紹)

人工蜂群演算法

人工蜂群演算法是模仿蜜蜂行為提出的一種優化方法,是叢集智慧思想的一個具體應用,它的主要特點是不需要了解問題的特殊資訊,只需要對問題進行優劣的比較,通過各人工蜂個體的區域性尋優行為,最終在群體中使全域性最優值突現出來,有著較快的收斂速度。未完待續(會單獨寫一篇文章詳細介紹)

總結

本博文對群體智慧優化演算法進行了簡單的介紹,並對幾種群體智慧優化演算法進行了簡單的描述,留著後續填坑。
如果您有任何需要,都可以加我微信,進行討論。
在這裡插入圖片描述