當前位置:編程學習大全網 - 編程語言 - 如何用蟻群算法來計算固定時間內走更多的城市且路程最短

如何用蟻群算法來計算固定時間內走更多的城市且路程最短

概念:蟻群算法(ant colony optimization,ACO),又稱螞蟻算法,是壹種用來在圖中尋找優化路徑的機率型算法.它由Marco Dorigo於1992年在他的博士論文中提出,其靈感來源於螞蟻在尋找食物過程中發現路徑的行為.蟻群算法是壹種模擬進化算法,初步的研究表明該算法具有許多優良的性質.針對PID控制器參數優化設計問題,將蟻群算法設計的結果與遺傳算法設計的結果進行了比較,數值仿真結果表明,蟻群算法具有壹種新的模擬進化優化方法的有效性和應用價值

其原理:為什麽小小的螞蟻能夠找到食物?他們具有智能麽?設想,如果我們要為螞蟻設計壹個人工智能的程序,那麽這個程序要多麽復雜呢?首先,妳要讓螞蟻能夠避開障礙物,就必須根據適當的地形給它編進指令讓他們能夠巧妙的避開障礙物,其次,要讓螞蟻找到食物,就需要讓他們遍歷空間上的所有點;再次,如果要讓螞蟻找到最短的路徑,那麽需要計算所有可能的路徑並且比較它們的大小,而且更重要的是,妳要小心翼翼的編程,因為程序的錯誤也許會讓妳前功盡棄.這是多麽不可思議的程序!太復雜了,恐怕沒人能夠完成這樣繁瑣冗余的程序

應用範圍:螞蟻觀察到的範圍是壹個方格世界,螞蟻有壹個參數為速度半徑(壹般是3),那麽它能觀察到的範圍就是3*3個方格世界,並且能移動的距離也在這個範圍之內

引申:跟著螞蟻的蹤跡,妳找到了什麽?通過上面的原理敘述和實際操作,我們不難發現螞蟻之所以具有智能行為,完全歸功於它的簡單行為規則,而這些規則綜合起來具有下面兩個方面的特點:1、多樣性 2、正反饋 多樣性保證了螞蟻在覓食的時候不置走進死胡同而無限循環,正反饋機制則保證了相對優良的信息能夠被保存下來.我們可以把多樣性看成是壹種創造能力,而正反饋是壹種學習強化能力.正反饋的力量也可以比喻成權威的意見,而多樣性是打破權威體現的創造性,正是這兩點小心翼翼的巧妙結合才使得智能行為湧現出來了.引申來講,大自然的進化,社會的進步、人類的創新實際上都離不開這兩樣東西,多樣性保證了系統的創新能力,正反饋保證了優良特性能夠得到強化,兩者要恰到好處的結合.如果多樣性過剩,也就是系統過於活躍,這相當於螞蟻會過多的隨機運動,它就會陷入混沌狀態;而相反,多樣性不夠,正反饋機制過強,那麽系統就好比壹潭死水.這在蟻群中來講就表現為,螞蟻的行為過於僵硬,當環境變化了,螞蟻群仍然不能適當的調整.既然復雜性、智能行為是根據底層規則湧現的,既然底層規則具有多樣性和正反饋特點,那麽也許妳會問這些規則是哪裏來的?多樣性和正反饋又是哪裏來的?我本人的意見:規則來源於大自然的進化.而大自然的進化根據剛才講的也體現為多樣性和正反饋的巧妙結合.而這樣的巧妙結合又是為什麽呢?為什麽在妳眼前呈現的世界是如此栩栩如生呢?答案在於環境造就了這壹切,之所以妳看到栩栩如生的世界,是因為那些不能夠適應環境的多樣性與正反饋的結合都已經死掉了,被環境淘汰了!蟻群算法的實現 下面的程序開始運行之後,螞蟻們開始從窩裏出動了,尋找食物;他們會順著屏幕爬滿整個畫面,直到找到食物再返回窩.其中,‘F’點表示食物,‘H’表示窩,白色塊表示障礙物,‘+’就是螞蟻了.

  • 上一篇:廴這個偏旁怎麽讀
  • 下一篇:當下流行的兩種編程語言
  • copyright 2024編程學習大全網