• 基于食肉植物优化算法的线性规划问题求解matlab程序


    基于食肉植物优化算法的线性规划问题求解matlab程序
    在这里插入图片描述
    1 算法介绍
    食肉植物算法(CPA)从随机初始化一组解决方案开始。然后将溶液分类为食肉植物和猎物,然后根据生长和繁殖过程进行分组。它们的适应值将更新,所有解决方案都将合并。该过程将继续,直到满足终止条件。每个过程的细节解释如下:
    在这里插入图片描述
    1.1 初始化
    CPA是一种基于种群的优化算法,因此,它从初始化潜在问题的潜在解的种群开始。首先,在湿地中随机初始化由食肉植物和猎物组成的个体种群。食肉植物和猎物的数量分别表示为NCPLANT和NPREY。
    1.2分类和分组
    接下来,根据其适应度值按升序对等式(2)中的每个个体进行排序(考虑最小化问题)。排序种群的顶部植物解被认为是食肉植物CP,而剩余解(nPrey)是猎物猎物。图2展示了食肉植物和猎物的可视化。排序适应度和排序总体的矩阵可描述为不等式。分组过程需要模拟每个食肉植物及其猎物的环境。在分组过程中,具有最佳适应值的猎物被分配给排名第一的食肉植物。类似地,第二和第三类猎物分别被分配到第二和第三类食肉植物。重复该过程,直到NCplanth级猎物被分配到NCplanth级食肉植物。然后,将第1级猎物分配给第一级食肉植物,以此类推。CPA中的分组过程如下图所示。3.这一分组对于减少有助于肉食性植物生长的许多劣质猎物的可能性至关重要,这对于提高肉食性植物的生存能力非常重要。
    1.3 生长

    由于土壤营养贫乏,肉食性植物为了生长而吸引、捕获和消化猎物。猎物被其甜美的气味吸引到植物身上,但可能会间歇性地成功逃脱食肉植物的魔爪。这里,引入了吸引率。对于每组,随机选择一个猎物。如果吸引率高于随机生成的数字,则食肉植物会捕获并消化猎物以进行生长。
    1.4 繁殖
    食肉植物从猎物身上吸收养分,并利用这些养分进行生长和繁殖。就繁殖而言,只有排名第一的食肉植物,即。E种群中最好的解决方案是允许繁殖。这是为了确保CPA的开发只关注最佳解决方案。可以避免对其他解决方案进行不必要的利用,从而节省计算成本。
    1.5 重组过程
    新产生的食肉植物和猎物与以前的种群相结合,形成一个新的种群[n nCPlant(group_iter)nCPlant]×d维度。更具体地说,个体、nCPlant(groupiter)个体和nCPlant个体分别是来自原始种群、生长过程和繁殖过程的个体。随后,根据适应度值按升序对这组新个体进行排序。然后从该组中选择排名前N的个体作为新的候选解决方案。因此,这种精英主义选择策略确保选择更合适的解决方案在下一代中进行繁殖。
    在这里插入图片描述
    2 线性规划算例
    2.1算例
    在这里插入图片描述
    2.2算例答案

    在这里插入图片描述
    3 杂草优化算法求解结果

    1)迭代曲线
    在这里插入图片描述
    2)求解答案
    在这里插入图片描述

    4 matlab程序
    1)主函数
    下面展示一些 内联代码片

    // %% 基于食肉植物优化算法的线性规划问题求解
    %% 基于食肉植物优化算法的线性规划问题求解
    clc
    clear 
    close all
    
    disp(['CPA is solving 100D Step test function.'])
    disp(['Please wait...'])
    disp(blanks(1)');
    
    tic
    %100D step test function variables
    d=3;
    Lb=0*ones(1,d);
    Ub=15*ones(1,d);
    opt=zeros(d,1);
    tol=200;
    
    %Carnivorous Plant Algorithm
    [best,fmin]=CPA(Lb,Ub,d,opt,tol);
    
    
    
    
    。。。。。。。略
    
    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    4 matlab完整程序转链接:
    https://mp.weixin.qq.com/s?__biz=Mzg4MTc1MjE2Mg==&mid=2247484421&idx=1&sn=084663078d6bb6bb0b40c49851265784&chksm=cf606508f817ec1e9298dd32eb8caa83468168f7b18fe9796c9e3cd11bdf9124c43c214e73fa&token=1293156571&lang=zh_CN#rd

    在这里插入图片描述

  • 相关阅读:
    Mysql第二篇---InnoDB数据存储结构
    xlsxStyle + xlsx.full.min 导出数据,并设置导出样式
    五分钟看完,彻底理解协变逆变
    剖析SGI STL空间配置器(deallocate内存回收函数和reallocate内存扩充函数)
    嵌入式开发:嵌入式基础——回调函数
    Redis主从复制+哨兵模式
    Docker 入门笔记
    Open GOP 和close GOP
    基于YOLOv8的安全帽检测系统
    如何使用并查集解决朋友圈问题?
  • 原文地址:https://blog.csdn.net/weixin_47365903/article/details/126089350