暑假培训论文.docx
《暑假培训论文.docx》由会员分享,可在线阅读,更多相关《暑假培训论文.docx(21页珍藏版)》请在冰豆网上搜索。
![暑假培训论文.docx](https://file1.bdocx.com/fileroot1/2023-2/24/d803a822-37cb-41cc-9353-7196685bf243/d803a822-37cb-41cc-9353-7196685bf2431.gif)
暑假培训论文
垃圾处理中心选址优化与清运方案进行研究设计
何格梅明王慧婷
摘要
随着我国城市生活质量要求的提高及垃圾处理事业的发展,垃圾转运系统的转运效率和投资效益在城市环卫建设中起着越来越重要的作用。
转运系统的合理规划及优化设计,也随之成为城市环卫规划中的一个重要课题。
本文就垃圾处理中心选址优化与清运方案进行研究,展开讨论,分析和建立数学模型,得到深圳市南山区垃圾处理中心的优化选址与清运方案的合理设计。
对于处理中心的选址问题,本文借用贪婪算法的思想,采用matlab编程建模求解,找出地图上各个坐标点建立处理中心的广义期望值,其中广义期望值与转运站到坐标点距离和转运站垃圾量有关。
在期望值最大处建立处理中心。
建立处理中心后,对期望值进行重新更新,找出新的期望值最大点,建立第二个处理中心。
以此类推,直至个坐标点的期望值趋于一个相对较低的值为止。
确定垃圾处理中心后坐标后,用lingo11.0建模求解清运费用最少的条件下,满足处理中心处理能力等要求各处理中心管辖的垃圾转运站。
根据处理中心管辖的垃圾转运站的范围,采用蚁群算法求解找出保证每辆车运输成本均匀的条件下的各车次最佳清运路线。
关键字:
优化选址贪婪算法蚁群算法lingo11.0matlab
1问题重述
1.1背景
近年来垃圾包围城市的问题越来越突出,为了解决这一难题,中国许多大中城市投资兴建垃圾填埋场和焚烧场,垃圾处理工艺越来越先进有效,而原有发展多年的城市环卫清扫体系也保证了垃圾的有效收集,但是中转运输这一环的发展滞后却逐渐成为立即处理系统的瓶颈,随之产生原有收运系统与其不配套的问题,如垃圾处理场远离市区;城市垃圾收运车吨位又比较小,不适宜远途运输等,为了解决这些问题,垃圾分类处理与清运方案设计的问题得到越来越多的人的关注。
1.2问题
1.2.1在垃圾分类处理中,垃圾可分为:
厨余垃圾、可回收垃圾、有害垃圾、其他不可回收垃圾
1.2.2四类垃圾作如下处理:
图1.1垃圾处理流程
1.2.3所有垃圾有收集车从各小区收集点收集运往垃圾转运站,再由拖车将装运站的垃圾运往各处理中心。
1.2.4需要根据垃圾转运站的规模和位置确定大、小厨余设备的位置与分布,以及运输装备的清运路线,已达到最佳经济效益和环保效益
2模型假设
2.1假设厨余设备的优化选址只考虑经济成本,忽略地理位置、政治因素、环境等的影响。
2.2每个处理中心只有一台大型设备或若干台小型设备。
2.3每辆拖车经过转运站尽可能多的装载垃圾。
2.4假设每辆拖车重处理中心出发最终回到处理中心。
2.5假设每个转运站根据垃圾转运量确定每天需要经过的拖车数,在尽可能少的情况下将垃圾清运干净。
2.6假设其它不可回收垃圾和有害垃圾已由其它运输车运往相应处理中心,只考虑运往厨余垃圾处理中心的清运路线。
2.7每个处理中心根据垃圾处理规模分配一定数量的拖车。
2.8假设每个转运站的垃圾运往固定的处理中心。
2.9假设运输过程不受交通、天气等的影响,运输过程中行驶速度均匀。
3符号说明
地图上从i点到k点的距离
第k个转运站的垃圾转运量
第k个转运站运送垃圾的箱数
第k个转运站的运输成本
第k个转运站对第i点建处理中心的期望
第i点建处理中心的总期望
第r个处理中心的处理能力
第j辆车的清运成本
单位质量垃圾单位距离的运输成本
空载时单位距离的运输成本
总车辆数
4模型建立
4.1垃圾处理中心的选址
4.1.1根据贪婪算法的思想,建立广义期望贪婪准则:
每个垃圾转运站都期望垃圾处理中心建得离自己越近越好,因此距离越近,期望值越大;垃圾转运量越多,期望值越大。
因此可以定义一个广义期望值E=f(L,Q),使其满足上述期望值要求,从而确定最优度量标准
即:
且
(4.1.1)
垃圾转运站与地图上各坐标点的距离L引用物流理论中的折线距离:
(4.1.2)
考虑垃圾量对期望值影响时,可以转化考虑其对运费的影响:
(4.1.3)
因此,垃圾转运站k对地图上坐标点(
)建垃圾处理中心的期望值
(4.1.4)
所有垃圾转运站对地图上坐标点(
)建垃圾处理中心的期望值
(4.1.5)
由此得到地图上各点建垃圾处理中心的期望值。
4.1.2根据上述得到的期望值,找出地图上期望值最大对应的坐标点确立为第一个垃圾处理中心地址
(4.1.6)
确定第一个处理中心地址后,对地图上各点期望值进行更新,更新原则为
(4.1.7)
再代入式(5.1.5)计算得到地图上个点更新后的期望值。
5.1.3重复5.1.2得到第二个垃圾处理中心地址
以及第二个处理中心个点期望值
,然后计算建立两个垃圾处理中心后的各转运站堆在地图上见其它处理中心的综合期望值
(4.1.8)
5.1.4重复5.1.2和5.1.3,直至个坐标点的期望值趋于一个相对平衡且较低的值为止,即得到个处理中心的坐标。
4.2确定各处理中心的管辖范围
要确定最优的管辖范围,就得考虑总的清运成本,确立目标函数为
(4.2.1)
约束条件为:
(1)每个转运站的垃圾只运往一个处理中心
(4.2.2)
(2)运往处理中心的垃圾不超出其处理能力
(4.2.3)
(3)第k个转运站的垃圾运往第r个处理转的0-1决策变量
(4.2.4)
4.3确定各车次的清运路线
4.3.1确定各垃圾处理中心所需车辆数
(1)计算出将各转运站的垃圾运空所需成本,定义为运空成本:
(4.3.1)
(2)计算各处理中心对应的转运站运空成本的总和
:
(4.3.2)
(3)确定各垃圾处理中心所需车辆数
(4.3.3)
4.3.2确定每辆车的清运路线
为简便起见,先考虑一个处理中心管辖区域的清运路线。
要确定最优的清运路线,就得考虑每辆车的运输成本,保证各车间运输成本差异最小。
将每个转运站的垃圾按照清运车的载重分成若干个箱子(考虑清运车的极限载重,即保证每个转运站用最少的箱子把垃圾运完)
实现方法:
将处理中心管辖转运站的所有垃圾箱分配给该处理中心的运输车,使得
(4.3.4)
用蚁群算法求解流程图如下:
5模型求解
5.1通过画图工具软件在地图上找出各垃圾转运站的坐标(已取整),见附录8.1
用matlab在70*80的区域中描出各点:
图5.1垃圾转运站分布图
5.3计算所有垃圾转运站对地图上各点建垃圾转运站的期望,各点期望值如下图:
图5.2各点期望值侧视图图5.3各点期望值俯视图
由此得到的最大期望值点坐标为(28,,30),即确定为第一个垃圾处理中心位置。
5.4计算建立第一个垃圾处理中心后更新的期望值,各点期望值如下图:
图5.4更新后的期望值侧视图图5.5更新后的期望值俯视图
由此确立第二个垃圾处理中心坐标为(40,57)。
5.5计算建立第二个垃圾处理中心后重新更新的期望值,各点期望值如下图:
图5.6重新更新后的期望值侧视图图5.7重新更新后的期望值俯视图
可以重新确立第一个处理中心的位置为(29,31),与第一次计算的比较接近,说明了模型的可行性。
5.6考虑同时建立两个垃圾处理中心后个点的综合期望值,计算结果如下图:
图5.8各点期望综合值侧视图图5.9各点期望综合值俯视图
从图中可以看到大多数区域期望值基本趋于相对平衡的较低值,所以两个垃圾处理中心基本能满足垃圾的处理要求,无需再建第三个。
5.7用lingo11.0建模求解清运费用最低情况下,各垃圾处理中心管辖的转运站区域,用matlab画图描点如下图:
图5.10各垃圾处理中心管辖转运站区域图
图中,黄色点表示处理中心A管辖的转运站,红色的点表示处理中心B管辖的转运站。
5.8用蚁群算法求解各垃圾转运车的清运路线如下:
6模型评价与优化
6.1垃圾处理中心选址模型
优点:
通过计算各点建处理中心期望值的方法找出处理中心的优化选址,忽略了其他对选址影响较小的因素,选址具有一定的参考价值。
缺点:
在选址时没有考虑处理中心的处理能力和清运成本,会对选址造成一定误差。
6.2垃圾处理中心管辖转运站划分模型
优点:
用lingo11.0求解一定约束条件的最优目标函数,即总清运成本最低,求解速度快,忽略中间求解过程。
缺点:
没有考虑实际情况中各种因素对清运成本的影响。
6.3垃圾清运路线模型
优点:
采用蚁群算法分配各清运车的清运路线,较快的找出具有一定参考价值的解。
缺点:
由于蚁群算法本身求解的只是近似解,因此得到的不一定是最优解。
7参考文献
【1】姜启源,谢金星,叶俊.数学模型(第三版),北京:
高等教育出版社,2003
【2】姜启源等.大学数学实验,北京:
清华大学出版社,2005
【3】李德宜,李明.数学实验,武汉:
武汉科技大学,2010
【4】谢金星,薛毅.优化建模与lindo/lingo软件,北京:
清华大学出版社,2005
【5】贾传兴,彭绪亚,刘国涛,刘长玮,伍翔,邓镓佳.城市垃圾中转站选址优化模型的建立及其应用,环境科学学报,2006
【6】葛洪伟,高阳.基于蚁群算法的集合覆盖问题,计算机工程与应用,2007
8附录
8.1各垃圾转运站坐标
垃圾转运站序号
垃圾站X坐标
垃圾站Y坐标
1
19
25
2
26
33
3
41
56
4
40
52
5
24
67
6
32
20
7
21
43
8
28
38
9
18
24
10
14
17
11
29
75
12
15
33
13
42
41
14
18
20
15
19
23
16
43
25
17
16
32
18
30
26
19
34
54
20
33
38
21
22
19
22
19
19
23
25
0
24
25
3
25
57
55
26
37
52
27
37
30
28
44
31
29
47
68
30
20
22
31
37
77
32
31
72
33
56
57
34
56
29
35
18
29
36
9
2
37
34
45
38
63
58
8.2求解各点建垃圾处理中心期望值及更新后期望值的matlab源代码
8.2.1求解地图上各点建垃圾处理中心的期望值
lal=[81081028241210416868126661066121248141261043122281664];
%各转运站垃圾量
zyzx=[192641402432212818142915421819431630343322192525573737444720373156561893463];
%各转运站X坐标
zyzy=[2533565267204338241775334120232532265438191903555230316822777257292924558];
%各转运站Y坐标
E=zeros(70,80);
%各点期望值初始化
fork=1:
38
fori=1:
70
forj=1:
80
E(i,j)=(150-abs(i-zyzx(k))-abs(j-zyzy(k)))*lal(k)+E(i,j);
%累加计算各点期望值
end
end
end
8.1.2建立第一个处理中心后期望值更新
fork=1:
38
fori=1:
70
forj=1:
80
if(abs(i-zyzx(k))+abs(j-zyzy(k))>=abs(28-zyzx(k))+abs(31-zyzy(k)))
E(i,j)=E(i,j);
elseE(i,j)=(abs(28-zyzx(k))+abs(31-zyzy(k))-abs(i-zyzx(k))-abs(j-zyzy(k)))*(lal(k)*0.032+3.2)*D(k)+E(i,j);
%对期望值更新
end
end
end
end
8.1.3只建立第二个处理中心,对期望值进行重新更新
fork=1:
38
fori=1:
70
forj=1:
80
if(abs(i-zyzx(k))+abs(j-zyzy(k))>=abs(63-zyzx(k))+abs(58-zyzy(k)))
E(i,j)=E(i,j);
elseE(i,j)=(abs(63-zyzx(k))+abs(58-zyzy(k))-abs(i-zyzx(k))-abs(j-zyzy(k)))*(lal(k)*0.032+3.2)*D(k)+E(i,j);
%重新更新期望值
end
end
end
end
8.1.4建立两个处理中心后的综合期望值
fork=1:
38
fori=1:
70
forj=1:
80
if(abs(i-zyzx(k))+abs(j-zyzy(k))>=abs(28-zyzx(k))+abs(30-zyzy(k)))
E7(i,j)=0;
elseE7(i,j)=(abs(28-zyzx(k))+abs(30-zyzy(k))-abs(i-zyzx(k))-abs(j-zyzy(k)))*(lal(k)*0.032+3.2)*D(k)
%计算各点对建第一个处理中心的期望
end
if(abs(i-zyzx(k))+abs(j-zyzy(k))>=abs(40-zyzx(k))+abs(57-zyzy(k)))
E8(i,j)=0;
else
E8(i,j)=(abs(40-zyzx(k))+abs(57-zyzy(k))-abs(i-zyzx(k))-abs(j-zyzy(k)))*(lal(k)*0.032+3.2)*D(k);
%计算各点对建第二个处理中心的期望
end
E9(i,j)=E9(i,j)+min(E7(i,j),E8(i,j));
%取二者中较小的作为综合期望
end
end
end
8.3lingo11.0求解各处理中心管辖转运站源代码
model:
sets:
zyz/1..38/:
c,xl,yl,d,L1,L2,q,s;
endsets
data:
c=81081028241210416868126661066121248141261043122281664;
!
各转运站的垃圾量
d=11111111211211121111112211221111213211;
!
各转运站的垃圾箱数
xl=192641402432212818142915421819431630343322192525573737444720373156561893463;
!
各转运站的X坐标
yl=2533565267204338241775334120232532265438191903555230316822777257292924558;
!
各转运站的Y坐标
enddata
min=R;
R=@sum(zyz(k):
L1(k)*(c(k)*0.032+3.2)*q*d(k)+L2(k)*(c(k)*0.032+3.2)*s*d(k));
!
总清运成本
@for(zyz:
q+s=1);
!
保证每个箱子由一个车运
@sum(zyz(k):
q*c(k))<200;
!
保证转运垃圾量不超过第一个处理中西处理能力
@sum(zyz(k):
s*c(k))<200;
!
保证转运垃圾量不超过第二个处理中西处理能力
@for(zyz(k):
L1(k)=@abs(xl(k)-28)+@abs(yl(k)-30));
!
各转运站到第一个处理中心的距离
@for(zyz(k):
L2(k)=@abs(xl(k)-40)+@abs(yl(k)-57));
!
各转运站到第二个处理中心的距离
@for(zyz:
@bin(q));
!
垃圾是否运到第一个处理中心的0-1变量
@for(zyz:
@bin(s));
!
垃圾是否运到第二个处理中心的0-1变量
R1=@sum(zyz(k):
q*c(k));
!
第一个处理中心处理的总垃圾量
R2=@sum(zyz(k):
s*c(k));
!
第一个处理中心处理的总垃圾量
m=@sum(zyz:
q);
!
第一个处理中心处理的总转运站数
n=@sum(zyz:
s);
!
第二个处理中心处理的总转运站数
end