溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

matlab三維路徑規(guī)劃的方法是什么

發(fā)布時(shí)間:2022-01-14 10:17:34 來(lái)源:億速云 閱讀:489 作者:iii 欄目:大數(shù)據(jù)

今天小編給大家分享一下matlab三維路徑規(guī)劃的方法是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

%% 清空環(huán)境      
   
clc
clear
matlab三維路徑規(guī)劃的方法是什么  
%% 數(shù)據(jù)初始化      
   
%下載數(shù)據(jù)      
   
load  HeightData HeightData

   
%網(wǎng)格劃分
LevelGrid=10;
PortGrid=21;

   
%起點(diǎn)終點(diǎn)網(wǎng)格點(diǎn) 
starty=10;starth=4;
endy=8;endh=5;
m=1;
%算法參數(shù)
PopNumber=10;         %種群個(gè)數(shù)
BestFitness=[];    %最佳個(gè)體

   
%初始信息素
pheromone=ones(21,21,21);

   
%% 初始搜索路徑
[path,pheromone]=searchpath(PopNumber,LevelGrid,PortGrid,pheromone, ...
    HeightData,starty,starth,endy,endh); 
fitness=CacuFit(path);                          %適應(yīng)度計(jì)算
[bestfitness,bestindex]=min(fitness);           %最佳適應(yīng)度
bestpath=path(bestindex,:);                     %最佳路徑
BestFitness=[BestFitness;bestfitness];          %適應(yīng)度值記錄
 
%% 信息素更新
rou=0.2;
cfit=100/bestfitness;
for i=2:PortGrid-1
    pheromone(i,bestpath(i*2-1),bestpath(i*2))= ...
        (1-rou)*pheromone(i,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
end
    
%% 循環(huán)尋找最優(yōu)路徑
for kk=1:100
     
    %% 路徑搜索
    [path,pheromone]=searchpath(PopNumber,LevelGrid,PortGrid,...
        pheromone,HeightData,starty,starth,endy,endh); 
    
    %% 適應(yīng)度值計(jì)算更新
    fitness=CacuFit(path);                               
    [newbestfitness,newbestindex]=min(fitness);     
    if newbestfitness<bestfitness
        bestfitness=newbestfitness;
        bestpath=path(newbestindex,:);
    end 
    BestFitness=[BestFitness;bestfitness];
    
    %% 更新信息素
    cfit=100/bestfitness;
    for i=2:PortGrid-1
        pheromone(i,bestpath(i*2-1),bestpath(i*2))=(1-rou)* ...
            pheromone(i,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
    end
 
end

   
%% 最佳路徑
for i=1:21
    a(i,1)=bestpath(i*2-1);
    a(i,2)=bestpath(i*2);
end
figure(1)
x=1:21;
y=1:21;
[x1,y1]=meshgrid(x,y);
mesh(x1,y1,HeightData)
axis([1,21,1,21,0,2000])
hold on
k=1:21;
plot3(k(1)',a(1,1)',a(1,2)'*200,'--o','LineWidth',2,...
                       'MarkerEdgeColor','k',...
                       'MarkerFaceColor','g',...
                       'MarkerSize',10)
plot3(k(21)',a(21,1)',a(21,2)'*200,'--o','LineWidth',2,...
                       'MarkerEdgeColor','k',...
                       'MarkerFaceColor','g',...
                       'MarkerSize',10)
                   text(k(1)',a(1,1)',a(1,2)'*200,'S');
text(k(21)',a(21,1)',a(21,2)'*200,'T');
xlabel('km','fontsize',12);
ylabel('km','fontsize',12);
zlabel('m','fontsize',12);
title('三維路徑規(guī)劃空間','fontsize',12)
set(gcf, 'Renderer', 'ZBuffer')
hold on
plot3(k',a(:,1)',a(:,2)'*200,'--o')
matlab三維路徑規(guī)劃的方法是什么  
%% 適應(yīng)度變化      
   
figure(2)
plot(BestFitness)
title('最佳個(gè)體適應(yīng)度變化趨勢(shì)')
xlabel('迭代次數(shù)')
ylabel('適應(yīng)度值')
matlab三維路徑規(guī)劃的方法是什么    

以上就是“matlab三維路徑規(guī)劃的方法是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI