抗旱方案的制定
- 格式:pdf
- 大小:242.51 KB
- 文档页数:10
=
∑ (∑ ( x
i =1 j =1
ij
* C j ) + Pi )
xij ≤ 1, ( j = 1,2,...,8); ∑ i
=1
Pi = 0.66 * Q 0 .51 * Li , (i = 1,2,3);
3
∑L
i =1
8
i
≥ 20;
∑(x
j =1
ij
* C j ) + Pi ≤ 60; (i = 1,2,3);
=1 4
4
+ Q ≥ 180; (三年之后管道可以供水)
max[ f k (14),0] + Y ∑ k
=1
5
+ Q ≥ 190;
Q ≥ 100; Pi为整数,xij为0 − 1变量;
三、模型的求解:
由上面建立的模型,用 lingo 优化软件编程(源代码见附录二)求解得到如下结果:
Q = 100; P1 = 27; P2 = 55; P3 = 57; x12 = 1; x13 = 1; x16 = 1; x18 = 1; x21 = 1;
抗旱方案制定的优化模型
景德镇陶瓷学院:卢彧文
摘要:
本模型通过对问题的深入分析,综合考虑各种约束条件,建立优化模型,最后求出抗旱 的最优方案为: 2010 年投入管道铺设 27 万元,在 2、3、 6、8 位置打井,2011 年投入 管道 55 万元,在 1 位置打井, 2012 年投入管道铺设 57 万元,不在任何位置打井,管道 铺设成功之后的每年供水量为 100 万吨, 。此方案的最小费用为 164 万元。
模型的建立与求解 一、建立原有的四口井的随时间变化的供水函数
通过假设(1) ,以及题目所给的数据,用 matlab 软件画出四口井供水量随时间的变化 的散点图形,如下图:
通过图形可以看出,1 号井、3 号井的变化函数接近一次函数,2 号井、4 号井的变化函 数接近二次函数,通过计算机拟合(程序见附录一) ,可以得出如下四个函数:
二、建立目标函数、约束条件模型:
先求出 8 口井在 2010~2014 年对应的供水量:
8
2010 年: Y1 =
∑x
j =1
8
1j
* GS j ;
2011 年: Y2 =
∑(x
j =1
8
2j
+ x1 j * 0.9) * GS j ;
2012 年: Y3 =
∑ (x
j =1
8
3j
+ x2 j * 0.9 + x1 j * 0.9 2 ) * GS j ;
4
max[ f k (10),0] + Y ∑ k
=1 4
1
≥ 150;
(因为四口井的供水量不能为负数,最小为 0)
max[ f k (11),0] + Y ∑ k
=1 4
2
≥ 160;
max[ f k (12),0] + Y ∑ k
=1 4
3
≥ 170;
max[ f k (14),0] + Y ∑ k
模型的假设:
( 1)该村原有的四口井的供水随时间的变化服从某一函数; ( 2)模型中不考虑小蓄水池的作用和利息的因素; ( 3)8 个位置的供水量会服从专家们预计的方式变化。
符号说明:
; f k ( x ) :原有的第 k 号井供水量随时间(年)的变化函数(k=1,2,3,4)
; Q :管道铺设之后每年通过管道的供水量(万吨)
此附录为 matlab 程序源代码 ,为拟合出原有四口井的供水量随时间的变化函数 .
附录二:
model: title 抗旱方案的制定; sets: years/1 2 3/:L,P;!L(i)表示第 i年的铺路长度, P(i)表示第i年提供给铺设管 道的费用 ; seat/1..8/:c,GS;!c(j)表示第 j个位置的打井的费用, GS(j)表示第j个位置的 打井当年的供水量; dajin(years,seat):x; endsets data: c=5 7 5 4 6 5 5 3; GS=25 36 32 15 31 28 22 12; enddata q>=100;!q表示管道铺成后的供水量; @for(seat(j):@sum(years(i):x(i,j))<=1;);!每一位置只能在某一年打井或 不打井 ; @for(years(i):P(i)=0.66*q^(0.51)*L(i);); @for(years(i):@sum(seat(j):x(i,j)*c(j))+P(i)<=60;);! 每 一 年 的 总 费 用不能超过60; L(1)+L(2)+L(3)>=20;!铺设管道的长度必须大于等于20公里; !2010年的供水量必须大于等于150; @smax(-1.2017*10+33.4639+0.3307*10^2-5.6140*10+26.1857-2.085*10+2 9.9806+0.8083*10^2-12.5964*10+65.7345,0)+@sum(seat(j):x(1,j)*GS(j) )>=150; !2011年的供水量必须大于等于160; @smax(-1.2017*11+33.4639+0.3307*11^2-5.6140*11+26.1857-2.085*11+2 9.9806+0.8083*11^2-12.5964*11+65.7345,0)+@sum(seat(j):x(2,j)*GS(j) +x(1,j)*GS(j)*0.9)>=160; !2012年的供水量必须大于等于170; @smax(-1.2017*12+33.4639+0.3307*12^2-5.6140*12+26.1857-2.085*12+2 9.9806+0.8083*12^2-12.5964*12+65.7345,0)+@sum(seat(j):x(3,j)*GS(j) +x(2,j)*GS(j)*0.9+x(1,j)*GS(j)*0.9^2)>=170; !2013年的供水量必须大于等于180; @smax(-1.2017*13+33.4639+0.3307*13^2-5.6140*13+26.1857-2.085*13+2 9.9806+0.8083*13^2-12.5964*13+65.7345,0)+@sum(seat(j):x(3,j)*GS(j) *0.9+x(2,j)*GS(j)*0.9^2+x(1,j)*GS(j)*0.9^3)+q>=180; !2014年的供水量必须大于等于190; @smax(-1.2017*14+33.4639+0.3307*14^2-5.6140*14+26.1857-2.085*14+2 9.9806+0.8083*14^2-12.5964*14+65.7345,0)+@sum(seat(j):x(3,j)*GS(j)
参考文献:
[1] 谢金星、薛毅.优化建模与 LINDO/LINGO 软件.清华大学出版社, 2005 [2] 张航、黄攀.精通 MATLAB 6.清华大学出版社 .2002
附录一:
a=[32.2 31.3 29.7 28.6 27.5 26.1 25.3 23.7 22.7 21.5 15.9 11.8 8.7 6.5 4.8 3.5 2.6 2.0 27.9 25.8 23.8 21.6 19.5 17.4 15.5 13.3 11.2 inf 46.2 32.6 26.7 23.0 20.0 18.9 17.5 16.3 ] x=1:9; An1=polyfit(x,a(1,:),1); An2=polyfit(x,a(2,:),2); An3= polyfit(x,a(3,:),1); An4= polyfit(x(2:9),a(4,2:9),2);
模型的结果分析:
由得到的结果可知: 3 年总共铺设的管道为 20.1127 公里(略大于 20 公里) ,这是因为 每年投入的费用必须为整数的原因得到的结果,其实管道可以只铺设 20 公里,则由管道铺 设费用的计算公式可以知道,只铺设 20 公里可以减小费用 0.7789 万元,因此,最小目标值 变为 163.2211 万元,略优于 164 万元。
Pi :第 i 年提供给铺设管道的费用(万元) ; Li :第 i 年铺设管道的长度(公里) ;
x ij =
{
1.......第i年在第j 个位置打井, 0.......第i年不在第 j 个位置打井。
(i = 1,2,3; j = 1,2,...,8.)
C j :第 j 个位置打井的费用; GS j :在第 j 个位置打井的初始供水量; Yl :若把 2010 年当第一年,则 Yl 表示第 l 年 8 个位置所有的供水量。
2006 26.1 4.8 17.4 20.0
2007 25.3 3.5 15.5 18.9
2008 23.7 2.6 13.3 17.5
2009 22.7 2.0 11.2 16.3
表2 编号 打井费用 当年产水 1 5 25
8 个位置打井费用(万元)和当年产水量(万吨) 2 7 36 3 5 32 4 4 15 5 6 31 6 5 28 7 5 22 8 3 12
问题的分析:
通过对题意分析,此问题是一个优化模型,在各种约束条件下求最优方案,使得总费用 最小,即目标值为:总费用最小; 方案中的决策变量是: ( 1)每年投入到管道铺设的费用(必须为整数) ; ( 2)是否在 8 个位置中的某一位置打井; ( 3)在某一位置打井的时间; ( 4)管道铺设成功之后每年提供水的量; 而题目的约束条件为: ( 1)每年的总费用投入在 60 万元以内; ( 2)管道铺设完之后,每年至少提供 100 万吨水; ( 3)2010 年至 2014 年必须保证每年提供的水量至少等于该年要求的供水量;