1、桂林电子科技大学 运筹学 实验报告 实验四 整数规划 辅导员意见: 计算机科学与工程学院 信息管理与信息系统专业 12003401 班第 实验小组 作者 黄桂 学号 1200340119 同作者 辅导员 实验日期 2014 年 12 月 22 日 成绩: 签 名 一、实验目的:
2、1) 熟悉LINGO软件环境; (2) 了解并熟练掌握LINGO语言的数学模型; (3) 熟练掌握如何用LINGO语言来解决整数问题。 二、实验类型:设计型 三、实验内容: 采用LINGO软件解决下列实际整数规划应用问题。 (1)投资场所的选择 京成畜产品公司计划在市区的东、西、南、北四区建立销售门市部,拟议中有10个位置Ai(i=1,2,3,…,10)可供选择,考虑到各地区居民的消费水平及居民居住密集度,规定: 在东区由A1,A2,A3三个点至多选择两个; 在西区由A4,A5两个点中至少选一个; 在南区由A6,A7两个点中至少选一个;
3、 在北区由A8,A9,A10。三个点中至少选两个。 Ai各点的设备投资及每年可获利润由于地点不同都是不一样的,预测情况见下表1所示。 表1 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 投资额 100 120 150 80 70 90 80 140 160 180 利润 36 40 50 22 20 30 25 48 58 61 但投资总额不能超过720万元,问应选择四几个销售点,可使年利润为最大? 答:用LINGO输入以下代码: max =36*x1+40*x2+50*x3+22*x4+20*x5
4、30*x6+25*x7+48*x8+58*x9+61*x10; 100*x1+120*x2+150*x3+80*x4+70*x5+90*x6+80*x7+140*x8+160*x9+180*x10<=720; x1+x2+x3<=2; x4+x5>=1; x6+x7>=1; x8+x9+x10>=2; @BIN(x1); @BIN(x2); @BIN(x3); @BIN(x4); @BIN(x5); @BIN(x6); @BIN(x7); @BIN(x8); @BIN(x9); @BIN(x10); 点击solve得到以下运行界面得: 根据以上运行结果知
5、道,选择A1、A2、A5、A6、A9、A10这几个销售点可得到最大利润为245。 (2)固定成本问题 假设某公司可以生产6中型号的飞机,生产每一架飞机可以获得如下的利润,生产每一类型的飞机需要一定的固定资本。 Plane Profit Setup Rocket 30 35 Meteor 45 20 Streak 24 60 Comet 26 70 Jet 24 75 Biplane 30 30 并且每生产一架飞机需要的材料以及共有的材料如下: Rocket Meteor Streak Comet Je
6、t Biplane Available Steel 1 4 0 4 2 0 800 Copper 4 5 3 0 1 0 1160 Plastic 0 3 8 0 1 0 1780 Rubber 2 0 1 2 1 5 1050 Glass 2 4 2 2 2 4 1360 Paint 1 4 1 4 3 4 1240 问现在需要如何安全生产使得获得的利润最大。 答:在L
7、INGO里输入以下代码: max =30*a1+45*a2+24*a3+26*a4+24*a5+30*a6-35*b1-20*b2-60*b3-70*b4-75*b5-30*b6; a1+4*a2+4*a4+2*a5<=800; 4*a1+5*a2+3*a3+a5<=1160; 3*a2+8*a3+a5<=1780; 2*a1+a3+2*a4+a5+5*a6<=1050; 2*a1+4*a2+2*a3+2*a4+2*a5+4*a6<=1360; a1+4*a2+a3+4*a4+3*a5+4*a6<=1240; a1<=1000*b1; a2<=1000*b2; a3<=10
8、00*b3; a4<=1000*b4; a5<=1000*b5; a6<=1000*b6; @bin(b1);@gin(a1); @bin(b2);@gin(a2); @bin(b3);@gin(a3); @bin(b4);@gin(a4); @bin(b5);@gin(a5); @bin(b6);@gin(a6); 点击solve得到运行结果为: 根据上图分析知,分别生产Rocket、Meteor、Streak、Comet Jet、Biplane、Available的数量为96、0、195、0、191、94。这样才得利润最大为1476
9、4。 (3)指派问题 有四个工人,要分别指派他们完成四项不同的工作.每人做各项工作所消耗的时间如表2所示,问应如何指派工作,才能使总的消耗时间为最少。 表2 工作 所需时间 (小时) 工人 A B C D 甲 15 18 21 24 乙 19 23 22 18 丙 26 17 16 19 丁 19 21 23 17 答:用LINGO输入以下代码: min=15*x1+18*x2+21*x3+24*x4+19*y1+23*y2+22*y3+18*y4+26*z1+17*z2+16*z3+19*z4+19*a1+21*a2+23*a3+17*a4; x1+x2+x3+x4=1; y1+y2+y3+y4=1; z1+z2+z3+z4=1; a1+a2+a3+a4=1; x1+y1+z1+a1=1; x2+y2+z2+a2=1; x3+y3+z3+a3=1; x4+y4+z4+a4=1; 点击solve得到以下运行结果为 根据结果分析知,甲分配B工作,已分配A工作,丙分配C工作,丁分配D工作,才能使总消耗时间最少。






