m基于遗传算法的城市生活垃圾回收网络优化matlab仿真

简介: m基于遗传算法的城市生活垃圾回收网络优化matlab仿真

1.算法描述

   目前,城市生活垃圾成为困扰我国大多数城市健康发展的痼疾.与国外相关国家相比,我国垃圾回收处理模式存在资源化程度低,处理方式单一等弊端,很多城市在积极探索新的垃圾回收模式.鉴于中国与巴西国情比较接近,巴西的塞普利模式具有较高参考意义.从文献阅读来看,将垃圾回收问题视为单独的选址-运输问题或垃圾收集车辆路径问题(VRP),很少将两者结合起来考虑,也很少考虑垃圾的回收利用.基于此背景下,本文提出如何在混合回收,集中分拣的回收模式下构建城市生活垃圾回收网络的决策问题。在阐明城市生活垃圾的基础上,分析城市生活垃圾回收物流和回收网络构建的原则,内容,构成要素,并介绍典型的垃圾回收网络构建模型和垃圾收集车辆路径模型,为本文的数学建模奠定理论基础. 文章借鉴巴西塞普利回收模式,提出构建具有分拣中心的城市生活垃圾回收网络,通过分拣中心实现垃圾的分类回收.由于城市生活垃圾回收网络问题涉及到设施选址和收集车辆路径优化问题,

遗传算法的原理

   遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。

   其主要步骤如下:

1.初始化

   选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。

   通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。

2.选择

  根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。

给出目标函数f,则f(bi)称为个体bi的适应度。以

为选中bi为下一代个体的次数。

显然.从式(3—86)可知:

(1)适应度较高的个体,繁殖下一代的数目较多。

