亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? aco.m

?? 一個(gè)較好的蟻群MATLAB程序
?? M
字號(hào):
function ACO(inputfile)
%% Example: ACO('ulysses22.tsp')
disp('AS is reading input nodes file...');
[Dimension,NodeCoord,NodeWeight,Name]=FileInput(inputfile);
disp([num2str(Dimension),' nodes in',Name,' has been read in']);
disp(['AS start at ',datestr(now)]);
%%%%%%%%%%%%% the key parameters of Ant System %%%%%%%%%
MaxITime=1e3;
AntNum=Dimension;
alpha=1;
beta=5;
rho=0.65;
%%%%%%%%%%%%% the key parameters of Ant System %%%%%%%%%
fprintf('Showing Iterative Best Solution:\n');
[GBTour,GBLength,Option,IBRecord] = ...
AS(NodeCoord,NodeWeight,AntNum,MaxITime,alpha,beta,rho);    
disp(['AS stop at ',datestr(now)]);
disp('Drawing the iterative course''s curve');
figure(1);
subplot(2,1,1)
plot(1:length(IBRecord(1,:)),IBRecord(1,:));
xlabel('Iterative Time');
ylabel('Iterative Best Cost');
title(['Iterative Course: ','GMinL=',num2str(GBLength),', FRIT=',num2str(Option.OptITime)]);
subplot(2,1,2)
plot(1:length(IBRecord(2,:)),IBRecord(2,:));
xlabel('Iterative Time');
ylabel('Average Node Branching');
figure(2);
DrawCity(NodeCoord,GBTour);
title([num2str(Dimension),' Nodes Tour Path of ',Name]);

function [Dimension,NodeCoord,NodeWeight,Name]=FileInput(infile)
if ischar(infile)
    fid=fopen(infile,'r');
else
    disp('input file no exist');
    return;
end
if fid<0
    disp('error while open file');
    return;
end
NodeWeight = [];
while feof(fid)==0
    temps=fgetl(fid);
    if strcmp(temps,'')
        continue;
    elseif strncmpi('NAME',temps,4)
        k=findstr(temps,':');
        Name=temps(k+1:length(temps));
    elseif strncmpi('DIMENSION',temps,9)
        k=findstr(temps,':');
        d=temps(k+1:length(temps));
        Dimension=str2double(d); %str2num
    elseif strncmpi('EDGE_WEIGHT_SECTION',temps,19)
        formatstr = [];
        for i=1:Dimension
            formatstr = [formatstr,'%g '];
        end
        NodeWeight=fscanf(fid,formatstr,[Dimension,Dimension]);
        NodeWeight=NodeWeight';
    elseif strncmpi('NODE_COORD_SECTION',temps,18) || strncmpi('DISPLAY_DATA_SECTION',temps,20)
        NodeCoord=fscanf(fid,'%g %g %g',[3 Dimension]);
        NodeCoord=NodeCoord';
    end
end
fclose(fid);

function plothandle=DrawCity(CityList,Tours)
xd=[];yd=[];
nc=length(Tours);
plothandle=plot(CityList(:,2:3),'.');
set(plothandle,'MarkerSize',16);
for i=1:nc
    xd(i)=CityList(Tours(i),2);
    yd(i)=CityList(Tours(i),3);
end
set(plothandle,'XData',xd,'YData',yd);
line(xd,yd);

