对应各章的习题及Lingo求解

合集下载

运用lingo解决问题的例子

运用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。

专题资料(2021-2022年)lingo学习教程

专题资料(2021-2022年)lingo学习教程

例3.7
sets:
days /MO,TU,WE,TH,FR,SA,SU/:needs,cost;
endsets
data:
needs cost = 20 100;
enddata
3.1.5 数据部分的未知数值
有时只想为一个集的部分成员的某个属性指定值,让其余成员的该属性保持未知,以 便让LINGO去求出它们的最优值。 在数据声明中输入两个相连的逗号表示该位置对应的集成员的属性值未知。两个逗号 间可以有空格。
• Setname是你选择的来标记集的名字,最好具有较强的 可读性。集名字必须严格符合标准命名规则:以拉丁字 母或下划线(_)为首字符,其后由拉丁字母(A—Z)、 下划线、阿拉伯数字(0,1,…,9)组成的总长度不 超过32个字符的字符串,且不区分大小写。
• 注意:该命名规则同样适用于集成员名和属性名等的命 名。
!产量约束;
@for(warehouses(I):
@sum(vendors(J):
volume(I,J))<=capacity(I));
• !这里是数据;
• data:
• capacity=60 55 51 43 41 52;
• demand=35 37 22 32 41 32 43 38;
• cost=6 2 6 7 4 2 9 5
• LINGO有两种类型的集:原始集(primitive set)和 派生集(derived set)。
• 一个原始集是由一些最基本的对象组成的。 • 一个派生集是用一个或多个其它集来定义的,也
就是说,它的成员来自于其它已存在的集。
2.3 模型的集部分
• 集部分是LINGO模型的一个可选部分。在 LINGO模型中使用集之前,必须在集部分事 先定义。集部分以关键字“sets:”开始,以 “endsets”结束。一个模型可以没有集部分, 或有一个简单的集部分,或有多个集部分。 一个集部分可以放置于模型的任何地方,但 是一个集及其属性在模型约束中被引用之前 必须定义了它们。

Lingo精选题目及参考答案

Lingo精选题目及参考答案

Lingo 精选题目及答案答题要求:将Lingo 程序复制到Word 文档中,并且附上最终结果。

1、简单线性规划求解(目标函数)2134maxx x z += s.t.(约束条件)⎪⎪⎩⎪⎪⎨⎧≥≤≤+≤+0,781022122121x x x x x x x2、整数规划求解219040Max x x z +=⎪⎩⎪⎨⎧≥≤+≤+0,702075679212121x x x x x x 3、0-1规划求解Max 432215.18.04.0x x x x f +++=10106234321≤+++x x x x10,,,4321或=x x x x4、非线性规划求解||4||3||2||min 4321x x x x z +++=s.t. ⎪⎪⎩⎪⎪⎨⎧-=+--=-+-=+--2132130432143214321x x x x x x x x x x x x5、集合综合应用产生一个集合5052--=x x y ,(10,...,2,1=x ),求y 前6个数的和S 1,后6个数的和S 2,第2~8个数中的最小值S 3,最大值S 4。

6、综合题要求列出具体的目标函数和约束条件,然后附上Lingo 程序和最终结果。

6.1 指派问题有四个工人,要指派他们分别完成4项工作,每人做各项工作所消耗的时间如下表:问指派哪个人去完成哪项工作,可使总的消耗时间为最小?6.2 分配问题某两个煤厂A1,A2每月进煤数量分别为60t和100t,联合供应3个居民区B1,B2,B3。

3个居民区每月对煤的需求量依次分别为50t,70t,40t,煤厂A1离3个居民区B1,B2,B3的距离依次分别为10km,5km,6km,煤厂A2离3个居民区B1,B2,B3的距离分别为4km,8km,12km。

