遗传算法及蚂蚁算法作业

if i_ger>=2

if max_local(i_ger)>max_global(i_ger-1) max_global(i_ger)=max_local(i_ger); else

max_global(i_ger)=max_global(i_ger-1); end else

max_global(i_ger)=max_local(i_ger); end end

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % figure(2);

mesh(vxp,vyp,-vzp); hold on; x=X(:,1); y=X(:,2);

plot3(x,y,-eval(f),'b*'); hold on; grid on;

title('蚂蚁的最终分布位置');

xlabel('x'); ylabel('y'); zlabel('f(x,y)'); figure(3);

plot(1:Ger,-max_global,'b-') hold on;

title('最优函数值变化趋势'); xlabel('iteration'); ylabel('f(x)'); grid on;

[c_max,i_max]=max(T0); maxpoint=[X(i_max,1),X(i_max,2)]

maxvalue=-(2-exp(-(X(i_max,1).^2+X(i_max,2).^2)))

runtime=toc

结果:maxvalue =1.0000

题目2:利用蚁群算法求下面加权有向图中从A到G的最短路:

解:

第一步:初始化N只蚂蚁,也就是N条道路 第二步:初始化运行参数,开始迭代

第三步:在迭代步数范围之内,计算转移概率,如果小于全局转移概

率就进行小范围的搜索,否则就进行大范围的搜索 第四步:更新信息素,记录状态,准备进行下一次迭代 第五步:转第三步 第六步:输出结果 代码:

function shortroad_ant_main % Ant main program clear all;close all;clc;%清屏 tic;%计时开始

Ant=50;Ger=100;%运行参数初始化

power=[0 5 3 100 100 100 100 100 100 100 100 100 100 100 100 100; 100 0 100 1 3 6 100 100 100 100 100 100 100 100 100 100; 100 100 0 100 8 7 6 100 100 100 100 100 100 100 100 100; 100 100 100 0 100 100 100 6 8 100 100 100 100 100 100 100; 100 100 100 100 0 100 100 3 5 100 100 100 100 100 100 100; 100 100 100 100 100 0 100 100 3 3 100 100 100 100 100 100; 100 100 100 100 100 100 0 100 8 4 100 100 100 100 100 100; 100 100 100 100 100 100 100 0 100 100 2 2 100 100 100 100; 100 100 100 100 100 100 100 100 0 100 100 1 2 100 100 100; 100 100 100 100 100 100 100 100 100 0 100 3 3 100 100 100; 100 100 100 100 100 100 100 100 100 100 0 100 100 3 5 100; 100 100 100 100 100 100 100 100 100 100 100 0 100 5 2 100;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4