1. 程式人生 > 其它 >【優化求解】基於matlab蟻群演算法求解函式極值問題【含Matlab原始碼 1201期】

【優化求解】基於matlab蟻群演算法求解函式極值問題【含Matlab原始碼 1201期】

一、蟻群演算法簡介

1 引言
在自然界中各種生物群體顯現出來的智慧近幾十年來得到了學者們的廣泛關注,學者們通過對簡單生物體的群體行為進行模擬,進而提出了群智慧演算法。其中, 模擬蟻群覓食過程的蟻群優化演算法(Ant
Colony Optimization, A CO) 和模擬鳥群運動方式的粒子群演算法(ParticleS warm Optimization,PSO) 是兩種最主要的群智慧演算法。
蟻群演算法是一種源於大自然生物世界的新的仿生進化演算法,由義大利學者M.Dorigo, V.Mani ezzo和A.Color ni等人於20世紀90年代初期通過模擬自然界中螞蟻集體尋徑行為而提出的一種基於種群的啟發式隨機搜尋演算法[1].螞蟻有能力在沒有任何提示的情形下找到從巢穴到食物源的最短路徑,並且能隨環境的變化,適應性地搜尋新的路徑,產生新的選擇。其根本原因是螞蟻在尋找食物時,能在其走過的路徑上釋放一種特殊的分泌物――資訊素2

,隨著時間的推移該物質會逐漸揮發,後來的螞蟻選擇該路徑的概率與當時這條路徑上資訊素的強度成正比。當一條路徑上通過的螞蟻越來越時,其留下的資訊素也越來越多,後來螞蟻選擇該路徑的概率也就越高,從而更增加了該路徑上的資訊素強度。而強度大的資訊素會吸引更多的螞蟻,從而形成一種正反饋機制。通過這種正反饋機制,螞蟻最終可以發現最短路徑。
最早的蟻群演算法是螞蟻系統(Ant System, AS) , 研究者們根據不同的改進策略對螞蟻系統進行改進並開發了不同版本的蟻群演算法,併成功地應用於優化領域。用該方法求解旅行商(TSP) 問題、分配問
題、車間作業排程(job-shop) 問題, 取得了較好的試驗結果[3-6] 。蟻群演算法具有分散式計算、無中心控制和分散式個體之間間接通訊等特徵,易於與其他優化演算法相結合,它通過簡單個體之間的協作表現出了求解複雜問題的能力,已被廣泛應用於求解優化問題。蟻群演算法相對而言易於實現,且演算法中並不涉及複雜的數學操作,其處理過程對計算機的軟硬體要求也不高,因此對它的研究在理論和實踐中都具有重要的意義。
目前,國內外的許多研究者和研究機構都開展了對蟻群演算法理論和應用的研究,蟻群演算法已成為國際計算智慧領域關注的熱點課題。雖然目前蟻群演算法沒有形成嚴格的理論基礎,但其作為一種新興的進
化演算法已在智慧優化等領域表現出了強大的生命力。

2 蟻群演算法理論
蟻群演算法是對自然界螞蟻的尋徑方式進行模擬而得出的一種仿生演算法。螞蟻在運動過程中,能夠在它所經過的路徑上留下資訊素進行資訊傳遞,而且螞蟻在運動過程中能夠感知這種物質,並以此來指導
自己的運動方向。因此,由大量螞蟻組成的蟻群的集體行為便表現出一種資訊正反饋現象:某一路徑上走過的螞蟻越多,則後來者選擇該路徑的概率就越大[7]。
2.1真實蟻群的覓食過程
為了說明蟻群演算法的原理,先簡要介紹一下螞蟻搜尋食物的具體過程。在自然界中,蟻群在尋找食物時,它們總能找到一條從食物到巢穴之間的最優路徑。這是因為螞蟻在尋找路徑時會在路徑上釋放出
一種特殊的資訊素。蟻群演算法的資訊互動主要是通過資訊素來完成的。螞蟻在運動過程中,能夠感知這種物質的存在和強度。初始階段,環境中沒有資訊素的遺留,螞蟻尋找事物完全是隨機選擇路徑,
隨後尋找該事物源的過程中就會受到先前螞蟻所殘留的資訊素的影響,其表現為螞蟻在選擇路徑時趨向於選擇資訊素濃度高的路徑。同時,資訊素是一種揮發性化學物,會隨著時間的推移而慢慢地消逝。如果每隻螞蟻在單位距離留下的資訊素相同,那對於較短路徑上殘留的資訊素濃度就相對較高,這被後來的螞蟻選擇的概率就大,從而導致這條短路徑上走的螞蟻就越多。而經過的螞蟻越多,該路徑上殘留的資訊素就將更多,這樣使得整個螞蟻的集體行為構成了資訊素的正反饋過程,最終整個蟻群會找出最優路徑。
若螞蟻從A點出發,速度相同,食物在D點,則它可能隨機選擇路線ABD或A CD。假設初始時每條路線分配一隻螞蟻, 每個時間單位行走一步。圖5.1所示為經過8個時間單位時的情形:走路線ABD的螞蟻到達終點:而走路線A CD的螞蟻剛好走到C點, 為一半路程。

