优化建檩 Max48x11+4.8x21+56X12+56X22-10x1-8X2-6X3 st X-X1-x2-X3=0 x1l+x12-X<500 21+x22<1000 0.5x11-0.5x21>0 0.4x12-0.6X22>0 x1-500v1<0 x2-500y2<0 x3-500y3<0 x1-500y2>0 x2-500y3>0 end int y I int y2 Int y
优化建模 Max 4.8x11+4.8x21+5.6x12+5.6x22-10x1-8x2-6x3 st x-x1-x2-x3=0 x11+x12-x<500 x21+x22<1000 0.5x11-0.5x21>0 0.4x12-0.6x22>0 x1-500y1<0 x2-500y2<0 x3-500y3<0 x1-500y2>0 x2-500y3>0 end int y1 int y2 int y3
优化建檩 运行该程序得到 OBJECTIVE FUNCTION VALUE 1)5000.000 VARIABLE VALUE REDUCED COST Y1 000000 0.000000 Y2 1.0000002200.000000 Y3 10000001200.000000 0.000000 0.800000 X21 0.000000 0.800000 X121500.000000 0.000000 X221000.000000 0.000000 X1500.000000 0.000000 X2500.000000 0.000000 X3 0.000000 0.400000 X1000.000000 0.000000 这个结果与前面非线性规划模型用全局优化得到的结果相同
优化建模 运行该程序得到: OBJECTIVE FUNCTION VALUE 1) 5000.000 VARIABLE VALUE REDUCED COST Y1 1.000000 0.000000 Y2 1.000000 2200.000000 Y3 1.000000 1200.000000 X11 0.000000 0.800000 X21 0.000000 0.800000 X12 1500.000000 0.000000 X22 1000.000000 0.000000 X1 500.000000 0.000000 X2 500.000000 0.000000 X3 0.000000 0.400000 X 1000.000000 0.000000 这个结果与前面非线性规划模型用全局优化得到的结果相同
优化建檩 第3种解法直接处理分段线性函数c(x) (1)式表示的函数c(x)如图5-1。 12000 9000 5000 500 1500 图5-1分段线性函数c(x)图形
优化建模 第3种解法 直接处理分段线性函数c(x)。 (1)式表示的函数c(x)如图5-1。 c(x) x 12000 9000 5000 0 500 1000 1500 图5-1 分段线性函数c(x)图形
优化建郡 记x轴上的分点为b=0,b,=500,b1=1000b=1500。当x在第I个小 区间[b12b2]时,记x==1b1+z2b2,1+2=1,E1,=2≥0,因为c(x)在[b1 b2]是线性的,所以c(x)=xc(b1)+=2c(b2)。同样,当x在第2个小区 间[b2,b3]时 二2,230,c(x) 2c(b2)+3(b3)。当x在第3个小区间[b32b时,x==3b3+Eb4, 3+=1,=3,=4≥0,c(x)==3(b3)+4c(b)。为了表示x在哪个小区间, 引入0-1变量y(k=1,2,3),当x在第个小区间时,y=1,否则, y=0。这样,1,23242y1,y2y3应满足 1y1,2≤y1+y y2+y3 y3(18 z1+z2+z3+z4=1, 4 二k≥0(k=1,2,34)(19) y+y2+y3=12y1,y2,y3=0或 (20
优化建模 记x轴上的分点为b1=0, b2=500, b3=1000, b4=1500。当x在第1个小 区间 [b1 , b2 ]时,记x= z1 b1+z2 b2,z1+z2=1,z1 , z2 ≥0, 因为c(x)在[b1 , b2 ]是线性的,所以c(x)= z1 c(b1 )+z2 c(b2 )。同样,当x在第2个小区 间 [b2 , b3 ]时,x= z2 b2+z3 b3,z2+z3=1,z2 , z3 ≥0, c(x)= z2 c(b2 )+z3 c(b3 )。当x在第3个小区间 [b3 , b4 ]时,x= z3 b3+z4 b4, z3+z4=1,z3 , z4≥0, c(x)= z3 c(b3 )+z4 c(b4 )。为了表示x在哪个小区间, 引入0-1变量yk (k=1,2,3),当x在第k个小区间时,yk=1,否则, yk=0。这样, z1 , z2 , z3 , z4 , y1 , y2 , y3应满足 1 1 2 1 2 3 2 3 4 3 z y , z y + y , z y + y , z y 1, 0 ( 1,2,3,4) z1 + z2 + z3 + z4 = zk k = y1 + y2 + y3 = 1, y1 , y2 , y3 = 0 或1 (18) (19) (20)
优化建檩 此时x和c(x)可以统一地表示为 x=1b1+2b2+3b3+4b4=5002+1000=3+15002=4 c(x)==c(b1)+2C(b2)+z3C(b3)+E4C(b4)=5000=2+9000=3+12000=4 (22) (2)~(10),(18)~(22)也构成一个混合整数线性规 划模型,可以用 LINDO求解。不过,我们还是将它输入 LINGO软件,因为其扩展性更好(即当分段函数的分段数 更多时,只需要对下面程序作很小的改动)。输入的 LINGO模型如下
优化建模 此时x和c(x)可以统一地表示为 1 1 2 2 3 3 4 4 500 2 1000 3 1500 4 x = z b + z b + z b + z b = z + z + z (2)~(10),(18)~(22)也构成一个混合整数线性规 划模型,可以用LINDO求解。不过,我们还是将它输入 LINGO软件,因为其扩展性更好(即当分段函数的分段数 更多时,只需要对下面程序作很小的改动)。输入的 LINGO模型如下: 1 1 2 2 3 3 4 4 5000 2 9000 3 12000 4 c(x) = z c(b ) + z c(b ) + z c(b ) + z c(b ) = z + z + z (22)