Ⅰ 蟻群演算法求解TSP問題的源程序及簡要說明
該程序試圖對具有31個城市的VRP進行求解,已知的最優解為784.1,我用該程序只能優化到810左右,應該是陷入局部最優,但我不知問題出在什麼地方。請用過蟻群演算法的高手指教。
蟻群演算法的matlab源碼,同時請指出為何不能優化到已知的最好解
%
%
% the procere of ant colony algorithm for VRP
%
% % % % % % % % % % %
%initialize the parameters of ant colony algorithms
load data.txt;
d=data(:,2:3);
g=data(:,4);
m=31; % 螞蟻數
alpha=1;
belta=4;% 決定tao和miu重要性的參數
lmda=0;
rou=0.9; %衰減系數
q0=0.95;
% 概率
tao0=1/(31*841.04);%初始信息素
Q=1;% 螞蟻循環一周所釋放的信息素
defined_phrm=15.0; % initial pheromone level value
QV=100; % 車輛容量
vehicle_best=round(sum(g)/QV)+1; %所完成任務所需的最少車數
V=40;
% 計算兩點的距離
for i=1:32;
for j=1:32;
dist(i,j)=sqrt((d(i,1)-d(j,1))^2+(d(i,2)-d(j,2))^2);
end;
end;
%給tao miu賦初值
for i=1:32;
for j=1:32;
if i~=j;
%s(i,j)=dist(i,1)+dist(1,j)-dist(i,j);
tao(i,j)=defined_phrm;
miu(i,j)=1/dist(i,j);
end;
end;
end;
for k=1:32;
for k=1:32;
deltao(i,j)=0;
end;
end;
best_cost=10000;
for n_gen=1:50;
print_head(n_gen);
for i=1:m;
%best_solution=[];
print_head2(i);
sumload=0;
cur_pos(i)=1;
rn=randperm(32);
n=1;
nn=1;
part_sol(nn)=1;
%cost(n_gen,i)=0.0;
n_sol=0; % 由螞蟻產生的路徑數量
M_vehicle=500;
t=0; %最佳路徑數組的元素數為0
while sumload<=QV;
for k=1:length(rn);
if sumload+g(rn(k))<=QV;
gama(cur_pos(i),rn(k))=(sumload+g(rn(k)))/QV;
A(n)=rn(k);
n=n+1;
end;
end;
fid=fopen('out_customer.txt','a+');
fprintf(fid,'%s %i\t','the current position is:',cur_pos(i));
fprintf(fid,'\n%s','the possible customer set is:')
fprintf(fid,'\t%i\n',A);
fprintf(fid,'------------------------------\n');
fclose(fid);
p=compute_prob(A,cur_pos(i),tao,miu,alpha,belta,gama,lmda,i);
maxp=1e-8;
na=length(A);
for j=1:na;
if p(j)>maxp
maxp=p(j);
index_max=j;
end;
end;
old_pos=cur_pos(i);
if rand(1)<q0
cur_pos(i)=A(index_max);
else
krnd=randperm(na);
cur_pos(i)=A(krnd(1));
bbb=[old_pos cur_pos(i)];
ccc=[1 1];
if bbb==ccc;
cur_pos(i)=A(krnd(2));
end;
end;
tao(old_pos,cur_pos(i))=taolocalupdate(tao(old_pos,cur_pos(i)),rou,tao0);%對所經弧進行局部更新
sumload=sumload+g(cur_pos(i));
nn=nn+1;
part_sol(nn)=cur_pos(i);
temp_load=sumload;
if cur_pos(i)~=1;
rn=setdiff(rn,cur_pos(i));
n=1;
A=[];
end;
if cur_pos(i)==1; % 如果當前點為車場,將當前路徑中的已訪問用戶去掉後,開始產生新路徑
if setdiff(part_sol,1)~=[];
n_sol=n_sol+1; % 表示產生的路徑數,n_sol=1,2,3,..5,6...,超過5條對其費用加上車輛的派遣費用
fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'條路徑是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s','當前的用戶需求量是:');
fprintf(fid,'%i\n',temp_load);
fprintf(fid,'------------------------------\n');
fclose(fid);
% 對所得路徑進行路徑內3-opt優化
final_sol=exchange(part_sol);
for nt=1:length(final_sol); % 將所有產生的路徑傳給一個數組
temp(t+nt)=final_sol(nt);
end;
t=t+length(final_sol)-1;
sumload=0;
final_sol=setdiff(final_sol,1);
rn=setdiff(rn,final_sol);
part_sol=[];
final_sol=[];
nn=1;
part_sol(nn)=cur_pos(i);
A=[];
n=1;
end;
end;
if setdiff(rn,1)==[];% 產生最後一條終點不為1的路徑
n_sol=n_sol+1;
nl=length(part_sol);
part_sol(nl+1)=1;%將路徑的最後1位補1
% 對所得路徑進行路徑內3-opt優化
final_sol=exchange(part_sol);
for nt=1:length(final_sol); % 將所有產生的路徑傳給一個數組
temp(t+nt)=final_sol(nt);
end;
cost(n_gen,i)=cost_sol(temp,dist)+M_vehicle*(n_sol-vehicle_best); %計算由螞蟻i產生的路徑總長度
for ki=1:length(temp)-1;
deltao(temp(ki),temp(ki+1))=deltao(temp(ki),temp(ki+1))+Q/cost(n_gen,i);
end;
if cost(n_gen,i)<best_cost;
best_cost=cost(n_gen,i);
old_cost=best_cost;
best_gen=n_gen; % 產生最小費用的代數
best_ant=i; %產生最小費用的螞蟻
best_solution=temp;
end;
if i==m; %如果所有螞蟻均完成一次循環,,則用最佳費用所對應的路徑對弧進行整體更新
for ii=1:32;
for jj=1:32;
tao(ii,jj)=(1-rou)*tao(ii,jj);
end;
end;
for kk=1:length(best_solution)-1;
tao(best_solution(kk),best_solution(kk+1))=tao(best_solution(kk),best_solution(kk+1))+deltao(best_solution(kk),best_solution(kk+1));
end;
end;
fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'路徑是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s %i\n','當前的用戶需求量是:',temp_load);
fprintf(fid,'%s %f\n','總費用是:',cost(n_gen,i));
fprintf(fid,'------------------------------\n');
fprintf(fid,'%s\n','最終路徑是:');
fprintf(fid,'%i-',temp);
fprintf(fid,'\n');
fclose(fid);
temp=[];
break;
end;
end;
end;
end;
我現在也在研究它,希望能共同進步.建義可以看一下段海濱的關於蟻群演算法的書.講的不錯,李士勇的也可以,還有一本我在圖書館見過,記不得名字了.
Ⅱ 已親測:最優化演算法的核心思想與程序例子
蒙特卡洛: 大量隨機抽樣下的比對,最後結果就是在當前抽樣數量下篩選出的一定是最想要的那個結果。舉例:假如籃子里有1000個蘋果(你定的測試集),讓你 每次閉著眼睛找一個最大的,可以不限制挑選次數;於是,你可以閉著眼隨機拿了一個,然後再隨機拿一個與第一個比,留下大的;再隨機拿一個,與前次留下的比較,又 可以留下大的;循環往復這樣:拿的次數越多,挑出最大蘋果的可能性也就越大!但除非你把1000個蘋果都挑一遍,否則你無法肯定最終挑出來的就是最大的一個。如果有 10000個蘋果的話,繼續如此說不定就能找到更大的!
模擬退火 :「漸漸」清楚自己的目標是什麼!並不斷朝「越發」明確的目標邁進,「越來越」不被誘惑干擾。舉例:為了找出地球上最高的山,一隻兔子在開始並沒有 合適的策略,它隨機地跳了很長時間!在這期間,它可能走向高處,也可能踏入平地或溝壑。但是,隨著時間的流逝,它「漸漸清醒」! 並「直直地」朝著最高的方向跳去, 最後就到達了珠穆朗瑪峰。
粒子群 :信息的社會共享,以一個團隊的形式來搜索!團隊里成員信息共享,共同進步;避免一個人工作時出現目光短淺,沒有全局意識。舉例:就像下圍棋,只 專注於一個角落的戰斗不一定能獲取最終的勝利,只有放眼全局,把所有己方的棋子都盤活,相互間彼此幫助,才能獲得最後勝利。
蟻群 :和粒子群演算法有些相似,都是靠團隊的力量共同去找目標!蟻群演算法中特殊的是它的"信息素"揮發! 這個效果是其他演算法中沒有的!
以上所有的最優化演算法都很難做到極高的精度,這是必然的: 一是 因為全局搜索已經耗費了大量的時間和資源,再過分強調精度有些不經濟; 二是 因為全局搜索得到的最值可以理解為一精確最值的一個准確范圍!即進入這個范圍再進行精確的搜索一定可以找到精確最值;但是,全局最優的核心是隨機/概率,當進入一個准確范圍時,這個范圍肯定是很小的,如果之後精確搜索還用全局搜索的概率參數(此時來說波動范圍太大了),很可能又會跳出這個好不容易找到的精確區域!
因此: 全局最優演算法與局部最優演算法是要相結合的 !全局最優演算法負責劃定最值所在的一個精確的、較小的范圍內,即告訴局部最優演算法在這個范圍內繼續找一定可以找到精確解;局部最優演算法按照較小的步長、較高的精度繼續搜索精確最值。
常用全局最優演算法:蒙特卡洛(MC)、模擬退火(SA)、粒子群(PSO)、蟻群(AG);
常用局部最優演算法:梯度下降法、牛頓法、阻尼牛頓法、共軛梯度法;
推薦搭配1:蒙特卡洛
推薦搭配2:粒子群 + 梯度下降
推薦搭配3:蟻群 + 梯度下降 + 重檢機制
以上提到演算法的 「程序 + 詳細使用說明」 參考以下地址:
優化演算法
Ⅲ 人工智慧導論蟻群優化演算法的尋優過程包含哪幾個階段尋優的准則有哪些
蟻群優化演算法的尋優過程包衡清敗咐顫含以下幾個階段:
1. 初始化:初始化螞蟻的位置和初始信息素濃度。
2. 路徑選擇:每隻螞蟻根據信息素濃度選擇路徑。
3. 更新信息素:每隻螞蟻在路程中釋放信息素,路徑上信息素濃度增加。
4. 更新最優路徑:將經過最短路徑的螞蟻留下的信息素濃度增加。
5. 改變路徑:增加路徑上信息素的影響,使得下一次選擇更優路徑的概率更大。
尋優的准則主要有兩個:
1. 最短路徑准則:目標是找到一正笑條路徑使得其總距離最短。
2. 最大流准則:目標是使得網路中的最大流量最大化。
Ⅳ matlab蟻群演算法路徑優化
你用D保存了隨機點,D的標號就是對應隨機點
Ⅳ 蟻群演算法的內容
蟻群演算法又稱螞蟻演算法,是一種用來在圖中尋找優化路徑的機率型演算法。它由Marco Dorigo於1992年在他的博士論文中提出,其靈感來源於螞蟻在尋找食物過程中發現路徑的行為。蟻群演算法是一種模擬進化演算法,初步的研究表明該演算法具有許多優良的性質.針對PID控制器參數優化設計問題,將蟻群演算法設計的結果與遺傳演算法設計的結果進行了比較,數值模擬結果表明,蟻群演算法具有一種新的模擬進化優化方法的有效性和應用價值。
神經網路
思維學普遍認為,人類大腦的思維分為抽象(邏輯)思維、形象(直觀)思維和靈感(頓悟)思維三種基本方式。
邏輯性的思維是指根據邏輯規則進行推理的過程;它先將信息化成概念,並用符號表示,然後,根據符號運算按串列模式進行邏輯推理;這一過程可以寫成串列的指令,讓計算機執行。然而,直觀性的思維是將分布式存儲的信息綜合起來,結果是忽然間產生想法或解決問題的辦法。這種思維方式的根本之點在於以下兩點:1.信息是通過神經元上的興奮模式分布儲在網路上;2.信息處理是通過神經元之間同時相互作用的動態過程來完成的。
人工神經網路就是模擬人思維的第二種方式。這是一個非線性動力學系統,其特色在於信息的分布式存儲和並行協同處理。雖然單個神經元的結構極其簡單,功能有限,但大量神經元構成的網路系統所能實現的行為卻是極其豐富多彩的。
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。目前,主要的研究工作集中在以下幾個方面:
(1)生物原型研究。從生理學、心理學、解剖學、腦科學、病理學等生物科學方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。
(2)建立理論模型。根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。
(3)網路模型與演算法研究。在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機饃擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。
(4)人工神經網路應用系統。在網路模型與演算法研究的基礎上,利用人工神經網路組成實際的應用系統,例如,完成某種信號處理或模式識別的功能、構作專家系統、製成機器人等等。
縱觀當代新興科學技術的發展歷史,人類在征服宇宙空間、基本粒子,生命起源等科學技術領域的進程中歷經了崎嶇不平的道路。我們也會看到,探索人腦功能和神經網路的研究將伴隨著重重困難的克服而日新月異。
遺傳演算法,是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法,它最初由美國Michigan大學J.Holland教授於1975年首先提出來的,並出版了頗有影響的專著《Adaptation in Natural and Artificial Systems》,GA這個名稱才逐漸為人所知,J.Holland教授所提出的GA通常為簡單遺傳演算法(SGA)。
Ⅵ 蟻群優化演算法的目錄
1.1 組合優化與計算復雜性
1.2 來自自然界的幾類優化方法 2.1 基本思想
2.2研究概況 3.1 TSP概述
3.2 經典方法
3.3 遺傳演算法與模擬退火法
3.4蟻群演算法
3.5 元胞蟻群演算法及其收斂性 4.1 瓶頸TSP及其求解
4.2 最小比率TSP及其求解
4.3 時間約束TSP及其求解
4.4 多目標TSP及其求解 5.1 VRP概述
5.2 CVRP及其求解
5.3 多目標VRP及其求解
5.4 VRPTW及其求解
5.5 VRPSTW及其求解
5.6 FVRP及其求解 6.1 度約束最小樹問題及其求解
6.2 Steiner最小樹問題及其求解
6.3 Min-Max度最優樹問題與多目標最小樹問題 7.1 0-1規劃問題及其求解
7.2 背包問題及其求解
7.3 多目標0-1規劃問題及其求解
7.4 一般整數規劃問題及其求解 8.1 基本蟻群演算法
8.2 元胞蟻群演算法
8.3 平面選址問題及其求解
8.4 多目標優化問題及其求解 9.1 二次分配問題及其求解
9.2 圖著色問題及其求解
9.3 多目標最短路及其求解 附錄 中國144城鋒衡市相對坐標數據
後記
《運籌與管銀侍做理科談空學叢書》已出版書目
Ⅶ 蟻群演算法解決TSP問題,最優解是多少,參數如何選擇
概念:蟻群演算法(ant colony optimization, ACO),又稱螞蟻演算法,是一種用來在圖中尋找優化路徑的機率型演算法。它由Marco Dorigo於1992年在他的博士論文中提出,其靈感來源於螞蟻在尋找食物過程中發現路徑的行為。蟻群演算法是一種模擬進化演算法,初步的研究表明該演算法具有許多優良的性質.針對PID控制器參數優化設計問題,將蟻群演算法設計的結果與遺傳演算法設計的結果進行了比較,數值模擬結果表明,蟻群演算法具有一種新的模擬進化優化方法的有效性和應用價值
其原理:為什麼小小的螞蟻能夠找到食物?他們具有智能么?設想,如果我們要為螞蟻設計一個人工智慧的程序,那麼這個程序要多麼復雜呢?首先,你要讓螞蟻能夠避開障礙物,就必須根據適當的地形給它編進指令讓他們能夠巧妙的避開障礙物,其次,要讓螞蟻找到食物,就需要讓他們遍歷空間上的所有點;再次,如果要讓螞蟻找到最短的路徑,那麼需要計算所有可能的路徑並且比較它們的大小,而且更重要的是,你要小心翼翼的編程,因為程序的錯誤也許會讓你前功盡棄。這是多麼不可思議的程序!太復雜了,恐怕沒人能夠完成這樣繁瑣冗餘的程序
應用范圍:螞蟻觀察到的范圍是一個方格世界,螞蟻有一個參數為速度半徑(一般是3),那麼它能觀察到的范圍就是3*3個方格世界,並且能移動的距離也在這個范圍之內
引申:跟著螞蟻的蹤跡,你找到了什麼?通過上面的原理敘述和實際操作,我們不難發現螞蟻之所以具有智能行為,完全歸功於它的簡單行為規則,而這些規則綜合起來具有下面兩個方面的特點: 1、多樣性 2、正反饋 多樣性保證了螞蟻在覓食的時候不置走進死胡同而無限循環,正反饋機制則保證了相對優良的信息能夠被保存下來。我們可以把多樣性看成是一種創造能力,而正反饋是一種學習強化能力。正反饋的力量也可以比喻成權威的意見,而多樣性是打破權威體現的創造性,正是這兩點小心翼翼的巧妙結合才使得智能行為涌現出來了。 引申來講,大自然的進化,社會的進步、人類的創新實際上都離不開這兩樣東西,多樣性保證了系統的創新能力,正反饋保證了優良特性能夠得到強化,兩者要恰到好處的結合。如果多樣性過剩,也就是系統過於活躍,這相當於螞蟻會過多的隨機運動,它就會陷入混沌狀態;而相反,多樣性不夠,正反饋機制過強,那麼系統就好比一潭死水。這在蟻群中來講就表現為,螞蟻的行為過於僵硬,當環境變化了,螞蟻群仍然不能適當的調整。 既然復雜性、智能行為是根據底層規則涌現的,既然底層規則具有多樣性和正反饋特點,那麼也許你會問這些規則是哪裡來的?多樣性和正反饋又是哪裡來的?我本人的意見:規則來源於大自然的進化。而大自然的進化根據剛才講的也體現為多樣性和正反饋的巧妙結合。而這樣的巧妙結合又是為什麼呢?為什麼在你眼前呈現的世界是如此栩栩如生呢?答案在於環境造就了這一切,之所以你看到栩栩如生的世界,是因為那些不能夠適應環境的多樣性與正反饋的結合都已經死掉了,被環境淘汰了! 蟻群演算法的實現 下面的程序開始運行之後,螞蟻們開始從窩里出動了,尋找食物;他們會順著屏幕爬滿整個畫面,直到找到食物再返回窩。 其中,『F』點表示食物,『H』表示窩,白色塊表示障礙物,『+』就是螞蟻了。
具體參考http://ke..com/view/539346.htm
希望對你有幫助,謝謝。
Ⅷ 蟻群優化演算法的蟻群優化演算法
開本: 16開
所屬分類: 圖書 >> 計算機/網路 >> 人工智慧
定價:¥43.00 主要內容包括蟻群演算法基本原理、蟻群演算法在TSP及其擴展問題求解中的應用、蟻群演算法在VRP及其擴展問題求解中的應用、蟻群演算法在最優樹問題求解中的應用、蟻群演算法在整數規劃問題求解中的應用、一般連續優化問題的蟻群演算法以及多目標蟻群演算法等。書中還給出了一些主要演算法的Delphi程序實現源代碼,可供參考或修改使用。
本書可供運籌學、管理科學、系統工程、計算機科學等有關專業的高校師生、科研人員和工程技術人員閱讀參考。
Ⅸ 蟻群優化演算法的使用-編碼的問題!
「蟻群演算法」學習包下載
下載地址: http://board.verycd.com/t196436.html (請使用 eMule 下載)
近一百多篇文章,打包壓縮後有 24.99MB ,基本上是從維普資料庫中下載來的,僅供學習和研究之用,請務用於商業活動或其他非法活動中,各文章版權歸原作者所有。
如果您覺得本人這樣做侵犯了您的版權,請在本帖後回復,本人會馬上刪除相應的文章。
以下是文件列表,全是 PDF 格式的:
基於蟻群優化演算法遞歸神經網路的短期負荷預測
蟻群演算法的小改進
基於蟻群演算法的無人機任務規劃
多態蟻群演算法
MCM基板互連測試的單探針路徑優化研究
改進的增強型蟻群演算法
基於雲模型理論的蟻群演算法改進研究
基於禁忌搜索與蟻群最優結合演算法的配電網規劃
自適應蟻群演算法在序列比對中的應用
基於蟻群演算法的QoS多播路由優化演算法
多目標優化問題的蟻群演算法研究
多線程蟻群演算法及其在最短路問題上的應用研究
改進的蟻群演算法在2D HP模型中的應用
製造系統通用作業計劃與蟻群演算法優化
基於混合行為蟻群演算法的研究
火力優化分配問題的小生境遺傳螞蟻演算法
基於蟻群演算法的對等網模擬器的設計與實現
基於粗粒度模型的蟻群優化並行演算法
動態躍遷轉移蟻群演算法
基於人工免疫演算法和蟻群演算法求解旅行商問題
基於信息素非同步更新的蟻群演算法
用於連續函數優化的蟻群演算法
求解復雜多階段決策問題的動態窗口蟻群優化演算法
蟻群演算法在鑄造生產配料優化中的應用
多階段輸電網路最優規劃的並行蟻群演算法
求解旅行商問題的混合粒子群優化演算法
微粒群優化演算法研究現狀及其進展
隨機攝動蟻群演算法的收斂性及其數值特性分析
廣義蟻群與粒子群結合演算法在電力系統經濟負荷分配中的應用
改進的蟻群演算法及其在TSP中的應用研究
蟻群演算法的全局收斂性研究及改進
房地產開發項目投資組合優化的改進蟻群演算法
一種改進的蟻群演算法用於灰色約束非線性規劃問題求解
一種自適應蟻群演算法及其模擬研究
一種動態自適應蟻群演算法
螞蟻群落優化演算法在蛋白質折疊二維親-疏水格點模型中的應用
用改進蟻群演算法求解函數優化問題
連續優化問題的蟻群演算法研究進展
蟻群演算法概述
Ant colony system algorithm for the optimization of beer fermentation control
蟻群演算法在K—TSP問題中的應用
Parallel ant colony algorithm and its application in the capacitated lot sizing problem for an agile supply chain
基於遺傳蟻群演算法的機器人全局路徑規劃研究
改進的蟻群演算法在礦山物流配送路徑優化中的研究
基於蟻群演算法的配電網路綜合優化方法
基於蟻群演算法的分類規則挖掘演算法
蟻群演算法在連續性空間優化問題中的應用
蟻群演算法在礦井通風系統優化設計中的應用
基於蟻群演算法的液壓土錨鑽機動力頭優化設計
改進蟻群演算法設計拉式膜片彈簧
計算機科學技術
基本蟻群演算法及其改進
TSP改進演算法及在PCB數控加工刀具軌跡中的應用
可靠性優化的蟻群演算法
對一類帶聚類特徵TSP問題的蟻群演算法求解
蟻群演算法理論及應用研究的進展
基於二進制編碼的蟻群優化演算法及其收斂性分析
蟻群演算法的理論及其應用
基於蟻群行為模擬的影像紋理分類
啟發式蟻群演算法及其在高填石路堤穩定性分析中的應用
蟻群演算法的研究現狀
一種快速全局優化的改進蟻群演算法及模擬
聚類問題的蟻群演算法
蟻群最優化——模型、演算法及應用綜述
基於信息熵的改進蟻群演算法及其應用
機載公共設備綜合管理系統任務分配演算法研究
基於改進蟻群演算法的飛機低空突防航路規劃
利用信息量留存的蟻群遺傳演算法
An Improved Heuristic Ant-Clustering Algorithm
改進型蟻群演算法在內燃機徑向滑動軸承優化設計中的應用
基於蟻群演算法的PID參數優化
基於蟻群演算法的復雜系統多故障狀態的決策
蟻群演算法在數據挖掘中的應用研究
基於蟻群演算法的基因聯接學習遺傳演算法
基於細粒度模型的並行蟻群優化演算法
Binary-Coding-Based Ant Colony Optimization and Its Convergence
運載火箭控制系統漏電故障診斷研究
混沌擾動啟發式蟻群演算法及其在邊坡非圓弧臨界滑動面搜索中的應用
蟻群演算法原理的模擬研究
Hopfield neural network based on ant system
蟻群演算法及其實現方法研究
分層實體製造激光頭切割路徑的建模與優化
配送網路規劃蟻群演算法
基於蟻群演算法的城域交通控制實時滾動優化
基於蟻群演算法的復合形法及其在邊坡穩定分析中的應用
Ant Colony Algorithm for Solving QoS Routing Problem
多產品間歇過程調度問題的建模與優化
基於蟻群演算法的兩地之間的最佳路徑選擇
蟻群演算法求解問題時易產生的誤區及對策
用雙向收斂蟻群演算法解作業車間調度問題
物流配送路徑安排問題的混合蟻群演算法
求解TSP問題的模式學習並行蟻群演算法
基於蟻群演算法的三維空間機器人路徑規劃
蟻群優化演算法及其應用
蟻群演算法不確定性分析
一種求解TSP問題的相遇蟻群演算法
基於蟻群優化演算法的彩色圖像顏色聚類的研究
鈑金件數控激光切割割嘴路徑的優化
基於蟻群演算法的圖像分割方法
一種基於蟻群演算法的聚類組合方法
圓排列問題的蟻群模擬退火演算法
智能混合優化策略及其在流水作業調度中的應用
蟻群演算法在QoS網路路由中的應用
一種改進的自適應路由演算法
基於蟻群演算法的煤炭運輸優化方法
基於蟻群智能和支持向量機的人臉性別分類方法
蟻群演算法在啤酒發酵控制優化中的應用
一種基於時延信息的多QoS快速自適應路由演算法
蟻群演算法中參數α、β、ρ設置的研究——以TSP問題為例
基於人工蟻群優化的矢量量化碼書設計演算法
具有自適應雜交特徵的蟻群演算法
蟻群演算法在原料礦粉混勻優化中的應用
基於多Agent的蟻群演算法在車間動態調度中的應用研究
用蟻群優化演算法求解中國旅行商問題
蟻群演算法在嬰兒營養米粉配方中的應用
蟻群演算法在機械優化設計中的應用
蟻群優化演算法的研究現狀及研究展望
蟻群優化演算法及其應用研究進展
蟻群演算法的理論與應用
簡單蟻群演算法的模擬分析
一種改進的蟻群演算法求解最短路徑問題
基於模式求解旅行商問題的蟻群演算法
一種求解TSP的混合型蟻群演算法
基於MATLAB的改進型基本蟻群演算法
動態蟻群演算法求解TSP問題
用蟻群演算法求解類TSP問題的研究
蟻群演算法求解連續空間優化問題的一種方法
用混合型螞蟻群演算法求解TSP問題
求解復雜TSP問題的隨機擾動蟻群演算法
基於蟻群演算法的中國旅行商問題滿意解
蟻群演算法的研究現狀和應用及螞蟻智能體的硬體實現
蟻群演算法概述
蟻群演算法的研究現狀及其展望
基於蟻群演算法的配電網網架優化規劃方法
用於一般函數優化的蟻群演算法
協同模型與遺傳演算法的集成
基於蟻群最優的輸電網路擴展規劃
自適應蟻群演算法
凸整數規劃問題的混合蟻群演算法
一種新的進化演算法—蛟群演算法
基於協同工作方式的一種蟻群布線系統
Ⅹ 蟻群演算法及其應用實例
蟻群演算法(ant colony optimization, ACO),又稱螞蟻演算法,是一種對自然界螞蟻的尋徑方式進行模擬而得到的一種仿生演算法,是一種用來在圖中尋找優化路徑的機率型演算法。
螞蟻在運動過程中,可以在行走的路徑上留下信息素,後來的螞蟻可以感知到信息素的存在,信息素濃度越高的路徑越容易被後來的螞蟻選擇,從而形成一種正反饋現象。
它能夠求出從原點出發,經過若干個給定的需求點,最終返回原點的最短路徑。這也就是著名的旅行商問題(Traveling Saleman Problem,TSP)。
若螞蟻從A點出發到D點覓食,它可以隨機從ABD或ACD中選擇一條路。假設初始時為每條路分配一隻螞蟻,每個時間單位行走一步,則經過8個時間單位後,情形如下圖所示:ABD路線的螞蟻到達D點,ACD路線的螞蟻到達C點。
那麼,再過8個時間單位,很容易可以得到下列情形:ABD路線的螞蟻回到A點,ACD路線的螞蟻到達D點。
α 代表信息素量對是否選擇當前路徑的影響程度,反映了蟻群在路徑搜索中隨機性因素作用的強度。
α 越大,螞蟻選擇以前走過的路徑的可能性越大,搜索的隨機性就會減弱。
α 過小,會導致蟻群搜索過早陷入局部最優,取值范圍通常為[1,4]。
β 反映了啟發式信息在指導蟻群搜索中的相對重要程度,蟻群尋優過程中先驗性、確定性因素作用的強度。
β 過大,雖然收斂速度加快,但是易陷入局部最優。
β 過小,蟻群易陷入純粹的隨機搜索,很難找到最優解。通常取[0,5]。
ρ 反映了信息素的蒸發程度,相反,1-ρ 表示信息素的保留水平
ρ 過大,信息素會發過快,容易導致最優路徑被排除。
ρ 過小,各路徑上信息素含量差別過小,以前搜索過的路徑被在此選擇的可能性過大,會影響演算法的隨機性和全局搜索能力。通常取[0.2,0.5]。
m過大,每條路徑上信息素趨於平均,正反饋作用減弱,從而導致收斂速度減慢。
m過小,可能導致一些從未搜索過的路徑信息素濃度減小為0,導致過早收斂,解的全局最優性降低
總信息量Q對演算法性能的影響有賴於αβρ的選取,以及演算法模型的選擇。
Q對ant-cycle模型蟻群演算法的性能沒有明顯影響,不必特別考慮,可任意選取。