• 【优化调度】基于matlab帝国企鹅算法求解航空调度优化问题【含Matlab源码 YXS001期】


    一、帝企鹅算法简介

    目前,关于帝企鹅算法在国内外研究较少,在中对该算法进行了分析,并且与常见的粒子群算法、萤火虫算法进行了对比分析. 帝企鹅从事各种活动,如狩猎、群体觅食,是群居性动物.每当恶劣的气候来临,它们会挤在一起防风御寒.帝企鹅在南极极端冬季期间主要以集群的方式互相取暖来度过−40 ℃ 的冬季. 为了保证每只企鹅都能取暖,因此每只企鹅都在平等地做出贡献,同时它们的社交行为极为团结以及分工明确. 集群的行为可归纳如下.
    1 确定集群边界范围 
    设定在帝企鹅蜷缩取暖的过程中所选择的位置范围在多边形的网格范围内,帝企鹅在聚集的过程中至少与两只以上的帝企鹅相邻,邻居的选择是随机的;而在帝企鹅集群过程中范围的边界是不规则的多边形,因此用围绕住帝企鹅集群的风的梯度来表示整体集群的边界,在此定义风速 和其梯度 、 ,集群边界 ,可表示为
    γ = ∆α, (8) µ = α+iβ. (9) W

    2 计算集群层次周围的温度 
    南极严酷的外界环境使得帝企鹅在迁徙过程中面对寒冷天气会采取集群取暖来保持温度. 若当前聚集半径 d>0.5 时,其温度 W=0;当 d<0.5 时,其温度 W=1. 温度梯度曲线可以描述为
    在这里插入图片描述
    其中, 为最大迭代次数,x 为当前迭代次数,温度的表达式
    在这里插入图片描述
    3 计算帝企鹅间的距离 
    在集群范围内帝企鹅间的距离表示为该个体与集群中心帝企鹅的距离,集群距离公式如下:
    在这里插入图片描述
    其中, 代表帝企鹅距中心距离; x 表示当前迭代数; 和 用于帝企鹅体积设置的影响向量因子,
    避免个体间的冲突; 为 x 轮最优解;表示当前帝企鹅的位置向量; 定义帝企鹅的主体社会地位,负责区别最优个体与普通个体. 向量和 计算如下:
    在这里插入图片描述
    其中 , 是移动步长参数,这里 的值设置为 2.5, 通过比较与最优的差异来定义多边形网格精度,而 是一个随机函数. 函数计算如下:
    在这里插入图片描述
    其中,ξ 和 φ是控制参数,其值分别在(2,3)(1.5,2)的范围内能得出更好的结果.

    4 帝企鹅位置更新 帝企鹅集群中的个体通过向集群中心帝企鹅 Q 的方向移动更新位置信息,其位置更新如下:
    Oep(x+1) = Obest(x)−ΓLep, (17)
    其中,Oep(x+1)代表皇帝企鹅的下一个更新位置.在迭代过程中,一旦移动者重新定位,帝企鹅的上述参数将被重新计算.

    二、部分源代码

    %% 这是使用原始算法的直接求解结果,添加专用于本问题的更新方式可以进一步提高精度
    % This is the direct result of using the original algorithm,
    % adding some specific update methods to this problem can further improve the accuracy
    clc;
    clear;
    close all;
    warning off
    %% 固定随机数种子
    noRNG=1;
    rng(‘default’)
    rng(noRNG)
    %% 载入数据
    [data.node,data.node0,data.node1]=xlsread(‘节点经纬度.xlsx’,1);
    data.D1=xlsread(‘物流节点到需求点距离.xlsx’,1);
    data.D2=xlsread(‘物流节点到产地距离.xlsx’,1);
    data.demand=xlsread(‘需求.xlsx’,1);
    data.noC=find(data.node(:,3)==1);
    data.noD=find(data.node(:,3)❤️);
    data.noP=find(data.node(:,3)==3);
    data.numC=length(data.noC);
    data.numD=length(data.noD);
    data.numP=length(data.noP);
    data.numSelected=6;
    for i=1:data.numD
    for j=1:data.numC
    D=distance(data.node(data.noD(i),2),data.node(data.noD(i),1),data.node(data.noC(j),2),data.node(data.noC(j),1)); % distance看matlab help
    pi=3.1415926;
    dx=D63712pi/360;
    data.D1(i,j)=dx;
    %data.D1(i,j)=norm(data.node(data.noD(i),1:2)-data.node(data.noC(j),1:2));
    end
    end
    for i=1:data.numC
    for j=1:data.numP
    D=distance(data.node(data.noC(i),2),data.node(data.noC(i),1),data.node(data.noP(j),2),data.node(data.noP(j),1)); % distance看matlab help
    pi=3.1415926;
    dx=D
    637110002*pi/360;
    data.D2(i,j)=dx;
    %data.D2(i,j)=norm(data.node(data.noC(i),1:2)-data.node(data.noP(j),1:2))*1000;
    end
    end
    data.maxLoad=760; %最大能力
    data.alpha=0.5;
    data.ck=245; %库存成本
    data.ct1=0.19; %运输成本1
    data.ct2=0.26; %运输成本2
    data.cb=2.45; %可变成本
    figure
    hold on
    plot(data.node(data.noC,1),data.node(data.noC,2),‘rs’,‘LineWidth’,2,…
    ‘MarkerEdgeColor’,‘k’,…
    ‘MarkerFaceColor’,‘g’,…
    ‘MarkerSize’,10)
    plot(data.node(data.noD,1),data.node(data.noD,2),‘ro’,‘LineWidth’,2,…
    ‘MarkerEdgeColor’,‘k’,…
    ‘MarkerFaceColor’,‘r’,…
    ‘MarkerSize’,10)
    plot(data.node(data.noP,1),data.node(data.noP,2),‘rh’,‘LineWidth’,2,…
    ‘MarkerEdgeColor’,‘k’,…
    ‘MarkerFaceColor’,‘b’,…
    ‘MarkerSize’,10)
    %% 算法参数设置
    dim=data.numC+data.numD;
    %%
    option.dim=dim; %八个决策变量
    lb=0;
    ub=1;
    option.lb=lb;
    option.ub=ub;
    if length(option.lb)==1
    option.lb=ones(1,option.dim)*option.lb;
    option.ub=ones(1,option.dim)*option.ub;
    end
    option.fobj=@aimFcn_1;
    %option.fobj0=option.fobj;
    option.showIter=0;
    %% 算法参数设置 Parameters
    % 基本参数
    option.numAgent=20; %种群个体数 size of population
    option.maxIteration=20; %最大迭代次数 maximum number of interation

    三、运行结果

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

    四、matlab版本及参考文献

    1 matlab版本
    2014a

    2 参考文献
    [1]唐菁敏,曲文博,苏慧慧,郑锦文.一种基于帝企鹅差分算法的WSN覆盖优化[J].云南大学学报(自然科学版). 2021,43(01)

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

  • 相关阅读:
    python 第四章面向对象
    基于SSM的高校宿舍管理系统
    [附源码]java毕业设计放肆游旅游网
    千亿赛道,MCU背后的国产化浪潮(附国内厂家名单)-MCU国产化发展线上研讨会
    【编程题】【Scratch二级】2021.06 绘制五彩缤纷的多瓣花
    MySQL 触发器实例解析:自动更新垃圾桶颜色
    中国数字化转型浪潮下,移动钱包成为全球App标配
    Python可视化之Matplotlib
    C#联合halcon应用——大华相机采集类
    Jetpack:012-Jetpack中的弹出菜单
  • 原文地址:https://blog.csdn.net/TIQCmatlab/article/details/126840514