lingo优化练习即详解

合集下载

LINGO求解优化问题

LINGO求解优化问题

首页一、Lingo简介1. 目标函数一个函数解析式,你希望求它的最大或最小值max=函数解析式;或min=函数解析式;例max=3*b+2*c^2;min=b^(1/3)-c*k;Lingo的语句以; 号结束。

2. 运算加(+),减(-),乘(*),除(/),乘方(x^a)3. 变量用字母或字母数字的组合表示例a,b,cc1,x1。

Lingo的变量缺省值为非负数。

4. 限制条件一组等式或不等式。

Lingo的>,<与>=,<=等价。

示例程序13*x1+5*x2>=45;Lingo的注释语句用!开头用;结束。

5. 变量类型变量类型说明@bin( 变量名) ; 限制该变量为0或1。

@bnd( a,变量名, b); 限制该变量介于a,b之间。

@free(变量名); 允许该变量为负数。

@gin( 变量名); 限制该变量为整数。

二、Lingo高级sets语句连续六个月的产量,可以用x1,x2,x3,x4,x5,x6表示, 但十二个月的产量用同样的方法表示就显繁琐。

Lingo可以通过sets语句设置数组功能使问题变得简单。

例定义数组x, 有x(1),x(2),x(3),x(4)…x(12)个成员,用以表示十二个月的产量。

sets:r/1..12/:x; !r是组的类型名,x数组名;endsets;sets语句以sets开头,endsets结束。

示例程序2data语句有时,我们要用到常数数组,比如在400*x(1)+200*x(2)+150*x(3)+500*x(4)>=500中,x(1), x(2), x(3), x(4)的系数分别为400, 200, 150, 500,此时,可用data语句。

例定义数组a, 其中a(1)=400,a(2)=200,a(3)=150,a(4)=500。

sets:l/1..4/: a,x;endsetsdata:a=400 200 150 500;enddatadata语句是以data开头,enddata结尾。

LINGO(最优化)

LINGO(最优化)
notnot否定该操作数的逻辑值否定该操作数的逻辑值noteqeq若两个运算数相等则为若两个运算数相等则为truenene若两个运算符不相等则为若两个运算符不相等则为truenene若两个运算符不相等则为若两个运算符不相等则为truegtgt若左边的运算符严格大于右边的运算符则为若左边的运算符严格大于右边的运算符则为truegege若左边的运算符大于或等于右边的运算符则为若左边的运算符大于或等于右边的运算符则为trueltlt若左边的运算符严格小于右边的运算符则为若左边的运算符严格小于右边的运算符则为truelele若左边的运算符小于或等于右边的运算符则为若左边的运算符小于或等于右边的运算符则为trueandand仅当两个参数都为仅当两个参数都为truetrue时结果为oror仅当两个参数都为仅当两个参数都为falsefalse时结果为时结果为falsenot是一个一元运算符是一个一元运算符true
数据段
sets: set1/A,B,C/: X,Y; endsets data: X=1,2,3; Y=4,5,6; enddata sets: years/1..5/: capacity; endsets data: capacity = ,34,20,,; enddata sets: days /MO,TU,WE,TH,FR,SA,SU/:needs; endsets data: needs = 20; enddata 指定属性为一个值
使用Lingo 使用Lingo求解模型 Lingo求解模型
求解的结果
如何求解规模较大的问题
使用LINGO软件计算6个发点8 使用LINGO软件计算6个发点8个收点的 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 指派问题有四个工人,要指派他们分别完成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 ij t 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 j ij()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学习集全资料文档

(外校培训课件)优化模型与LINGO软件求解——LINGO学习集全资料文档

NLP: 非线性规划
(2)最优状态 全局全优
(3)最优目标值: 10
约束条件情况最优解: (1)约束总个数X4=100,按方法4 (2)非线性个数X6=50, 按方法6
25
[例1] 下料(截割问题)及求解
❖ [模型-2]的求解结果:
最优目标函 数值:90
x1=40, 按方法1截割 x2=20, 按方法2截割 x6=30. 按方法6截割
26
[例1] 下料(截割问题)及求解
❖ 求解结果分析:
在追求“余料最少”目标时,“≥”约 束把条件放宽了。
修正方法:改为“=”约束
模型(1)的求解结果: 最优目标(余料)=10m
(x4,x6)=(100,50) 耗用原料 = 150根
是否符 合原问 题要求?
不符合。 (1)问题出在哪里? (2)如何修正?
2
一、竞赛题中的优化模型总结
❖ 2.优化类竞赛题小结 ❖ 在全国数模竞赛中,优化问题是出现频率最
高的一类竞赛题。 ❖ 从1992-20××年全国大学生数模竞赛试题
的解题方法统计结果来看,优化模型共出现 了17次以上,占到了50%。 ❖ 即每两道竞赛题中就有一道涉及到利用优化 理论来建模和求解。
3
一、竞赛题中的优化模型总结