圖5.2表示從開始算起, 經過16個時間單位時的情形:走路線ABD的螞蟻到達終點後得到食物又返回了起點A,而走路線A CD的螞蟻剛好走到D點.

圖5.2螞蟻出發後經過16個時間單位時的情形
假設螞蟻每經過一處所留下的資訊素為1個單位,則經過32個時間單位後,所有開始一起出發的螞蟻都經過不同路徑從D點取得了食物。此時ABD的路線往返了2趟, 每一處的資訊素為4個單位; 而A CD的路線往返了一趟,每一處的資訊素為2個單位,其比值為2:1。
尋找食物的過程繼續進行, 則按資訊素的指導, 蟻群在ABD路線上增派一隻螞蟻(共2只) , 而A CD路線上仍然為一隻螞蟻。再經過32個時間單位後,兩條線路上的資訊素單位積累為12和4,比值為3:1。若按以上規則繼續, 蟻群在ABD路線上再增派一隻螞蟻(共3只) , 而A CD路線上仍然為一隻螞蟻。再經過32個時間單位後, 兩條線路上的資訊素單位積累為24和6,比值為4:1.若繼續進行, 則按資訊素的指導, 最終所有的螞蟻都會放棄A CD路線, 而選擇ABD路線。這也就是前面所提到的正反饋效應。

2.2人工蟻群的優化過程
基於以上真實蟻群尋找食物時的最優路徑選擇問題,可以構造人工蟻群, 來解決最優化問題, 如TSP問題。人工蟻群中把具有簡單功能的工作單元看作螞蟻。二者的相似之處在於都是優先選擇資訊素濃度大的路徑。較短路徑的資訊素濃度高,所以能夠最終被所有螞蟻選擇,也就是最終的優化結果。兩者的區別在於人工蟻群有一定的記憶能力,能夠記憶已經訪問過的節點。同時,人工蟻群再選擇下一條路徑的時候是按一定演算法規律有意識地尋找最短路徑,而不是盲目的。例如在TSP問題中, 可以預先知道當前城市到下一個目的地的距離。在TSP問題的人工蟻群演算法中, 假設m只螞蟻在圖的相鄰節點間移動,從而協作非同步地得到問題的解。每隻螞蟻的一步轉移概率由圖中的每條邊上的兩類引數決定:一是資訊素值,也稱資訊素痕跡:二是可見度,即先驗值。
資訊素的更新方式有兩種:一是揮發,也就是所有路徑上的資訊素以一定的比率減少,模擬自然蟻群的資訊素隨時間揮發的過程;二是增強,給評價值“好”(有螞蟻走過)的邊增加資訊素。螞蟻向下一個目標的運動是通過一個隨機原則來實現的,也就是運用當前所在節點儲存的資訊,計算出下一步可達節點的概率,並按此概率實現一步移動,如此往復,越來越接近最優解。螞蟻在尋找過程中,或在找到一個解後,會評估該解或解的一部分的優化程度,並把評價資訊儲存在相關連線的資訊素中。