function [GBTour,GBLength,Option,IBRecord]=AS(CityMatrix,WeightMatrix,AntNum,MaxITime,alpha,beta,rho)
%% (Ant System) date:070427 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Reference:
% Dorigo M, Maniezzo Vittorio, Colorni Alberto. 
%   The Ant System: Optimization by a colony of cooperating agents [J]. 
%   IEEE Transactions on Systems, Man, and Cybernetics--Part B,1996, 26(1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global ASOption Problem AntSystem
ASOption = InitParameter(CityMatrix,AntNum,alpha,beta,rho,MaxITime);
Problem = InitProblem(CityMatrix,WeightMatrix);
AntSystem = InitAntSystem();
ITime = 0;
IBRecord = [];
if ASOption.DispInterval ~= 0
    close all
    set(gcf,'Doublebuffer','on');
    hline=plot(1,1,'-o');
end
while 1
    InitStartPoint();
    for step = 2:ASOption.n
        for ant = 1:ASOption.m
            P = CaculateShiftProb(step,ant);
            nextnode = Roulette(P,1);
            RefreshTabu(step,ant,nextnode);
        end
    end
    CloseTours();
    ITime = ITime + 1;
    CaculateToursLength();
    GlobleRefreshPheromone();
    ANB = CaculateANB();
    [GBTour,GBLength,IBRecord(:,ITime)] = GetResults(ITime,ANB);
    ShowIterativeCourse(GBTour,ITime,hline);
%     ShowIterativeCourse(IBRecord(3:end,ITime),ITime,hline);
    if Terminate(ITime,ANB)
        break;
    end
end
Option = ASOption;
%% --------------------------------------------------------------
function ASOption = InitParameter(Nodes,AntNum,alpha,beta,rho,MaxITime)
ASOption.n = length(Nodes(:,1));
ASOption.m = AntNum;
ASOption.alpha = alpha;
ASOption.beta = beta;
ASOption.rho = rho;
ASOption.MaxITime = MaxITime;
ASOption.OptITime = 1;
ASOption.Q = 10;
ASOption.C = 100;
ASOption.lambda = 0.15;
ASOption.ANBmin = 2; 
ASOption.GBLength = inf;
ASOption.GBTour = zeros(length(Nodes(:,1))+1,1);
ASOption.DispInterval = 10;
rand('state',sum(100*clock));
%% --------------------------------------------------------------
function Problem = InitProblem(Nodes,WeightMatrix)
global ASOption
n = length(Nodes(:,1));
MatrixTau = (ones(n,n)-eye(n,n))*ASOption.C;
Distances = WeightMatrix;
SymmetryFlag = false;
if isempty(WeightMatrix)
    Distances = CalculateDistance(Nodes);
    SymmetryFlag = true;
end
Problem = struct('nodes',Nodes,'dis',Distances,'tau',MatrixTau,'symmetry',SymmetryFlag);
%% --------------------------------------------------------------
function AntSystem = InitAntSystem()
global ASOption
AntTours = zeros(ASOption.m,ASOption.n+1); 
ToursLength = zeros(ASOption.m,1);
AntSystem = struct('tours',AntTours,'lengths',ToursLength);
%% --------------------------------------------------------------
function InitStartPoint()
global AntSystem ASOption
AntSystem.tours = zeros(ASOption.m,ASOption.n+1); 
rand('state',sum(100*clock));
AntSystem.tours(:,1) = randint(ASOption.m,1,[1,ASOption.n]);
AntSystem.lengths = zeros(ASOption.m,1);
%% --------------------------------------------------------------
function Probs = CaculateShiftProb(step_i, ant_k)
global AntSystem ASOption Problem
CurrentNode = AntSystem.tours(ant_k, step_i-1);
VisitedNodes = AntSystem.tours(ant_k, 1:step_i-1);
tau_i = Problem.tau(CurrentNode,:);
tau_i(1,VisitedNodes) = 0;
dis_i = Problem.dis(CurrentNode,:);
dis_i(1,CurrentNode) = 1;
Probs = (tau_i.^ASOption.alpha).*((1./dis_i).^ASOption.beta);
if sum(Probs) ~= 0
    Probs = Probs/sum(Probs);
else 
    NoVisitedNodes = setdiff(1:ASOption.n,VisitedNodes);
    Probs(1,NoVisitedNodes) = 1/length(NoVisitedNodes);
end
%% --------------------------------------------------------------
function Select = Roulette(P,num)
m = length(P);
flag = (1-sum(P)<=1e-5);
Select = zeros(1,num);
rand('state',sum(100*clock));
r = rand(1,num);
for i=1:num
    sumP = 0;
    j = ceil(m*rand); 
    while (sumP<r(i)) && flag
        sumP = sumP + P(mod(j-1,m)+1);
        j = j+1;
    end
    Select(i) = mod(j-2,m)+1;
end
%% --------------------------------------------------------------
function RefreshTabu(step_i,ant_k,nextnode)
global AntSystem
AntSystem.tours(ant_k,step_i) = nextnode;
%% --------------------------------------------------------------
function CloseTours()
global AntSystem ASOption
AntSystem.tours(:,ASOption.n+1) = AntSystem.tours(:,1);
%% --------------------------------------------------------------
function CaculateToursLength()
global AntSystem ASOption Problem
Lengths = zeros(ASOption.m,1);
for k=1:ASOption.m
    for i=1:ASOption.n
        Lengths(k)=Lengths(k)+...
        Problem.dis(AntSystem.tours(k,i),AntSystem.tours(k,i+1));
    end
end
AntSystem.lengths = Lengths;
%% --------------------------------------------------------------
function [GBTour,GBLength,Record] = GetResults(ITime,ANB)
global AntSystem ASOption
[IBLength,AntIndex] = min(AntSystem.lengths);
IBTour = AntSystem.tours(AntIndex,:);
if IBLength<=ASOption.GBLength 
	ASOption.GBLength = IBLength;
	ASOption.GBTour = IBTour;
	ASOption.OptITime = ITime;
end
GBTour = ASOption.GBTour';
GBLength = ASOption.GBLength;
Record = [IBLength,ANB,IBTour]';
%% --------------------------------------------------------------
function GlobleRefreshPheromone()
global AntSystem ASOption Problem
AT = AntSystem.tours;
TL = AntSystem.lengths;
sumdtau=zeros(ASOption.n,ASOption.n);   
for k=1:ASOption.m
    for i=1:ASOption.n 
        sumdtau(AT(k,i),AT(k,i+1))=sumdtau(AT(k,i),AT(k,i+1))+ASOption.Q/TL(k);
        if Problem.symmetry
            sumdtau(AT(k,i+1),AT(k,i))=sumdtau(AT(k,i),AT(k,i+1)); 
        end
    end
end
Problem.tau=Problem.tau*(1-ASOption.rho)+sumdtau;
%% --------------------------------------------------------------
function flag = Terminate(ITime,ANB)
global ASOption
flag = false;
if ANB<=ASOption.ANBmin || ITime>=ASOption.MaxITime
    flag = true;
end
%% --------------------------------------------------------------
function ANB = CaculateANB()
global ASOption Problem
mintau = min(Problem.tau+ASOption.C*eye(ASOption.n,ASOption.n));
sigma = max(Problem.tau) - mintau;
dis = Problem.tau - repmat(sigma*ASOption.lambda+mintau,ASOption.n,1);
NB = sum(dis>=0,1);
ANB = sum(NB)/ASOption.n;
%% --------------------------------------------------------------
function Distances = CalculateDistance(Nodes)
global ASOption 
Nodes(:,1)=[]; 
Distances=zeros(ASOption.n,ASOption.n);
for i=2:ASOption.n
    for j=1:i
        if(i==j)    
            continue;
        else
            dij=Nodes(i,:)-Nodes(j,:);
            Distances(i,j)=sqrt(dij(1)^2+dij(2)^2);
            Distances(j,i)=Distances(i,j);  
        end
    end
end
%% --------------------------------------------------------------
function ShowIterativeCourse(IBTour,ITime,hmovie)
global Problem ASOption
num = length(IBTour);
if mod(ITime,ASOption.DispInterval)==0
    title(get(hmovie,'Parent'),['ITime = ',num2str(ITime)]);
    NodeCoord = Problem.nodes;
    xd=[];yd=[];
    for i=1:num
        xd(i)=NodeCoord(IBTour(i),2);
        yd(i)=NodeCoord(IBTour(i),3);
    end
    set(hmovie,'XData',xd,'YData',yd);
    pause(0.01);
end

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色就色 综合激情| 国产在线麻豆精品观看| 久久精品一二三| 欧美激情综合五月色丁香小说| 国产精品美女久久久久aⅴ| 国产精品白丝在线| 亚洲va欧美va国产va天堂影院| 蜜臀久久久久久久| 成人免费毛片app| 欧美日韩不卡一区| 久久久久亚洲蜜桃| 亚洲国产精品一区二区久久恐怖片| 麻豆91在线观看| 91女人视频在线观看| 日韩免费观看2025年上映的电影 | 亚洲v日本v欧美v久久精品| 美国十次综合导航| 91丨九色丨黑人外教| 日韩欧美国产综合在线一区二区三区| 中文字幕免费不卡| 日本欧美一区二区| 99国产精品99久久久久久| 91精品黄色片免费大全| 国产精品成人一区二区三区夜夜夜| 午夜国产精品一区| 97精品久久久午夜一区二区三区 | 久久国产婷婷国产香蕉| 色婷婷国产精品久久包臀| 久久一日本道色综合| 一区二区三区在线视频观看58| 精品一区二区日韩| 欧美日韩色综合| 中文字幕一区二区三区精华液| 美女视频一区在线观看| 一本色道久久综合狠狠躁的推荐| 久久婷婷国产综合国色天香| 亚洲v日本v欧美v久久精品| www.日韩av| 国产亚洲一区二区在线观看| 日本欧洲一区二区| 91国产免费观看| 国产精品高清亚洲| 国产河南妇女毛片精品久久久 | 亚洲成a人v欧美综合天堂下载| 成人av先锋影音| 久久99国产精品尤物| 日本aⅴ免费视频一区二区三区| 色视频成人在线观看免| 国产精品日日摸夜夜摸av| 极品瑜伽女神91| 欧美精三区欧美精三区| 亚洲影院久久精品| 91麻豆精品视频| 国产精一区二区三区| 91色综合久久久久婷婷| 国产精品久久久久影院| 丝袜美腿高跟呻吟高潮一区| 91久久精品一区二区| 国产精品第13页| bt7086福利一区国产| 欧美激情一区二区三区四区| 国产成人夜色高潮福利影视| 精品国产电影一区二区| 久久精品国产亚洲一区二区三区 | 日韩经典中文字幕一区| 欧美色网站导航| 一级精品视频在线观看宜春院| 91欧美一区二区| 一区二区三区不卡视频| 欧美系列在线观看| 亚洲3atv精品一区二区三区| 欧美日韩另类国产亚洲欧美一级| 亚洲资源中文字幕| 欧美日韩一区在线| 亚洲va国产天堂va久久en| 欧美喷水一区二区| 奇米四色…亚洲| 欧美α欧美αv大片| 狠狠久久亚洲欧美| 国产日产精品一区| 成人黄色免费短视频| 国产精品久久777777| 色综合天天性综合| 亚洲一区二区四区蜜桃| 欧美裸体一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩欧美一区在线观看| 国精产品一区一区三区mba桃花| 久久精品夜色噜噜亚洲a∨| 成人高清视频免费观看| 一区二区三区国产豹纹内裤在线 | 久久er精品视频| 欧美精品一区二区三区久久久 | 国产亚洲一二三区| 99精品欧美一区| 夜夜嗨av一区二区三区四季av| 欧美日韩激情一区二区三区| 日韩精品久久久久久| 精品国产91乱码一区二区三区 | 自拍偷拍欧美精品| 欧美中文字幕亚洲一区二区va在线| 亚洲一区二区三区精品在线| 欧美一区二区三区色| 国产一区999| 亚洲私人黄色宅男| 欧美日韩国产片| 国产乱淫av一区二区三区| 成人欧美一区二区三区在线播放| 日本高清视频一区二区| 五月激情六月综合| www国产精品av| 91久久精品一区二区三区| 麻豆精品视频在线观看免费| 国产精品无遮挡| 69久久99精品久久久久婷婷 | 国产精品久久久99| 欧美老人xxxx18| 国产成都精品91一区二区三| 亚洲一二三专区| 久久久久久久精| 欧美亚洲一区三区| 国内精品伊人久久久久av影院| 亚洲精品免费一二三区| 日韩精品一区二区在线| 91理论电影在线观看| 久久精品国产99国产| 一区二区三区在线播| 国产亚洲短视频| 欧美高清你懂得| 成人一级视频在线观看| 日韩精品乱码免费| 亚洲视频每日更新| 精品sm捆绑视频| 欧美日韩五月天| 91香蕉视频黄| 国产美女在线精品| 视频在线观看一区| 国产精品免费人成网站| 欧美大片在线观看| 欧美日韩一区视频| 99精品视频免费在线观看| 激情成人综合网| 日韩成人免费电影| 亚洲欧美日韩精品久久久久| 久久人人97超碰com| 7777精品伊人久久久大香线蕉的| 99免费精品在线观看| 精品一区二区日韩| 日产国产高清一区二区三区| 亚洲精品成人悠悠色影视| 久久精品人人爽人人爽| 日韩亚洲欧美在线观看| 欧美自拍丝袜亚洲| 色天天综合色天天久久| 99九九99九九九视频精品| 国模冰冰炮一区二区| 美国十次综合导航| 丝袜脚交一区二区| 亚洲自拍偷拍网站| 1024成人网| 国产精品麻豆久久久| 久久精品网站免费观看| 精品免费日韩av| 欧美videos大乳护士334| 欧美日韩电影一区| 在线欧美日韩国产| 91麻豆国产自产在线观看| 不卡一卡二卡三乱码免费网站| 国产精品亚洲一区二区三区妖精| 麻豆视频一区二区| 男女性色大片免费观看一区二区| 亚洲一二三四在线| 夜夜爽夜夜爽精品视频| 亚洲图片另类小说| 亚洲欧美aⅴ...| 亚洲一区欧美一区| 一区二区三区 在线观看视频| 亚洲美女在线一区| 亚洲欧美日韩综合aⅴ视频| 国产精品成人一区二区三区夜夜夜| 国产精品乱人伦一区二区| 亚洲国产精品v| 国产精品高潮久久久久无| 国产精品麻豆网站| 亚洲免费观看视频| 亚洲综合丝袜美腿| 亚洲bt欧美bt精品777| 午夜精品视频一区| 日本vs亚洲vs韩国一区三区二区| 美腿丝袜亚洲色图| 狠狠色伊人亚洲综合成人| 国产精一品亚洲二区在线视频| 岛国精品一区二区| 97久久精品人人澡人人爽| 日本电影亚洲天堂一区| 欧美日韩综合不卡| 日韩一级在线观看| 26uuu国产电影一区二区| 国产丝袜美腿一区二区三区| 中文字幕一区视频|