13
(三) 典型数学规划问题及求解
❖ 例1 下料(截割)问题及求解 ❖ 例2 运输问题及求解 ❖ 例3 非线性规划问题及求解 ❖ 例4 分派(选址)问题及求解 ❖ 例5 动态规划问题及求解
14
[例1] 下料(截割)问题及求解
1. 问题提出 2. 建立数学模型 3. 编写LINGO求解程序 4. 执行程序 5. 获得计算结果并分析 6. 修正模型,重新求解 7.课后作业 8.编程小结

Lingo软件在求解数学优化问题的使用技巧

Lingo软件在求解数学优化问题的使用技巧

Lingo 软件在求解数学优化问题1.某昼夜服务的公交路线每天各时间区段内需司机和乘务人员如下:设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配备多少名司机和乘务人员?从第一班开始排,试建立线性模型。

分析与求解:注意在每一时间段里上班的司机和乘务人员中,既包括在该时间段内开始时报到的人员,还包括在上一时间段工作的人员。

因为每一时间段只有四个小时,而每个司乘人员却要连续工作八个小时。

因此每班的人员应理解为该班次相应时间段开始时报到的人员。

设i x 为第i 班应报到的人员(6,,2,1 =i ),则应配备人员总数为:∑==61i i x Z按所需人数最少的要求,可得到线性模型如下:∑==61min i i x Z161223344556112660706050..203060,,,0x x x x x x x x s t x x x x x x x x +≥⎧⎪+≥⎪⎪+≥⎪+≥⎪⎨+≥⎪⎪+≥⎪≥⎪⎪≥⎩ LINGO 程序如下:MODEL:min=x1+x2+x3+x4+x5+x6;x1+x6>=60;x1+x2>=70;x2+x3>=60;x3+x4>=50;x4+x5>=20;x5+x6>=30;x1>=60;END得到的解为:x1=60,x2=10,x3=50,x4=0,x5=30,x6=0;配备的司机和乘务人员最少为150人。

2 某地区有三个农场共用一条灌渠,每个农场的可灌溉地及分配到的最大用水量如下表:各农场均可种植甜菜、棉花和高粱三种作物,各种作物的用水量、净收益及国家规定三个农场达成协议,他们的播种面积与其可灌溉面积相等,而各种农场种何种作物并无限制。

问如何制定各农场种植计划才能在上述限制条件下,使本地区的三个农场的总净收益最大。

设农场1种植的甜菜、棉花和高粱分别为111,,z y x 亩,农场2种植的甜菜、棉花和高粱分别为222,,z y x 亩,农场3种植的甜菜、棉花和高粱分别为333,,z y x 亩。

用Lingo求解最优化问题

用Lingo求解最优化问题

温州大学城市学院
基本作业题Leabharlann ( 2)min z = 13 x1 + 9 x2 + 10 x3 + 11x4 + 12 x5 + 81x6 ,
x1 + x4 = 400, x2 + x5 = 600, x3 + x6 = 500, 0.4 x1 + 1.1 x2 + x3 ≤ 800, 0.5 x + 1.2 x + 1.3 x ≤ 900, 4 5 6 xi ≥ 0, i = 1, 2, 3, 4, 5, 6.
当 x=0 时, 目标函数最小值为 6.
温州大学城市学院 点击 LINGO-Options 选择 Global Solver (全局求解器 全局求解器) 全局求解器 在Use Global Solver 前面打√ 点击“ 再求解. 点击“OK”, 再求解
温州大学城市学院 例2 用Lingo 求函数
f ( x ) = 8 x + 0.01x − x + 0.01x + 6cos x
4 7 5
的最小值点和最小值. 的最小值点和最小值
当 x=14480.28 时, 目标函数最小值为 -0.1334869E+30.
(即-0.1334869×1030) 即 ×
求解器状态窗口 (LINGO Solver Status)
Model: 当前模型的类型 如: LP, NLP) 当前模型的类型(如 State: 当前解的状态 如: Global Optimum(全局最优 当前解的状态(如 全局最优); 全局最优 Local Optimum(局部最优 等) 局部最优)等 局部最优

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软件  优化问题

2.2 LP模型在LINGO中的一个典型输入方式

集合定义部分从 (“SETS:”到 “ENDSETS” ): 定义集合及其属性
MIN
I 1,2,3,4

{400 RP ( I ) 450OP( I ) 20 INV ( I )}
RP( I ) 40, I 1, 2, 3, 4 INV ( I ) INV ( I 1) RP ( I ) OP ( I ) DEM ( I ), I 1, 2, 3, 4 INV (0) 10 INV ( I ) 0 OP ( I ) 0 RP ( I ) 0 I 1 4
Step5 回答问题







Global optimal solution found. Objective value: 78450.00 Total solver iterations: 2 Variable Value Reduced Cost RP1 40.00000 0.000000 RP2 40.00000 0.000000 RP3 40.00000 0.000000 RP4 25.00000 0.000000 OP1 0.000000 20.00000 OP2 10.00000 0.000000 OP3 35.00000 0.000000 OP4 0.000000 50.00000 INV1 10.00000 0.000000 INV2 0.000000 20.00000 INV3 0.000000 70.00000 INV4 0.000000 420.0000 Row Slack or Surplus Dual Price 1 78450.00 -1.000000 2 0.000000 30.00000 3 0.000000 50.00000 4 0.000000 50.00000 5 15.00000 0.000000 6 0.000000 430.0000 7 0.000000 450.0000 8 0.000000 450.0000 9 0.000000 400.0000

lingo最值和优化

lingo最值和优化

ymax = -6.6080e-004
0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 -0.05
0
1
2
3
4
5
6
7
8
>> f = @(x)exp(x(2))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); x0 = [-1, 1]; x=fminunc(f,x0); y=f(x) Warning: Gradient must be provided for trust-region method; using line-search method instead. > In fminunc at 243 Optimization terminated: relative infinity-norm of gradient less than options.TolFun. y = 1.4859e-013
fval = -11.0250
>> f=@(x)x.^3-2*x-5; z = fminbnd(f, 0, 2) x=0:0.1:2; f=@(x)x.^3-2*x-5; plot(x,f(x),'b',z,f(z),'rp') axis([0,2,-50,50]) legend('f(x)','极小点 极小点') 极小点 z =
>> f=@(x)(2*x(1)^2+4*x(2)^2-4*x(1)*x(2)-6*x(1)-3*x(2)); A=[1,1;4,1]; b=[3;9]; x0=[1;1] [x,fval]=fmincon(f,x0,A,b) x0 = 1 1 Warning: Large-scale (trust region) method does not currently solve this type of problem, switching to medium-scale (line search). > In fmincon at 274 Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1 x = 1.9500 1.0500

数学建模lingo作业-习题讲解

数学建模lingo作业-习题讲解

基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。

根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。

生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。

每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。

厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。

其次要求满意销售额达到或者尽量接近275000元。

最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。

同时注意到增加生产时间要比包装时间困难得多。

试为该节能灯具厂制定生产计划。

解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。

第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。

在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。

(1) 关于生产数量的目标约束。

用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。

用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。

因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。

lingo优化模型例题

lingo优化模型例题

lingo优化模型例题
以下是一道优化模型的例题,题目如下:
某公司的成本函数为 C(x) = 100x + 2000/x + 5000,其中 x 为产量。

该公司希望通过调整产量来最小化成本。

问该公司应该生产多少数量的产品才能使成本最低?
解题步骤如下:
1. 定义变量:设 x 为产量。

2. 建立目标函数:成本函数 C(x) = 100x + 2000/x + 5000。

3. 建立约束条件:无约束条件。

4. 建立优化模型:采用最小化模型。

minimize C(x)
subject to x > 0
5. 编写LINGO代码:
SETS:
N /x/;
ENDSETS
VARIABLES:
X;
ENDVARIABLES
OBJECTIVE:
MIN = 100*X + 2000/X + 5000;
END
END
6. 运行LINGO代码,得到最优解 X 的值即为该公司应该生产的产量。

注意:由于该模型只有一个变量和一个目标函数,并且无约束条件,所以优化问题比较简单,可以直接使用LINGO编写代码求解。

对于更复杂的优化模型,可能需要添加更多的变量、约束条件和目标函数,并使用适当的算法进行求解。

LINGO软件求解优化问题

LINGO软件求解优化问题

模 1桶 型 牛奶 或
12小时
3公斤A1 4公斤A2
获利24元/公斤 获利16元/公斤
8小时 公斤A 每天 50桶牛奶 时间 桶牛奶 时间480小时 至多加工 小时 至多加工100公斤 1 公斤 决策变量 目标函数 x1桶牛奶生产 1 桶牛奶生产A 获利 24×3x1 × 每天获利 原料供应 劳动时间 加工能力 非负约束 x2桶牛奶生产 2 桶牛奶生产A 获利 16×4 x2 ×
Window|Tile (Alt+T) 平铺窗口 上下文相 关的帮助
File|New (F2) 新建文件
Edit|Cut (Ctrl+X) 剪切

Window|Send to Back (Ctrl+B) 窗口后置
3、LINGO的菜单 、 的菜单 栏 • File
– Export File… – User Database Info
有效步数
5、Options 7个选 、 个选 项卡 • 可设置80-90个控制参数
Interface界面 General Solver通用求解 Linear Solver线性求解 Nonlinear Solver非线性求解 Integer Pre-Solver整数预处理 Integer Solver整数求解 Global Solver全局最优求解
结果解 释
Objective value: Variable X1 X2 Row 1 2 3 4 3360.000 Value Reduced Cost 20.00000 30.00000 Slack or Surplus 3360.000 0.000000 0.000000 40.00000 0.000000 0.000000 Dual Price 1.000000 48.00000 2.000000 0.000000

LINGO练习题答案

LINGO练习题答案

1、用LINGO 软件解方程组221212222359x x x x ⎧+=⎪⎨-=-⎪⎩。

2、用LINGO 软件解方程组1211221222/64x x x x x ⎧⎪-=-⎨⎪=⎩。

3、用LINGO 软件解线性规划问题4、用LINGO 软件解二次规划问题且12,x x 都是整数5、用LINGO 软件解下列问题(1)max 12z=x x +12121212..26,4520,,0,,s tx x x x x x x x +≤+≤≥为整数(2) min 2212z=x -3-2x +()() 22121212..-50,24,,0s tx x x x x x +≤+≤≥。

(3) min 2212z=x ++x +(1)(1) 22122..-20,1s tx x x +≤≥。

max 23,..4310,3512,,0.z x y s t x y x y x y =++≤+≤≥22121122121212max 982770.32,..100,2,,0,x x x x x x s t x x x x x x +---+≤≤≥6、用LINGO软件分别产生序列(1){1,3,5,7,9,11};(2){1,4,9,16,25,36};(3)1111 {1,,,,}6122030.7、已知向量c={1,3,0.5,7,5,2},用LINGO软件解答下列问题。

(1)求向量c前5个数中的最大值;(2)求向量c后4个数平方中的最小值;(3)求向量c 中所有数的和。

8、某学校游泳队要从5名队员中选4名参加4乘100米混合泳接力赛。

5名队员4种泳姿的百米成绩(单位:秒)-----------------------------------------------------------------------------------李王张刘赵蝶泳66.8 57.2 78 70 67.4仰泳75.6 66 67.8 74.2 71蛙泳87 66.4 84.6 69.6 83.8自由泳58.6 53 59.4 57.2 62.4-----------------------------------------------------------------------------------如何选拔?(1)请建立“0----1规划”模型;(2)用Lingo求解。

Lingo软件在求解数学优化问题的使用技巧

Lingo软件在求解数学优化问题的使用技巧

Lingo软件在求解数学优化问题的使用技巧LINGO是一种专门用于求解数学规划问题的软件包。

由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。

LINGO 主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。

LINGO的最新版本为,但解密版通常为和版本,本书就以为参照而编写。

1.LINGO编写格式LINGO模型以MODEL开始,以END结束。

中间为语句,分为四大部分(SECTION):(1)集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。

这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。

在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(A TTRIBUTE,类似于数组)。

LINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:SETNAME/member list(or 1..n)/:attribute,attribute,etc。

另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:SETNAME(set1,set2,etc。

):attribute,attribute,etc。

如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。

(2)目标与约束:这部分定义了目标函数、约束条件等。

一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。

求解优化问题时,该部分是必须的。

(3)数据部分(DATA):这部分以“DATA:”开始,以“END DA TA”结束。

其作用在于对集合的属性(数组)输入必要的数值。

格式为:attribut=value_list。

该部分主要是方便数据的输入。

LINGO软件求解优化问题(2)作业

LINGO软件求解优化问题(2)作业
b1 , b2 , b3 , b4 , b5 , b6 d1 , d 2 , d 3 , d 4 , d 5 , d 6 x1 , x2 , y1 , y 2 , e1 , e2 c11 , c12 , c21 , c22 , c31 , c32
基本 集合 派生 集合
计算机学院 张亚玲
data: c41 , c42 , c51 , c52 , c61 , c62 a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; 需求点的位置 d=3,5,4,7,6,11; e=20,20; 供需量 x,y=5,1,2,7; enddata
西安科技大学
例3 选址问题
目标:吨公里
min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));
min
2 2 1/ 2 c [( x a ) ( y b ) ] ij j i j i j 1 i 1
2
6
sets: demand/1..6/:a,b,d; supply/1..2/:x,y,e; link(demand,supply):c; endsets

计算机学院 张亚玲
结果:总吨公里数为136.2
西安科技大学
作业练习
例1 选址问题——进一步讨论
(2)改建两个新料场
需要确定新料场位置(xj,yj)和运量cij ,使总吨公里数最小。
计算机学院 张亚玲
西安科技大学
作业练习
2、使用集合循环函数求解
max aij ( xi y j )
i 1 j 1 10 5
计算机学院 张亚玲

LINGO

LINGO

编写LINGO 程序并求解/*最优化实验*/第一题:某班准备从5名游泳队员中选择4人组成接力队,参与学校的4*100m 混合接力比赛。

5名队员4种泳姿的百米成绩如表所示,应如何选拔队员组成接力队?解:记甲、乙、丙、丁、戊分别为队员1,2,3,4,5i =;记蝶泳、仰泳、蛙泳、自由泳分别为泳姿1,2,3,4j =,记队员i 的第j 种泳姿的百米最好成绩为()ij c s 。

决策变量:引入0-1变量ij x ,若选择队员i 参加泳姿j 的比赛,1ij x =,否则记为0ij x =。

目标函数:当队员i 入选泳姿j 时,ij ij x c 表示队员的成绩,否则0ij ij x c =。

于是接力队的成绩可以表示为5411ij ij i j f x c ===邋,这就是该问题的目标函数。

约束条件:根据组成接力队的要求,ij x 应该满足下面两个条件:每人最多只能入选4种泳姿中的一种,即对于1,2,3,4,5i =,应有411ij j x =£å;每种泳姿必须有一个人参加,即对于1,2,3,4j =,应有511ij i x ==å。

综上所述,这个问题的优化模型可写作5411min ij ij i j f x c ===邋..s t 411,1,2,3,4,5ij j x i=?å甲乙 丙 丁 戊蝶泳1’06”8 57”2 1’18” 1’10” 1’07”4仰泳1’15”6 1’06” 1’07”8 1’14”2 1’11” 蛙泳 1’27” 1’06”4 1’24”6 1’09”6 1’23”8 自由泳 58”653”59”457”21’02”4511,1,2,3,4 ijix j ===å{}0,1ijx=模型代码如下:SETS:i/1..5/;j/1..4/;SS(i,j):x;ENDSETSMIN=66.8*x11+75.6*x12+87*x13+58.6*x14+57.2*x21+66*x22+ 66.4*x23+53*x24+78*x31+67.8*x32+84.6*x33+59.4*x34+70*x 41+74.2*x42+69.6*x43+57.2*x44+67.4*x51+71*x52+83.8*x53 +62.4*x54;x11+x12+x13+x14<=1;x21+x22+x23+x24<=1;x31+x32+x33+x34<=1;x41+x42+x43+x44<=1;x51+x52+x53+x54<=1;x11+x21+x31+x41+x51=1;x12+x22+x32+x42+x52=1;x13+x23+x33+x43+x53=1;x14+x24+x34+x44+x54=1;求解这个模型,结果如下。

