lingo解决实际问题例题
数学建模lingo软件经典例题
客户 1
客户 2
客户 3
客户 4
客户 5
客户 6
员工 1
20
15
16
5
4
7
员工 2
17
15
33
12
8
6
员工 3
9
12
18
16
30
13
员工 4
12
8
11
27
19
14
员工 5
未服务
7
10
21
10
32
员工 6
未服务
未服务
未服务
6
11
13
5、设某企业拥有两个工厂甲和乙、四个销售超市和三个仓库。工厂产量分别为 9,8 个单位。四个顾客需求量分
别为 3,5,4,5 个单位。工厂到仓库、仓库到超市的运费单价如下表。问如何安排总运费最少的运输方案。
工厂 1
工厂 2
超市 1
超市 2
超市 3
超市 4
仓库 1
1
3
5
7
——
——
仓库 2
2
1
9
6
7
——
仓库 3
——
2
——
6
7
4
6、某公司有 6 个建筑工地要开工,每个工地的位置(用平面坐标 ( a, b)表示,距离单位为千米)及水泥的日用
量 d (用量单位为吨)由下表给出。目前有两个临时料场位于 P (5,1) 和 Q( 2, 7),日储量各有 20 吨。
1
2
3
4
5
6
a
1.25
8.75
0.5
5.75
3
Lingo作业练习
Lingo作业1 、用长度500cm的钢条,截成长度为98和78cm的两种毛坯,要求截出长度98cm的毛坯10000根,78cm的毛坯20000根,问怎么样截法,才使所用原材料最少。
2、某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的钢管都是19m.(1)现有一客户需要50根4m、20根6m和15根8m的钢管,应如何下料最节省?(2)零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种。
此外该客户需要(1)中的三种钢管外,还需要10根5m的钢管,应如何下料最省?3、电视台为某个广告公司特约播放两套片集,其中片集甲播映时间为20min,广告时间为1min,收视观众60万;片集乙播映时间10min,广告时间1min,收拾观众20万,广告公司规定每周至少有6min广告,而电视台每周只能为该公司提供不多于80min的节目时间。
电视台每周播映两套片集各多少次,才能获得最高的收视率?4、某公司计划在A,B,C三个区建立销售部,确定了7个位置M1-M7可供选择,并且规定:(1)在A区,从M1,M2,M3中至多选两个;(2)在B区,M4,M5中至少选一个;(3)在C区,M6,M7中至少选一个;已知:如果选择M1-M7,则分别投资为200,300,350,250,350,200,400万元,预计每年可以获利50,80,120,70,100,60,120万元,现在公司可用于投资的资金是1200万元,问应如何建立销售部?5、有4名同学到一家公司参加三个阶段的面试:公司要求每个同学都必须首先找公司秘书处初试,然后到部门主管处复试,最后到经理处参加面试,并且不允许插队(即在任何一个阶段4名同学的顺序是一样的)。
由于4名同学的专业背景不同,所以每个人在三个阶段的面试时间也不同,如下表所示(单位:min):这4名同学约定他们全部面试完以后一起离开公司。
lingo题目与答案附程序
1 •一奶产品加工厂用牛奶生产A1,A2两种奶产品,1桶牛奶可以在甲类设备上用12h加工,成3kg A1,或者在乙类设备上用8h加工成4kg A2。
根据市场需求,生产的A1, A2全部能售出,且每千克A1获利24元,每千克A2获利16元。
现在加工厂每天能得到50桶牛奶供应,每天正式工人的劳动时间为480h,并且甲类设备每天最多加工100kg A1,乙类设备的加工时间没有限制,讨论以下问题1)若35元可以买一桶牛奶,做这项投资是否值得?若投资,每天最多购买多少桶牛奶?2)若聘用临时工人以增加劳动时间,付给临时工人的工资最多是多少?3)由于市场需求变化,每千克A1的获利增加到30元,是否改变原有的生产计划?Lingo程序:model:max=72*x+64*y;x+y<50;12*x+8*y<480;3*x<100;end2.—汽车厂生产小、中、大三种类型的的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、劳动时间如下表1)制定生产计划,使工厂利润最大;23.建筑工地的位置(a,b)和水泥日用量d如下表,目前有两个临时料场位于P (5,1), Q(2,7),日储量各有20t。
1)求从P,Q两料场分别向各工地运送多少吨水泥,使总的吨公里数最小;2)现打算舍弃原有料场,新建两个料场A,B,求新料场的位置,使新的吨公里数最小,此时与P,Q相比能节省多少吨公里。
4.设从4个产地Ai往3个销地Bj运送物资,产量、销量和单位运费如下表,求总运费最少的运输方案和总运费。
Lingo程序:Model: sets:warehouse/1..3/:a;customer/1..4/:b;link(warehouse,customer):c,x; endsetsdata:a=30,25,21;b=15,17,22,12;c=6,2,6,7,4,9,5,3,8,8,1,5;enddata[OBJ]min=@sum(link:c*x);@for(warehouse(i):@sum(customer(j):x(i,j))<a(i)); @for(customer(j):@sum(warehouse(i):x(i,j))=b(j)); end5.求下图中v1到v11的最短路9 W 丄vlOLingo程序:Model:sets:cities/1..11/;roads(cities,cities):p,w,x; endsetsdata: ! 半连通图和权图p=0 1 1 1 00 0 0 0 0 00 0 1 0 10 0 0 0 0 00 1 0 1 11 1 0 0 0 00 0 1 0 0 0 1 0 0 0 00 1 1 0 0 1 0 1 1 0 00 0 1 0 1 0 1 0 1 0 00 0 1 1 0 1 0 0 1 1 00 0 0 0 1 0 0 0 1 0 10 0 0 0 1 1 1 1 0 1 10 0 0 0 0 0 1 0 1 0 10 0 0 0 0 0 0 1 1 1 0;w=0 2 8 1 0 0 0 0 0 0 02 0 6 0 1 0 0 0 0 0 08 6 0 7 5 1 2 0 0 0 01 0 7 0 0 0 9 0 0 0 00 1 5 0 0 3 0 2 9 0 00 0 1 0 3 0 4 0 6 0 00 0 2 9 0 4 0 0 3 1 00 0 0 0 2 0 0 0 7 0 90 0 0 0 9 6 3 7 0 1 20 0 0 0 0 0 1 0 1 0 40 0 0 0 0 0 0 0 9 2 4;enddata n=@size(cities); min=@sum(roads:w*x);@for(cities(i)|I # ne # 1 # and # I # ne # n: @sum(cities(j):p(i,j)*x(i,j)) =@sum(cities(j):p(j,i)*x(j,i)));@sum(cities(j):p(1,j)*x(1,j))=1;end6.露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。
运用lingo解决问题的例子
运用lingo解决问题的例子
以下是一个运用LINGO解决实际问题的例子:
问题描述:
某公司生产A、B两种产品,已知生产1单位A产品需要3单位原料1和2单位原料2,同时产生2单位废料;生产1单位B产品需要4单位原料1和2单位原料2,同时产生3单位废料。
该公司有10单位原料1和8单位原料2,同时最多可以产生10单位废料。
请为公司制定一个生产计划,使得A、B两种产品的产量最大。
模型建立:
1. 设x1为A产品的产量,x2为B产品的产量。
2. 设原料1的消耗为3x1 + 4x2,原料2的消耗为2x1 + 2x2,废料产生为2x1 + 3x2。
3. 原料1的限制条件为3x1 + 4x2 <= 10,原料2的限制条件为2x1 +
2x2 <= 8,废料的限制条件为2x1 + 3x2 <= 10。
4. 目标函数为max x1 + x2,即最大化A、B两种产品的产量之和。
LINGO代码:
SETS:
I / 1 /;
J / 1,2 /;
K / I,J /;
PARAMETERS:
C(K) / 3I + 4J, 2I + 2J, 2I + 3J /; D(I) / 10 /;
E(I) / 8 /;
F(I) / 10 /;
VARIABLES:
X(K) / >=0 /;
MAXIMIZE Z: X(1) + X(2); SUBJECT TO:
3X(1) + 4X(2) <= D(1);
2X(1) + 2X(2) <= E(1);
2X(1) + 3X(2) <= F(1); ENDSETS
END。
Lingo的应用实例
Lingo应用——旅游路线最短问题题目:从北京乘飞机到东京、纽约、墨西哥城、伦敦、巴黎五个城市做旅游,每个城市去且仅去一次,再回到东京,问如何安排旅游线路,使总旅程最短。
各城市之间的航线距离如下表:运用lingo软件求解模型建立前问题分析:1.这是一个求路线最短的问题,题目给出了两两城市之间的距离,而在最短路线中,这些城市有的两个城市是直接相连接的(即紧接着先后到达的关系),有些城市之间就可能没有这种关系,所以给出的两两城市距离中有些在最后的最短路线距离计算中使用到了,有些则没有用。
这是一个0-1规划的问题,也是一个线性规划的问题。
2.由于每个城市去且仅去一次,最终肯定是形成一个圈的结构,这就导致了这六个城市其中有的两个城市是直接相连的,另外也有两个城市是不连接的。
这就可以考虑设0-1变量,如果两个城市紧接着去旅游的则为1,否则为0。
就如同下图实线代表两个城市相连为1,虚线代表没有相连为03. 因为每个城市只去一次,所以其中任何一个城市的必有且仅有一条进入路线和一条出去的路线。
求解:为了方便解题,给上面六个城市进行编号,如下表(因为北京是起点, 将其标为1)假设:设变量x ij 。
如果x ij =1,则表示城市i 与城市j 直接相连(即先后紧接到达关系),否则若x ij =0,则表示城市i 与城市j 不相连。
特别说明:x ij 和x ji 是同一变量,都表示表示城市i 与城市j 是否有相连的关系。
这里取其中x ij (I<j)的变量。
模型建立:由于这是一个最短路线的问题,且变量已经设好。
目标函数:min z=51*x12+78*x13+68*x14+51*x15+13*x16+56*x23+35*x24+21*x25+60*x26+21*x34+57*x35+70*x36+36*x45+68*x46+61*x56约束条件:1. 上面目标函数中的变量是表示两个城市是否直接相连接的关系,且最短路线是可以形成圈的,如下图实线代表两个城市相连为1,虚线代表没有相连为0如上图城市a和城市b有直接相连接的关系,所以之间变量为1,而城市a 与城市e则没有直接相连接的关系,之间变量为0。
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2。
根据市场需求,生产的A1、A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以购买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?数学模型:设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2目标函数:设每天获利为z元。
x1桶牛奶可生产3x1公斤A1,获利24*3x,x2桶牛奶可生产4*x2公1斤A2,获利16*4x2,故z=72x1+64x2约束条件:原料供应:生产A1、A2的原料(牛奶)总量不超过每天的供应50桶,即x1+x2≤50劳动时间:生产A1、A2的总加工时间不超过每天正式工人总的劳动时间480小时,即12x1+8x2≤480设备能力:A1的产量不得超过设备甲每天的加工能力100小时,即3x1≤100≥0非负约束:x1、x2均不能为负值,即x1≥0,x2综上所述可得max z=72x1+64x2s.t.x1+x2≤5012x1+8x2≤4803x1≤100x1≥0,x2≥0显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
LINGO求解线性规划用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示)。
lingo题目与答案(附程序)
Lingo软件题目与答案1.一奶产品加工厂用牛奶生产A1,A2两种奶产品,1桶牛奶可以在甲类设备上用12h加工,成3kg A1,或者在乙类设备上用8h加工成4kg A2。
根据市场需求,生产的A1,A2全部能售出,且每千克A1获利24元,每千克A2获利16元。
现在加工厂每天能得到50桶牛奶供应,每天正式工人的劳动时间为480h,并且甲类设备每天最多加工100kg A1,乙类设备的加工时间没有限制,讨论以下问题1)若35元可以买一桶牛奶,做这项投资是否值得?若投资,每天最多购买多少桶牛奶?2)若聘用临时工人以增加劳动时间,付给临时工人的工资最多是多少?3)由于市场需求变化,每千克A1的获利增加到30元,是否改变原有的生产计划?Lingo程序:model:max=72*x+64*y;x+y<50;12*x+8*y<480;3*x<100;end2.一汽车厂生产小、中、大三种类型的的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、劳动时间如下表。
1)制定生产计划,使工厂利润最大;2)若生产某类型车,则至少需生产80辆,求改变后的生产计划。
3.建筑工地的位置(a,b)和水泥日用量d如下表,目前有两个临时料场位于P(5,1),Q(2,7),日储量各有20t。
1)求从P,Q两料场分别向各工地运送多少吨水泥,使总的吨公里数最小;2)现打算舍弃原有料场,新建两个料场A,B,求新料场的位置,使新的吨公里数最小,此时与P,Q相比能节省多少吨公里。
4.设从4个产地Ai往3个销地Bj运送物资,产量、销量和单位运费如下表,求总运费最少的运输方案和总运费。
Lingo程序:Model:sets:warehouse/1..3/:a;customer/1..4/:b;link(warehouse,customer):c,x;endsetsdata:a=30,25,21;b=15,17,22,12;c=6,2,6,7,4,9,5,3,8,8,1,5;enddata[OBJ]min=@sum(link:c*x);@for(warehouse(i): @sum(customer(j):x(i,j))<a(i));@for(customer(j):@sum(warehouse(i):x(i,j))=b(j));end5.求下图中v1到v11的最短路Lingo程序:Model:sets:cities/1..11/;roads(cities,cities):p,w,x; endsetsdata: !半连通图和权图;p=0 1 1 1 0 0 0 0 0 0 00 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 10 0 0 0 1 1 1 1 0 1 10 0 0 0 0 0 1 0 1 0 10 0 0 0 0 0 0 1 1 1 0;w=0 2 8 1 0 0 0 0 0 0 02 0 6 0 1 0 0 0 0 0 08 6 0 7 5 1 2 0 0 0 01 0 7 0 0 0 9 0 0 0 00 1 5 0 0 3 0 2 9 0 00 0 1 0 3 0 4 0 6 0 00 0 2 9 0 4 0 0 3 1 00 0 0 0 2 0 0 0 7 0 90 0 0 0 9 6 3 7 0 1 20 0 0 0 0 0 1 0 1 0 40 0 0 0 0 0 0 0 9 2 4;enddatan=@size(cities);min=@sum(roads:w*x);@for(cities(i)|I # ne # 1 # and # I # ne # n: @sum(cities(j):p(i,j)*x(i,j))=@sum(cities(j):p(j,i)*x(j,i)));@sum(cities(j):p(1,j)*x(1,j))=1;end6.露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。
运筹学实例分析及lingo求解讲解
运筹学实例分析及lingo 求解一、线性规划某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。
各供货仓库到8个客户处的单位货物运输价见表试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。
解:设ijx 表示从第i 个仓库到第j 个客户的货物运量。
ij c表示从第i 个仓库到第j 个客户的单位货物运价,i a 表示第i 个仓库的最大供货量,j d 表示第j 个客户的订货量。
目标函数是使总运输费用最少,约束条件有三个:1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束数学模型为:∑∑===6181)(min i j ijij x c x f⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧≥===≤∑∑==08,,2,1,6,2,1,,..6181ij j i ij i j ij x j d x i a x t s 编程如下:model : Sets :Wh/w1..w6/:ai; Vd/v1..v8/:dj;links(wh,vd):c,x;endsetsData:ai=60,55,51,43,41,52;dj=35,37,22,32,41,32,43,38;c=6,2,6,7,4,2,5,94,9,5,3,8,5,8,25,2,1,9,7,4,3,37,6,7,3,9,2,7,12,3,9,5,7,2,6,55,5,2,2,8,1,4,3;EnddataMin=@sum(links(i,j):c(i,j)*x(i,j));@for(wh(i):@sum(vd(j):x(i,j))<=ai(i));@for(vd(j):@sum(wh(i):x(i,j))=dj(j));endGlobal optimal solution found.Objective value: 664.0000Total solver iterations: 0Variable Value Reduced Cost AI( W1) 60.00000 0.000000 AI( W2) 55.00000 0.000000 AI( W3) 51.00000 0.000000 AI( W4) 43.00000 0.000000 AI( W5) 41.00000 0.000000 AI( W6) 52.00000 0.000000 DJ( V1) 35.00000 0.000000 DJ( V2) 37.00000 0.000000 DJ( V3) 22.00000 0.000000 DJ( V4) 32.00000 0.000000 DJ( V5) 41.00000 0.000000 DJ( V6) 32.00000 0.000000 DJ( V7) 43.00000 0.000000 DJ( V8) 38.00000 0.000000 C( W1, V1) 6.000000 0.000000 C( W1, V2) 2.000000 0.000000 C( W1, V3) 6.000000 0.000000 C( W1, V4) 7.000000 0.000000 C( W1, V5) 4.000000 0.000000 C( W1, V6) 2.000000 0.000000 C( W1, V7) 5.000000 0.000000C( W2, V1) 4.000000 0.000000 C( W2, V2) 9.000000 0.000000 C( W2, V3) 5.000000 0.000000 C( W2, V4) 3.000000 0.000000 C( W2, V5) 8.000000 0.000000 C( W2, V6) 5.000000 0.000000 C( W2, V7) 8.000000 0.000000 C( W2, V8) 2.000000 0.000000 C( W3, V1) 5.000000 0.000000 C( W3, V2) 2.000000 0.000000 C( W3, V3) 1.000000 0.000000 C( W3, V4) 9.000000 0.000000 C( W3, V5) 7.000000 0.000000 C( W3, V6) 4.000000 0.000000 C( W3, V7) 3.000000 0.000000 C( W3, V8) 3.000000 0.000000 C( W4, V1) 7.000000 0.000000 C( W4, V2) 6.000000 0.000000 C( W4, V3) 7.000000 0.000000 C( W4, V4) 3.000000 0.000000 C( W4, V5) 9.000000 0.000000 C( W4, V6) 2.000000 0.000000 C( W4, V7) 7.000000 0.000000 C( W4, V8) 1.000000 0.000000 C( W5, V1) 2.000000 0.000000 C( W5, V2) 3.000000 0.000000 C( W5, V3) 9.000000 0.000000 C( W5, V4) 5.000000 0.000000 C( W5, V5) 7.000000 0.000000 C( W5, V6) 2.000000 0.000000 C( W5, V7) 6.000000 0.000000 C( W5, V8) 5.000000 0.000000 C( W6, V1) 5.000000 0.000000 C( W6, V2) 5.000000 0.000000 C( W6, V3) 2.000000 0.000000 C( W6, V4) 2.000000 0.000000 C( W6, V5) 8.000000 0.000000 C( W6, V6) 1.000000 0.000000 C( W6, V7) 4.000000 0.000000 C( W6, V8) 3.000000 0.000000 X( W1, V1) 0.000000 5.000000 X( W1, V2) 19.00000 0.000000 X( W1, V3) 0.000000 5.000000X( W1, V5) 41.00000 0.000000 X( W1, V6) 0.000000 2.000000 X( W1, V7) 0.000000 2.000000 X( W1, V8) 0.000000 10.00000 X( W2, V1) 1.000000 0.000000 X( W2, V2) 0.000000 4.000000 X( W2, V3) 0.000000 1.000000 X( W2, V4) 32.00000 0.000000 X( W2, V5) 0.000000 1.000000 X( W2, V6) 0.000000 2.000000 X( W2, V7) 0.000000 2.000000 X( W2, V8) 0.000000 0.000000 X( W3, V1) 0.000000 4.000000 X( W3, V2) 11.00000 0.000000 X( W3, V3) 0.000000 0.000000 X( W3, V4) 0.000000 9.000000 X( W3, V5) 0.000000 3.000000 X( W3, V6) 0.000000 4.000000 X( W3, V7) 40.00000 0.000000 X( W3, V8) 0.000000 4.000000 X( W4, V1) 0.000000 4.000000 X( W4, V2) 0.000000 2.000000 X( W4, V3) 0.000000 4.000000 X( W4, V4) 0.000000 1.000000 X( W4, V5) 0.000000 3.000000 X( W4, V6) 5.000000 0.000000 X( W4, V7) 0.000000 2.000000 X( W4, V8) 38.00000 0.000000 X( W5, V1) 34.00000 0.000000 X( W5, V2) 7.000000 0.000000 X( W5, V3) 0.000000 7.000000 X( W5, V4) 0.000000 4.000000 X( W5, V5) 0.000000 2.000000 X( W5, V6) 0.000000 1.000000 X( W5, V7) 0.000000 2.000000 X( W5, V8) 0.000000 5.000000 X( W6, V1) 0.000000 3.000000 X( W6, V2) 0.000000 2.000000 X( W6, V3) 22.00000 0.000000 X( W6, V4) 0.000000 1.000000 X( W6, V5) 0.000000 3.000000 X( W6, V6) 27.00000 0.000000 X( W6, V7) 3.000000 0.000000Row Slack or Surplus Dual Price 1 664.0000 -1.000000 2 0.000000 3.000000 3 22.00000 0.000000 4 0.000000 3.000000 5 0.000000 1.000000 6 0.000000 2.000000 7 0.000000 2.000000 8 0.000000 -4.000000 9 0.000000 -5.000000 10 0.000000 -4.000000 11 0.000000 -3.000000 12 0.000000 -7.000000 13 0.000000 -3.000000 14 0.000000 -6.000000 15 0.000000 -2.000000由以上结果可以清楚的看到由各仓库到各客户处的货物调运数量,由此得出的符合条件的最佳运货方案,而使运费最低,最低为664。
Lingo的典型应用举例
假设预先准备的箱子总数为n个,即使每件物品单 独装一个箱子也够用,用决策变量yi=1或0表示第j个箱 子是用还是不用,用变量xij=1或0表示第i件物品是否放 入第j个箱子中,建立0-1规划模型如下:
n
min
z y j,
j1
n
w i x ij Cy
j , j 1,2 ,...,
n,
i1
s
表2.1 当前可供蔬菜养分含量(mg)和价格
养分
蔬菜
铁
A1 青 豆 0.45
A2 胡萝卜 0.45
A3 花 菜 0.65
A4 卷心菜 0.4
A5 芹 菜 0.5
A6 土 豆 0.5
每周最低需求 6
每份蔬菜所含养分数量
每份价格
磷 维生素A 维生素C 烟酸 (元)
20
415
22
0.3
2.1
28
4065
例2.1 某疗养院营养师要为某类病人拟定本周蔬菜类菜单, 当前可供选择的蔬菜品种、价格和营养成分含量,以及病 人所需养分的最低数量见表2.1所示。病人每周需14份蔬 菜,为了口味的原因,规定一周内的卷心菜不多于2份, 胡萝卜不多于3份,其他蔬菜不多于4份且至少一份。在满 足要求的前提下,制订费用最少的一周菜单方案。
.t
.
n
x ij 1 , i 1 , 2 ,...,
n,
j1
yj x ij
0或 0或
1, j 1, i,
j
1,2 ,..., n , 1,2 ,..., n .
例5.1 已知30个物品,其中6个长0.51m,6个长 0.27m,6个长0.26m,余下的12个长0.23m,箱子长为 1m。问最少需要多少个箱子才能把30个物品全部装进箱 子。
LINGO应用实例
LINGO 应用实例班级:2011级软件工程1班;姓名:林保京;学号:P111713222某公司有6 个建筑工地要开工,每个工地的位置(用平面坐标a, b 表示,距离单位:公里)及水泥日用量d (吨)由下表给出。
目前有两个临时料场位于P (5, 1), Q (2, 7) ,日储量各有20 吨。
假设从料场到工地之间均有直线道路相连,试制定每天的供应计划,即从A, B 两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。
为了进一步减少吨公里数,打算舍弃两个临时料场,改建两个新的,日储量仍各为20 吨,问应建在何处,节省的吨公里数有多大。
记工地的位置为(a i ,b i ),水泥的日用量为d i ,i =1…6;料场的位置为(x j ,y j ),日储量为e j ,j =1,2;从料场j 到工地i 的运送量为c ij ,这个优化问题的数学规划模型是:min f =∑∑c ij √(x j −a i )2+(y j −b i )26i−12j−1st ∑c ij 2j−1=d i ,i =1 (6)∑c ij 6i−1≤e j ,j =1,2将其转化成LINGO 代码:MODEL :Title Location Problem;sets :demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata :!需求点设置;a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,5.75,5,6.5,7.75;!需求量;d=3,5,4,7,6,11;e=20,20;enddatainit:!初始点;x,y=5,1,2,7;endinit[OBJ] min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2)); @for(demand(i):[DEMAND_CON]@sum(supply(j):c(i,j))=d(i););@for(supply(i):[SUPPLY_CON]@sum(demand(j):c(j,i))<=e(i););@for(supply:@free(X); @free(Y););END运行结果如下:Local optimal solution found.Objective value: 84.41406Infeasibilities: 0.000000Total solver iterations: 132Model Title: Location ProblemVariable Value Reduced CostA( 1) 1.250000 0.000000A( 2) 8.750000 0.000000A( 3) 0.5000000 0.000000A( 4) 5.750000 0.000000A( 5) 3.000000 0.000000A( 6) 7.250000 0.000000B( 1) 1.250000 0.000000B( 2) 0.7500000 0.000000B( 3) 5.750000 0.000000B( 4) 5.000000 0.000000B( 5) 6.500000 0.000000B( 6) 7.750000 0.000000D( 1) 3.000000 0.000000D( 2) 5.000000 0.000000D( 3) 4.000000 0.000000D( 4) 7.000000 0.000000D( 5) 6.000000 0.000000D( 6) 11.00000 0.000000X( 1) 3.113090 0.000000X( 2) 7.250000 -0.1954955E-06Y( 1) 6.044738 0.000000Y( 2) 7.750000 -0.8808641E-08E( 1) 20.00000 0.000000 E( 2) 20.00000 0.000000 C( 1, 1) 3.000000 0.000000 C( 1, 2) 0.000000 3.701915 C( 2, 1) 0.000000 0.5747176 C( 2, 2) 5.000000 0.000000 C( 3, 1) 4.000000 0.000000 C( 3, 2) 0.000000 4.410404 C( 4, 1) 7.000000 0.000000 C( 4, 2) 0.000000 0.2961603 C( 5, 1) 6.000000 0.000000 C( 5, 2) 0.000000 3.960913 C( 6, 1) 0.000000 4.474589 C( 6, 2) 11.00000 0.000000Row Slack or Surplus Dual Price OBJ 84.41406 -1.000000DEMAND_CON( 1) 0.000000 -5.143988 DEMAND_CON( 2) 0.000000 -7.158911 DEMAND_CON( 3) 0.000000 -2.629659 DEMAND_CON( 4) 0.000000 -2.836331 DEMAND_CON( 5) 0.000000 -0.4690982 DEMAND_CON( 6) 0.000000 0.000000 SUPPLY_CON( 1) 0.000000 0.000000 SUPPLY_CON( 2) 4.000000 0.000000软件运行截图代码截图:运行结果截图:。
lingo经典例题
lingo经典例题今天咱们来一起看看Lingo的经典例题呀。
比如说有这么一个例子,学校要组织一次春游活动。
老师要安排大巴车来接送同学们。
每辆大巴车能坐50个人。
咱们班有230个同学呢。
那我们就可以用Lingo的思路来想想需要多少辆大巴车。
这就像是把同学们分成一组一组的,每组50个人,看看能分成多少组,要是还有剩下的同学,哪怕就几个,也得再安排一辆车。
那230除以50等于4余30,这剩下的30个同学也得坐一辆车呀,所以一共就需要5辆大巴车啦。
这就有点像Lingo解决问题的感觉,把实际的情况变成数字和计算。
再讲讲另一个例子。
学校的小商店卖铅笔和橡皮。
铅笔一支2元,橡皮一块1元。
小明有10元钱,他想买铅笔和橡皮,他想尽可能多的买东西。
那我们可以这样想,如果都买铅笔,10元可以买5支铅笔就没有钱买橡皮了。
要是买4支铅笔就花了8元,还剩下2元就能买2块橡皮。
这就是一种简单的组合问题,Lingo也能帮助我们找到最好的组合方式呢。
还有一个关于分糖果的例子。
老师拿来了100颗糖果,要分给三个小组。
第一组有20个同学,第二组有30个同学,第三组有25个同学。
我们想让每个同学分到的糖果尽量一样多。
那我们先算出总共有多少个同学,20 + 30 + 25 = 75个同学。
100颗糖果分给75个同学,100除以75约等于1.33颗。
但糖果不能分成小数呀,所以我们可以想办法先每个同学分1颗糖果,这样就分出去了75颗,还剩下25颗糖果。
我们可以再把这25颗糖果分给一些同学,这时候就可以根据小组的人数比例来分啦。
这也是一种Lingo可能会涉及到的分配问题的简单版呢。
这些例子虽然很简单,但是就像Lingo经典例题的小缩影。
Lingo就像是一个聪明的小助手,能帮助我们解决生活里各种各样的数学小难题。
它能让我们把复杂的事情变得简单,就像把一堆乱乱的小珠子,用一根线串起来,变得整整齐齐的。
我们通过这些小例子,就能慢慢理解Lingo是怎么回事啦,小伙伴们是不是也觉得很有趣呢?以后我们再遇到类似的问题,就可以像做游戏一样,用这种思路去解决啦。
用lingo求解规划问题实例
用lingo求解规划问题实例用Lingo求解规划问题实例问题一:某公司打算向它的3个营业区增设6个销售店,每个营业区至少增设一个。
从各区赚取的利润与增设的销售店个数有关,其数据如下表所示。
试求各区应分配几个增设的销售店,才能使总利润最大。
销售点增加数 0 1 2 3 4A区利润/万元 100 200 280 330 340B区利润/万元 200 210 220 225 230C区利润/万元 150 160 170 180 200分析:要设置集合zone/A,B,C/,表示三个地区。
因为获得的利润与地区和各地的销售点增加数均相关,所以可以仿照运输模型,用number/1..4/表示每个地区可选的销售点增加数,1,在i地区新增j个销售点,然后用一个派生集links(zone,number):c,profit,定义 c,,ij0,其他,profit(i,j)为在i地区新增j个销售点能获得的利润。
可写出约束条件为:4, c,1i,1,2,3,ijj,1c,0或1 ij34cj,6 ,,ijij,,11所求函数为max=@sum(links:c*profit);Lingo程序如下:model:sets:zone/A,B,C/; !A,B,C三个地区;number/1..4/; !各地区可选择新建的销售点数目,可选1~4中的一个数,通过links把zone和number联系起来;links(zone,number):c,profit; !若在i地区新建j个销售点,则c(i,j)=1,否则c(i,j)=0.profit(i,j)表示在i地区新建j个销售点的利润; endsets data:profit=200 280 330 340210 220 225 230160 170 180 200;enddatamax=@sum(links:c*profit);@for(zone(I):@sum(number(J):c(I,J))=1); !对于每一个地区,新建销售点的数目是一定的,c的和为1;@sum(zone(I):@sum(number(J):c(I,J)*J))=6; !三个地区新建的销售点总数为6;@for(links(i,j):@bin(c(i,j))); !每一个c(i,j)只能取0或1;end用Lingo求解,结果如下:Global optimal solution found.Objective value: 710.0000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced CostC( A, 1) 0.000000 -200.0000C( A, 2) 0.000000 -280.0000C( A, 3) 1.000000 -330.0000C( A, 4) 0.000000 -340.0000C( B, 1) 1.000000 -210.0000C( B, 2) 0.000000 -220.0000C( B, 3) 0.000000 -225.0000C( B, 4) 0.000000 -230.0000C( C, 1) 0.000000 -160.0000C( C, 2) 1.000000 -170.0000C( C, 3) 0.000000 -180.0000C( C, 4) 0.000000 -200.0000 则在A,B,C区域应分别新增3,1,2个销售点,可获得的最大利润为710万元。
附1:用LINGO求解线性规划的例子 一奶制品加工厂用牛奶生产A1、A2
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A、A两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A,121或者在设备乙上用8小时加工成4公斤A。
根据市场需求,生产的A、A能全部售出,且每公斤A获利212124元,每公斤A获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为4802 小时,并且设备甲每天至多能加工100公斤A,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,1使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以购买到1桶牛奶,应否作这项投资,若投资,每天最多购买多少桶牛奶,2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元,3)由于市场需求变化,每公斤A的获利增加到30元,应否改变生产计划, 1数学模型:设每天用x桶牛奶生产A1 ,用x桶牛奶生产A2 12目标函数:设每天获利为z元。
x桶牛奶可生产3x公斤A1,获利24*3x,x桶牛奶可生产4*x公11122斤A2,获利16*4x,故z=72x+64x212约束条件:原料供应:生产A、A的原料(牛奶)总量不超过每天的供应50桶,即 12x+x?50 12劳动时间:生产A、A的总加工时间不超过每天正式工人总的劳动时间480小时,即 1212x+8x?480 12设备能力:A的产量不得超过设备甲每天的加工能力100小时,即 13x?100 1非负约束:x、x均不能为负值,即x?0,x?0 2121综上所述可得max z=72x+64x 12s.t.x+x?50 1212x+8x?480 123x?100 1x?0,x?0 21显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
三组 LINGO问题
max = 2*h1 / (x^2 + h1^2)^(3/2) + 3*h2 / ((20-x)^2 + h2^2)^(3/2); x>=0; x<=20; data: h1 = 5; h2 = 6; enddata end
1
5.00
2
6.00
19.97
最暗 model:
min = 2*h1 / (x^2 + h1^2)^(3/2) + 3*h2 / ((20-x)^2 + h2^2)^(3/2); x>=0; x<=20; data: h1 = 5; h2 = 6; enddata end
② 表示:生产一件晶体管需要占用晶体管质量控制区域 0.5h 的时间,生产一件 微型模块需要占用质量控制区域 0.4h 的时间,总时间不超过 200h;
③ 表示:生产一件电路集成器需要占用测试与包装区域 0.5h 的时间,总时间不 超过 200h;
④ 表示:生产一件电路集成器需要占用电路印刷区域 0.1h 的时间,总时间不超 过 200h; 将③和④合并后约束条件变为:
v(t)
������������ ������������
−
������������ ������������
������
−������������������������
对速度积分可以得到下落位移关于时间的函数
������(������)
������������ ������������
������
/ ((20-x(j))^2 + h2(i)^2)^(3/2)));
ans = @max(set(i):m(i));
lingo习题
1、某工厂要做100套钢架,每套钢架用长为2.9m,2.1m,1.5m,2.0m的圆钢各一根。
已知原料每根长为7.4m,问:应该如何下料,可使所用原料最省2、某工厂生产 A 和 B 两种产品,按计划每天生产 A、B 各不得少于 10 吨,已知生产 A 产品一吨需用煤 9 吨、电 4 度、劳动力 3 个(按工作日计算);生产 B 产品一吨需用煤 4 吨、电 5 度、劳动力 10 个.如果 A 产品每吨价值 7 万元,B 产品每吨价值 12 万元,而且每天用煤不超过 300 吨,用电不超过 200 度,劳动力最多只有 300 个.1)每天应安排生产 A、B 两种产品各多少,才能既保证完成生产计划,又能为国家创造最多的产值?2)请计算不等式右端资源影子价格,并计算保持影子价格不变的自变量的变化范围。
3)保持最优解不变的目标函数系数变化范围3.甲、乙两地生产某种产品,它们可调出的数量分别为 300t 和 750t,A、B、C 三地需要该种产品的数量分别为 200t、450t 和 400t,甲地运往 A、B、C 三地的运费分别是 6 元/吨、3 元/吨、5 元/吨,乙地运往 A、B、C 三地的运费分别是 5 远/吨、9 元/吨、6 元/吨,问怎样的调运方案才能使总运费最省?4、2)请计算不等式右端资源影子价格,并计算保持影子价格不变的自变量的变化范围。
3)保持最优解不变的目标函数系数变化范围5、2)请计算不等式右端资源影子价格,并计算保持影子价格不变的自变量的变化范围。
3)保持最优解不变的目标函数系数变化范围6、2)请计算不等式右端资源影子价格,并计算保持影子价格不变的自变量的变化范围。
3)保持最优解不变的目标函数系数变化范围7、某排球国家队需要准备从以下队员中选拔4名队员为正式队员,每个位置一名,并使平均身高尽可能高,这8名预备队员情况如下表所示预备队员号码身高 cm位置小甲1193主攻小乙2191主攻8、某货运飞机,其载重量为24t ,客运物品的重量机器运费收入如下表,其中个物品只有一件可供选择。
LINGO模型实例及求解
LINGO求解整数非线性规划模型
Local optimal solution found at
iteration: 12211
Objective value:
28.00000
Variable Value Reduced Cost
X1 10.00000
0.000000
X2 10.00000
2.000000
当余料没有用处时,通常以总根数最少为目标
钢管下料问题2
增加一种需求:5米10根;切割模式不超过3种。
现有4种需求:4米50根,5米10根,6米20根,8米 15根,用枚举法确定合理切割模式,过于复杂。
对大规模问题,用模型的约束条件界定合理模式
决策变量 (15维) xi ~按第i 种模式切割的原料钢管根数(i=1,2,3) r1i, r2i, r3i, r4i ~ 第i 种切割模式下,每根原料钢管 生产4米、5米、6米和8米长的钢管的数量
每根原料钢管切割成2某人打算外出旅游并登山路程比较远途中要坐火车和飞机考虑要带许多必要的旅游和生活用品例如照相机摄像机食品衣服雨具书籍等等共n件物品重量分别为a而受航空行李重量限制以及个人体力所限能带的行李总重量为bn件物品的总重量超过了b需要裁减该旅行者为了决策带哪些物品对这些物品的重要性进行了量化用c表示试建立该问题的数学模型
4 x1 3 x22 x3x4x550最优解:x2=15,
x22x4x53x620 x5=5, x7=5,
x3x52x715
其余为0;
xi 为整数
最优值:25。
按模式2切割15根, 与目标1的结果“共切割
按模式5切割5根, 27根,余料27米” 相比
按模式7切割5根, 共25根,余料35米 虽余料增加8米,但减少了2根
lingo例题
例1.1.1某工厂有两条生产线,分别用生产M 和P 两种型号的产品,利润分别为200元/个和300元/个,生产线的最大生产能力分别为每日100和120,生产线每生产一个M 产品需要1个劳动日(1个工人工作8小时成为1个劳动日)进行调试、检测等工作,而每个P 产品需要2个劳动日,该厂工人每天共计能提供160劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大?解:设两种产品的生产量分别为1x 和2x ,则目标函数 12max 200300z x x =+约束条件 1212100,120,2160,0,1,2.i x x x x x i ≤⎧⎪≤⎪⎨+≤⎪⎪≥=⎩ 例1.1.2 基金的优化使用(2001年数学建模竞赛C 题)假设某校基金会得到了一笔数额为M 万元的基金,打算将其存入银行,校基金会计划在n 年末仍保留原基金数额.银行存款税后利率见表元,5n =年的情况下设计具体存款方案.解:分析:假定首次发放奖金的时间是在基金到位后一年,以后每隔一年发放一次,每年发放的时间大致相同,校基金会希望获得最佳的基金使用计划,以提高每年的奖金额,且在n 年末仍保留原基金数额M ,实际上n 年中发放的奖金额全部来自于利息。
如果全部基金都存为一年定期,每年都用到期利息发放奖金,则每年的奖金数为50000.01890⨯=万元,这是没有优化的存款方案。
显然,准备在两年后使用的款项应当存成两年定期,比存两次一年定期的收益高,以此类推。
目标是合理分配基金的存款方案,使得n 年的利息总额最多。
定义:收益比a =(本金+利息)/本金。
于是存2年的收益比为21 2.16%2 1.0432a =+⨯=。
按照银行存款税后利率表计算得到各存款年限对应的最优收益比见表(1) 一次性存成最长期,优于两个(或两个以上)比较短期的组合(中途转存)(2) 当存款年限需要组合时,收益比与组合的先后次序无关。
建立模型 把总基金M 分成5+1份,分别用123456,,,,,x x x x x x 表示,其中12345,,,,x x x x x 分别存成15 年定期,到期后本息合计用于当年发放奖金,6x 存5年定期,到期的本息合计等于原基金总数M 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:刘倩倩学号:1001111316 10级工艺定单
一维合理下料,已知某号水泥构件每件需用钢筋:1米长的7根,4米长的5根,5米长的2根,共拟做200件,钢筋原料长10米,问怎样剪裁法,才能既满足需要又使原料最省?
(1)建立数学模型
决策变量:用xi表示按照第i种模式(i=1,2,…,7)切割的原料钢管的根数
由此可得
Min f= x1+x2+x3+x4+x5+x6(钢筋原料总根数最少)
s.t. 10 x1 +6 x2 + 5x3 +2 x4 + x5 ≥1400(1米长的总根数)
x2+ 2x4 + x5 ≥1000 (4米长的总根数)
x3 + x5 +2 x6 ≥400 (5米长的总根数)
xi≥0,xi取整数,i=1,2,3,4,5,6
进入Lingo系统后,用标量语言输入模型如下:
Min= x1 + x2 + x3 + x4 + x5 + x6;
10* x1 +6* x2 + 5*x3 +2* x4 + x5>= 1400;
x2+ 2*x4 + x5 >= 1000;
x3 + x5 +2* x6 >= 400;
x1>0;x2>0;x3>0;x4>0;x5>0;x6>0;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);@gin (x6);
由此可求得原问题的最优下料方案是:x1=40,x2=0,x3=0,x4=500,x5=0,x6=200,最优值是f=740。