实验05 数学规划模型㈡(2学时)
(第4章 数学规划模型)
1.(求解)汽车厂生产计划(LP,整数规划IP)p101~102
(1) (LP)在模型窗口中输入以下线性规划模型
max z = 2x1 + 3x2 + 4x3 s.t. 1.5x1 + 3x2 + 5x3 ≤ 600
280x1 + 250x2 + 400x3 ≤ 60000
x1, x2, x3 ≥ 0
并求解模型。
★(1) 给出输入模型和求解结果(见[101]):
model: TITLE汽车厂生产计划(LP); !文件名:p101.lg4; max=2*x1+3*x2+4*x3; 1.5*x1+3*x2+5*x3<600; 280*x1+250*x2+400*x3<60000; end (2) (IP)在模型窗口中输入以下整数规划模型
max z = 2x1 + 3x2 + 4x3 s.t. 1.5x1 + 3x2 + 5x3 ≤ 600
280x1 + 250x2 + 400x3 ≤ 60000
x1, x2, x3均为非负整数 并求解模型。
LINGO函数@gin见提示。
★(2) 给出输入模型和求解结果(见[102]模型、结果):
model: TITLE汽车厂生产计划(IP); 1
!文件名:p102.lg4; max=2*x1+3*x2+4*x3; 1.5*x1+3*x2+5*x3<600; 280*x1+250*x2+400*x3<60000; @gin(x1); @gin(x2); @gin(x3);!将x1,x2,x3限定为整数; end 2.(求解)原油采购与加工(非线性规划NLP,LP且IP)p104~107
模型:
(0?x?50)0?10x?08x(500?x?100)0已知 c(x)??100?
?300?06x(100?0x?150)0?注:当500 ≤ x ≤ 1000时,c(x) = 10 × 500 + 8( x – 500 ) = (10 – 8 ) × 500 + 8x
maxz?4.8(x11?x21)?5.6(x12?x22)?c(x)x11?x12?500?xx21?x22?1000x?1500x11?0.5x11?x21x12?0.6x12?x22x11,x12,x21,x22,x?0
2.1解法1(NLP)p104~106
将模型变换为以下的非线性规划模型:
2
maxz?4.8(x11?x21)?5.6(x12?x22)?(10x1?8x2?6x3)x11?x12?500?xx21?x22?1000x11?0.5x11?x21x12?0.6x12?x22x?x1?x2?x3(x1?500)x2?0(x2?500)x3?00?x1,x2,x3?500x11,x12,x21,x22,x?0
LINGO软件设置:局部最优解,全局最优解,见提示。
★(1) 给出输入模型(见[105]):
注意:模型中不要出现变量相除的形式,转化! model: TITLE原油采购与加工解法1(NLP,非线性规划); !文件名:p105.lg4; max = 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3; x11 + x12 < x + 500; x21 + x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; x = x1 + x2 + x3; ( x1 - 500 )*x2 = 0; ( x2 - 500 )*x3 = 0; x1 < 500; x2 < 500; x3 < 500; end 3
★(2) 在缺省的局部最优解设置下运行。给出求局部最优解(见[106]): ★(3) 设置为全局最优解(见提示)后运行。给出求全局最优解(见[106]): 2.2 解法2(LP且IP)p104,107
将模型变换为以下的整数规划模型:
4
maxz?4.8(x11?x21)?5.6(x12?x22)?(10x1?8x2?6x3)x11?x12?500?xx21?x22?1000x11?0.5x11?x21x12?0.6x12?x22x?x1?x2?x3500y2?x1?500y1500y3?x2?500y2x3?500y3y1,y2,y3?0或10?x1,x2,x3?500x11,x12,x21,x22,x?0
LINGO函数@bin见提示。
★ 给出输入模型(见[107])和运行结果(全局最优解)(比较[106]): model: TITLE 原油采购与加工解法2(LP,IP);!不允许用英文逗号; !文件名:p107.lg4; max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3; x11 + x12 < x + 500; x21 + x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; x = x1 + x2 + x3; x1 < 500*y1; x2 < 500*y2; x3 < 500*y3 ; x1 > 500*y2; x2 > 500*y3; @bin(y1); @bin(y2); @bin(y3);!将y1,y2,y3限定为0 – 1 变量; end 5