用LINGO软件求解优化问题

用LINGO软件求解优化问题

实验报告专用纸实验室:机号:实验日期:三、实验步骤及方法(1)模型的假设①假设该投资为连续性投资,即该经理投资不会受到年限过长而导致资金周转困难;②假设证券税收政策稳定不变而且该经理优先考虑可以免税的市政证券的情况下再考虑其他证券种类以节约成本;③假设各证券之间相互独立而且各自风险损失率为零;④假设在经理投资后,各证券的信用等级、到期年限都没有发生改变;⑤假设投资不需要任何交易费或者交易费远远少于投资金额和所获得的收益,可以忽略不计;⑥假设所借贷资金所要支付的利息不会随时间增长,直接等于所给的利率乘上借贷资金;(2)问题分析问题一:该经理优先考虑可以免税的市政证券的情况下再考虑其他证券种类以节约成本,在假设都成立的条件下综合考虑约束资金和限制条件,将1000万资金按照一定的比例分别投资各种证券。

在满足政府及代办机构的证券总共至少要购进400万元;所购证券的平均信用等级不超过1.4;所购证券的平均到期年限不超过5年这三个约束条件下,不妨设投资证券A、B、C、D、E的金额分别为x1、x2、x3、x4、x5,最大利润为y建立线性规划模型,用lingo求解即可得到最优投资方案和最大利润。

问题二:利用问题一的模型进行灵敏度分析,把借贷的100万在投资后所获得的收益与借贷所要付出的利息进行比较,即与以2.75%的利率借到的100万资金的利息比较,若大于,则应该借贷;反之,则不借贷。

若借贷,投资方案需将问题一的模型的第二个约束条件右端10该为11,用lingo软件求解。

问题三:是否该改变要看最优解是否改变,如果各证券所对应的字数在最优解不变的条件下目标函数允许的变化范围内,则不应该改变投资方案,反之则改变投资方案。

(3)模型建立设投资证券A,B,C,D,E,的金额分别为x1,x2,x3,x4,x5(百万),最大利润为y,按照规定、限制和1000万元资金约束,列出模型:max y=0.043*x1+0.027*x2+0.022*x4+0.045*x5;s.t x2+x3+x4>=4;x1+x2+x3+x4+x5<=10;6*x1+6*x2-4*x3-4*x4+36*x5<=0;4*x1+10*x2-x3-2*x4-3*x5<=0;(4)模型求解四、实验数据及程序清单问题一求解:灵敏度分析:问题二:对问题一的求解后的影子价格分析可以知道,投资金额每增加100万元,收益可增加0.0298百万元,而借贷100万元所要支付的利息是0.0275百万元,比0.0298百万元少,所以应该借贷这100万元。

数学建模lingo作业-习题讲解

数学建模lingo作业-习题讲解

基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。

根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。

生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。

每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。

厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。

其次要求满意销售额达到或者尽量接近275000元。

最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。

同时注意到增加生产时间要比包装时间困难得多。

试为该节能灯具厂制定生产计划。

解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。

第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。

在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。

(1) 关于生产数量的目标约束。

用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。

用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。

因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。

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

Lingo 作业解题过程1.某储蓄所每天的营业时间是上午9时到下午5时。

根据经验,每天不同时间段所需要的服务员数量如下表示。

储蓄所可以雇佣全时和半时两类服务员。

全时服务员每天报酬100元,从上午9时到下午5时工作,但中午12时到下午2时之间必须安排1h 的午餐时间。

储蓄所每天可以雇佣不超过3名的半时服务员,每个半时服务员必须连续工作4h,报酬40元,问储蓄所应如何雇用全时和半时服务员。

如果不能雇佣半时服务员,每天至少增加多少费用。

如果雇佣半时服务员的数量没有限制,每天可以减少多少费用。

时间段/h 9~10 10~11 11~12 12~1 1~2 2~3 3~4 4~5服务员数43465688解:(1)设1x 为雇佣的全职人数,2x 为12-1小时休息的人数,1y -5y 分别为1-5时段开始雇佣的半时人员的人数。

表1为各时间段的工作人数。

