1、A 题 城市垃圾运输处理方案摘要随着社会的不断发展和人民生活水平的迅速提高,城市生活垃圾对环境和人类生存带来了极大的威胁。因而,管理好城市生活垃圾是保证环境和人们生活的关键点。本文针对深圳市南山区的城市生活垃圾,将第一问分为四个问题进行分析。第一,给出厨余垃圾处理设备的设置;第二,确定厨余垃圾处理中心的选址;第三,垃圾收运路径的最优化;第四,在利益最大化的同时考虑环境因素,使之对环境造成的危害最小。第二问的问题是第一问的扩大化,我们在此仅对第一问进行具体分析。1.对于第一个问题,我们根据题目中所给出的数据及信息,分别对最可能的设备安置情况进行数据分析,包括各种情况的成本、收益等。最终确定在整个
2、南山区设置两个大型厨余垃圾处理设备更为经济合理。2.对于第二个问题,我们根据南山区的地图,对其进行坐标处理,得到二维坐标下的散点图,分别找出各个垃圾转运站的坐标,通过对问题的分析和合理的假设,采用规划的理论建立了单目标的非线性规划的数学模型。之后运用LINGO 软件进行编程得到了全局最优解,得到两个垃圾处理中心的最优位置,其坐标分别为(20,21.5)和(11.44,28.9).3.在解决第二个问题时,我们就生活中垃圾运输的问题的调度方案予以研究。我们把转运站分为 A、B 两个区域,每个区域设一个垃圾处理中心。我们对这两个区域分别利用蚁群算法进行 MATLAB 编程,以此得到垃圾收运的最优路径
3、。4.对于第四个问题,由于垃圾处理后的收益是固定不变的,所以只要使垃圾收运的路径最短即可使成本最小,即利益最大化。此问题在第三个问题中已经到到解决。在对垃圾处理中心进行选址时,我们已经考虑到环境保护的问题,因此,本文所设计的选址即可在保证利益最大化的同时使环境污染最小。关键词: 垃圾收运 最优路径 非线性规划 蚂蚁算法 1. 问题重述垃圾分类化收集与处理是有利于减少垃圾的产生,有益于环境保护,同时也有利于资源回收与再利用的城市绿色工程。在深圳,垃圾分为四类:厨余垃圾、可回收垃圾、有害垃圾和其他不可回收垃圾,在垃圾分类收集与处理中,不同类的垃圾有不同的处理方式,简述如下:1) 厨余垃圾可以使用脱
4、水干燥处理装置,处理后的干物质运送饲料加工厂做原料。处理设备分大型和小型。2) 可回收垃圾将收集后分类再利用。3) 有害垃圾,运送到固废处理中心集中处理。4)其他不可回收垃圾将运送到填埋场或焚烧场处理。所有垃圾将从小区运送到附近的转运站,再运送到少数几个垃圾处理中心。具体的研究目标是:假定现有垃圾转运站规模与位置不变条件下,给出大、小型设备(厨余垃圾)的分布设计,同时在目前的运输装备条件下给出清运路线的具体方案。以期达到最佳经济效益和环保效果。2. 问题分析及模型假设2.1. 问题分析2.1.1. 背景分析随着城市化进程的加快,城市生活垃圾的产生量和堆积量快速增长,年增长速度达 8-10%,严
5、重污染环境。城市生活垃圾的管理已经成为世界各大城市面临的重大环境问题。但同时,城市生活垃圾又是一种可回收的资源和财富,是“放错地方的资源” 。因此,寻找合适的城市生活垃圾管理方法以实现对城市生活垃圾的无害化、资源化和减量化是世界各国不断探索和实践的重要课题。另外,城市垃圾自其产生到最终被送到处置场处理,需要环卫部门对其进行收集、分类与运输,这一过程称为城市垃圾的收运。随着城市生活垃圾产量的迅速增加, 收运系统对环境及社会系统造成的压力也日益凸现。因而在垃圾管理的过程中,有必要对垃圾车的收运路线进行合理优化, 以提高社会效益。2.1.2. 垃圾收集与运输问题分析已有学者研究表明城市生活垃圾收运系
6、统是一种物流系统。垃圾收运过程是垃圾从分散到集中的过程,是一个产生源高度分散、处置相对集中、产生量随季节变化的“逆物流”系统。垃圾收集车辆的路径选择是收集车辆从出发点出发,在满足垃圾量和车辆容量的限制条件下,完成对每个收集点的垃圾收集工作后运往垃圾处理中心的过程。本文基于城市垃圾收集路径优化问题的特殊性,采用蚁群算法进行求解,用 MATLAB 软件编程计算。2.2. 模型假设假设一:假定各转运站与处理中心(各点用坐标输入) 之间的运输路程为两点间直线距离;假设二:运输车在途中无堵车现象;假设三:车辆在任意两站点中途不停车,并且保持稳定的速率。同时忽略车辆在起步、刹车、拐弯、红绿灯等的时间消耗;
7、假设四:运输车没有超载现象;假设五:运输车在各垃圾转运站收集垃圾耗用时间相同;假设六:大小型厨余垃圾处理中心的使用年限均为 20 年。3. 符号说明符号 说明ijc第 i 个转运站运往第 j 个垃圾处理中心的垃圾量( , )jpxjy第 j 个垃圾处理中心的坐标( , )ii 第 i 个转运站的坐标d各转运站厨余垃圾量e垃圾处理中心的最大容量4. 模型的建立与求解 4.1 对问题一的求解本题要求我们在假定现有垃圾转运站规模与位置不变的条件下,给出大、小型设备(厨余垃圾)的分布设计。4.1.1 问题分析1. 是否要将所有经转运站的厨余垃圾都运到厨余垃圾处理中心进行处理?作出假设:我们假设所有转运
8、站的厨余垃圾都需要运到垃圾处理中心进行处理。问题分析:为了证明这个假设的正确性,我们分析了最偏远的一个垃圾站。运输费用:该站到南山区中心距离约为 10 公里,往返车程即 20 公里左右,现今柴油价格为 7.51 元/ 升。则往返路费为 150.2 元。司机月薪为 3500 元则每天约为 116.67 元,假设这天只运这最偏远的 一个站的垃圾。处理费用:按较贵的小型处理设备 200 元每吨,假设大小型设备的使用寿命均为二十年则可得出小型机器平均每天投资额为 38.36 元,只能处理 200300 公斤,则每天每吨消耗的投资额为 191.78 元。大型机器平均每天投资额为 6164.38 元能处理
9、 200 吨,则每天每吨消耗的投资额为 30.8219 元。函数模型:由此可得出最不利于假设的目标函数(x 为转运的量,单位:吨):17-2619.8x-201x盈 利 额而附录资料显示: 即随着垃圾转运量 x 的增大盈利额单调递增。 得出结论:要将所有经转运站的厨余垃圾都运到厨余垃圾处理中心进行处理。2. 如何分配大小型设备? 我们对题目进行分析后发现每天经各转运站分出的厨余垃圾共有321.6 吨(经转运站的垃圾有 804 吨,其中的 2/5 为厨余垃圾) ,由此得出大小型设备的分配方案大致有以下两种选择: 1) 将整个南山区分为两个小区,每个小区安置一个大型处理设备(大型处理设备每天可以处
10、理 200 吨厨余垃圾) 。2) 安排一个大型处理设备于南山区的中心部位,在较偏远处安排小型处理设备进行处理。我们对这两种分配方案进行了估算和对比得出的最佳分配方案是:安置两个大型处理设备。4.1.2 具体分析:1) 当整个南山区分为两个小区时,所需费用由以下几部分组成:1 投资额:万 元万 元 9024502 运行成本:每日运行成本: 万 元吨元吨 4.82/153.6二十年运行的总成本: 万 元.351608243 运输费用(非精确):我们估算出运输总路程为 290 公里左右。现今柴油价格为 7.51 元/ 升。则每日总运费为:2177.9 元聘用 8 名司机日薪为:933.36 元。则二
11、十年运输总费用为: 万 元元 2198.7271983650).9.217( 应用该方案二十年总费用为:46464.5198 万元2) 当方案为一个大型处理设备于南山区的中心部位,在较偏远处安排小型处理设备进行处理时所需费用为?1. 投资额:万 元万 元万 元 3.1584923.0)6.321(4502. 运行成本:每日运行成本: 万 元吨元吨吨元吨 4280.5/20./5则二十年运行的总成本: 万 元.39654280.3运输费用(非精确):运输总路程为 134 公里左右每日总运费为:1006.34 元聘用 4 名司机的费用为:466.68 元则二十年运输的总费用为:万 元元 3046.
12、175107534662)8.63.10( 应用该方案二十年总费用为:56530.3746 万元4.1.3 结论通过对比我们发现,即使运输费用计算方法非精确也不会影响到最终的结果:方案一的成本比方案二的成本花费小,则最佳的设备分布设计是:将南山区划分为两个区域,在每个区域内安置一个大型处理设备。4.2 对问题二的建模及求解根据题中所给出的南山区地图,我们对其进行了坐标处理,得到各转运站二维坐标下的散点图,见图一:(图一)我们根据转运站的分布情况建立合适的模型,为垃圾处理中心选取最优的位置。由于本题要考虑运输费用问题,因此在选址的过程中,必须要考虑从各转运站到处理中心的距离。目标函数是总的吨千米
13、数最小,约束条件有两个:一个是满足各转运站的垃圾总量,一个是总垃圾量不超过垃圾处理中心的最大处理量。建立数学模型如下:Min z=3812ijijc22)()(ijij ypxS.t.: , j=1,2;381ijjg, i=1,2,.,38.21jjidc对于本问题,两垃圾处理中心的坐标 、 是未知的,与 一样是决策jpxjyijc变量,此时 对决策变量 、 来说是非线性的,目22)()(ijijpxxjjp标函数为非线性函数,本问题为非线性规划。编写 LINGO 程序如下:model:sets:zyz/1 238/:x,y,d;cet/a,b/:px,py,e;links(zyz,cet)
14、:c;endsetsdata:x= 18 15 15.5 13 22 28.5 25.8 26 19.5 19.5 16.5 18 17 12 20 22 16.7 14.5 21 25.5 20.5 13.8 18 9.5 9.6 11 10.5 15 11 12 11 11 12.4 16 14 13.4 7 9; y=7.1 8 9.2 11.2 10.5 15 15.3 15.8 15.5 16.8 16.5 17 19.5 21.4 21.5 21.5 22.5 22.5 25.4 26.5 28 24.8 26 24.7 25 25.8 26.5 27.6 27.8 28.9 29
15、.5 30 30.1 29.5 36.5 37.5 37 31;d=4 4 3.2 2 12 2 4 4 8 10 6 8 6 2 8 6 10 4 12 28 12 10 14 16 6.4 8 12 6 8 10 6 6 6 8 12 12 16 10;e=200,200;enddatamin=sum(links(i,j):c(i,j)*(px(j)-x(i)2+(py(j)-y(i)2)(0.5);for(zyz(i):sum(cet(j):c(i,j)=d(i);for(cet(j):sum(zyz(i):c(i,j)=rand);to_visit=J(Select(1);Tabu(i
16、,j)=to_visit;endendif NC=2Tabu(1,:)=R_best(NC-1,:);end%第四步:记录本次迭代最佳路线L=zeros(m,1);for i=1:mR=Tabu(i,:);for j=1:(n-1)L(i)=L(i)+D(R(j),R(j+1);endL(i)=L(i)+D(R(1),R(n);endL_best(NC)=min(L);pos=find(L=L_best(NC);R_best(NC,:)=Tabu(pos(1),:);L_ave(NC)=mean(L);NC=NC+1;%第五步:更新信息素Delta_Tau=zeros(n,n);for i=1
17、:mfor j=1:(n-1)Delta_Tau(Tabu(i,j),Tabu(i,j+1)=Delta_Tau(Tabu(i,j),Tabu(i,j+1)+Q/L(i);endDelta_Tau(Tabu(i,n),Tabu(i,1)=Delta_Tau(Tabu(i,n),Tabu(i,1)+Q/L(i);endTau=(1-Rho).*Tau+Delta_Tau;%第六步:禁忌表清零Tabu=zeros(m,n);end%第七步:输出结果Pos=find(L_best=min(L_best);Shortest_Route=R_best(Pos(1),:);Shortest_Length=
18、L_best(Pos(1);subplot(1,2,1)DrawRoute(C,Shortest_Route)subplot(1,2,2)plot(L_best)hold onplot(L_ave,y)title(平均距离与最短距离)function DrawRoute(C,R)%=% DrawRoute.m% 画路线图的子函数%-% C Coordinate 节点坐标,由一个 N2 的矩阵存储% R Route 路线%=N=length(R)scatter(C(:,1),C(:,2)hold onplot(C(R(1),1),C(R(N),1),C(R(1),2),C(R(N),2)hold
19、 onfor ii=2:Nplot(C(R(ii-1),1),C(R(ii),1),C(R(ii-1),2),C(R(ii),2)hold onendtitle(优化结果)附录 3:function R_best,L_best,L_ave,Shortest_Route,Shortest_Length=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q)%=% ACATSP.m% Ant Colony Algorithm for Traveling Salesman Problem%-% 主要符号说明% C n 个转运站的坐标,n2 的矩阵% NC_max 最大迭代次数% m
20、蚂蚁个数% Alpha 表征信息素重要程度的参数% Beta 表征启发式因子重要程度的参数% Rho 信息素蒸发系数% Q 信息素增加强度系数% R_best 各代最佳路线% L_best 各代最佳路线的长度%=C=12 21.4;13.8 24.8;9.5 24.7;9.6 25;11 25.8;10.5 26.5;15 27.6;11 27.8;12 28.9;11 29.5;11 30;12.4 30.1;16 29.5;14 36.5;13.4 37.5;7 37;9 31;11.44 28.9;m=30;Alpha=1;Beta=5;Rho=.1;NC_max=160;Q=100;%
21、第一步:变量初始化n=size(C,1);%*表示问题的规模(转运站个数)D=zeros(n,n);%D 表示完全图的赋权邻接矩阵for i=1:nfor j=1:nif i=jD(i,j)=abs(C(i,1)-C(j,1)+abs(C(i,2)-C(j,2);elseD(i,j)=eps;endD(j,i)=D(i,j);endendEta=1./D;%Eta 为启发因子,这里设为距离的倒数Tau=ones(n,n);%Tau 为信息素矩阵Tabu=zeros(m,n);%存储并记录路径的生成NC=1;%迭代计数器R_best=zeros(NC_max,n);%各代最佳路线L_best=i
22、nf.*ones(NC_max,1) ;%各代最佳路线的长度L_ave=zeros(NC_max,1);%各代路线的平均长度while NC=rand);to_visit=J(Select(1);Tabu(i,j)=to_visit;endendif NC=2Tabu(1,:)=R_best(NC-1,:);end%第四步:记录本次迭代最佳路线L=zeros(m,1);for i=1:mR=Tabu(i,:);for j=1:(n-1)L(i)=L(i)+D(R(j),R(j+1);endL(i)=L(i)+D(R(1),R(n);endL_best(NC)=min(L);pos=find(L
23、=L_best(NC);R_best(NC,:)=Tabu(pos(1),:);L_ave(NC)=mean(L);NC=NC+1;%第五步:更新信息素Delta_Tau=zeros(n,n);for i=1:mfor j=1:(n-1)Delta_Tau(Tabu(i,j),Tabu(i,j+1)=Delta_Tau(Tabu(i,j),Tabu(i,j+1)+Q/L(i);endDelta_Tau(Tabu(i,n),Tabu(i,1)=Delta_Tau(Tabu(i,n),Tabu(i,1)+Q/L(i);endTau=(1-Rho).*Tau+Delta_Tau;%第六步:禁忌表清零
24、Tabu=zeros(m,n);end%第七步:输出结果Pos=find(L_best=min(L_best);Shortest_Route=R_best(Pos(1),:);Shortest_Length=L_best(Pos(1);subplot(1,2,1)DrawRoute(C,Shortest_Route)subplot(1,2,2)plot(L_best)hold onplot(L_ave,y)title(平均距离与最短距离)function DrawRoute(C,R)%=% DrawRoute.m% 画路线图的子函数%-% C Coordinate 节点坐标,由一个 N2 的矩阵存储% R Route 路线%=N=length(R)scatter(C(:,1),C(:,2)hold onplot(C(R(1),1),C(R(N),1),C(R(1),2),C(R(N),2)hold onfor ii=2:Nplot(C(R(ii-1),1),C(R(ii),1),C(R(ii-1),2),C(R(ii),2)hold onendtitle(优化结果)