(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。

这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。

3.交叉

   对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。

2.matlab算法仿真效果
matlab2022a仿真结果如下:

1.png
2.png
3.png

3.MATLAB核心程序

global C1;   %单位收集成本  
global b;    %分拣中心的变动成本
global C2;   %单位存储成本
global Fk;   %收集车辆的固定成本 
global C3;   %单位运输成本
global Qk;   %收集车辆的最大容量
global alpha;%A类垃圾比例
global Fh;   %焚烧厂的固定成本
global beta; %B类垃圾比例
global Qh;   %焚烧厂的日处理能力 
global gamma;%C类垃圾比例
global Fl;   %填埋场的固定成本
global P;    %垃圾焚烧残留比例
%%
%垃圾产生点的坐标及日垃圾产生量 
X1=[76,148,57,19,51,101,27,135,18,50,106,89,54,45,104,79,76,86,83,-6,72,90,82,73,92,36,84,64,76,30,21,55,134,42,92,31,55,50,87,30,5,92,117,20,100,134,35,-15];
Y1=[15,40,114,23,69,88,109,128,52,104,72,111,61,133,73,20,5,146,58,83,70,39,61,84,98,63,115,98,143,141,67,52,124,102,138,29,126,133,96,124,61,96,117,68,76,55,41,108];
M1=[1.99,6.14,6.37,6.46,4.91,4.84,2.04,7.17,5.28,2.23,4.65,4.06,2.99,4.68,1.57,7.28,8.25,3.99,5.41,5.78,4.94,3.39,0.570,7.10,7.17,4.18,5.73,1.93,4.96,1.92,5.84,4.56,7.25,6.54,7.39,4.48,7.06,5.40,3.23,7.08,3.67,1.74,4.98,2.07,5.62,6.09,1.40,7.15];
 
%分拣中心
X2 = [51,53,79,92];
Y2 = [88,72,68,111];
 
%焚烧厂
X3 = [45,115,82,115];
Y3 = [148,148,18,68];
 
%填埋场
X4 = [127,146,76];
Y4 = [11,99,166];
%回收工厂   
X5 = [156];
Y5 = [158];
 
figure;
plot(X1,Y1,'bo');
axis([-20,180,-20,180]);
for i = 1:length(X1)
    text(X1(i)+2,Y1(i)+2,num2str(i)); 
end
hold on
plot(X2,Y2,'rs');
hold on
plot(X3,Y3,'g^');
hold on
plot(X4,Y4,'k.');
hold on
plot(X5,Y5,'m*');
legend('垃圾产生点','分拣中心','焚烧厂','填埋场','回收工厂');
 
 
%分拣中心的固定成本
a = 1335;
%单位收集成本  
C1= 0.056;
%分拣中心的变动成本
b = 2;
%单位存储成本
C2= 0.028;
%收集车辆的固定成本 
Fk= 120;
%单位运输成本
C3= 0.015;
%收集车辆的最大容量
Qk= 12;
%A类垃圾比例
alpha = 0.35;
%焚烧厂的固定成本
Fh= 4500;
%B类垃圾比例
beta  = 0.45;
%焚烧厂的日处理能力  
Qh= 250;
%C类垃圾比例
gamma = 0.45;
%填埋场的固定成本
Fl= 9500;
%垃圾焚烧残留比例
P = 0.26;
 
%%
%根据遗传算法进行参数的拟合
MAXGEN = 200;
NIND   = 20;
Ns     = 2+length(X1);
 
Chrom  = crtbp(NIND,Ns*10);
Areas  = [1         ,1                 
          length(X2),length(X2)];
for i = 1:length(X1);     
    Areas = [Areas,[0;1]];  
end
 
FieldD = [rep([10],[1,Ns]);Areas;rep([0;0;0;0],[1,Ns])];
 
Data1 = zeros(NIND,Ns);
Data2 = zeros(MAXGEN,Ns); 
 
gen  = 0;
for a=1:1:NIND 
    a
    %保证每个数值不一样,
    tmps       = [1,2,rand(1,length(X1))>0.5];
    Data1(a,:) = tmps(1:Ns);      
  
    %计算对应的目标值
    [epls,lines2,Position1,best_route1,best_length1,Avg_Length1,Position2,best_route2,best_length2,Avg_Length2] = func_obj(Data1(a,1),Data1(a,2),Data1(a,3:end));
    E          = epls;
    J(a,1)     = E;
end
 
Objv  = (J+eps);
gen   = 0; 
 
while gen < MAXGEN;   
      gen
      
      FitnV = ranking(Objv);    
      Selch = select('sus',Chrom,FitnV);    
      Selch = recombin('xovsp', Selch,0.9);   
      Selch = mut( Selch,0.1);   
      phen1 = bs2rv(Selch,FieldD);   
      
      for a=1:1:NIND    
          %计算对应的目标值
          if abs(floor(phen1(a,1))+1 - floor(phen1(a,2))-1) > 0
             [epls,lines2,Position1,best_route1,best_length1,Avg_Length1,Position2,best_route2,best_length2,Avg_Length2] = func_obj(floor(phen1(a,1))+1,floor(phen1(a,2))+1,round(phen1(a,3:end)));
          else
             epls   = 1e10;    
          end
          E       = epls;
          JJ(a,1) = E;
      end 
      
      Objvsel=(JJ);    
      [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);   
      gen=gen+1; 
 
      Error1(gen) = mean(JJ);
      if gen <= 128
         Error2(gen) = mean(Error1(1:gen));
      else
         Error2(gen) = mean(Error1(gen-128:gen)); 
      end
end 
%根据优化结果计算成本收敛曲线
y = func_cost();
02_040m
相关文章
|
3天前
|
机器学习/深度学习 算法 机器人
基于QLearning强化学习的较大规模栅格地图机器人路径规划matlab仿真
本项目基于MATLAB 2022a,通过强化学习算法实现机器人在栅格地图中的路径规划。仿真结果显示了机器人从初始位置到目标位置的行驶动作序列(如“下下下下右右...”),并生成了详细的路径图。智能体通过Q-Learning算法与环境交互,根据奖励信号优化行为策略,最终学会最优路径。核心程序实现了效用值排序、状态转换及动作选择,并输出机器人行驶的动作序列和路径可视化图。
122 85
|
2天前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。
|
3天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
2天前
|
算法 Serverless
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真
本项目基于魏格纳函数和焦散线方法,使用MATLAB 2022A模拟自加速光束。通过魏格纳函数法生成多种自加速光束,并设计相应方法,展示仿真结果。核心程序包括相位和幅度的计算、光场分布及拟合分析,实现对光束传播特性的精确控制。应用领域涵盖光学成像、光操控和光束聚焦等。 关键步骤: 1. 利用魏格纳函数计算光场分布。 2. 模拟并展示自加速光束的相位和幅度图像。 3. 通过拟合分析,验证光束加速特性。 该算法原理基于魏格纳函数描述光场分布,结合数值模拟技术,实现对光束形状和传播特性的精确控制。通过调整光束相位分布,可改变其传播特性,如聚焦或加速。
|
3天前
|
算法
基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真
本设计基于龙格库塔算法对锅炉单相受热管进行建模与MATLAB数值仿真,简化为喷水减温器和末级过热器组合,考虑均匀传热及静态烟气处理。使用MATLAB2022A版本运行,展示自编与内置四阶龙格库塔法的精度对比及误差分析。模型涉及热传递和流体动力学原理,适用于优化锅炉效率。
|
1天前
|
移动开发 算法 计算机视觉
基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真
本项目基于分块贝叶斯非局部均值优化(OBNLM)算法实现图像去噪,使用MATLAB2022A进行仿真。通过调整块大小和窗口大小等参数,研究其对去噪效果的影响。OBNLM结合了经典NLM算法与贝叶斯统计理论,利用块匹配和概率模型优化相似块的加权融合,提高去噪效率和保真度。实验展示了不同参数设置下的去噪结果,验证了算法的有效性。
|
5天前
|
传感器 算法
基于GA遗传优化的WSN网络最优节点部署算法matlab仿真
本项目基于遗传算法(GA)优化无线传感器网络(WSN)的节点部署,旨在通过最少的节点数量实现最大覆盖。使用MATLAB2022A进行仿真,展示了不同初始节点数量(15、25、40)下的优化结果。核心程序实现了最佳解获取、节点部署绘制及适应度变化曲线展示。遗传算法通过初始化、选择、交叉和变异步骤,逐步优化节点位置配置,最终达到最优覆盖率。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
248 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
147 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
117 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码