【优化分配】模拟退火策略优化免疫算法求解无人机协同优化分配问题【含Matlab源码 1978期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、模拟退火策略优化免疫算法简介

指导性搜索方法具有较强的通用性,无须利用问题的特殊信息,这也造成了对问题已知信息的浪费。尽管启发式算法对问题的依赖性强,但对特殊问题却能利用问题信息较快地构造解,其时间性能较为理想。所以,合理结合两者优点来构造新算法,对于实时性能和优化性能同样重要的柔性调度,具有很强的吸引力。笔者采取免疫算法和模拟退火算法混合的思想,互相取长补短,提出免疫模拟退火算法(immune simulated annealing algorithm,ISAA),将它用于FJSS问题的综合策略求解。尽管也有其他文献将免疫算法和模拟退火算法进行了混合,但是笔者构造的ISAA是针对FJSS问题提出的,不论构造思想还是算法流程都具有自身的独特性。ISAA流程结构如图1所示。
在这里插入图片描述

⛄二、部分源代码

clear;clc;
%% 读取数据
X=xlsread(‘UAV.xlsx’);
plane=struct(‘pos’,0,‘p’,0,‘num’,0,‘v’,0);
plane.pos=X(:,1:2); %飞机的起始位置
plane.p=X(:,3); %飞机的打击成功率
plane.num=X(:,4); %飞机的最大任务数
plane.v=X(:,5); %飞机的飞行速率

X=xlsread(‘Target.xlsx’);
target=struct(‘pos’,0,‘val’,0,‘win’,0,‘t’,0,‘num’,0);
target.pos=X(:,1:2); %任务点的位置
target.val=X(:,3); %任务的价值
target.win=X(:,4:5); %任务的时间窗口
target.t=X(:,6); %任务的用时
target.num=X(:,7); %需要无人机的数量

%% 参数设定
maxgen=1000; %最大迭代次数
sizepop=100; %种群规模
sizemem=20; %记忆库容量
Bias=300; %偏置项,让适应度函数为正
%初始化抗体
antibody_len=sum(target.num(😃);
antibody=zeros(sizepop,antibody_len);

for i=1:sizepop
antibody(i,:)=rand(1,antibody_len)*size(plane.num,1)+1;
end
affinity=zeros(1,sizepop);
%注意:此处应该为亲和度,不是适应度 免疫算法的适应度还要考虑抗体浓度

for i=1:sizepop
[cost,~]=Cost(plane,target,antibody(i,:));
affinity(i)=1/(cost+Bias);
end
axis([0,62,0,5.5]);%x轴 y轴的范围
set(gca,‘xtick’,0:2:62) ;%x轴的增长幅度
set(gca,‘ytick’,0:1:5.5) ;%y轴的增长幅度
xlabel(‘时间’),ylabel(‘无人机序号’);%x轴 y轴的名称
title(‘无人机协同的最佳任务分配’);%图形的标题
n_bay_nb=5;%无人机数目
n_task_nb = 27;%任务数目
%x轴 对应于画图位置的起始坐标x
n_start_time= [5.38 14.15 18.48 26.19 33.21 18.48 26.19 33.21 38.97 46.77 53.03 59.56 1.8 7.76 15.51 19.51 22.19 8.7 12.4 17.25 19.66 5 8.7 17.25 19.66 22.77 46.77];%每个任务的开始时间
%length 对应于每个图形在x轴方向的长度
n_duration_time =[1 1 2 2 2 2 2 2 2 2 1 1 1 2 2 1 1 2 2 1 1 1 2 1 1 2 2];%duration time of every task //每个工序的持续时间
%y轴 对应于画图位置的起始坐标y
n_bay_start=[1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4 5 5 5 5 5 5]-1; %bay id of every task ==工序数目,即在哪一行画线
%工序号,可以根据工序号选择使用哪一种颜色
n_job_id=[7 11 12 14 2 12 14 2 10 16 13 17 1 20 18 15 9 8 4 5 19 3 8 5 19 6 16];%
rec=[0,0,0,0];%temp data space for every rectangle
color_list=[[1,0,0];[0,1,0];[0,0,1];[0.95,0.64,0.37];[1,1,0];[0.1333,0.7451,0.5333];[0.60,0.8,0.2];[0.8,0.36,0.36];[0.74,0.71,0.42];[0.52,0.81,0.98];[0.41,0.35,0.8];[0.4667,0.5333,0.6];[0.98,0.92,0.84];[0.94118,1,0.94118];[0.86,0.86,0.86];[0.5,1,0.83];[0.823,0.411,0.117];[0.63,0.13,0.94];[0.87,0.63,0.87];[0,1,1];[1,0.38,0];[0.4,0.1,0.9];[0,0.9,0.2]];
for i =1:n_task_nb
rec(1) = n_start_time(i);%矩形的横坐标
rec(2) = n_bay_start(i)+0.7; %矩形的纵坐标
rec(3) = n_duration_time(i); %矩形的x轴方向的长度
rec(4) = 0.6;
txt=sprintf(‘p(%d,%d)=%d’,n_bay_start(i),n_job_id(i),n_duration_time(i));%将机器号,工序号,加工时间连城字符串
rectangle(‘Position’,rec,‘LineWidth’,0.5,‘LineStyle’,‘-’,‘FaceColor’,color_list(n_job_id(i)😅);%draw every rectangle
if n_duration_time(i)==1 && n_job_id(i)>=10
text(n_start_time(i)+0.12,(n_bay_start(i)+1),num2str(n_job_id(i)),‘FontWeight’,‘Bold’,‘FontSize’,10);%label the id of every task ,字体的坐标和其它特性
end
if n_duration_time(i)==1 && n_job_id(i)<10
text(n_start_time(i)+0.3,(n_bay_start(i)+1),num2str(n_job_id(i)),‘FontWeight’,‘Bold’,‘FontSize’,10);%label the id of every task ,字体的坐标和其它特性
end
if n_duration_time(i)==2 && n_job_id(i)>=10
text(n_start_time(i)+0.6,(n_bay_start(i)+1),num2str(n_job_id(i)),‘FontWeight’,‘Bold’,‘FontSize’,10);%label the id of every task ,字体的坐标和其它特性
end
if n_duration_time(i)==2 && n_job_id(i)<10
text(n_start_time(i)+0.8,(n_bay_start(i)+1),num2str(n_job_id(i)),‘FontWeight’,‘Bold’,‘FontSize’,10);%label the id of every task ,字体的坐标和其它特性
end
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 余建军,徐学军.基于免疫和模拟退火原理的柔性Job-Shop调度研究[J].计算机应用研究. 2010,27(11)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值