每个时间段的工作人数要满足题目中的要求。

表1 各时间段在工作的服务员 时间段/h 服务员9-10 11x y + 10-11 112x y y ++11-12311i i x y =+å12-14121i i x y x =+-å1-2522i i x y =+å2-3513i i x y =+å 3-4514i i x y =+å4-515x y +根据每个时段满足的要求,建立模型如下:()512311111145512211235115451min 100*x 140:(1)x y 4; (2) x 3; (3) x 4 ;(4)x x 6;(5)x5;(6)x 6(7)x 8;(8)x 83i i i i i i i i i i y st y y y y y y y y =========++>+>+>-+>+>+>+>+><å邋邋åå通过上述模型,利用lingo 编程求解如下: :sets :quanshi/1..2/:x;!x(1)为雇佣的全职人数,x (2)为12-1时休息的人数;banshi/1..5/:y; !y1-y5为1-5时间段雇佣的半时人数,超过5阶段雇佣半时员工不划算; endsetsmin =100*x(1)+@sum (banshi:y)*40; @sum (banshi:y)<3;@for (quanshi:@gin (x)); !限定x 取整数; @for (banshi:@gin (y)); !限定y 取整数;x(1)+y(1)>4; !第一阶段要满足的服务员人数; x(1)+y(1)+y(2)>3; !第二阶段要满足的服务员人数; x(1)+y(1)+y(2)+y(3)>4; !第三阶段要满足的服务员人数; x(1)-x(2)+y(1)+y(2)+y(3)+y(4)>6; !第四阶段要满足的服务员人数; x(2)+y(2)+y(3)+y(4)+y(5)>5; !第五阶段要满足的服务员人数; x(1)+y(3)+y(4)+y(5)>6; !第六阶段要满足的服务员人数; x(1)+y(4)+y(5)>8; !第七阶段要满足的服务员人数; x(1)+y(5)>8; !第八阶段要满足的服务员人数;程序运行的结果为最少花费820元,雇佣全时员工7人,半时员工3人,半时员工分别在第二时段雇佣2人,第五时段雇佣1人,12-1时去吃饭的全是员工为2人,剩下5人在1-2时吃饭。

(2)第二问直接可以看出答案,编程也可以。

min =100*x1; x1-x2>6; x2>5;运行程序得出答案1100元,与第一问的820元,要增加费用280元。

(3)第三问直接将第一问的程序中@sum (banshi:y)<3; 删除(即对雇佣的半时服务员的个数没有限制),可得出结果本题的结果。

最少花费560元,第一时段雇佣半时员工6人,第五时段雇佣半时人员8人,就可以满足每个时段所需要的员工要求。

节省费用820-560=260元。

2.某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期年限、收益如表所示。

按照规定,市政证券的收益可以免税,其他证券的收益需按50%纳税。

此外还有以下限制:1) 政府及代办机构的证券至少要购进400万元;2) 所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程度越高); 3) 所购证券的平均到期年限不超过5年。

证券名称 证券种类 信用等级 到期年限/年 到期税前收益/%A 市政 2 9 4.3B 代办机构 2 15 5.4C 政府 1 4 5.0D 政府 1 3 4.4E 市政 5 2 4.5(1) 若该经理有1000万元资金,应如何投资?(2) 如果能以2.75%的利率借到不超过100万元资金,该经理应如何操作?(3) 在1000万元资金情况下,若证券A 的税前收益增加为4.5%,投资应否改变?如证券 C 的税前收益减少为4.8%,投资应否改变?解:i x ,i y ,i z ,i p ,i q 分别为购买的第i 种证券的价格数量,第i 种证券的信用等级、到期年限、到期税前收益、缴纳税的利率。

(1)第一问有1000万元,根据题目中的三个要求,①所有证券的平均信用等级不超过1.4,②B,C,D 类证券的购买总数需要超过400万元。

③所有证券的平均到期年限不超过5年。