问如何分配供煤量使得运输量(即t·km)达到最小?1、model:max=4*x1+3*x2;2*x1+x2<10;x1+x2<8;x2<7;end2、model:max=40*x1+90*x2;9*x1+7*x2<56;7*x1+20*x2<70;@gin(x1);@gin(x2);end3、model:max=x1^2+0.4*x2+0.8*x3+1.5*x4;3*x1+2*x2+6*x3+10*x4<10;@bin(x1); @bin(x2);@bin(x3); @bin(x4);end4、model:max=@abs(x1)+2*@abs(x2)+3*@abs(x3)+4*@abs(x4);x1-x2-x3+x4=0;x1-x2+x3-3*x4=1;x1-x2-2*x3+3*x4=-1/2;end5、model:sets:jihe/1..10/:y;ss/1..4/:S;endsets!由于y和s中部分有负数,所以要先去掉这个约束;@for(jihe:@free(y));@for(ss(i):@free(S));!产生元素;@for (jihe(x):y(x)=x^2-5*x-50); S(1)=@sum (jihe(i)|i#le#6:y(i)); S(2)=@sum (jihe(i)|i#ge#5:y(i));S(3)=@min (jihe(i)|i#ge#2 #and# i#le#8:y(i)); S(4)=@max (jihe(i)|i#ge#2 #and# i#le#8:y(i)); end6.1、设:第i 个工人做第j 项工作用时ij t ,标志变量ij f 定义如下:⎩⎨⎧=其他件工作个工人去做第指派第01j i f ijmin∑∑==⨯4141i j ij ijt fs.t. 141=∑=i ijf()4,3,2,1=j 每份工作都有一人做∑==411j ijf()4,3,2,1=i 每人都只做一项工作model : sets :work/A B C D/;worker/jia yi bing ding/; time(worker,work):t,f; endsets!目标函数可以用[obj]标志出,也可以省略;[obj] min =@sum (time(i,j):t(i,j)*f(i,j)); data :!可以直接复制表格,但是在最后要有分号; t=; e !每份工作都有一人做;@for (work(j):@sum (time(i,j):f(i,j))=1); !每人都只做一项工作;@for (worker(i):@sum (time(i,j):f(i,j))=1); !让f 取0-1值,此条件可以省略;!@for(time(i,j):@bin(f(i,j))); end6.2设:煤厂进煤量i s ,居民区需求量为i d ,煤厂i 距居民区j 的距离为ij L ,煤厂i 供给居民区j 的煤量为ij g那么可以列出如下优化方程式∑∑==⨯=3121min j i ij ij L gs.t ()3,2,121==∑=j d gi jij()2,131=≤∑=i s gj iijmodel : sets :supply/1,2/:s; demand/1,2,3/:d;link(supply,demand):road,sd; endsets data :road=10 5 6 4 8 12; d=50 70 40; s=60 100; enddata[obj] min =@sum (link(i,j):road(i,j)*sd(i,j)); @for (demand(i):@sum (supply(j):sd(j,i))=d(i)); @for (supply(i):@sum (demand(j):sd(i,j))<s(i));end1.线性规划模型。

《管理运筹学》lingo模型

《管理运筹学》lingo模型

习题4-2 lingo模型模型为:min z=P1-1d+P2-2d+P3(-3d++3d)+P4-4d+P5-5d x1+x2+x3<=300000.5*x1+0.2*x2+0.3*x3<=20000240*x1+1200*x2+700*x3+-1d—+1d=3500000 s.t. 0.5*x1+0.2*x2+0.3*x3+-2d—+2d=12500 x1+-3d—+3d=5000x2+-4d—+4d=2000x3+-5d—+5d=2000①首先对应于第一优先等级,建立线性规划问题:min z=-1dx1+x2+x3<=30000s.t. 0.5*x1+0.2*x2+0.3*x3<=20000240*x1+1200*x2+700*x3+-1d—+1d=3500000用lingo求解,得最优解-1d=0,最优值为0,具体过程如下:在lingo工作区中录入以下程序:(其中,d1_、d1分别代表偏差变量、)在菜单lingo下点选:”solve”,进行求解。

求解结果报告的详细信息如下:②对应于第二优先等级,建立线性规划问题:min z=-2dx1+x2+x3<=300000.5*x1+0.2*x2+0.3*x3<=20000s.t. 240*x1+1200*x2+700*x3+-1d—+1d=35000000.5*x1+0.2*x2+0.3*x3+-2d—+2d=12500-1d=0用lingo求解,得最优解-2d=0,最优值为0,具体过程如下:在lingo工作区中录入以下程序:在菜单lingo下点选:”solve”,进行求解。

求解结果报告的详细信息如下:③对应于第三优先等级,建立线性规划问题:min z=-3d++3dx1+x2+x3<=300000.5*x1+0.2*x2+0.3*x3<=20000240*x1+1200*x2+700*x3+-1d—+1d=3500000s.t. 0.5*x1+0.2*x2+0.3*x3+-2d—+2d=12500x1+-3d—+3d=5000-1d=0-2d=0用lingo求解,得最优解-3d=0,+3d=12500,具体过程如下:在lingo工作区中录入以下程序:在菜单lingo下点选:”solve”,进行求解。

线性规划问题的Lingo求解

线性规划问题的Lingo求解

Lingo中参数设置与调整
01
参数设置
02
调整策略
Lingo允许用户设置求解器的参数, 如求解方法、迭代次数、收敛精度等 。这些参数可以通过`@option`进行 设置。
如果求解过程中遇到问题,如无解、 解不唯一等,可以通过调整参数或修 改模型来尝试解决。常见的调整策略 包括放松约束条件、改变目标函数权 重等。
02
比较不同方案
03
验证求解结果
如果存在多个可行解,需要对不 同方案进行比较,选择最优方案。
可以通过将求解结果代入原问题 进行验证,确保求解结果的正确 性和合理性。
感谢您的观看
THANKS
问题,后面跟随线性表达式。
02 03
约束条件表示
约束条件使用`subject to`或简写为`s.t.`来引入,后面列出所有约束条 件,每个约束条件以线性表达式和关系运算符(如`<=`, `>=`, `=`, `<`, `>`)表示。
非负约束
默认情况下,Lingo中的变量是非负的,如果变量可以为负,需要使用 `@free`进行声明。
问题的解通常出现在约束条件的边界上 。
变量通常是连续的。
特点 目标函数和约束条件都是线性的。
线性规划问题应用场景
生产计划
确定各种产品的最优生产量, 以最大化利润或最小化成本。
资源分配
在有限资源下,如何最优地分 配给不同的项目或任务。
运输问题
如何最低成本地将物品从一个 地点运输到另一个地点。
金融投资
03
求解结果
通过Lingo求解,得到使得总加工时间最短的生产计划安 排。
运输问题优化案例
问题描述
某物流公司需要将一批货物从A地运往B地,可以选择不同的运输方式和路径,每种方式和路径的运输时间和成本不 同。公司需要在满足货物送达时间要求的前提下,选择最优的运输方式和路径,使得总成本最低。

lingo题目与答案(附程序)

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习题及答案

第一题:一、摘要本文是一篇关于基金的使用计划模型。

在现实经济高速发展的背景下,人们越来越清醒地意识到:一个合理的数学应用模型对于现今生产、投资、规划等实际应用项目的重要性。

本文所建立的存款模型就是个很好的例子,此模型最终要解决的是选择最佳基金使用计划,使得学校基金会能够有充分的资金在基金会运转。

这个模型的解决是我们更清楚掌握了最优化模型的解决方法及LINGO软件求解线性规划的方法。

二、问题的提出某校基金会有一笔数额为M元的基金,打算将其存入银行或购买国库券。

当前银行存款及各期国库券的利率见下表。

假设国库券每年至少发行一次,发行时间不定。

取款政策参考银行的现行政策。

校基金会计划在n年内每年用部分本息奖励优秀师生,要求每年的奖金额大致相同,且在n年末仍保留原基金数额。

校基金会希望获得最佳的基金使用计划,以提高每年的奖金额。

请你帮助校基金会在如下情况下设计基金使用方案,并对M=5000万元,n=10年给出具体结果:1.只存款不购国库券;2.可存款也可购国库券。

3.学校在基金到位后的第3年要举行百年校庆,基金会希望这一年的奖金二、模型的假设(1)银行利息和国库券结算方式为单利;(2) 定期存款和国库券不到期均不能取款;(3)国库券每年发行一期,发行月份不定,但于发行月一号发行;(4)基金结算后马上又进行投资(存入银行或买国库券)中间间隔时间不予考虑;(5)定期存款实际收益利率为公布利率的80%(20%为利息税上交国库)国库券存款利率与同期的定期存款利率相同,但不交利息税;(6)每年年初评奖且奖金数目相同(除第三问),N年后本金仍为M;三、符号的说明x第i年所存入银行的j年期的存款;ijy第i年说购买的j年期的国库券;ij'r银行同期活期利率;r银行同期活期税后利率;'r银行同期j年期固定利率;jr银行同期j年期固定利率税后利率;jM本金=5000万元,Z=每年的奖金四、模型的建立与求解第一种情况:只存款不买国库券我们考虑到这种情况下,存款的时间是一定的,所以活期和三个月,半年的利率都太低,所以在这种情况下,我们直接考虑一年的利率,这样才能获得较多的利息,从而使得每年发放的奖金数目尽可能多——即我们要实现的目标。

上机练习题目(LINGO部分)

上机练习题目(LINGO部分)


料场 a b d
工地的位置(a,b)及水泥日用量d 1 2 3 4 5 6 1.25 8.75 0.5 5,75 3 7.25 1.25 0.75 4.75 5 6.5 7.75 3 5 4 7 6 11
十一、某厂生产的一种产品有甲、乙两个牌号,讨论在产 销平衡的情况下如何确定各自的产量,使总的利润最大。 所谓产销平衡指工厂的产量等于市场上的销量,没有卖不 出去的产品的情况。显然,销售总利润既取决于两种牌号 产品的销量和(单件)价格,也依赖于产量和(单件)成 本。按照市场经济规律,甲的价格p1固然会随其销量x1的 增长而降低,同时乙的销量x2的增长也会使甲的价格有稍 微的下降。可以简单地假设价格与销量成线性关系,即 p1=b1-a11x1-a12x2,b1,a11,a12>0,a11>a12;类似地,乙的 价格p2遵循同样的规律,即有p2=b2-a21x1-a22x2,b2,a21, a22>0,a22>a21。例如,假定实际中b1=100,a11=1, a12=0.1,b2=280,a21=0.2,a22=2。此外,假设工厂的生 产能力有限,两种牌号产品的产量之和不可能超过100件, 且甲的产量不可能超过乙的产量的两倍,甲、乙的单件生 产成本分别是q1=2和q2=3(假定为常数)。求甲、乙两个 牌号的产量x1、x2,使总利润最大。
十、某公司有6个建筑工地要开工,每个工地的位置(用平面坐标a, b表示,距离单位:km)及水泥日用量d(单位:t)由下表给出。 目前有两个临时料场位于P(5, 1),Q(2, 7),日储量各有20t,请回答 以下两个问题: (1)假设从料场到工地之间均有直线道路相连,试制定每天的供 应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的 顿公里数最小。 (2)为了进一步减少顿公里数,打算舍弃目前的两个临时料场, 改建两个新的料场,日储量仍各为20t,问应建在何处,与目前相 比节省的顿公里数有多大下线性规划(LP)问题:

Lingo精选题目及答案

Lingo精选题目及答案

Lingo精选题目及答案Lingo 精选题目及答案答题要求:将Lingo 程序复制到Word 文档中,并且附上最终结果。

1、简单线性规划求解(目标函数)2134m axx x z += s.t.(约束条件)≥≤≤+≤+0,781022122121x x x x x x x2、整数规划求解219040Maxx x z +=≥≤+≤+0,702075679212121x x x x x x 3、0-1规划求解Max 432215.18.04.0x x x x f +++=10106234321≤+++x x x x10,,,4321或=x x x x4、非线性规划求解||4||3||2||m in4321x x x x z +++=s.t.-=+--=-+-=+--2132130432143214321x x x x x x x x x x x x5、集合综合应用产生一个集合5052--=x x y ,(10,...,2,1=x ),求y 前6个数的和S 1,后6个数的和S 2,第2~8个数中的最小值S 3,最大值S 4。

6、综合题要求列出具体的目标函数和约束条件,然后附上Lingo 程序和最终结果。

6.1 指派问题问指派哪个人去完成哪项工作,可使总的消耗时间为最小?6.2 分配问题某两个煤厂A1,A2每月进煤数量分别为60t和100t,联合供应3个居民区B1,B2,B3。

3个居民区每月对煤的需求量依次分别为50t,70t,40t,煤厂A1离3个居民区B1,B2,B3的距离依次分别为10km,5km,6km,煤厂A2离3个居民区B1,B2,B3的距离分别为4km,8km,12km。

问如何分配供煤量使得运输量(即t·km)达到最小?1、model:max=4*x1+3*x2;2*x1+x2<10;x1+x2<8;x2<7;end2、model:max=40*x1+90*x2;9*x1+7*x2<56;7*x1+20*x2<70;@gin(x1);@gin(x2);end3、model:max=x1^2+0.4*x2+0.8*x3+1.5*x4;3*x1+2*x2+6*x3+10*x4<10;@bin(x1); @bin(x2);@bin(x3); @bin(x4);end4、model:max=@abs(x1)+2*@abs(x2)+3*@abs(x3)+4*@abs(x4);x1-x2-x3+x4=0;x1-x2+x3-3*x4=1;x1-x2-2*x3+3*x4=-1/2;end5、model:sets:jihe/1..10/:y;ss/1..4/:S;endsets!由于y和s中部分有负数,所以要先去掉这个约束;@for(jihe:@free(y));@for (ss(i):@free (S));!产生元素;@for (jihe(x):y(x)=x^2-5*x-50); S(1)=@sum (jihe(i)|i#le#6:y(i)); S(2)=@sum (jihe(i)|i#ge#5:y(i));S(3)=@min (jihe(i)|i#ge#2 #and# i#le#8:y(i)); S(4)=@max (jihe(i)|i#ge#2 #and# i#le#8:y(i)); end6.1、设:第i 个工人做第j 项工作用时ij t ,标志变量ij f 定义如下:=其他件工作个工人去做第指派第01j i f ijmin∑∑==?4141i j ij ijt fs.t. 141=∑=i ijf()4,3,2,1=j 每份工作都有一人做∑==411j ijf()4,3,2,1=i 每人都只做一项工作model : sets :work/A B C D/;worker/jia yi bing ding/; time(worker,work):t,f; endsets!目标函数可以用[obj]标志出,也可以省略;[obj] min =@sum (time(i,j):t(i,j)*f(i,j)); data :!可以直接复制表格,但是在最后要有分号; t=; e nddata!每份工作都有一人做;@for (work(j):@sum (time(i,j):f(i,j))=1); !每人都只做一项工作;@for (worker(i):@sum (time(i,j):f(i,j))=1); !让f 取0-1值,此条件可以省略;!@for(time(i,j):@bin(f(i,j))); end6.2设:煤厂进煤量i s ,居民区需求量为i d ,煤厂i 距居民区j 的距离为ij L ,煤厂i 供给居民区j 的煤量为ij g那么可以列出如下优化方程式∑∑==?=3121min j i ij ij L gs.t ()3,2,121==∑=j d gi jij()2,131=≤∑=i s gj iijmodel : sets :supply/1,2/:s; demand/1,2,3/:d;link(supply,demand):road,sd; endsets data :road=10 5 6 4 8 12; d=50 70 40; s=60 100; enddata[obj] min =@sum (link(i,j):road(i,j)*sd(i,j)); @for (demand(i):@sum (supply(j):sd(j,i))=d(i)); @for (supply(i):@sum (demand(j):sd(i,j))<s(i));< p="">end1.线性规划模型。

Lingo教程(一)

Lingo教程(一)

NLP
IP
分枝定界管理程序
ILPBiblioteka INLPIQP线性优化求解程序
非线性优化求解程序
图 3-2 LINDO/LINGO 软件的求解过程
第 38 页 共 112 页
谢金星:MATLAB 优化工具箱和 LINDO/LINGO 优化软件
第 39 页 共 112 页
2、识别优化模型的类型:对等式约束的预处理完成后,预处理程序能自动识别优化模型 的类型,从而决定下一步采用什么求解程序。如果模型是连续线性规划,下一步直接调用线 性优化求解程序;如果模型是连续非线性规划,下一步直接调用非线性优化求解程序;如果 模型是整数规划,则下一步直接调用分枝定界管理程序。
优化模型
连续优化
整数规划
线性规划
二次规划
非线性规划
LINDO
LINGO
图 3-1 LINDO 和 LINGO 软件能求解的优化模型
第 37 页 共 112 页
谢金星:MATLAB 优化工具箱和 LINDO/LINGO 优化软件
第 38 页 共 112 页
此外,LINDO 系统公司还提供了 LINDO/LINGO 软件与其它开发工具(如 C++和 Java 等语言)的接口软件 LINDO API(Application Program Interface),因此使 LINDO 和 LINGO 软件还能方便地融入到用户应用软件的开发中去。
线性优化求解程序通常使用单纯形算法,对高级版本的 LINDO/LINGO 软件,为了能解 大规模问题,也可以使用内点算法。非线性优化求解程序采用的是顺序线性规划法(Sequential Linear Programming, 简称 SLP),即通过迭代求解一系列线性规划来达到求解非线性规划的 目的。非线性优化求解程序也可以使用其他算法,如广义既约梯度法(Generalized Reduced Gradient, 简称 GRG),并可以自动选用多个初始点开始进行迭代,以便增加找到全局最优解 的可能性。分枝定界管理程序用于管理整数规划问题的分枝定界算法,在运行中还要不断调 用线性优化求解程序和非线性优化求解程序进行定界处理。

三组 LINGO问题

三组 LINGO问题
1)最亮 model:
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程序练习题

lingo程序练习题

lingo程序练习题Lingo是一种编程语言,它的特点在于简单易用和高效。

为了更好地掌握和理解Lingo编程,我们可以通过练习题的方式来提升我们的实战能力。

下面将给出一些适用于Lingo程序的练习题,以帮助读者熟悉和掌握这门语言。

1. 输出"Hello, World!"编写一个Lingo程序,输出“Hello, World!”。

这是Lingo程序入门的经典练习题,通过完成这道题目,你可以熟悉Lingo的基本语法和输出功能。

2. 计算两个数的和编写一个Lingo程序,输入两个数,然后计算它们的和并将结果输出。

这道题目可以帮助你熟练使用Lingo的输入和计算功能。

3. 判断奇偶数编写一个Lingo程序,输入一个数,判断它是奇数还是偶数,并输出对应的结果。

这道题目可以帮助你理解和掌握Lingo的判断语句和逻辑判断。

4. 字符串连接编写一个Lingo程序,输入两个字符串,将它们连接起来并输出。

这道题目可以帮助你熟悉Lingo的字符串处理功能。

5. 猜数游戏编写一个Lingo程序,生成一个1到100的随机数,然后让用户进行猜数游戏,直到猜对为止。

每次猜数时,程序都会给出相应的提示,比如“猜的数太大了”或“猜的数太小了”。

完成这道题目可以帮助你运用到Lingo的随机数生成和循环控制等功能。

6. 查找素数编写一个Lingo程序,输入一个数,判断它是否为素数,并输出判断结果。

这道题目可以练习你对素数的判断和Lingo的循环控制能力。

总结:通过完成上述练习题,你可以逐渐熟悉和掌握Lingo编程语言,提升你的实战能力。

同时,这些练习题也可以帮助你加深对Lingo编程语言各个方面的理解,如输入输出、数学运算、条件判断、字符串处理、循环控制等。

希望你能够享受编程的乐趣,并在实践中不断提升自己。

加油!。

LINGO练习题-1及答案

LINGO练习题-1及答案

LINGO练习题-1及答案LINGO练习题-1及答案LINGO测试-11、用LINGO软件解方程组(1)221212222359 x x x x?+=??-=-??。

model:x^2+2*y^2=22;3*x-5*y=-9;endSolution is locally infeasible Infeasibilities:0.5417411E-04Extended solver steps:5Total solver iterations:20Variable ValueX 2.000005Y 3.000003Row Slack or Surplus1-0.5417411E-0420.0000002、用LINGO软件解线性规划问题model:max=2*x+3*y;4*x+3*y<=10;3*x+5*y<=12;x>0;y>0;endGlobal optimal solution found.Objective value:7.454545Infeasibilities:0.000000Total solver iterations:2Variable Value Reduced CostY 1.6363640.000000Row Slack or Surplus Dual Pricemax23,..4310,3512,,0.z x y s t x y x y x y=++≤+≤≥17.454545 1.00000020.0000000.9090909E-0130.0000000.54545454 1.2727270.0000005 1.6363640.0000003、用LINGO软件二次规划问题(1)min2212z=x-3-2x+()()22121212..-50,24,,0s tx x x x x x+≤+≤≥。

model:min=(x1-3)^2+(x2-2)^2;x1^2+x2^2-5<=0;x1+2*x2<=4;x1>=0;x2>=0;endLocal optimal solution found. Objective value: 2.000000 Infeasibilities:0.5384996E-06 Extended solver steps:5 Total solver iterations:64 Variable Value Reduced CostX1 2.0000000.000000X20.99999990.000000Row Slack or Surplus Dual Price 1 2.000000-1.0000002-0.5384996E-060.333333130.0000000.666667050.99999990.000000(2)model:22221212334412132344max23x x x2x x5x,..25,12,,{0,1},2,0.z x x s t x x x x x x x x=-+-++-≤≤≤∈Z∈≥>max=x1^2-2*x2^2+3*x1*x2-x3^2+2*x3*x4+5*x4^2;x1-2*x2<=5;1<=x1;x1<=2;x3/x4>=2;x4>0;@gin(x2);@bin(x3);endLinearization components added:Constraints:4Variables:1Local optimal solution found.Objective value:9.250000Objective bound:9.250000Infeasibilities:0.000000Extended solver steps:2Total solver iterations:39Variable Value Reduced Cost X1 2.0000000.000000X2 1.000000-1.999996X3 1.000000199997.5X40.5000000 0.000000Row Slack or Surplus Dual Price19.250000 1.0000002 5.0000000.00000040.0000007.00000350.000000-1.74999760.50000000.0000004、用LINGO软件分别产生序列(1){1,3,5,7,9,11};model:sets:set1/1..6/:x;endsets@for(set1(i):x(i)=2*i-1);endFeasible solution found. Total solver iterations:0 Variable ValueX(1) 1.000000X(2) 3.000000X(3) 5.000000X(4)7.000000X(5)9.000000X(6)11.00000Row Slack or Surplus10.00000020.00000030.00000040.00000050.00000060.000000(2)1111{1,,,,}6122030model:sets:set2/1..5/:x;endsets@for(set2(i):x(i)=1/(i*(i+1))); endFeasible solution found.Total solver iterations:0Variable ValueX(1)0.5000000X(2)0.1666667X(3)0.8333333E-01X(4)0.5000000E-01X(5) 0.3333333E-01Row Slack or Surplus10.00000020.00000030.00000040.00000050.0000005、已知向量c={1,3,0.5,7,5,2},用LINGO软件解答下列问题。

第三章线性规划及LINGO求解

第三章线性规划及LINGO求解
32
在Generator Memory Used(K)框中显示的 内存使用量为16K.
在Elapsed Runtime(hh:mm:ss)框中显示 的是求解花费的时间,显示为0是因为所花时间太 短.
33
解答报告窗口
34
在解答报告窗口中,很容易观察得最
优解(4,2)及目标函数最优值14.
其中“Slack or Surplus”表示松驰或剩
第三章 线性规划及LINGO求解
在工程技术、经济管理、科学研究和日常生活
等诸多领域,人们常常遇到这样的问题,就是在一
系列客观或主观条件的限制之下,寻求使所关注的
某个指标达到最大或最小,这类决策问题通常称为 优化建模或最优化问题.解决最优化问题的一般方 法是建立优化模型、求解最优决策.
1
一般地,优化模型包括目标函数与约束条 件.当目标函数与约束条件中出现的解析表达式 均为线性表达式时,则称之为线性规划(LP).
49
(2)数据输入部分 从“data:”到“enddata”,用于输入常
量dem的值.
50
(3)其它部分
给出目标函数与约束条件.其中 @sum是求和函数,使用格式是:
@sum(集合(下标):关于集合属性的表达式)
@for是遍历函数,使用格式是:
@for(集合(下标):关于集合属性的表达式)
另外
“#gt#”是大于号, “#lt#”是小于号 “#eq#”是等于号, “#ne#”是不等于号 “#ge#”是大于等于号, “#le#”是小于号
本章主要内容是线性规划模型的建立、二维 决策变量情形下的图象解法以及较复杂线性规划 模型的LINGO求解.
2
3-1 线性规划模型的建立 及二维决策变量的图解

lingo求解多目标规划__例题

lingo求解多目标规划__例题

实验二:目标规划一、实验目的目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。

这些问题用线性规划求解就比较困难,因而提出了目标规划。

熟悉目标规划模型的建立,求解过程及结果分析。

二、目标规划的一般模型设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。

设有l 个柔性目标约束,其目标规划约束的偏差是),...,2,1(,l i d d i i =-+。

设有q 个优先级别,分别为q p p p ,...,21。

在同一个优先级k p 中,有不同的权重,分别记为),...,2,1(,l j w w kj kj =-+。

因此目标规划模型的一般数学表达式为:min ∑∑=++--=+=l j j kj j kj q k k d w d w p z 11);(s.t. ,,...2,1,),(1m i b x an j i j ij =≥=≤∑= .,...2,1,0,,,...,2,1,,,...2,1,1l i d d n x o x l i g d d x c i i j i nj i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。

目录和项目名推荐使用学生自己的学号。

2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。

例2.1:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。

企业的经营目标不仅仅是利润,还需要考虑多个方面:(1) 力求使利润不低于1500元;(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2;(3) 设备A 为贵重设备,严格禁止超时使用;(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。

Lingo软件训练题(新).doc

Lingo软件训练题(新).doc

Lingo软件训练题、基础训练答题要求:将Lingo程序复制到Word文档中,并且附上最终结果。

1、简单线性规划求解min z = 13 兀1 + 9x2 + 10x3 +1 lx4 + 12x5 + 8x6X] +x4 =400x2 + x5 = 600x3+x6 = 5000・4%i +1. lx2 + x3 < 8000.5X4 +1.2兀5 +1.3X6 <900 兀n 0, j =1,2,…,6答:%首先输入下列系数:f=[13 910 11 12 8];A = [0.4 1.11 0 0 00 0 0 0.5 1.2 1.3];b = [800; 900];Aeq=[l 0010001001000 1001];beq=[400 600 500];vlb = zeros(6,l);vub=[];%然后调用linprog函数:[x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)结果:0.0000600.00000.0000400.00000.0000500.0000fval =1.3800e+0042、整数规划求解Max z = 40 兀i + 90X29兀i + 7兀2 <56S.t. < 7x1 + 20X2 < 70x p x2 > 0答:二、综合训练答题要求:写岀目标函数与约束条件,将Lingo程序复制到Word文档中,并且附上最终结果。

线性规划模型。

某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过800箱.问如何安排生产计划,即两种饮料各生产多少使获利最大•进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资.2)若每100箱甲饮料获利可增加1万元,问应否改变生产计划.。

用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万元。

线性规划问题及Lingo求解

线性规划问题及Lingo求解

1、某钢管零卖商从钢管厂进货。

将钢管按客户需求切割后出厂,从厂进货时得到原料钢管厂都19米。

(1)现有一客户需50根4米,20根6米,15根8米,如何下料才能最省?(2)若零售商采用不同切割方法太多,将会导致生产过程复杂化,从而增加生产和管理成本,所以零售商采用不同切割方法不超过3种,此外,该客户除许(1 )中三种钢管还需10根5米钢管。

如何下料最省?答:(1)分析问题:问题的目标就是如何下料最省,考虑到一根钢管如何进行切割才会使用料最省。

可以想到以下的方案。

假设19米的钢管有无限多,下面给出此问题的建模过程。

建模:根据题意,由一根钢管切割出要求( 1 )的共有七种方案,如上表所示。

现设:有x1根钢管按方案一进行切割,有x2根钢管按方案二进行切割有x3根钢管按方案三进行切割,有x4根钢管按方案四进行切割,有x5根钢管按方案五进行切割,有x6根钢管按方案六进行切割,有x7根钢管按方案七进行切割。

目标函数:若以切割后剩余总量最少为目标则:min( 3x1+x2+3x3+x4+3x5+3x6+x7 )若以原料钢管总根数最少为目标则:min( x1+x2+x3+x4+x5+x6+x7)约束条件:切割出是4米的钢管数目:4x1+x4+x5+2x6+3x7>=50切割出是6米的钢管数目:3x2+x4+2x5+x7>=20切割出是8米的钢管数目:2x3+x4+x6>=15综合上述分析可得如下线性规划模型:min Z=3x1+x2+3x3+x4+3x5+3x6+x7s.t.厂4x1+x4+x5+2x6+3x7>=503x2+x4+2x5+x7>=20<2x3+x4+x6>=15Xj>=0,j=1,2,3 (7)运用LINGO进行运算得出以下结果:Global optimal solution found at iteration:Objective value: 26.66667「iabl e Value Reduced Cost X1 0.000000 1.666667 X2 0.000000 1.000000 X3 0.000000 1.666667 X4 15.00000 0.000000 X5 0.000000 2.666667 X6 0.000000 1.666667 X711.666670.000000Row Slack or Surplus Dual Price1 26.66667 -1.0000002 0.000000 -0.3333333 36.666667 0.000000 40.000000-0.6666667结果用15根钢管按方案四进行切割,有 12根钢管按方案七进行切割。

附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2

附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 开始,按线性规划问题的自然形式输入(见下面例子所示)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Lingo 精选题目及答案答题要求:将Lingo 程序复制到Word 文档中,并且附上最终结果。

1、简单线性规划求解(目标函数)2134m axx x z += s.t.(约束条件)⎪⎪⎩⎪⎪⎨⎧≥≤≤+≤+0,781022122121x x x x x x x2、整数规划求解219040Maxx x z +=⎪⎩⎪⎨⎧≥≤+≤+0,702075679212121x x x x x x 3、0-1规划求解Max 432215.18.04.0x x x x f +++=10106234321≤+++x x x x10,,,4321或=x x x x4、非线性规划求解||4||3||2||m in4321x x x x z +++=s.t. ⎪⎪⎩⎪⎪⎨⎧-=+--=-+-=+--2132130432143214321x x x x x x x x x x x x5、集合综合应用产生一个集合5052--=x x y ,(10,...,2,1=x ),求y 前6个数的和S 1,后6个数的和S 2,第2~8个数中的最小值S 3,最大值S 4。

6、综合题要求列出具体的目标函数和约束条件,然后附上Lingo 程序和最终结果。

6.1 指派问题有四个工人,要指派他们分别完成4项工作,每人做各项工作所消耗的时间如下表:问指派哪个人去完成哪项工作,可使总的消耗时间为最小?6.2 分配问题某两个煤厂A1,A2每月进煤数量分别为60t和100t,联合供应3个居民区B1,B2,B3。

3个居民区每月对煤的需求量依次分别为50t,70t,40t,煤厂A1离3个居民区B1,B2,B3的距离依次分别为10km,5km,6km,煤厂A2离3个居民区B1,B2,B3的距离分别为4km,8km,12km。

问如何分配供煤量使得运输量(即t·km)达到最小?1、model:max=4*x1+3*x2;2*x1+x2<10;x1+x2<8;x2<7;end2、model:max=40*x1+90*x2;9*x1+7*x2<56;7*x1+20*x2<70;@gin(x1);@gin(x2);end3、model:max=x1^2+0.4*x2+0.8*x3+1.5*x4;3*x1+2*x2+6*x3+10*x4<10;@bin(x1); @bin(x2);@bin(x3); @bin(x4);end4、model:max=@abs(x1)+2*@abs(x2)+3*@abs(x3)+4*@abs(x4);x1-x2-x3+x4=0;x1-x2+x3-3*x4=1;x1-x2-2*x3+3*x4=-1/2;end5、model:sets:jihe/1..10/:y;ss/1..4/:S;endsets!由于y和s中部分有负数,所以要先去掉这个约束;@for(jihe:@free(y));@for(ss(i):@free(S));!产生元素;@for (jihe(x):y(x)=x^2-5*x-50); S(1)=@sum (jihe(i)|i#le#6:y(i)); S(2)=@sum (jihe(i)|i#ge#5:y(i));S(3)=@min (jihe(i)|i#ge#2 #and# i#le#8:y(i)); S(4)=@max (jihe(i)|i#ge#2 #and# i#le#8:y(i)); end6.1、设:第i 个工人做第j 项工作用时ij t ,标志变量ij f 定义如下:⎩⎨⎧=其他件工作个工人去做第指派第01j i f ijmin∑∑==⨯4141i j ij ijt fs.t. 141=∑=i ijf()4,3,2,1=j 每份工作都有一人做∑==411j ijf()4,3,2,1=i 每人都只做一项工作model : sets :work/A B C D/;worker/jia yi bing ding/; time(worker,work):t,f; endsets!目标函数可以用[obj]标志出,也可以省略;[obj] min =@sum (time(i,j):t(i,j)*f(i,j)); data :!可以直接复制表格,但是在最后要有分号; t=; e !每份工作都有一人做;@for (work(j):@sum (time(i,j):f(i,j))=1); !每人都只做一项工作;@for (worker(i):@sum (time(i,j):f(i,j))=1); !让f 取0-1值,此条件可以省略;!@for(time(i,j):@bin(f(i,j))); end6.2设:煤厂进煤量i s ,居民区需求量为i d ,煤厂i 距居民区j 的距离为ij L ,煤厂i 供给居民区j 的煤量为ij g那么可以列出如下优化方程式∑∑==⨯=3121min j i ij ij L gs.t ()3,2,121==∑=j d gi jij()2,131=≤∑=i s gj iijmodel : sets :supply/1,2/:s; demand/1,2,3/:d;link(supply,demand):road,sd; endsets data :road=10 5 6 4 8 12; d=50 70 40; s=60 100; enddata[obj] min =@sum (link(i,j):road(i,j)*sd(i,j)); @for (demand(i):@sum (supply(j):sd(j,i))=d(i)); @for (supply(i):@sum (demand(j):sd(i,j))<s(i));end1.线性规划模型。

某战略轰炸机群奉命摧毁敌人军事目标。

已知该目标有四个要害部位,只要摧毁其中之一即可达到目的。

为完成此项任务的汽油消耗量限制为48000升、重型炸弹48枚、轻型炸弹32枚。

飞机携带重型炸弹时每升汽油可飞行2千米,带轻型炸弹时每升汽油可飞行3千米。

又知每架飞机每次只能装载一枚炸弹,每出发轰炸一次除来回路程汽油消耗(空载时每升汽油可飞行4千米)外,起飞和降落每次各消耗100升。

表1 相关数据2、资源配置模型。

某工厂有原料钢管:每根19米,用户需求4米50根,6米20根,8米15根。

如何下料钢管剩余总余量最小? 由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种。

表1 不同切割的模式模式4米钢管根数6米钢管根数8米钢管根数余料(米)1 4 0 0 32 3 1 0 13 2 0 1 34 1 2 0 35 1 1 1 16 0 3 0 13、图论模型(动态规划)。

求出下图所示的最小费用和最大流量,以及在最小费用下的最大流量。

其中(x,y)中x表示容量,y表示费用。

图1 网络图题目解答1.线性规划模型。

解:设用了x 枚重型炸弹,用了y 枚轻型炸弹,攻击的是第i 个部位,再设一标志变量f 定义如下:⎩⎨⎧=个部位不攻击第个部位攻击第i i f i 01目标函数为: ()[]∑=⨯⨯+⨯=41max i i li ih f p y px()()480002004/3/2004/2/≤++⨯+++⨯i i i i d d y d d x48≤x ,32≤y141=∑=i ifmodel : sets :pd/1..4/:Ph,Pl,d,f; endsets data :d=450,480,540,600; Ph=0.1,0.2,0.15,0.25; Pl=0.08,0.16,0.12,0.2; enddatamax =@sum (pd(i):(x*Ph(i)+y*Pl(i))*f(i));@for (pd(i):x*(d(i)/2+d(i)/4+200)+y*(d(i)/3+d(i)/4)+200<48000); x<48;y<32;@for (pd(i):@bin (f(i))); @sum (pd(i):f(i))=1;!验证用油量;!l=x*(d(4)/2+d(4)/4+200)+y*(d(4)/3+d(4)/4)+200; end2、资源配置模型。

某工厂有原料钢管:每根19米,用户需求4米50根,6米20根,8米15根。

如何下料钢管剩余总余量最小? 由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种。

表1 不同切割的模式模式 4米钢管根数6米钢管根数8米钢管根数余料(米)1 4 0 0 323 1 0 1 3 2 0 1 34 1 2 0 35 1 1 1 16 0 3 0 1 设:模式i 的供应量为i m ,对于第i 种模式,切割的4米钢管根数,6米钢管根数,8米钢管根数,分别为ij t ,余料为i s ,每种钢管的需求量分别为i d ,再设一标志变量f 定义如下:⎩⎨⎧=种模式不采用第种模式采用第i i f i 01目标函数:min∑=⨯⨯71i i i im s fj j i ij id m t f=⨯⨯∑=71i =1,2,…,7∑==713i ifmodel : sets :mode/1..7/:m,s,f; demand/1..3/:d; md(mode,demand):t; endsets data :s=3 1 3 3 1 1 3; d=50 20 15; t=4 0 0 3 1 0 2 0 1 1 2 0 1 1 1 0 3 0 00 2; enddata[obj] min =@sum (mode(i):f(i)*s(i)*m(i));@for (demand(j):@sum (mode(i):f(i)*m(i)*t(i,j))=d(j)); @for (mode(i):@bin (f(i))); @sum (mode(i):f(i))<3; end3、图论模型(动态规划)。

求出下图所示的最小费用和最大流量,以及在最小费用下的最大流量和最大流量下的最小费用。

其中(x ,y )中x 表示容量,y 表示费用。

图1 网络图1)求最小费用,解法一:稀疏矩阵0-1规划法假设图中有n 个原点,现需要求从定点1到n 的最短路。

设决策变量为ij f ,当1=ij f ,说明弧(i ,j )位于定点1至定点n 的路上;否则0=ij f ,其数学规划表达式为min∑∑==n i nj ij ijf w11约束条件,源点只有一条路指出去,终点只有一条路指进来,其余各点指进去的和指出去的相等,表达式如下,⎪⎩⎪⎨⎧≠=-==-∑∑==ni n i i f f nj ji n j ij ,10,1,1111model : sets :node/1..6/;road(node,node)/1 2,1 3,2 4,2 5, 3 4,3 5,4 6,5 6/:w,f; endsets data :w=2 1 5 3 4 3 0 0; enddatan=@size (node);[obj] min =@sum (road(i,j):w(i,j)*f(i,j)); @for (node(i)|i#ne#1 #and# i#ne#n:@sum (road(i,j):f(i,j))=@sum (road(j,i):f(j,i))); @sum (road(i,j)|i#eq#1:f(i,j))=1;!下面这个条件可以省略,这个条件包含在上面的条件了, 因为如果满足上面所以的条件指向终点的路只有且只有一条; @sum (road(j,i)|i#eq#n:f(j,i))=1; end解法二:求源点到任意点的最小费用,动态规划法。

相关文档
最新文档