2.3真實螞蟻與人工螞蟻的異同
蟻群演算法是一種基於群體的、用於求解複雜優化問題的通用搜索技術。與真實螞蟻通過外資訊的留存、跟隨行為進行間接通訊相似,蟻群演算法中一群簡單的人工螞蟻通過資訊素進行間接通訊,並利用該資訊和與問題相關的啟發式資訊逐步構造問題的解。
人工螞蟻具有雙重特性:一方面,它們是真實螞蟻的抽象,具有真實螞蟻的特性:另一方面,它們還有一些真實螞蟻沒有的特性,這些新的特性使人工螞蟻在解決實際優化問題時,具有更好地搜尋較優解的能力。
人工螞蟻與真實螞蟻的相同點為:
(1)都是一群相互協作的個體。與真實蟻群一樣,蟻群演算法由一群人工螞蟻組成,人工螞蟻之間通過同步/非同步協作來尋找問題的最優解。雖然單隻人工螞蟻可以構造出問題的解,但只有當多隻人工螞蟻
通過相互協作,才能發現問題的最優(次優)解。人工螞蟻個體間通過寫/讀問題的狀態變數來進行協作。
(2)都使用資訊素的跡和蒸發機制。如真實螞蟻一樣,人工螞蟻通過改變所訪問過的問題的數字狀態資訊來進行間接的協作。在蟻群演算法中,資訊素是人工螞蟻之間進行交流的唯一途徑。這種通訊方式在群體知識的利用上起到了至關重要的作用。另外,蟻群演算法還用到了蒸發機制,這一點對應於真實螞蟻中資訊素的蒸發現象。蒸發機制使蟻群逐漸忘記過去的歷史,使後來的螞蟻在搜尋中較少受到過去較差解的影響,從而更好地指導螞蟻的搜尋方向。
(3)搜尋最短路徑與區域性移動。人工螞蟻和真實螞蟻具有相同的任務,即以區域性移動的方式構造出從原點(蟻巢)到目的點(食物源)之間的最短路徑。
(4)隨機狀態轉移策略。人工螞蟻和真實螞蟻都按照概率決策規則從一種狀態轉移到另一種相鄰狀態。其中的概率決策規則是與問題相關的資訊和區域性環境資訊的函式。在狀態轉移過程中,人工螞蟻和
真實螞蟻都只用到了局部資訊,沒有使用前瞻策略來預見將來的狀態。
人工螞蟻和真實螞蟻的不同點為:
(1)人工螞蟻生活在離散的時間,從一種離散狀態到另一種離散狀態。
(2)人工螞蟻具有內部狀態,即人工螞蟻具有一定的記憶能力,能記住自己走過的地方。
(3)人工螞蟻釋放資訊素的數量是其生成解的質量的函式。
(4)人工螞蟻更新資訊素的時機依賴於特定的問題。例如,大多數人工螞蟻僅僅在螞蟻找到一個解之後才更新路徑上的資訊素。

2.4蟻群演算法的特點
蟻群演算法是通過對生物特徵的模擬得到的一種優化演算法,它本身具有很多優點:
(1)蟻群演算法是一種本質上的並行演算法。每隻螞蟻搜尋的過程彼此獨立,僅通過資訊激素進行通訊。所以蟻群演算法可以看作一個分散式的多智慧體系統,它在問題空間的多點同時開始獨立的解搜尋,不僅增加了演算法的可靠性,也使得演算法具有較強的全域性搜尋能力。
(2)蟻群演算法是一種自組織的演算法。所謂自組織,就是組織力或組織指令來自於系統的內部,以區別於其他組織。如果系統在獲得空間、時間或者功能結構的過程中,沒有外界的特定干預,就可以說系統是自組織的。簡單地說,自組織就是系統從無序到有序的變化過程。
(3)蟻群演算法具有較強的魯棒性。相對於其他演算法,蟻群演算法對初始路線的要求不高,即蟻群演算法的求解結果不依賴於初始路線的選擇,而且在搜尋過程中不需要進行人工的調整。此外,蟻群演算法的參
數較少,設定簡單,因而該演算法易於應用到組合優化問題的求解。
(4)蟻群演算法是一種正反饋演算法。從真實螞蟻的覓食過程中不難看出,螞蟻能夠最終找到最優路徑,直接依賴於其在路徑上資訊素的堆積,而資訊素的堆積是一個正反饋的過程。正反饋是蟻群演算法的重
要特徵,它使得演算法進化過程得以進行。

3 基本蟻群演算法及其流程






4 改進的蟻群演算法
針對基本蟻群演算法一般需要較長的搜尋時間和容易出現停滯現象等不足,很多學者在此基礎上提出改進演算法,提高了演算法的效能和效率。
4.1精英螞蟻系統

