一、背景簡介
二、源代碼
1、問題 1 中對 10 個中心點的兩架次最優排程規劃 Matlab 源程式
clc;clear all;close all; position=load('坐标點.txt'); [m,n]=size(position);
j=1;
sumx=0; sumy=0; for i=1:10
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/10;ave(j,2)=sumy/10; j=j+1;
sumx=0; sumy=0; for i=11:19
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/9;ave(j,2)=sumy/9; j=j+1;
sumx=0; sumy=0; for i=20:24
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/5;ave(j,2)=sumy/5; j=j+1;
sumx=0; sumy=0; for i=25:34
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/10;ave(j,2)=sumy/10; j=j+1;
sumx=0; sumy=0; for i=35:41
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/7;ave(j,2)=sumy/7; j=j+1;
sumx=0; sumy=0; for i=42:47
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/6;ave(j,2)=sumy/6; j=j+1;
sumx=0; sumy=0; for i=48:53
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/6;ave(j,2)=sumy/6; j=j+1;
sumx=0; sumy=0; for i=54:58
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/5;ave(j,2)=sumy/5; j=j+1;
sumx=0; sumy=0; for i=59:63
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/5;ave(j,2)=sumy/5; j=j+1;
sumx=0; sumy=0; for i=64:68
sumx=sumx+position(i,1); sumy=sumy+position(i,2);
end ave(j,1)=sumx/5;ave(j,2)=sumy/5; j=j+1;
% ave=position;
Routebest=10000000000; for one=1:2^10/2
A=[];B=[];index=dec2bin(one,10); for two=1:10
if index(two)=='0' A=[A;ave(two,:)];
end
else end
B=[B;ave(two,:)];
[m,n]=size(A);
fit1=[];p1=[];
if m==1
fit1=A;L1=0;
else
[d1]=dj(A);
[p1,L1] = tspsearch2(d1,2);
for i=1:m
fit1(i,1)=A(p1(i),1);
fit1(i,2)=A(p1(i),2);
end
end
[m,n]=size(B);
fit2=[];p2=[];
if m==1
fit2=B;L2=0;
else
[d2]=dj(B);
[p2,L2] = tspsearch2(d2,2);
for i=1:m
fit2(i,1)=B(p2(i),1);
fit2(i,2)=B(p2(i),2);
end
end
if (L1+L2)<Routebest Routebest=L1+L2;
fit1best=[];fit2best=[];p1best=[];p2best=[]; fit1best=fit1;fit2best=fit2;p1best=p1;p2best=p2;
end end
2、問題 1 中對 68 個目标點的兩架次最優排程規劃 Matlab 源程式
clc;clear all;close all; position=load('坐标點.txt'); po1=position(1:10,:);%A1 po2=position(11:19,:);%A2 po8=position(54:58,:);%A8 po9=position(59:63,:);%A9 po3=position(20:24,:); %A3 po4=position(25:34,:);%A4 po10=position(64:68,:);%A10 po7=position(48:53,:);%A7 po5=position(35:41,:);%A5 po6=position(42:47,:); %A6
A=[po2;po3;po4;po5;po6;po7;po8;po9;po10]; B=po1;
[d1]=dj(A);
[p1,L1] = tspsearch2(d1,2); [m,n]=size(A) ;
for i=1:m
fit1(i,1)=A(p1(i),1);
fit1(i,2)=A(p1(i),2);
end
[d2]=dj(B);
[p2,L2] = tspsearch2(d2,2); [m,n]=size(B) ;
for i=1:m
fit2(i,1)=B(p2(i),1);
fit2(i,2)=B(p2(i),2);
end
三、matlab版本及參考文獻
1 matlab版本
2014a
2 參考文獻
[1] 包子陽,餘繼周,楊杉.智能優化算法及其MATLAB執行個體(第2版)[M].電子工業出版社,2016.
[2]張岩,吳水根.MATLAB優化算法源代碼[M].清華大學出版社,2017.
[3]巫茜,羅金彪,顧曉群,曾青.基于改進PSO的無人機三維航迹規劃優化算法[J].兵器裝備工程學報. 2021,42(08)
[4]鄧葉,姜香菊.基于改進人工勢場法的四旋翼無人機航迹規劃算法[J].傳感器與微系統. 2021,40(07)
[5]馬雲紅,張恒,齊樂融,賀建良.基于改進A*算法的三維無人機路徑規劃[J].電光與控制. 2019,26(10)
[6]焦陽.基于改進蟻群算法的無人機三維路徑規劃研究[J].艦船電子工程. 2019,39(03)