中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

matlab如何模擬退火算法

發布時間:2022-01-14 10:17:06 來源:億速云 閱讀:195 作者:iii 欄目:大數據

這篇文章主要介紹“matlab如何模擬退火算法”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“matlab如何模擬退火算法”文章能幫助大家解決問題。

matlab如何模擬退火算法  
clc;
clear;
close all;
%%
T0=1000;   % 初始溫度
Tend=1e-3;  % 終止溫度
L=500;    % 各溫度下的迭代次數(鏈長)
q=0.9;    %降溫速率

   
%% 加載數據
load CityPosition1;
%%
D=Distanse(X);  %計算距離矩陣
N=size(D,1);    %城市的個數
%% 初始解
S1=randperm(N);  %隨機產生一個初始路線

   
%% 畫出隨機解的路徑圖
DrawPath(S1,X)
matlab如何模擬退火算法  
pause(0.0001)
%% 輸出隨機解的路徑和總距離
disp('初始種群中的一個隨機值:')
OutputPath(S1);
Rlength=PathLength(D,S1);
disp(['總距離:',num2str(Rlength)]);

   
%% 計算迭代的次數Time
Time=ceil(double(solve(['1000*(0.9)^x=',num2str(Tend)])));
count=0;        %迭代計數
Obj=zeros(Time,1);         %目標值矩陣初始化
track=zeros(Time,N);       %每代的最優路線矩陣初始化
%% 迭代
while T0>Tend
    count=count+1;     %更新迭代次數
    temp=zeros(L,N+1);
    for k=1:L
        %% 產生新解
        S2=NewAnswer(S1);
        %% Metropolis法則判斷是否接受新解
        [S1,R]=Metropolis(S1,S2,D,T0);  %Metropolis 抽樣算法
        temp(k,:)=[S1 R];          %記錄下一路線的及其路程
    end
    %% 記錄每次迭代過程的最優路線
    [d0,index]=min(temp(:,end)); %找出當前溫度下最優路線
    if count==1 || d0<Obj(count-1)
        Obj(count)=d0;           %如果當前溫度下最優路程小于上一路程則記錄當前路程
    else
        Obj(count)=Obj(count-1);%如果當前溫度下最優路程大于上一路程則記錄上一路程
    end
    track(count,:)=temp(index,1:end-1);  %記錄當前溫度的最優路線
    T0=q*T0;     %降溫
    fprintf(1,'%d\n',count)  %輸出當前迭代次數
end
%% 優化過程迭代圖
figure
plot(1:count,Obj)
xlabel('迭代次數')
ylabel('距離')
title('優化過程')
matlab如何模擬退火算法  
%% 最優解的路徑圖      
   
DrawPath(track(end,:),X)
matlab如何模擬退火算法  
%% 輸出最優解的路線和總距離      
   
disp('最優解:')
S=track(end,:);
p=OutputPath(S);
disp(['總距離:',num2str(PathLength(D,S))]);
disp('-------------------------------------------------------------')

關于“matlab如何模擬退火算法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马公市| 长葛市| 新龙县| 威远县| 浦城县| 凤翔县| 西吉县| 芜湖市| 濮阳县| 池州市| 吉首市| 昌都县| 阳山县| 合川市| 河北省| 滕州市| 安顺市| 盖州市| 新津县| 尉犁县| 乌拉特前旗| 谢通门县| 泰顺县| 长垣县| 华亭县| 皋兰县| 福安市| 龙口市| 台安县| 顺义区| 大埔区| 宣武区| 吴旗县| 渭源县| 静安区| 昌江| 黔西| 尼勒克县| 定南县| 崇仁县| 搜索|