【优化求解】基于matlab蚁群算法配电网故障定位【含Matlab源码 165期】

一、简介

%function [bestroute,routelength]=Ant
clc
clear
tic
 
% 读入城市间距离矩阵数据文件
CooCity = load( 'CooCity.txt' ) ;% 城市网络图坐标数据文件,txt形式给出
NC=length(CooCity);           % 城市个数
for i=1:NC       % 计算各城市间的距离
    for j=1:NC
        distance(i,j)=sqrt((CooCity(i,2)-CooCity(j,2))^2+(CooCity(i,3)-CooCity(j,3))^2);
    end
end
% distance=xlsread('DistanceCity.xls');  % 城市间距离矩阵数据文件,excel形式给出
 
MAXIT=10;       % 最大循环次数
 
Citystart=[];         % 起点城市编号
tau=ones(NC,NC); % 初始时刻各边上的信息痕迹为1
rho=0.5;         % 挥发系数
alpha=1;         % 残留信息相对重要度
beta=5;          % 预见值的相对重要度
Q=10;          % 蚁环常数
NumAnt=20;         % 蚂蚁数量
 
%bestroute=zeros(1,48);  % 用来记录最优路径
routelength=inf;        % 用来记录当前找到的最优路径长度
for n=1:MAXIT
    for k=1:NumAnt       %考查第K只蚂蚁
        deltatau=zeros(NC,NC); % 第K只蚂蚁移动前各边上的信息增量为零
        %[routek,lengthk]=path(distance,tau,alpha,beta,[]);      %  不靠率起始点
        [routek,lengthk]=path(distance,tau,alpha,beta,Citystart);   % 指定起始点
        
        if lengthk<routelength   % 找到一条更好的路径
            routelength=lengthk;
            bestroute=routek;
        end
        for i=1:NC-1      % 第K只蚂蚁在路径上释放的信息量
            deltatau(routek(i),routek(i+1))=deltatau(routek(i),routek(i+1))+Q/lengthk;  % 信息素更新
        end
        %deltatau(routek(NC),1)=deltatau(routek(NC),1)+Q/lengthk;  % 
    end
    length_n(n)=routelength;   % 记录路径收敛
    
    tau=(1-rho).*tau;  % 信息素挥发
end
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
costtime=toc;
subplot(1,2,1),plot([CooCity(bestroute,2)],[CooCity(bestroute,3)],'-*')
subplot(1,2,2),plot([1:MAXIT],length_n,'-*')
[routelength,costtime]

二、运行结果

在这里插入图片描述

三、备注

完整代码或者代写添加QQ2449341593
往期回顾>>>>>>
【优化求解】基于matlab粒子群优化灰狼算法【含Matlab源码 006期】
【优化求解】基于matlab多目标灰狼优化算法MOGWO 【含Matlab源码 007期】
【优化求解】基于matlab粒子群算法的充电站最优布局【含Matlab源码 012期】
【优化求解】基于matlab遗传算法的多旅行商问题【含Matlab源码 016期】
【优化求解】基于matlab遗传算法求最短路径【含Matlab源码 023期】
【优化求解】基于matlab遗传和模拟退火的三维装箱问题【含Matlab源码 031期】
【优化求解】基于matlab遗传算法求解车辆发车间隔优化问题【含Matlab源码 132期】
【优化求解】磷虾群算法【含matlab源码 133期】
【优化求解】差分进化算法【含Matlab源码 134期】
【优化求解】基于matlab约束优化之惩罚函数法【含Matlab源码 163期】
【优化求解】基于matlab改进灰狼算法求解重油热解模型【含Matlab源码 164期】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/113247340