• 【智能优化算法-MOEA_D】基于MOEA_D求解联合经济排放调度(CEED)问题附matlab代码


    1 内容介绍

    MOEA/D 是一种将数学规划方法与 EA 相结合的求解 MOP 的 MOEA。 MOEA/D 将一个 MOP 分解为若干个的单目标优化子问题进行求解。由于子问题的 构造方法相同,只有权重不同,故权重的欧式距离较近的子问题,其最优解有相 互指导意义,因而该算法的进化动力是对邻近子问题的进化。

    1.1MOEA/D 的特点

    1.2MOEA/D 与其他 MOEA 的不同之处在于: (1)与其他经典 MOEA 不同,MOEA/D 采用数学规划中的分解策略,针对同一 个 MOP 采用分解策略进行分解,可根据求解的效果选择最佳分解策略,同时可与 传统的优化方法进行结合,进一步提高算法的优化性能。 (2)MOEA/D 中引入邻域的概念,邻域中的相邻子问题较为相似,故其解的信 息可同时优化多个子问题。邻域不仅加快了算法的运算效率,充分利用每个求得 的解,而且可以减少子问题的重复优化,简化运算。 (3)MOEA/D 中子问题的构造是由权向量来控制的,而 MOEA/D 进化的动力是 来源于邻域中子问题的解的指导,因此可以通过改变权向量中某个分量的值来动 态调整种群个体的进化方向,从而使该算法在搜索帕累托前沿不同部分的时候能 根据帕累托前沿的特征进行调整,更加合理分配运算资源。 (4)MOEA/D能求解其他MOEA无法解决的MOP,且其解具有良好的性能[63]。, 故而该算法的具有更强的通用性,应用空间广泛。 (5)MOEA/D 能很好地求解现阶段大多数 MOEA 无法求解的多个目标(尤其是目标个数大于 )的优化问题。当目标个数较多时,传统的 MOEA 的性能往往 会下降,无法得到高质量的解,而相对来说 MOEA/D 的算法性能没有明显下降。 (6)MOEA/D 易于引进目标归一化技术。在实际运用过程中,往往会遇到多个 目标函数的值属于不同的数量级别,而这个问题会影响到很多算法的运行性能。 在 MOEA/D 中,可以引入目标归一化技术来解决这个问题。

    2 仿真代码

    %function sp=CreateSubProblems(nObj,nPop,T)    empty_sp.lambda=[];    empty_sp.Neighbors=[];    sp=repmat(empty_sp,nPop,1);        %theta=linspace(0,pi/2,nPop);        for i=1:nPop        lambda=rand(nObj,1);        lambda=lambda/norm(lambda);        sp(i).lambda=lambda;                %sp(i).lambda=[cos(theta(i))        %              sin(theta(i))];    end    LAMBDA=[sp.lambda]';    D=pdist2(LAMBDA,LAMBDA);    for i=1:nPop        [~, SO]=sort(D(i,:));        sp(i).Neighbors=SO(1:T);    endend

    3 运行结果

    4 参考文献

    [1]连海. 基于改进MOEA/D算法的微网分级调度研究. 

    博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

    部分理论引用网络文献,若有侵权联系博主删除。

  • 相关阅读:
    【LeetCode热题100】--55.跳跃游戏
    【无标题】
    缓冲区“l”(大小为 24 字节)将溢出;4 字节将在偏移 24 时开始写入
    双线服务器和单线服务器的区别
    设计模式5——简单工厂模式
    Redis的各数据类型及其用法
    敏捷也许是最适合外包团队的项目管理方法
    网络编程之聊天室(一)
    初体验 在Dell R7525 服务器 RTX 3090 安装Chat with RTX
    【Python编程】【Jupyter Notebook】启动时报错:no available port could be found
  • 原文地址:https://blog.csdn.net/qq_59747472/article/details/126067960