粒子群算法(多维+航班着陆调度+MATLAB实现)
链接及源码
1. 问题描述
航班降落调度问题可以描述为:机场在某一段时间内有架需要降落航班,每个航班都有一个最早到达时间和最晚到达时间,在这个时间窗口内,航空公司需要选择一个目标时间,并将它作为航班到达时间公布出去,如果比此时间迟到或早到,会带来额外的费用支出,每个航班都定义了早到每分钟的惩罚和晚到每分钟的惩罚,同时,在两个航班降落之间需要有一段安全时间间隔。问题详细描述见链接文档.
2. MATLAB代码实现
2.1. fun.m
function y = fun(x)
%函数用于计算粒子适应度值
%x · input 输入粒子
%y output 粒子适应度值
target = [155,258,98,106,123,135,138,140,150,180];%10个航班的target时间,用于计算适应度函数
c = [10,10,30,30,30,30,30,30,30,30];%10个航班的早到/晚到的惩罚,用于计算适应度函数
time_span = [0 3 15 15 15 15 15 15 15 15;
3 0 15 15 15 15 15 15 15 15;
15 15 0 8 8 8 8 8 8 8;
15 15 8 0 8 8 8 8 8 8;
15 15 8 8 0 8 8 8 8 8;
15 15 8 8 8 0 8 8 8 8;
15 15 8 8 8 8 0 8 8 8;
15 15 8 8 8 8 8 0 8 8;
15 15 8 8 8 8 8 8 0 8;
15