碎石运输方案设计
摘要:
本文对运输碎石的方案设计建立数学模型。这是一个道路改造项目中安排石料运输的规划问题,目标是在给定的条件下寻求使碎石运输总费用最少的规划方案。问题的关键是给出两个石料供应点的运量,恰当选择铺设临时道路的路线,确定设置码头的数量及位置。注意到通过水运运输碎石时,必须有装有卸,所有如果需要建临时码头,码头数应不小于2。又由于AB 路段(180,100)处通向S2处和河道处的距离都在50km 上下,所以我们假设S2处运的碎石全部通过陆地运输。
我们通过同时考虑有关因素,提出一个总费用的数学模型并求解该模型。根据这个问题本身的特点,在需要建立码头情况下,我们考虑在S1附近建设一个卸碎石码头M 0,然后再在其下游依次建设装碎石码头M i ,i =1,2, , k ,共k +1个码头。从码头M i 修建的临时道路与AB 路的交点L i 。在修建L i L i +1这一段路的时候,以中点为界,右边所需碎石通过L i +1运送,左边所需碎石通过L i 运送,这样可以进一步减小运费。最后通过编写Lingo 程序,借助计算机使这个优化规划问题得到最终解决。
所有过程中,都采用Lingo 求得规划的最优方案,最后得到的最优结果为:从S1采碎石930480m 3,从S2采碎石569520m 3,总费用的最优值为16.8亿元。 路线图为
关键字:非线性规划碎石运输码头数
1.问题重述
在一平原地区要进行一项道路改造项目,在A ,B 之间建一条长200km ,宽15m ,平均铺设厚度为0.5m 的直线形公路。为了铺设这条道路,需要从S1,S2两个采石点运碎石。1立方米碎石的成本都为60元。(S1,S2运出的碎石已满足工程需要,不必再进一步进行粉碎。)S1,S2与公路之间原来没有道路可以利用,需铺设临时道路。临时道路宽为4m ,平均铺设厚度为0.1m 。而在A ,B 之间有原来的道路可以利用。假设运输1立方米碎石1km 运费为20元。此地区有一条河,故也可以利用水路运输:顺流时,平均运输1立方米碎石1km 运费为6元;逆流时,平均运输1立方米碎石1km 运费为10元。如果要利用水路,还需要在装卸处建临时码头。建一个临时码头需要用10万元。
建立一直角坐标系,以确定各地点之间的相对位置:
A (0,100),B (200,100),s1(20,120),s2(180,157)。
河与AB 的交点为m4(50,100) (m4处原来有桥可以利用)。河流的流向为m1→m7,m4的上游近似为一抛物线,其上另外几点为m1(0,120),m2(18,116),m3(42,108);m4的下游也近似为一抛物线,其上另外几点m5(74,80),m6(104,70),m7(200,50)。
桥的造价很高,故不宜为运输石料而造临时桥。 此地区没有其它可以借用的道路。
图一
2.符号说明
w :修路的总花费;
M 0(x 0, y 0) :卸碎石码头M 0的坐标;
M i (x i , y i ) :第i 个装碎石码头M i 的坐标,i =1,2, , k ;
L i (l i ,100) :从码头M i 修建的临时道路与AB 路的交点L i 的坐标,i =1,2, , k ; ,修建它左边的道路需要的碎石Q (q ,100) :AB 上的一点(我们称它为临界点)取自S1, 修建它右边的道路需要的碎石取自S2;
Q i (q i ,100) :从S 2修建的临时道路与AB 路的交点Q i 的坐标,i =1,2, , t ;
s 1:临时道路的横截面面积,等于0.4⨯10-6km 2;
s 2:正式铺设的AB 道路的横截面面积,等于7.5⨯10-6km 2;
L :AB 直线形公路的总长度;
b 1:从采石点S1运出的仅用于修建AB 公路的碎石数;
b 2:从采石点S2运出的仅用于修建AB 公路的碎石数。
3.模型假设
1)S1,S2运出的碎石已满足工程需要,不必再进一步进行粉碎; 2)在运输石料过程中不再建造临时桥;
3)除了AB 原有的道路及水路和新建的临时道路外,所考虑的地区没有其它可以借用的道路;
4)河有足够的跨度,可以满足在两岸都修建码头; 5)假设每个码头通向AB 的临时道路只有一条; 6)除水路外,假设所有的运输道路均为直线型; 7)把河流的上游和下游分别看作两条抛物线的一部分; 8)不考虑题目所涉及范围以外的其他不确定因素产生的费用。
4.问题分析
这是一个道路改造项目中安排石料运输的规划问题,目标是在给定的条件下寻求使碎石运输总费用最少的规划方案。问题的关键是给出两个石料供应点的运量,恰当选择铺设临时道路的路线,确定设置码头的数量及位置。注意到通过水运运输碎石时,必须有装有卸,所有如果需要建临时码头,码头数应不小于2。又由于AB 路段(180,100)处通向S2处和河道处的距离都在50km 上下,所以我们假设S2处运的碎石全部通过陆地运输。
我们同时考虑有关因素,提出一个总费用的数学模型并求解该模型。根据这个问题本身的特点,把河流的上游和下游分别看作两条抛物线的一部分,即河流中的点(x , y ) 满足:
⎧12
-y +25y -1200,0
在需要建立码头情况下,我们考虑在S1附近建设一个卸碎石码头M 0,然后再在其下游依次建设装碎石码头M i ,i =1,2, , k ,共k +1个码头。从码头M i 修建的临时道路与AB 路的交点L i 。其次,从S 2修建的临时道路与AB 路的交点是Q i ,i =1,2, , t ,共k +t 条临时道路。在修建L i L i +1这一段路的时候,以中
点为界,右边所需碎石通过L i +1运送,左边所需碎石通过L i 运送,在修建AB 上其他路段的时候也作同样的考虑,这样可以进一步减小运费。最后通过编写Lingo 程序,通过依次考虑k =1, t =1;k =1, t =2;k =2, t =1;k =2, t =2等情况,借助计算机使这个优化规划问题得到最终解决。
5.模型准备
考虑到在运输方案设计的数学模型中涉及大量的计算公式,为了方便,我们首先用一个示意图表示运输线路,并且逐步依次对各种量的表达式进行讨论。
图二
总费用w =码头建设费w 0+铺设道路的碎石成本费w 1+碎石运输费w 2。 1)码头建设费w 0:
由于修建一个码头的费用等于2⨯10⨯104元,所以w 0=(1+k ) ⨯2⨯10⨯104. 2)碎石成本费w 1=铺设AB 的碎石成本费w 10+铺设临时道路的碎石成本费w 11: 铺设AB 的碎石成本费:w 10=200⨯s 2⨯60⨯109元 铺设临时道路的碎石成本费:
w 11=[(s 1M 0+M 1L 1+M 2L 2+ +M k L k ) +(s 2Q 1+s 2Q 2+ +s 2Q t )]⨯s 1⨯60⨯109(2) 其中,s 1=0.4⨯10-6km 2,s 1M 0=
M 1L 1= , M k L k =
s 2Q 1= , s 2Q t =
1
而x 0=-y 02+25y 0-1200,
8
13232
x 1=-y 12+25y 1-1200, x 2=y 2-12y 2+650, , x k =y k -12y k +650.
85050
这里,我们假定了M 1在上游抛物线上,M 2等在下游抛物线上。
3)碎石运输费w 2=铺设临时道路的碎石运输费w 21+铺设AB 的碎石运输费w 20: 首先计算铺设临时道路的碎石运输费w 20=f 0+f 1+ +f k +r 1+ +r t :
下面依次计算各段道路的运输费。 从S1出发的临时路段的碎石运费计算:
为计算修建s 1M 0段道路的运输费,第一步,计算把碎石从s1运到M 0的运费。如果把碎石分成无数小份,则每一份的运费与其将来被铺设的位置与采石点之间的距离成正比,所以这段路的运费可以用一个积分式求出来:
s 1M 0
f 0=
⎰
020⋅x ⋅s 1⋅109⋅dx =10⋅s 1M 02⋅s 1⋅109,
修建M 1L 1段道路需要的碎石要经过M0运到M 1的河流,由于
a
b
a 1
dy =ln y +],
b
2
(利用第一型曲线积分可以计算这段河的长度为:
y 0
c 1=⎰
y 1
⎛100-y 1dy =[⋅(-100+y ) 2ln 4]8⎝y 0y 1
其他河段的长度c i 可以类似计算:
y 0
c i =
⎰
dy +⎰
y i
dy . (3) 这里,我们假定了M 2在下游抛物线上。 所以,修建M 1L 1段道路需要的碎石运费为:
f 1=(20⋅s 1M 0+6⋅c 1) ⋅M 1L 1⋅s 1⋅109+10⋅M 1L 12⋅s 1⋅109; (4)
同样得到修建M 2L 2段道路需要的碎石运费为:
f 2=(20⋅s 1M 0+6⋅c 2) ⋅M 2L 2⋅s 1⋅109+10⋅M 2L 22⋅s 1⋅109;
, f k =(20⋅s 1M 0+6⋅c k ) ⋅M k L k ⋅s 1⋅109+10⋅M k L k 2⋅s 1⋅109;
从S2出发的临时路段的碎石运费计算:
r 1=10⋅s 2Q 12⋅s 1⋅109; r 2=10⋅s 2Q 22⋅s 1⋅109; ; r t =10⋅s 2Q t 2⋅s 1⋅109 其次计算铺设AB 的碎石运输费w 21=f 21+f 22+ +f 2k +r 2t + +r 21,即:
w 21等于铺设L 1, L 2, , L k , Q t , Q t -1, , Q 1点左右两边各段道路需要的碎石运输费之
和。则
2
⎡⎤l 2-l 1l -l ⎛⎫92921
f 21=(20⋅s 1M 0+6⋅c 1+20⋅M 1L 1) ⋅(l 1+) ⋅s 2⋅10+10⋅⎢l 1+ ⎪⎥⋅s 2⋅10; (5)
2⎝2⎭⎥⎢⎣⎦
22
⎡⎤l -l l 2-l 1l 3-l 2l -l ⎛⎫⎛⎫993221
f 22=(20⋅s 1M 0+6⋅c 2+20⋅M 2L 2) ⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+ ⎪⎥⋅s 2⋅10;
22⎢⎣⎝2⎭⎝2⎭⎥⎦
,
22
⎡⎤l k -l k -1q -l k l -l q -l ⎛⎫⎛⎫99k k -1k
f 2k =(20⋅s 1M 0+6⋅c k +20⋅M k L k ) ⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+ ⎪⎥⋅s 2⋅10;
22⎢⎣⎝2⎭⎝2⎭⎥⎦
22
⎡⎤q t -l k q t -1-q t q -l q -q ⎛⎫⎛⎫99t k t -1t
r 2t =20⋅s 2Q t ⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+ ⎪⎥⋅s 2⋅10; (6) 22⎢⎣⎝2⎭⎝2⎭⎥⎦
,
⎡⎛q 2-q 3⎫2⎛q 1-q 2⎫2⎤q 2-q 3q 1-q 299
r 22=20⋅s 2Q 2⋅(+) ⋅s 2⋅10+10⋅⎢ +⋅s ⋅10; ⎥2 ⎪⎪
22⎢⎣⎝2⎭⎝2⎭⎥⎦⎡⎛q 1-q 2⎫2q 1-q 2200-q 12⎤99
r 21=20⋅s 2Q 1⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+(200-q 1)⎥⋅s 2⋅10;
22⎢⎥⎣⎝2⎭⎦
点Q (q ,100) 中的q 为:
q =l k +
q t -l k l k +q t
=. (7) 22
b 1是从采石点S1运出的仅用于修建AB 公路的碎石数:b 1=s 2⋅q ;
b 2是从采石点S2运出的仅用于修建AB 公路的碎石数:b 2=s 2⋅(200-q ) .
6.模型的建立与求解
由上面一节的分析可以知道,为了完成AB 道路的修建工程,在假定修建1+k 个码头,k +t +1条临时道路的情况下,总修建费用为:
w =w 0+w 1+w 2
其中,w 0=(1+k ) ⨯2⨯10⨯104;
w 1=200⨯s 2⨯60⨯109+[(s 1M 0+M 1L 1+ +M k L k ) +(s 2Q 1+ +s 2Q t )]⨯s 1⨯60⨯109; w 2=w 21+w 20,而
w 20=f 0+f 1+ +f k +r 1+ +r t ,w 21=f 21+f 22+ +f 2k +r 2t + +r 21. 具体的计算表达式如上节,其他的约束条件为:
0≤x 0≤50; 0≤x 1≤50; 50≤x 2
x k -1
q 2
至此,我们已经成功建立了一个关于碎石运输的优化规划数学模型,要求的就是
w 在上述约束条件下的最小值. 用Lingo 求解得:
具体程序参见附录。
结论:3码头2道路最优方案总费用为16.8亿元,各有关数据为:
x 0=20.2, y 0=115; x 1=l 1=50; x 2=73.3, y 2=19.6; q 1=178.5, q 2=147.6; q =132.3; b 1=930480m 3 b 2=569520m 3;
7.模型的评价与模型的改进
模型主要优点:
1) 考虑问题比较全面,我们建立的模型可以对不确定因素的各种情况都进行讨论;
2) 问题描述逐层深入,每个独立部分的模型建立与求解比较简洁; 3) 得到较好的结果,误差主要依赖于Lingo 程序及计算机计算的精确度。 模型缺点:
没有建立一个全局动态的模型,不能直接求解出全局的最优结果。比如可以考虑从某条临时道路的中间位置建设另外一条临时道路,建立更科学的网络优化模型(如图三)。
图三
参考文献
[1]姜启源,谢金星,叶俊. 数学模型. 北京:高等教育出版社,2003.8. [2]姜启源,薛毅. 优化建模与LINDO/LINGO软件. 北京:清华大学出版社,2005.7.
[3]刘光灿,刘简达. 道路改造项目中碎石运输的数学模型. 长沙大学学报,2007年9月,第21卷第5期,1-4.
附录一:
MODEL : Title road; data : sets : LL/
l0=@sqrt((20-x0)^2+(120-y0)^2); l1=@sqrt((L(1)-x1)^2+(100-y1)^2); !..;
lk=@sqrt((L(k)-xk)^2+(100-yk)^2);/ endsets sets : QQ/
q1=@sqrt((180-Q1)^2+(157-100)^2); ! ..;
qt=@sqrt((180-Qt)^2+(157-100)^2);/ endsets sets : X/
x1=(-1/8)*y1^2+25*y1-1200; x2=(3/20)*y2^2-12*y2+650; !..;
xk=(3/20)*yk^2-12*yk+650;/ endsets
w11=[@sum(L(i):l(i))+@sum(Q(i):q(i))]*s1*60*10^9; s1=0.4*10^-6;
f0=10*l0^2*s1*10^9; sets : C/
c1=[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log((100-y0)/4+@sqrt(((-1/4)*y0+25)^2+1)]-[(1/8)*(-100+y1)*@sqrt(((-1/4)*y1+25)^2+1)-2*@log((100-y1)/4+@sqrt (((-1/4)*y1+25)^2+1)];
c2={[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log((100-y0)/4+@sqrt(((-1/4)*y0+25)^2+1)]-[2*@log(@sqrt(((-1/4)*100+25)^2+1)]}+;/ endsets sets : F/
f1=(20*l0+6*c1)*l1*s1*10^9+10*l1^2*s1*10^9; f2=(20*l0+6*c2)*l1*s2*10^9+10*l2^2*s1*10^9; f3=(20*l0+6*c3)*l1*s3*10^9+10*l3^2*s1*10^9; f4=(20*l0+6*c4)*l1*s4*10^9+10*l4^2*s1*10^9; !..;
fk=(20*l0+6*ck)*l1*sk*10^9+10*lk^2*s1*10^9;/
endsets sets : F2/
f21=(20*l0+6*c1+20*l1)*(L(1)+(L(2)-L(1))/2)*s2*10^9+10*[L1^2+@sqr((L(2)-L(1))/2)]*s2*10^9;
f22=(20*l0+6*c2+20*l2)*((L(2)-L(1))/2+(L(3)-L(2))/2)*s2*10^9+10*[@sqr((L(2)-L(1))/2)+@sqr((L(3)-L(2))/2)]*s2*10^9;
f23=(20*l0+6*c3+20*l3)*((L(3)-L(2))/2+(L(4)-L(3))/2)*s2*10^9+10*[@sqr((L(3)-L(2))/2)+@sqr((L(4)-L(3))/2)]*s2*10^9;
f2k=(20*l0+6*ck+20*lk)*((L(k)-L(k-1))/2+(q-L(k))/2)*s2*10^9+10*[@sqr((L(k)-L(k-1))/2)+@sqr((q-L(k))/2)]*s2*10^9;/ endsets sets : R/
r1=10*q1^2*s1*10^9; r2=10*q2^2*s1*10^9; r3=10*q3^2*s1*10^9; r4=10*q4^2*s1*10^9; !..;
rt=10*qt^2*s1*10^9;/ endsets sets : R2/
r2t=20*qt*((Q(t)-L(k))/2+(Q(t-1)-Q(t))/2)*s2*10^9+10*[((Q(t)-L(k))/2)^2+((Q(t-1)-Q(t))/2)^2]*s2*10^9;
r22=20*q2*((Q(2)-Q(3))/2+(Q(1)-Q(2))/2)*s2*10^9+10*[((Q(2)-Q(3))/2)^2+((Q(1)-Q(2))/2)^2]*s2*10^9;
r21=20*q1*((Q(1)-Q(2))/2+(200-Q(1))/2)*s2*10^9+10*[((Q(1)-Q(2))/2)^2+((200-Q(1))^2]*s2*10^9/ endsets enddata
[obj] min w=w0+w1+w2; w0=(1+k)*2*10*10^4;
w1=200*s2*60*10^9+[@sum(LL(i):l(i))+@sum(QQ:q(i))]*s1*60*10^9; w2=w21+w20;
w20=@sum(F(i):f(i))+@sum(R(j):r(j)); w21=@sum(F2(i):f2(i))+@sum(R2(j):r2(j)); q=(L(k)+Q(t))/2; b1=s2*q;
b2=s2*(200-q);
0
END
附录二:
data :
s1=0.4e-6;
s2=7.5e-6;L0=@sqrt((x0-20)^2+(y0-120)^2)
L1=@sqrt((l1-x1)^2+(100-y1)^2)
L2=@sqrt((l2-x2)^2+(100-y2)^2))
Q1=@sqrt((180-q1)^2+(157-100)^2))
enddata
[obj]
min =(1+k)*2*10*10^4+200*s2*60*10^9+(L0+L1+Q1)*s1*60*10^9+ 10*(L0)^2*s1*10^9+(20*L0+6*c1)*L1*s1*10^9+10*(L1)^2*s1*10^9+
((20*L0*+6*c2)*L2*s1*10^9+10*(L2)^2*s1*10^9+(20*L0+6*c1+20*L1)*(l1+(l2-l1)/2)*s2*10^9+
(20*L0+6*c1+20*L2)*((l2-l1)/2*(l3-l2)/2)*s2*10^9+10*(l2-l1)/2)
c1=[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log((100-y0)/4+@sqrt(((-1/4)*y0+25)^2+1)]-[(1/8)*(-100+y1)*@sqrt(((-1/4)*y1+25)^2+1)-2*@log((100-y1)/4+@sqrt (((-1/4)*y1+25)^2+1)];
b1+b2=1500000;
1000*x200*h1*d1=b1;
x10>0;
x20>x10;
x20
y20>100;
y20
x10=-0.125*y10^2+25*y10-1200;
x20=-0.125*y20^2+25*y20-1200;
b1>0;
b2>0;
x00
x00>x200;
y00=100;
x2
x2>0;
x2
y2=100;
d1=15;
h1=0.5;
c1=60;
d2=4;
h2=0.1;
c2=20;
c3=6;
c4=10;
end
附录三:
min =(1+k)*2*10*10^4+200*7.5*60*10^9+[((x0-20)^2+(y0-120)^2)^0.5+((l1-x1)^2+(100-y1)^2)^0.5
+((l2-x2)^2+(100-y2)^2)^0.5+((180-q1)^2+(157-100)^2)^0.5+((180-q2)^2+(157-100)^2)^0.5]*0.4*60*10^9+
10*[(x0-20)^2+(y0-120)]*s1*10^9+((20*((x0-20)^2+(y0-120)^2)^0.5+6*c1)*[(l1-x1)^2+(100-y1)^2)]^0.5
*s1*10^9+10*(l1-x1)^2+(100-y1)^2)s1*10^9+((20*((x0-20)^2+(y0-120)^2)^0.5+6*c1)*(l2-x2)^2+(100-y2)^2)^0.5]*
s1*10^9+10*((l2-x2)^2+(100-y2)^2)s1*10^9+10*((180-q1)^2+(157-100)^2)*s1*10^9+x0-20)^2+(20*(y0-120)^2)^0.5
+6*c1+20*((l1-x1)^2+(100-y1)^2)^0.5)
s1=0.4;
s2=7.5
b1+b2=1500000;
1000*x200*h1*d1=b1;
x10>0;
x20>x10;
x20
y20>100;
y20
x10=-0.125*y10^2+25*y10-1200;
x20=-0.125*y20^2+25*y20-1200;
b1>0;
b2>0;
x00
x00>x200;
y00=100;
x2
x2>0;
x2
y2=100;
d1=15;
h1=0.5;
c1=60;
d2=4;
h2=0.1;
c2=20;
c3=6;
c4=10;
附录四:
min =(1+1)*2*10*10^4+200*s2*60*10^9+(s1M0+M1L1+s1Q1)*s1*60*10^9+
10*(s1M0)^2*s1*10^9+(20*s1M0+6*c1)*M1L1*s1*10^9+10*(M1L1)^2*s1*10^9+ (20*s1M0+6*c1+20*M1L1)*(l1+(l2-l1)/2)*s2*10^9+
20*s2Q1((q1-q2)/2+(200-q1)/2)*s2*10^9+10*[((q1-q2)/2)^2+(200-q1)^2]*s2*10^9
s1=0.4e(-6);
s2=7.5e(-6);
s1M0=((x0-20)^2+(y0-120)^2)^0.5
M1L1=((l1-x1)^2+(100-y1)^2))^0.5
s2Q1=((180-q1)^2+(157-100)^2))^0.5
c1=[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log(((100-y0)/4+@sqrt (((-1/4)*y0+25^2+1)]-[(1/8)*(-100)+y1)*@sqrt(((-1/4)*y1+25)^2+1)-2*@sqrt ((100-y1)/4+@sqrt(((-1/4)*y1+25)^2+1)]
x1>0;
x2>x1;
x2
y2>100;
y2
x0=-0.125*y0^2+25*y0-1200;
x1=-0.125*y2^2+25*y2-1200;
附录五:
MODEL :
! 数据;
DATA :
K=5;
T=5;
ENDDATA
! 集合设置;
SETS :
KGATHER/1,2,3,4,5/:C,L,X,Y;
TGATHER/1,2,3,4,5/:Q;
ENDSETS
! 目标函数;
MIN =W0+W10+W11++W20+W21;
W0=(1+2)*200000;
W10=200*7.5*60000;
W11=((20-X0)^2+(120-Y0)^2)^(1/2)+@SUM(KGATHER:((L-X)^2+(100-Y)^2)^(1/
2))+24000*@SUM(TGATHER:((180-Q)^2+57^2)^(1/2));
W20=4000*((20-X0)^2+(120-Y0)^2)+@SUM(KGATHER:(20*400*((20-X0)^2+(120-Y0)^2)^(1-2)+6*C)*((L-X)^2+(100-Y)^2)^(1/2)+400*((L-X)^2+(100-Y)^2))+
4000*@SUM(TGATHER:(180-Q)^2+57^2);
W21=@SUM(KGATHER|(I#GT#1)#AND#(I#GT#(K)):(20*7500*((20-X0)^2+(120-Y0)^2)^(1/2)+6*C(I)+20*((L(I)-X(I))^2+(100-Y(I))^2)^(1/2))*((L(I)-L(I-1))/2+(L(I+1)+L(I))/2)+10*7500*((L(I)-L(I-1))^2/4+(L(I+1)-L(I))^2/4)+(20*7500*((20-X0)^2+(120-Y0)^2)^(1/2)+6*C(1)+20*((L(1)-X(1))^2+(100-Y(1))^2)^(1/2))*(L(1)+(L(2)-L(1))/2)+10*7500*((L(1))^2+(L(2)-L(1))^2/4)+(20*7500*((20-X0)^2+(120-Y0)^2)^(1/2)+6*C(K)+20*((L(K)-X(K))^2+(100-Y(K))^2)^(1/2))*((L(K)-L(K-1))/2+(L(K+1)-L(K))/2))+10*7500*((L(K)-L(K-
1))^2/4+(Q(T)-L(K))^2/16)+@SUM(TGATHER|(I#GT#1)#AND#(I#GT#(K)):20*7500*((180-Q(I))^2+57^2)^(1/2)*((Q(I)-Q(I+1))/2+(Q(I-1)-Q(I))/2)+10*7500*((Q(I)-Q(I+1))^2/4+(Q(I-1)-Q(I))^2/4))+20*7500*((180-Q(1))^2+57^2)^(1/2)*((Q(1)-Q(2))/2+(200-Q(1))/2)+10*7500*((Q(1)-Q(2))^2/4+(200-Q(1))^2)+20*7500*((180-Q(T))^2+57^2)^(1/2)*((Q(T)-L(K))/2+(Q(T-1)-Q(T))/2)+10*7500*((Q(T)-L(K))^2/4+(Q(T-1)-Q(T))^2/4);
! 约束条件;
X(1)=-0.125*X(1)^2+25*X(1)-1200;
@FOR(KGATHER(J)|J#GT#1:X(J)=0.6*Y(J)^2-12*Y(J)+650);
L(1)>=0;
L(1)
-L(2)
L(2)
Q(2)
Q(1)
X(1)>=0;
X(1)
X(2)>=50;
X(2)
L(2)
@FOR(KGATHER:@GIN(C));
@FOR(KGATHER:@GIN(L));
@FOR(KGATHER:@GIN(X));
@FOR(KGATHER:@GIN(Y));
@FOR(TGATHER:@GIN(Q));
碎石运输方案设计
摘要:
本文对运输碎石的方案设计建立数学模型。这是一个道路改造项目中安排石料运输的规划问题,目标是在给定的条件下寻求使碎石运输总费用最少的规划方案。问题的关键是给出两个石料供应点的运量,恰当选择铺设临时道路的路线,确定设置码头的数量及位置。注意到通过水运运输碎石时,必须有装有卸,所有如果需要建临时码头,码头数应不小于2。又由于AB 路段(180,100)处通向S2处和河道处的距离都在50km 上下,所以我们假设S2处运的碎石全部通过陆地运输。
我们通过同时考虑有关因素,提出一个总费用的数学模型并求解该模型。根据这个问题本身的特点,在需要建立码头情况下,我们考虑在S1附近建设一个卸碎石码头M 0,然后再在其下游依次建设装碎石码头M i ,i =1,2, , k ,共k +1个码头。从码头M i 修建的临时道路与AB 路的交点L i 。在修建L i L i +1这一段路的时候,以中点为界,右边所需碎石通过L i +1运送,左边所需碎石通过L i 运送,这样可以进一步减小运费。最后通过编写Lingo 程序,借助计算机使这个优化规划问题得到最终解决。
所有过程中,都采用Lingo 求得规划的最优方案,最后得到的最优结果为:从S1采碎石930480m 3,从S2采碎石569520m 3,总费用的最优值为16.8亿元。 路线图为
关键字:非线性规划碎石运输码头数
1.问题重述
在一平原地区要进行一项道路改造项目,在A ,B 之间建一条长200km ,宽15m ,平均铺设厚度为0.5m 的直线形公路。为了铺设这条道路,需要从S1,S2两个采石点运碎石。1立方米碎石的成本都为60元。(S1,S2运出的碎石已满足工程需要,不必再进一步进行粉碎。)S1,S2与公路之间原来没有道路可以利用,需铺设临时道路。临时道路宽为4m ,平均铺设厚度为0.1m 。而在A ,B 之间有原来的道路可以利用。假设运输1立方米碎石1km 运费为20元。此地区有一条河,故也可以利用水路运输:顺流时,平均运输1立方米碎石1km 运费为6元;逆流时,平均运输1立方米碎石1km 运费为10元。如果要利用水路,还需要在装卸处建临时码头。建一个临时码头需要用10万元。
建立一直角坐标系,以确定各地点之间的相对位置:
A (0,100),B (200,100),s1(20,120),s2(180,157)。
河与AB 的交点为m4(50,100) (m4处原来有桥可以利用)。河流的流向为m1→m7,m4的上游近似为一抛物线,其上另外几点为m1(0,120),m2(18,116),m3(42,108);m4的下游也近似为一抛物线,其上另外几点m5(74,80),m6(104,70),m7(200,50)。
桥的造价很高,故不宜为运输石料而造临时桥。 此地区没有其它可以借用的道路。
图一
2.符号说明
w :修路的总花费;
M 0(x 0, y 0) :卸碎石码头M 0的坐标;
M i (x i , y i ) :第i 个装碎石码头M i 的坐标,i =1,2, , k ;
L i (l i ,100) :从码头M i 修建的临时道路与AB 路的交点L i 的坐标,i =1,2, , k ; ,修建它左边的道路需要的碎石Q (q ,100) :AB 上的一点(我们称它为临界点)取自S1, 修建它右边的道路需要的碎石取自S2;
Q i (q i ,100) :从S 2修建的临时道路与AB 路的交点Q i 的坐标,i =1,2, , t ;
s 1:临时道路的横截面面积,等于0.4⨯10-6km 2;
s 2:正式铺设的AB 道路的横截面面积,等于7.5⨯10-6km 2;
L :AB 直线形公路的总长度;
b 1:从采石点S1运出的仅用于修建AB 公路的碎石数;
b 2:从采石点S2运出的仅用于修建AB 公路的碎石数。
3.模型假设
1)S1,S2运出的碎石已满足工程需要,不必再进一步进行粉碎; 2)在运输石料过程中不再建造临时桥;
3)除了AB 原有的道路及水路和新建的临时道路外,所考虑的地区没有其它可以借用的道路;
4)河有足够的跨度,可以满足在两岸都修建码头; 5)假设每个码头通向AB 的临时道路只有一条; 6)除水路外,假设所有的运输道路均为直线型; 7)把河流的上游和下游分别看作两条抛物线的一部分; 8)不考虑题目所涉及范围以外的其他不确定因素产生的费用。
4.问题分析
这是一个道路改造项目中安排石料运输的规划问题,目标是在给定的条件下寻求使碎石运输总费用最少的规划方案。问题的关键是给出两个石料供应点的运量,恰当选择铺设临时道路的路线,确定设置码头的数量及位置。注意到通过水运运输碎石时,必须有装有卸,所有如果需要建临时码头,码头数应不小于2。又由于AB 路段(180,100)处通向S2处和河道处的距离都在50km 上下,所以我们假设S2处运的碎石全部通过陆地运输。
我们同时考虑有关因素,提出一个总费用的数学模型并求解该模型。根据这个问题本身的特点,把河流的上游和下游分别看作两条抛物线的一部分,即河流中的点(x , y ) 满足:
⎧12
-y +25y -1200,0
在需要建立码头情况下,我们考虑在S1附近建设一个卸碎石码头M 0,然后再在其下游依次建设装碎石码头M i ,i =1,2, , k ,共k +1个码头。从码头M i 修建的临时道路与AB 路的交点L i 。其次,从S 2修建的临时道路与AB 路的交点是Q i ,i =1,2, , t ,共k +t 条临时道路。在修建L i L i +1这一段路的时候,以中
点为界,右边所需碎石通过L i +1运送,左边所需碎石通过L i 运送,在修建AB 上其他路段的时候也作同样的考虑,这样可以进一步减小运费。最后通过编写Lingo 程序,通过依次考虑k =1, t =1;k =1, t =2;k =2, t =1;k =2, t =2等情况,借助计算机使这个优化规划问题得到最终解决。
5.模型准备
考虑到在运输方案设计的数学模型中涉及大量的计算公式,为了方便,我们首先用一个示意图表示运输线路,并且逐步依次对各种量的表达式进行讨论。
图二
总费用w =码头建设费w 0+铺设道路的碎石成本费w 1+碎石运输费w 2。 1)码头建设费w 0:
由于修建一个码头的费用等于2⨯10⨯104元,所以w 0=(1+k ) ⨯2⨯10⨯104. 2)碎石成本费w 1=铺设AB 的碎石成本费w 10+铺设临时道路的碎石成本费w 11: 铺设AB 的碎石成本费:w 10=200⨯s 2⨯60⨯109元 铺设临时道路的碎石成本费:
w 11=[(s 1M 0+M 1L 1+M 2L 2+ +M k L k ) +(s 2Q 1+s 2Q 2+ +s 2Q t )]⨯s 1⨯60⨯109(2) 其中,s 1=0.4⨯10-6km 2,s 1M 0=
M 1L 1= , M k L k =
s 2Q 1= , s 2Q t =
1
而x 0=-y 02+25y 0-1200,
8
13232
x 1=-y 12+25y 1-1200, x 2=y 2-12y 2+650, , x k =y k -12y k +650.
85050
这里,我们假定了M 1在上游抛物线上,M 2等在下游抛物线上。
3)碎石运输费w 2=铺设临时道路的碎石运输费w 21+铺设AB 的碎石运输费w 20: 首先计算铺设临时道路的碎石运输费w 20=f 0+f 1+ +f k +r 1+ +r t :
下面依次计算各段道路的运输费。 从S1出发的临时路段的碎石运费计算:
为计算修建s 1M 0段道路的运输费,第一步,计算把碎石从s1运到M 0的运费。如果把碎石分成无数小份,则每一份的运费与其将来被铺设的位置与采石点之间的距离成正比,所以这段路的运费可以用一个积分式求出来:
s 1M 0
f 0=
⎰
020⋅x ⋅s 1⋅109⋅dx =10⋅s 1M 02⋅s 1⋅109,
修建M 1L 1段道路需要的碎石要经过M0运到M 1的河流,由于
a
b
a 1
dy =ln y +],
b
2
(利用第一型曲线积分可以计算这段河的长度为:
y 0
c 1=⎰
y 1
⎛100-y 1dy =[⋅(-100+y ) 2ln 4]8⎝y 0y 1
其他河段的长度c i 可以类似计算:
y 0
c i =
⎰
dy +⎰
y i
dy . (3) 这里,我们假定了M 2在下游抛物线上。 所以,修建M 1L 1段道路需要的碎石运费为:
f 1=(20⋅s 1M 0+6⋅c 1) ⋅M 1L 1⋅s 1⋅109+10⋅M 1L 12⋅s 1⋅109; (4)
同样得到修建M 2L 2段道路需要的碎石运费为:
f 2=(20⋅s 1M 0+6⋅c 2) ⋅M 2L 2⋅s 1⋅109+10⋅M 2L 22⋅s 1⋅109;
, f k =(20⋅s 1M 0+6⋅c k ) ⋅M k L k ⋅s 1⋅109+10⋅M k L k 2⋅s 1⋅109;
从S2出发的临时路段的碎石运费计算:
r 1=10⋅s 2Q 12⋅s 1⋅109; r 2=10⋅s 2Q 22⋅s 1⋅109; ; r t =10⋅s 2Q t 2⋅s 1⋅109 其次计算铺设AB 的碎石运输费w 21=f 21+f 22+ +f 2k +r 2t + +r 21,即:
w 21等于铺设L 1, L 2, , L k , Q t , Q t -1, , Q 1点左右两边各段道路需要的碎石运输费之
和。则
2
⎡⎤l 2-l 1l -l ⎛⎫92921
f 21=(20⋅s 1M 0+6⋅c 1+20⋅M 1L 1) ⋅(l 1+) ⋅s 2⋅10+10⋅⎢l 1+ ⎪⎥⋅s 2⋅10; (5)
2⎝2⎭⎥⎢⎣⎦
22
⎡⎤l -l l 2-l 1l 3-l 2l -l ⎛⎫⎛⎫993221
f 22=(20⋅s 1M 0+6⋅c 2+20⋅M 2L 2) ⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+ ⎪⎥⋅s 2⋅10;
22⎢⎣⎝2⎭⎝2⎭⎥⎦
,
22
⎡⎤l k -l k -1q -l k l -l q -l ⎛⎫⎛⎫99k k -1k
f 2k =(20⋅s 1M 0+6⋅c k +20⋅M k L k ) ⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+ ⎪⎥⋅s 2⋅10;
22⎢⎣⎝2⎭⎝2⎭⎥⎦
22
⎡⎤q t -l k q t -1-q t q -l q -q ⎛⎫⎛⎫99t k t -1t
r 2t =20⋅s 2Q t ⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+ ⎪⎥⋅s 2⋅10; (6) 22⎢⎣⎝2⎭⎝2⎭⎥⎦
,
⎡⎛q 2-q 3⎫2⎛q 1-q 2⎫2⎤q 2-q 3q 1-q 299
r 22=20⋅s 2Q 2⋅(+) ⋅s 2⋅10+10⋅⎢ +⋅s ⋅10; ⎥2 ⎪⎪
22⎢⎣⎝2⎭⎝2⎭⎥⎦⎡⎛q 1-q 2⎫2q 1-q 2200-q 12⎤99
r 21=20⋅s 2Q 1⋅(+) ⋅s 2⋅10+10⋅⎢ ⎪+(200-q 1)⎥⋅s 2⋅10;
22⎢⎥⎣⎝2⎭⎦
点Q (q ,100) 中的q 为:
q =l k +
q t -l k l k +q t
=. (7) 22
b 1是从采石点S1运出的仅用于修建AB 公路的碎石数:b 1=s 2⋅q ;
b 2是从采石点S2运出的仅用于修建AB 公路的碎石数:b 2=s 2⋅(200-q ) .
6.模型的建立与求解
由上面一节的分析可以知道,为了完成AB 道路的修建工程,在假定修建1+k 个码头,k +t +1条临时道路的情况下,总修建费用为:
w =w 0+w 1+w 2
其中,w 0=(1+k ) ⨯2⨯10⨯104;
w 1=200⨯s 2⨯60⨯109+[(s 1M 0+M 1L 1+ +M k L k ) +(s 2Q 1+ +s 2Q t )]⨯s 1⨯60⨯109; w 2=w 21+w 20,而
w 20=f 0+f 1+ +f k +r 1+ +r t ,w 21=f 21+f 22+ +f 2k +r 2t + +r 21. 具体的计算表达式如上节,其他的约束条件为:
0≤x 0≤50; 0≤x 1≤50; 50≤x 2
x k -1
q 2
至此,我们已经成功建立了一个关于碎石运输的优化规划数学模型,要求的就是
w 在上述约束条件下的最小值. 用Lingo 求解得:
具体程序参见附录。
结论:3码头2道路最优方案总费用为16.8亿元,各有关数据为:
x 0=20.2, y 0=115; x 1=l 1=50; x 2=73.3, y 2=19.6; q 1=178.5, q 2=147.6; q =132.3; b 1=930480m 3 b 2=569520m 3;
7.模型的评价与模型的改进
模型主要优点:
1) 考虑问题比较全面,我们建立的模型可以对不确定因素的各种情况都进行讨论;
2) 问题描述逐层深入,每个独立部分的模型建立与求解比较简洁; 3) 得到较好的结果,误差主要依赖于Lingo 程序及计算机计算的精确度。 模型缺点:
没有建立一个全局动态的模型,不能直接求解出全局的最优结果。比如可以考虑从某条临时道路的中间位置建设另外一条临时道路,建立更科学的网络优化模型(如图三)。
图三
参考文献
[1]姜启源,谢金星,叶俊. 数学模型. 北京:高等教育出版社,2003.8. [2]姜启源,薛毅. 优化建模与LINDO/LINGO软件. 北京:清华大学出版社,2005.7.
[3]刘光灿,刘简达. 道路改造项目中碎石运输的数学模型. 长沙大学学报,2007年9月,第21卷第5期,1-4.
附录一:
MODEL : Title road; data : sets : LL/
l0=@sqrt((20-x0)^2+(120-y0)^2); l1=@sqrt((L(1)-x1)^2+(100-y1)^2); !..;
lk=@sqrt((L(k)-xk)^2+(100-yk)^2);/ endsets sets : QQ/
q1=@sqrt((180-Q1)^2+(157-100)^2); ! ..;
qt=@sqrt((180-Qt)^2+(157-100)^2);/ endsets sets : X/
x1=(-1/8)*y1^2+25*y1-1200; x2=(3/20)*y2^2-12*y2+650; !..;
xk=(3/20)*yk^2-12*yk+650;/ endsets
w11=[@sum(L(i):l(i))+@sum(Q(i):q(i))]*s1*60*10^9; s1=0.4*10^-6;
f0=10*l0^2*s1*10^9; sets : C/
c1=[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log((100-y0)/4+@sqrt(((-1/4)*y0+25)^2+1)]-[(1/8)*(-100+y1)*@sqrt(((-1/4)*y1+25)^2+1)-2*@log((100-y1)/4+@sqrt (((-1/4)*y1+25)^2+1)];
c2={[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log((100-y0)/4+@sqrt(((-1/4)*y0+25)^2+1)]-[2*@log(@sqrt(((-1/4)*100+25)^2+1)]}+;/ endsets sets : F/
f1=(20*l0+6*c1)*l1*s1*10^9+10*l1^2*s1*10^9; f2=(20*l0+6*c2)*l1*s2*10^9+10*l2^2*s1*10^9; f3=(20*l0+6*c3)*l1*s3*10^9+10*l3^2*s1*10^9; f4=(20*l0+6*c4)*l1*s4*10^9+10*l4^2*s1*10^9; !..;
fk=(20*l0+6*ck)*l1*sk*10^9+10*lk^2*s1*10^9;/
endsets sets : F2/
f21=(20*l0+6*c1+20*l1)*(L(1)+(L(2)-L(1))/2)*s2*10^9+10*[L1^2+@sqr((L(2)-L(1))/2)]*s2*10^9;
f22=(20*l0+6*c2+20*l2)*((L(2)-L(1))/2+(L(3)-L(2))/2)*s2*10^9+10*[@sqr((L(2)-L(1))/2)+@sqr((L(3)-L(2))/2)]*s2*10^9;
f23=(20*l0+6*c3+20*l3)*((L(3)-L(2))/2+(L(4)-L(3))/2)*s2*10^9+10*[@sqr((L(3)-L(2))/2)+@sqr((L(4)-L(3))/2)]*s2*10^9;
f2k=(20*l0+6*ck+20*lk)*((L(k)-L(k-1))/2+(q-L(k))/2)*s2*10^9+10*[@sqr((L(k)-L(k-1))/2)+@sqr((q-L(k))/2)]*s2*10^9;/ endsets sets : R/
r1=10*q1^2*s1*10^9; r2=10*q2^2*s1*10^9; r3=10*q3^2*s1*10^9; r4=10*q4^2*s1*10^9; !..;
rt=10*qt^2*s1*10^9;/ endsets sets : R2/
r2t=20*qt*((Q(t)-L(k))/2+(Q(t-1)-Q(t))/2)*s2*10^9+10*[((Q(t)-L(k))/2)^2+((Q(t-1)-Q(t))/2)^2]*s2*10^9;
r22=20*q2*((Q(2)-Q(3))/2+(Q(1)-Q(2))/2)*s2*10^9+10*[((Q(2)-Q(3))/2)^2+((Q(1)-Q(2))/2)^2]*s2*10^9;
r21=20*q1*((Q(1)-Q(2))/2+(200-Q(1))/2)*s2*10^9+10*[((Q(1)-Q(2))/2)^2+((200-Q(1))^2]*s2*10^9/ endsets enddata
[obj] min w=w0+w1+w2; w0=(1+k)*2*10*10^4;
w1=200*s2*60*10^9+[@sum(LL(i):l(i))+@sum(QQ:q(i))]*s1*60*10^9; w2=w21+w20;
w20=@sum(F(i):f(i))+@sum(R(j):r(j)); w21=@sum(F2(i):f2(i))+@sum(R2(j):r2(j)); q=(L(k)+Q(t))/2; b1=s2*q;
b2=s2*(200-q);
0
END
附录二:
data :
s1=0.4e-6;
s2=7.5e-6;L0=@sqrt((x0-20)^2+(y0-120)^2)
L1=@sqrt((l1-x1)^2+(100-y1)^2)
L2=@sqrt((l2-x2)^2+(100-y2)^2))
Q1=@sqrt((180-q1)^2+(157-100)^2))
enddata
[obj]
min =(1+k)*2*10*10^4+200*s2*60*10^9+(L0+L1+Q1)*s1*60*10^9+ 10*(L0)^2*s1*10^9+(20*L0+6*c1)*L1*s1*10^9+10*(L1)^2*s1*10^9+
((20*L0*+6*c2)*L2*s1*10^9+10*(L2)^2*s1*10^9+(20*L0+6*c1+20*L1)*(l1+(l2-l1)/2)*s2*10^9+
(20*L0+6*c1+20*L2)*((l2-l1)/2*(l3-l2)/2)*s2*10^9+10*(l2-l1)/2)
c1=[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log((100-y0)/4+@sqrt(((-1/4)*y0+25)^2+1)]-[(1/8)*(-100+y1)*@sqrt(((-1/4)*y1+25)^2+1)-2*@log((100-y1)/4+@sqrt (((-1/4)*y1+25)^2+1)];
b1+b2=1500000;
1000*x200*h1*d1=b1;
x10>0;
x20>x10;
x20
y20>100;
y20
x10=-0.125*y10^2+25*y10-1200;
x20=-0.125*y20^2+25*y20-1200;
b1>0;
b2>0;
x00
x00>x200;
y00=100;
x2
x2>0;
x2
y2=100;
d1=15;
h1=0.5;
c1=60;
d2=4;
h2=0.1;
c2=20;
c3=6;
c4=10;
end
附录三:
min =(1+k)*2*10*10^4+200*7.5*60*10^9+[((x0-20)^2+(y0-120)^2)^0.5+((l1-x1)^2+(100-y1)^2)^0.5
+((l2-x2)^2+(100-y2)^2)^0.5+((180-q1)^2+(157-100)^2)^0.5+((180-q2)^2+(157-100)^2)^0.5]*0.4*60*10^9+
10*[(x0-20)^2+(y0-120)]*s1*10^9+((20*((x0-20)^2+(y0-120)^2)^0.5+6*c1)*[(l1-x1)^2+(100-y1)^2)]^0.5
*s1*10^9+10*(l1-x1)^2+(100-y1)^2)s1*10^9+((20*((x0-20)^2+(y0-120)^2)^0.5+6*c1)*(l2-x2)^2+(100-y2)^2)^0.5]*
s1*10^9+10*((l2-x2)^2+(100-y2)^2)s1*10^9+10*((180-q1)^2+(157-100)^2)*s1*10^9+x0-20)^2+(20*(y0-120)^2)^0.5
+6*c1+20*((l1-x1)^2+(100-y1)^2)^0.5)
s1=0.4;
s2=7.5
b1+b2=1500000;
1000*x200*h1*d1=b1;
x10>0;
x20>x10;
x20
y20>100;
y20
x10=-0.125*y10^2+25*y10-1200;
x20=-0.125*y20^2+25*y20-1200;
b1>0;
b2>0;
x00
x00>x200;
y00=100;
x2
x2>0;
x2
y2=100;
d1=15;
h1=0.5;
c1=60;
d2=4;
h2=0.1;
c2=20;
c3=6;
c4=10;
附录四:
min =(1+1)*2*10*10^4+200*s2*60*10^9+(s1M0+M1L1+s1Q1)*s1*60*10^9+
10*(s1M0)^2*s1*10^9+(20*s1M0+6*c1)*M1L1*s1*10^9+10*(M1L1)^2*s1*10^9+ (20*s1M0+6*c1+20*M1L1)*(l1+(l2-l1)/2)*s2*10^9+
20*s2Q1((q1-q2)/2+(200-q1)/2)*s2*10^9+10*[((q1-q2)/2)^2+(200-q1)^2]*s2*10^9
s1=0.4e(-6);
s2=7.5e(-6);
s1M0=((x0-20)^2+(y0-120)^2)^0.5
M1L1=((l1-x1)^2+(100-y1)^2))^0.5
s2Q1=((180-q1)^2+(157-100)^2))^0.5
c1=[(1/8)*(-100+y0)*@sqrt(((-1/4)*y0+25)^2+1)-2*@log(((100-y0)/4+@sqrt (((-1/4)*y0+25^2+1)]-[(1/8)*(-100)+y1)*@sqrt(((-1/4)*y1+25)^2+1)-2*@sqrt ((100-y1)/4+@sqrt(((-1/4)*y1+25)^2+1)]
x1>0;
x2>x1;
x2
y2>100;
y2
x0=-0.125*y0^2+25*y0-1200;
x1=-0.125*y2^2+25*y2-1200;
附录五:
MODEL :
! 数据;
DATA :
K=5;
T=5;
ENDDATA
! 集合设置;
SETS :
KGATHER/1,2,3,4,5/:C,L,X,Y;
TGATHER/1,2,3,4,5/:Q;
ENDSETS
! 目标函数;
MIN =W0+W10+W11++W20+W21;
W0=(1+2)*200000;
W10=200*7.5*60000;
W11=((20-X0)^2+(120-Y0)^2)^(1/2)+@SUM(KGATHER:((L-X)^2+(100-Y)^2)^(1/
2))+24000*@SUM(TGATHER:((180-Q)^2+57^2)^(1/2));
W20=4000*((20-X0)^2+(120-Y0)^2)+@SUM(KGATHER:(20*400*((20-X0)^2+(120-Y0)^2)^(1-2)+6*C)*((L-X)^2+(100-Y)^2)^(1/2)+400*((L-X)^2+(100-Y)^2))+
4000*@SUM(TGATHER:(180-Q)^2+57^2);
W21=@SUM(KGATHER|(I#GT#1)#AND#(I#GT#(K)):(20*7500*((20-X0)^2+(120-Y0)^2)^(1/2)+6*C(I)+20*((L(I)-X(I))^2+(100-Y(I))^2)^(1/2))*((L(I)-L(I-1))/2+(L(I+1)+L(I))/2)+10*7500*((L(I)-L(I-1))^2/4+(L(I+1)-L(I))^2/4)+(20*7500*((20-X0)^2+(120-Y0)^2)^(1/2)+6*C(1)+20*((L(1)-X(1))^2+(100-Y(1))^2)^(1/2))*(L(1)+(L(2)-L(1))/2)+10*7500*((L(1))^2+(L(2)-L(1))^2/4)+(20*7500*((20-X0)^2+(120-Y0)^2)^(1/2)+6*C(K)+20*((L(K)-X(K))^2+(100-Y(K))^2)^(1/2))*((L(K)-L(K-1))/2+(L(K+1)-L(K))/2))+10*7500*((L(K)-L(K-
1))^2/4+(Q(T)-L(K))^2/16)+@SUM(TGATHER|(I#GT#1)#AND#(I#GT#(K)):20*7500*((180-Q(I))^2+57^2)^(1/2)*((Q(I)-Q(I+1))/2+(Q(I-1)-Q(I))/2)+10*7500*((Q(I)-Q(I+1))^2/4+(Q(I-1)-Q(I))^2/4))+20*7500*((180-Q(1))^2+57^2)^(1/2)*((Q(1)-Q(2))/2+(200-Q(1))/2)+10*7500*((Q(1)-Q(2))^2/4+(200-Q(1))^2)+20*7500*((180-Q(T))^2+57^2)^(1/2)*((Q(T)-L(K))/2+(Q(T-1)-Q(T))/2)+10*7500*((Q(T)-L(K))^2/4+(Q(T-1)-Q(T))^2/4);
! 约束条件;
X(1)=-0.125*X(1)^2+25*X(1)-1200;
@FOR(KGATHER(J)|J#GT#1:X(J)=0.6*Y(J)^2-12*Y(J)+650);
L(1)>=0;
L(1)
-L(2)
L(2)
Q(2)
Q(1)
X(1)>=0;
X(1)
X(2)>=50;
X(2)
L(2)
@FOR(KGATHER:@GIN(C));
@FOR(KGATHER:@GIN(L));
@FOR(KGATHER:@GIN(X));
@FOR(KGATHER:@GIN(Y));
@FOR(TGATHER:@GIN(Q));