4.2 最大最小螞蟻系統
為了克服基本蟻群系統中可能出現的停滯現象, Thomas Stutz le等人提出了最大-最小(MAX-MIN) 蟻群系統[10] , 主要有三方面的不同:
(1)與蟻群系統相似,為了充分利用迴圈最優解和目前為止找出的最優解,在每次迴圈之後,只有一隻螞蟻進行資訊素更新。這隻螞蟻可能是找出當前迴圈中最優解的螞蟻(迭代最優的螞蟻),也可能是找出從實驗開始以來最優解的螞蟻(全域性最優的螞蟻);而在螞蟻系統中,對所有螞蟻走過的路徑都進行資訊素更新。
(2) 為避免搜尋的停滯, 在每個解元素(TSP中是每條邊) 上的資訊素軌跡量的值域範圍被限制在[min,Tmax] 區間內; 而在螞蟻系統中資訊素軌跡量不被限制,使得一些路徑上的軌跡量遠高於其他邊,從而螞蟻都沿著同條路徑移動,阻止了進一步搜尋更優解的行為。
(3)為使螞蟻在演算法的初始階段能夠更多地搜尋新的解決方案,將資訊素初始化為tmax;而在螞蟻系統中沒有這樣的設定。

4.3基於排序的蟻群演算法
基於排序的蟻群演算法(Rank-BasedAntSystem)是Bull n heimer、Hartl和Strauss等人提出的[11] 。在該演算法中, 每個螞蟻釋放的資訊素按照它們不同的等級進行揮發,另外類似於精英蟻群演算法,精英螞蟻在每次迴圈中釋放更多的資訊素。在修改資訊素路徑前,螞蟻按照它們的旅行長度進行排名(短的靠前),螞蟻釋放資訊素的量要和螞蟻的排名相乘。在每次迴圈中,只有排名前w-1位的螞蟻和精英螞蟻才允許在路徑上釋放資訊素。己知的最優路徑給以最強的反饋,和係數w相乘;而排名第r位的螞蟻則乘以係數“w-(≥0)。資訊素如下式所示:

4.4自適應蟻群演算法
基本蟻群系統讓資訊量最大的路徑對每次路徑的選擇和資訊量的更新起主要作用,但由於強化了最優資訊反饋,就可能導致“早熟”停滯現象。而最大最小蟻群演算法將各個路徑上的資訊量的更新限定在固定的範圍內,這雖然在一定程度上避免了“早熟”停滯現象,但在解分佈較分散時會導致收斂速度變慢。以上方法的共同缺點在於:它們都按一種固定不變的模式去更新資訊量和確定每次路徑的選
擇概率。
為了克服以上演算法的不足, L.M.Gambardella和M.Dorigo提出了基於調節資訊素揮發度的自適應蟻群演算法[12]。相對基本蟻群演算法的改進如下:
(1)在每次迴圈結束後求出最優解,並將其保留。
(2)自適應地改變p值。當問題規模比較大時,由於資訊量的揮發係數p的存在,使那些從未被搜尋到的資訊量會減小到接近於0,降低了演算法的全域性搜尋能力;當p過大且解的資訊量增大時,以前搜尋過的解被選擇的可能性過大,也會影響到演算法的全域性搜尋能力;通過減小p雖然可以提高演算法的全域性搜尋能力,但又會使演算法的收斂速度降低。因此可以自適應地改變p的值。p的初始值p(to)=1;當演算法求得的最優值在N次迴圈內沒有明顯改進時,p減為:

5 關鍵引數說明
在蟻群演算法中,不僅資訊素和啟發函式乘積以及螞蟻之間的合作行為會嚴重影響到演算法的收斂性,蟻群演算法的引數也是影響其求解效能和效率的關鍵因素。資訊素啟發式因子α、期望啟發因子β、資訊
素蒸發係數p、資訊素強度Q、螞蟻數目m等都是非常重要的引數,其選取方法和選取原則直接影響到蟻群演算法的全域性收斂性和求解效率。
資訊素啟發式因子a
資訊素啟發式因子a代表資訊量對是否選擇當前路徑的影響程度,即反映螞蟻在運動過程中所積累的資訊量在指導蟻群搜尋中的相對重要程度。a的大小反映了蟻群在路徑搜尋中隨機性因素作用的強度,其值越大,螞蟻在選擇以前走過的路徑的可能性就越大,搜尋的隨機性就會減弱;而當啟發式因子a的值過小時,則易使蟻群的搜尋過早陷於區域性最優。根據經驗,資訊素啟發式因子a取值範圍一般為[1,4]時,蟻群演算法的綜合求解效能較好。
期望啟發因子β
期望啟發因子β表示在搜尋時路徑上的資訊素在指導螞蟻選擇路徑時的嚮導性,它的大小反映了蟻群在搜尋最優路徑的過程中的先驗性和確定性因素的作用強度。期望啟發因子β的值越大,螞蟻在某個區域性點上選擇區域性最短路徑的可能性就越大,雖然這個時候演算法的收斂速度得以加快,但蟻群搜尋最優路徑的隨機性減弱,而此時搜尋易於陷入區域性最優解。根據經驗,期望啟發因子β取值範圍一般為[3,
5],此時蟻群演算法的綜合求解效能較好。實際上,資訊素啟發式因子α和期望啟發因子β是一對關聯性很強的引數:蟻群演算法的全域性尋優效能,首先要求蟻群的搜尋過程必須要有很強的隨機性;而蟻群演算法的快速收斂效能,又要求蟻群的搜尋過程必須要有較高的確定性。因此,兩者對蟻群演算法效能的影響和作用是相互配合、密切相關的,演算法要獲得最優解,就必須在這二者之間選取一個平衡點,只有正確選定它們之間的搭配關係,才能避免在搜尋過程中出現過早停滯或陷入區域性最優等情況的發生。
資訊素蒸發係數p
蟻群演算法中的人工螞蟻是具有記憶功能的,隨著時間的推移,以前留下的資訊素將會逐漸消逝,蟻群演算法與其他各種仿生進化演算法一樣,也存在著收斂速度慢、容易陷入區域性最優解等缺陷,而資訊素蒸
發係數p大小的選擇將直接影響到整個蟻群演算法的收斂速度和全域性搜尋效能。在蟻群演算法的抽象模型中,p表示資訊素蒸發係數,1-p則表示資訊素永續性係數。因此,p的取值範圍應該是0~1之間的一個
數,表示資訊素的蒸發程度,它實際上反映了螞蟻群體中個體之間相互影響的強弱。p過小時,則表示以前搜尋過的路徑被再次選擇的可能性過大,會影響到演算法的隨機效能和全域性搜尋能力:p過大時,說
明路徑上的資訊素揮發的相對變多,雖然可以提高演算法的隨機搜尋效能和全域性搜尋能力,但過多無用搜索操作勢必會降低演算法的收斂速度。
螞蟻數目m
蟻群演算法是一種隨機搜尋演算法,與其他模擬進化演算法一樣,通過多個候選解組成的群體進化過程來尋求最優解,在該過程中不僅需要每個個體的自適應能力,更需要群體之間的相互協作能力。蟻群在搜
索過程中之所以表現出複雜有序的行為,是因為個體之間的資訊交流與相互協作起著至關重要的作用。
對於旅行商問題,單個螞蟻在一次迴圈中所經過的路徑,表現為問題可行解集中的一個解,m只螞蟻在一次迴圈中所經過的路徑,則表現為問題解集中的一個子集。顯然,子集增大(即螞蟻數量增多),可以提高蟻群演算法的全域性搜尋能力以及演算法的穩定性;但螞蟻數目增大後,會使大量的曾被搜尋過的解(路徑)上的資訊素的變化趨於平均,資訊正反饋的作用不明顯,雖然搜尋的隨機性得到了加強,但收斂速度減慢;反之,子集較小(螞蟻數量少),特別是當要處理的問題規模比較大時,會使那些從來未被搜尋到的解(路徑)上的資訊素減小到接近於0,搜尋的隨機性減弱,雖然收斂速度加快了,但會使演算法的全域性效能降低,演算法的穩定性差,容易出現過早停滯現象。m一般取10~50.
資訊素強度Q對演算法效能的影響
在蟻群演算法中,各個引數的作用實際上是緊密聯絡的,其中對演算法效能起著主要作用的是資訊啟發式因子α、期望啟發式因子β和資訊素揮發因子p這三個引數,總資訊量(對演算法效能的影響有賴於上述三個引數的選取, 以及演算法模型的選取。例如, 在ant-cycle模型和ant-quantity模型中, 總資訊量4所起的作用顯然是有很大差異的, 即隨著問題規模的不同,其影響程度也將不同。相關人員研究結果表
明:總資訊量Q對ant-cycle模型蟻群演算法的效能沒有明顯的影響。因此,在演算法引數的選擇上,引數Q不必作特別的考慮,可以任意選取。
最大進化代數G
最大進化代數6是表示蟻群演算法執行結束條件的一個引數,表示蟻群演算法執行到指定的進化代數之後就停止執行,並將當前群體中的最佳個體作為所求問題的最優解輸出。一般6取100~500。

二、案例及完整原始碼

1 案例

2 完整程式碼

%%%%%%%%%%%%%%%%%%%%蟻群演算法求函式極值%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;               %清除所有變數
close all;               %清圖
clc;                     %清屏
m=20;                    %螞蟻個數
G_max=200;               %最大迭代次數
Rho=0.9;                 %資訊素蒸發係數
P0=0.2;                  %轉移概率常數
XMAX= 5;                 %搜尋變數x最大值
XMIN= -5;                %搜尋變數x最小值
YMAX= 5;                 %搜尋變數y最大值
YMIN= -5;                %搜尋變數y最小值
%%%%%%%%%%%%%%%%%隨機設定螞蟻初始位置%%%%%%%%%%%%%%%%%%%%%%
for i=1:m
    X(i,1)=(XMIN+(XMAX-XMIN)*rand);
    X(i,2)=(YMIN+(YMAX-YMIN)*rand);
    Tau(i)=func(X(i,1),X(i,2));
end
step=0.1;                %區域性搜尋步長
for NC=1:G_max
    lamda=1/NC;
    [Tau_best,BestIndex]=min(Tau);
    %%%%%%%%%%%%%%%%%%計算狀態轉移概率%%%%%%%%%%%%%%%%%%%%
    for i=1:m
        P(NC,i)=(Tau(BestIndex)-Tau(i))/Tau(BestIndex);
    end
    %%%%%%%%%%%%%%%%%%%%%%位置更新%%%%%%%%%%%%%%%%%%%%%%%%
    for i=1:m
           %%%%%%%%%%%%%%%%%區域性搜尋%%%%%%%%%%%%%%%%%%%%%%
        if P(NC,i)<P0
            temp1=X(i,1)+(2*rand-1)*step*lamda;
            temp2=X(i,2)+(2*rand-1)*step*lamda;
        else
            %%%%%%%%%%%%%%%%全域性搜尋%%%%%%%%%%%%%%%%%%%%%%%
             temp1=X(i,1)+(XMAX-XMIN)*(rand-0.5);
             temp2=X(i,2)+(YMAX-YMIN)*(rand-0.5);
        end
        %%%%%%%%%%%%%%%%%%%%%邊界處理%%%%%%%%%%%%%%%%%%%%%%%
        if temp1<XMIN
            temp1=XMIN;
        end
        if temp1>XMAX
            temp1=XMAX;
        end
        if temp2<YMIN
            temp2=YMIN;
        end
        if temp2>YMAX
            temp2=YMAX;
        end
        %%%%%%%%%%%%%%%%%%螞蟻判斷是否移動%%%%%%%%%%%%%%%%%%
        if func(temp1,temp2)<func(X(i,1),X(i,2))
            X(i,1)=temp1;
            X(i,2)=temp2;
        end
    end
    %%%%%%%%%%%%%%%%%%%%%%%更新資訊素%%%%%%%%%%%%%%%%%%%%%%%
    for i=1:m
        Tau(i)=(1-Rho)*Tau(i)+func(X(i,1),X(i,2));
    end
    [value,index]=min(Tau);
    trace(NC)=func(X(index,1),X(index,2));
end
[min_value,min_index]=min(Tau);
minX=X(min_index,1);                           %最優變數
minY=X(min_index,2);                           %最優變數
minValue=func(X(min_index,1),X(min_index,2));  %最優值
figure
plot(trace)
xlabel('搜尋次數');
ylabel('適應度值');
title('適應度進化曲線')
%%%%%%%%%%%%%%%%%%%%%%%適應度函式%%%%%%%%%%%%%%%%%%%%%%%%
function result=func1(x)
summ=sum(x.^2);
result=summ;

三、解題過程及執行結果

1 解題過程

2 執行結果

四、matlab版本及參考文獻

1 matlab版本
2014a

2 參考文獻
[1] 包子陽,餘繼周,楊杉.智慧優化演算法及其MATLAB例項(第2版)[M].電子工業出版社,2016.
[2]張巖,吳水根.MATLAB優化演算法原始碼[M].清華大學出版社,2017.