如下图你,有若干工厂的污水经排污口流入某江,
污水排放模型
摘要
随着工业的不断发展,工厂排污对我们自然环境的污染也越来越严重,特别是工业污水问题,一直受到广泛关注。本文就工厂污水处理费用问题做了进一步的研究。
此题为优化问题,我们考虑每个工厂在将其污水注入江水前,应分别对其污水进行处理,在处理过后,各工厂处理后的污水浓度要符合国家污水浓度规定,所以我们的任务就是在满足国家污水规定的同时,使3个工厂的花费最少。 问题(1)工厂的花费要受两个条件制约:一是污水浓度,二是国家污水浓度规定。污水浓度越高,各工程为满足国家污水规定,应大量处理污水,工厂的花费也就越高。因此,可用线性规划模型来解决此问题。最后用lingo9.0编程后得出的结果为:当污水处理厂1、处理厂2和处理厂3出口的浓度依次为41.00 mg/l、21.10 mg/l和50.00 mg/l时,工厂1花费295万元,工厂2花费194.5万元,工厂3不用处理污水。江水上所有地段的水污染达到国家标准,最少需要花费是489.5万元。
问题(2)因为题目中没有明确指出居民区所在的位置,那么分别就居民点在处理站前、处理站后和处理站正对面进行分析和计算。又因为江水本身有自净能力所以处理站则不必要把污水的浓度处理到小于等于国家规定的水的污染浓度。最后用lingo9.0编程后得出的结果是:当处理厂1、处理厂2和处理厂3出口的浓度依次为63.33 mg/l、60 mg/l和50 mg/l时,工厂1花费183.3333万元,工厂2不用处理污水,工厂3也不用处理污水。则在只考虑三个居民点上游(居民点在对应处理站前不远处)的水污染达到国家标准,最少需要花费为183.333万元。而当居民点在对应处理站后不远处以及在处理站正对面时,与问题(1)完全相同,最少需要花费是489.5万元。
关键词: 最优问题 线性规划 lingo9.0
一、问题的提出
如下图,有若干工厂的污水经排污口流入某江,各口有污水处理站,处理站对面是居民点。工厂1上游江水流量和污水浓度,国家标准规定的水的污染程度,以及各个工厂的污水流量和污水浓度均已知道。设污水处理费用与污水处理前后的浓度差和污水流量成正比,使每单位流量的污水下降一个浓度单位需要的处理费用(称处理系数)为已知。处理后的污水与江水混合,流到下一个排污口之前,自然状态下的江水也会使污水浓度下降一个比例系数(称自净系数),该系数可以估计。试确定各污水处理站出口的污水浓度,使在符合国家标准规定的条件下总的处理费用最少。
江水 先建立一般情况下的数学模型,再求解以下的具体问题: 设上游江水流量为
1000的污水流量均为5
10
12
10
12
L/min
,污水浓度为
0.8mg/L,3个工厂
L/min
,污水浓度(从上游到下游排列)分别为
,
100,60,50m(g/L)
12
((L/min)(mg/L))10,处理系数均为1万元/
3个工厂之间的两段江面的自净系数(从上游到下游)分别为0.9,0.6。国家标准规定水的污染浓度不能超过。
(1)为了使江水上所有地段的水污染达到国家标准,最少需要花费多少费 用?
1mg/L
(2)如果只要求三个居民点上游的水污染达到国家标准,最少需要花费多
少费用?
二、问题的分析
问题(1)为了使江面上所有地段的水污染达到国家标准,求最少需要的花费。此问题属于在约束条件下求最优解的问题,我们只需要将满足经处理站处理后的污水达到国家规定的污水浓度,并且以工厂处理费用为目标函数,求其最小
值即可。
问题(2)若只要求三个居民点上游的水污染达到国家标准,求最少需要的花费。考虑到江水有自净的功能,这样处理厂就不必将污水处理成符合国家规定的污水浓度,只要使每个居民点上游的江水再其自净作用过后能达到国家规定的污水浓度就可以。那么此题的约束条件就变成了在处理厂和江水自净功能的共同作用下使得工厂江水的浓度达到国家规定的污水浓度。目标函数依然是工厂处理费用。
又因为题目中没有明确的说明居民点的具体位置,只是说在处理站的对面,那么根据居民点位置的不同再利用上述思路进行分析和求解。
三、模型的假设
1.假设长江的水流速固定,不会因为加入污水或改变污水浓度而改变。 2.假设污水之间无反应,不会因为污水反应而改变污水量或污水浓度。 3.假设居民区不产生污水。
4.假设江水的自净作用对所有污水都有效。 5.假设污水在进入长江之后是分布均匀的。 6.假设污水在进入长江之后不会流入上游。
7.假设江水进行自净作用时,不改变江水本身流量。
8.假设在对进行污水处理时,不改变污水流量,只改变污水浓度。 9.假设3个工厂之间的两段江面,各自单位距离的自净能力相同。
四、符合的说明及定义
c0:上游江水的污染浓度
c11:工厂1产生的污水浓度 c12:工厂1经处理后的污水浓度 c21:工厂2产生的污水浓度 c22:工厂2经处理后的污水浓度 c31:工厂3产生的污水浓度 c32:工厂3经处理后的污水浓度 c1:从处理站1流出的污水与江水混合之后的污水浓度 c2:从处理站2流出的污水与江水混合之后的污水浓度 c3:从处理站3流出的污水与江水混合之后的污水浓度
vvvv
:江水上游水流量 :工厂1产生的污水流量 :工厂2产生的污水流量 :工厂3产生的污水流量
1
b1:工厂1的处理系数 b2:工厂2的处理系数 b3:工厂3的处理系数
2
3
aa
12
:工厂1、2之间江面的自净系数 :工厂2、3之间江面的自净系数
23
zzz
1
:工厂1的污水处理费 :工厂2的污水处理费 :工厂3的污水处理费
:3个工厂总费用 i=1,2,3分别代表工厂1,工厂2,工厂3
2
3
Z
五、模型的建立与求解
题目中已知的条件有:c0=0.8mg/L
c11=100mg/L c21=60mg/L c31=50mg/L
12
v=100010
12
L/min
v=v=v=510
1
2
3
L/min
a=0.9 a=0.6
12
23
江水本有的污水量=江水流量(v1)×江水污水浓度(c0)
工厂i处理后的污水量=工厂i的污水量(vi)×处理后污水浓度(ci2)
ci=(江水本有的污水量+工厂i处理后的污水量)/(江水流量+工厂i的污水
量)
污水下降浓度=原污水浓度(ci1)-处理后的污水浓度(ci2)
工厂i处理污水的费用(zi)=污水下降浓度×工厂i的污水量(vi)×工厂i的污水处理系数(bi)
按照上述条件即可列出以下: 问题(1)的约束条件为:
c1
vv
1
1
12
1
1
2
22
c1cc
10000.85c12
10005(1000
1
22
c2
acvvvc
vvv
12
1
00
1
2
23
2
1
2
1
3
32
2
5)c0.9c1
5
5
1000
5
1
32
c3
z
i
acvvvvc
vvvv
1
2
3
1
3
(100055)c20.6c
1000
55
5
5
1
0 (i=1,2,3)
目标函数为:
3
minZminZ
zi
i13
bic
i1
3
i1
ci2
(100c12)5(60c22)5(50c32)
zi
i1
5
用lingo9.0求解后得:
Local optimal solution found.
Objective value: 489.5000 Extended solver steps: 0
Total solver iterations: 13
Variable Value Reduced Cost
Z1 0.000000
Z2 0.000000
Z3 0.000000
C12 0.000000
C1 0.000000
C22 0.000000
C2 0.000000
C32 0.000000
C3 0.000000
295.0000 194.5000
0.2555717E-07
41.00000 1.000000 21.10000 1.000000 50.00000 0.8433498
污水处理厂1、处理厂2和处理厂3出口的浓度依次为41.00 mg/l、21.10 mg/l和50.00 mg/l时,工厂1花费295万元,工厂2花费194.5万元,工厂3不用处理污水。所以为了使江水上所有地段的水污染达到国家标准,最少需要花费489.5万元。
对于问题(2)题目没有明确指明居民点的位置,只是说明在处理站对面是居民点,所以居民区可以有多种排法,它们可以在对应处理站前,也可在对应处理站后,或正对面,因此我们这里只假设对应居民区与处理站前后相距不远。 (1)当居民点在对应处理站前时如下图所示:
则约束条件变为:
c1cz
vv
1
1
12
a121
a231
c1c
10000.85c12
10005(1000
0.91
(01)1222
2
v0
v1v2
2
5c)1c252
0.61
100055
i
(i=1,2)
目标函数为:
2
minZminZ
z
i12
i
bc
i
i1
2
i1
ci2
z
i1
i
5100c12560c22
用lingo9.0求解后得:
Linearization components added: Constraints: 38
Variables: 28 Integers: 14
Local optimal solution found.
Objective value: 183.3333 Extended solver steps: 0 Total solver iterations: 11
Variable Value Reduced Cost
Z1 0.000000
Z2 0.000000
C1 0.000000
C12 0.000000
C2 0.000000
C22 0.000000
60.00000
0.7752475
183.3333 0.000000 1.000000 63.33333
处理厂1、处理厂2和处理厂3出口的浓度依次为63.33 mg/l、60 mg/l和50 mg/l时,工厂1花费183.3333万元,工厂2不用处理污水,工厂3也不用处理污水。 所以如果只要求三个居民点上游(居民点在对应处理站前不远处)的水污染达到国家标准,最少需要花费为183.333万元。 (2)当居民点在对应处理站后时如图所示:
这样为使居民点上游(居民点在对应处理站后不远处)的水污染达到国家标准,则工厂就要在污水流到江水以前把污水处理得符合国家标准,那么就与问题(1)相同。同理居民点在对应处理站的正对面的情况下,也是与问题(1)相同。
六、结果分析
问题(2)与问题(1)比较,由于水质控制的范围缩小了,从全面水质污染
控制到居民点上游的水质控制,因此治理费用也随之减小,这是充分利用了江水自净的功能。
从问题(1)到问题(2),都是由于控制范围的缩小而使得总费用降低,当然,我们这里的数据是设定的,不一定合乎实际,但是计算结果反映了对江水污染控制的规律,是符合人们的认识的,当然,在实际中可以根据实际数据,用此模型算出各污染点的治理系数,这些数据可以作为控制污染的参考数据。当这个数据越大,说明这个污染点越需要加强治理;这个数据越小,说明治理的要求可以降低,这样也可以分得出治理的轻重缓急。
七、模型的改进
在问题(2)中,我们可以先增加3个变量来分别表示居民点的位置,再增加2个变量来表示3个工厂间的距离。因为假设3个工厂之间的两段江面,各自单位距离的自净能力相同,那么只要知道水平方向居民点到工厂的距离与对应2个工厂的距离之比,就可以算出这段距离中江水的自净系数,那么当居民点在任何位置时,我们都可以进行求解。
当然,我们也可以将题目中的3个工厂,3个居民点,推广到m个工厂,n个居民点等等,但是求解问题的思路和方法都是与上述相同的。 八、模型的评价
模型缺点:
(1)模型中只是考虑了一个污染控制标准,与实际生活中多个污染控制标准不符。
(2)题目为了降低难度将自净系数作为一个常数引入计算的,但实际上,要根据不同水质、污水中含有的化学物质等等因素经计算过后得出。
(3)对于江水的流速、流量等等不可能是不变的,而且也没有考虑到自然环境和天气等的变化,以及污水中不同化学物质之间的相互反应。这样就理想化了许多影响因素,在实际生活中许多因素是不能忽略的,因为在不同地区具有不同的外界环境和影响因素。所以此模型具有一定的局限性,得到的最优方案可能与实际有一定的出入。 模型优点:
(1)建立的线性规划模型简单易懂,对于不是很复杂的问题可以比较准确的计算。
(2)模型的求解过程是通过编写程序让计算机自动完成的,省去了大量复杂的中间计算过程。
附录
问题(1)的程序:
min=z1+z2+z3;
c12*5-1005*c1+800=0; c1*904.5+5*c22-1010*c2=0; c2*606+5*c32-1015*c3=0; c1
c3
z1=@if(c12 #le# 100, 5,0)*@abs(100-c12); z2=@if(c22 #le# 60, 5,0)*@abs(60-c22); z3=@if(c32 #le# 50, 5,0)*@abs(50-c32); z1>=0; z2>=0; z3>=0;
end
Linearization components added: Constraints: 57 Variables: 42 Integers: 21
Local optimal solution found.
Objective value: 489.5000 Extended solver steps: 0 Total solver iterations: 13
Variable Value Cost
Z1 0.000000
Z2 0.000000
Z3 0.000000
C12 0.000000
C1
Reduced 295.0000
194.5000
0.2555717E-07 41.00000
1.000000
0.000000
C22 0.000000
C2 0.000000
C32
21.10000 1.000000 50.00000 0.000000
C3
0.000000
Row Slack or Surplus Dual 1 -1.000000
2 0.9600000
3 0.9600000
4 0.000000
5 96.48000
6 969.6000
7 0.000000
8 -1.000000
9 -1.000000
10 -1.000000
11 0.000000
12 0.000000
13
0.000000
问题(2)的程序及结果:
min=z1+z2;
1005*c1-(800+5*c12)*0.9=0;
1010*c2-(1005*c1+5*c22)*0.6=0; c1=0;
0.8433498
Price 489.5000 0.000000 0.000000 0.000000 0.000000
0.000000 0.1566502 0.000000 0.000000
-0.2555717E-07 295.0000
194.5000
0.2555717E-07
z1=@if(c12 #le# 100, 5,0)*@abs(100-c12); z2=@if(c22 #le# 60, 5,0)*@abs(60-c22); end
Linearization components added: Constraints: 38 Variables: 28 Integers: 14
Local optimal solution found.
Objective value: 183.3333 Extended solver steps: 0 Total solver iterations: 11
Variable Value Reduced Cost
Z1 0.000000
Z2 0.000000
C1 0.000000
C12 0.000000
C2 0.000000
C22 0.000000
Row Slack or Surplus Dual Price
1 183.3333 -1.000000
2 -1.066667
3 0.000000
4 1072.000
5 0.000000
6
11
183.3333 0.000000 1.000000 63.33333 0.7752475
60.00000
0.000000 0.000000 0.000000 0.2247525
183.3333
7 -1.000000
8 -1.000000
9 0.000000
0.000000 0.000000 0.000000
12