建立模型如下:42max :/1000 1.41000/10005400i i ii i i i i i i x p q st x y x x z x ==<=<>ååååå利用lingo 编程: sets :touzi/1..5/:x,y,z,p,q; endsets data :y=2 2 1 1 5 ; z=9 15 4 3 2 ; p=4.3 5.4 5.0 4.4 4.5 ; q=1 0.5 0.5 0.5 1 ; enddata@sum (touzi:x*y)/1000<1.4; !所购证券的平均信用等级不超过1.4; @sum (touzi:x)=1000; !1000全部用于投资;@sum (touzi:x*z)/1000<5; !所购证券的平均到期年限不超过5年;x(2)+x(3)+x(4)>400; !政府及代办机构的证券至少要购进400万元;max =@sum (touzi:x*p*q);运行程序得出结果为能够获得最大利润2983.636万元,而每种证券如何投资见表表2 各类证券的投资金额(1)证券名称 投资的钱(万元)A 218.1818B 0C 736.3636D 0E 45.45455 总计 1000(2)假设借到a 元,在最后还钱。

只需更改约束条件如下,其余的不变。

:/(1000) 1.41000/(1000)5i i i i i st x y a x a x z a +<=++<ååå编程如下: sets :touzi/1..5/:x,y,z,p,q; endsets data :y=2 2 1 1 5 ; z=9 15 4 3 2 ; p=4.3 5.4 5.0 4.4 4.5 ; q=1 0.5 0.5 0.5 1 ; enddata@sum (touzi:x*y)/(1000+a)<1.4; !所购证券的平均信用等级不超过1.4; @sum (touzi:x)<1000+a; !1000+a 全部用于投资; a<100;@sum (touzi:x*z)/(1000+a)<5; !所购证券的平均到期年限不超过5年; x(2)+x(3)+x(4)>400; !政府及代办机构的证券至少要购进400万元; max =@sum (touzi:x*p*q/100)-a*2.75/100;运行程序得出的结果为借贷100万元,可获得最大利润。

表3 各类证券的投资金额(2)证券 投资的钱(万元) A 240 B 0 C 810 D 0 E 50 总计 1100(3):将第一题中的1p 改成4.5,得出的答案不变,A 类证券投资218.1818万元,C 类证券投资736.3636万元,E 类证券投资45.45455万元。

但若将将3p 改成4.8,结果变了,投资额如表4表4 各类证券的投资金额(3) 证券 投资的钱(万元) A 336 B 0 C 0 D 648 E 16 总计 10003.某班准备从5名游泳队员中选拔4人组成接力队,参加学校的4乘100米混合泳接力比赛。

5名队员4种泳姿的百米平均成绩如表所示,问应如何选拔队员组成接力队?如果最近队员丁的蛙泳成绩有较大退步,只有1分15秒2;而队员戊经过艰苦训练自由泳成绩有所进步,达到57秒5,组成接力队的方案是否应调整?(单位 秒)甲 乙 丙 丁 戊 蝶泳 66.8 57.2 78 70 67.4仰泳 75.6 66 67.8 74.271蛙泳 87 66.4 84.6 69.6 83.8自由泳 58.6 53 59.4 57.2 62.4解:设ij c 为第j 个队员的第i 种泳姿的成绩,ij x 为定义的0,1变量,如果第j 位队员第i 种泳姿代表队伍参加比赛,则取1,否则取0。

min 1,1,2...5;1,1,2...4;ij ijij iij jc x x jx i =?==ååå程序: sets :duiyuan/1..5/; yongzi/1..4/;link(yongzi,duiyuan):c,x; endsets data :c=66.8 57.2 78 70 67.4 75.6 66 67.8 74.2 7187 66.4 84.6 69.6 83.858.6 53 59.4 57.2 62.4;enddatamin=@sum(link:x*c); !利用0,1变量来求解最小值;@for(duiyuan(j):@sum(yongzi(i):x(i,j))<1);!每个人都只能参加0项或者1项;@for(yongzi(i):@sum(duiyuan(j):x(i,j))=1);!游泳的几种泳姿都只能出现一次;@for(link:@bin(x)); !控制0,1变量;运行结果见表4表5 代表队伍参赛的队员名单泳姿队员成绩蝶泳乙57.2s仰泳丙67.8s蛙泳丁69.6s自由泳戊58.5s合计253.2s(2)丁退步,戊进步,可以直接将丁和戊的成绩在程序中更改后再运行程序,得到最优解为557.7s,蝶泳派乙参加(57.2s),仰泳派丙参加(67.8s),蛙泳派丁参加(75.2s),自由泳派戊参加(57.5s)。

相关文档
最新文档