当前位置:文档之家› LINGO练习

LINGO练习

LINGO练习
LINGO练习

lingo编程练习题

一、编写lingo 程序求解下列方程(组) 1、4 x sin x cos x += 2、x x 24-= 3、求方程()074223=---=x x x x f 在[]43,中的根的近似值. 4、0432=--x x 5、12341234123420,3230,4350. x x x x x x x x x x x x +-+=?? -+-=??+-+=? 6、??? ??=+-=++--=++. x x x ,x x x , x x x 3103220241225321 321321 二、编写lingo 程序求解下列最优化问题 1、43215243x x x x z min +-+-= ?? ??? ??≥≥-++-≤+-+-=-+-. x ,x ,x ,x ,x x x x ,x x x x , x x x x .t .s 无约束43 214321432143210232142224 2、32132-2x x x z min += ??? ??≥≤≤-+-=++-. x ,x ,x ,x x x , x x x .t .s 无约束321 32142100624 3、213x x z max -= ????? ??≥≤+≥+≤-.x ,x ,x x ,x x , x x .t .s 为整数05210453232 121 2121 4、32152-3x x x z max +=

????? ?? ??=≤+≤+≤++≤-+. x ,x ,x , x x ,x x ,x x x ,x x x .t .s 1064344223213 221321321或 5、432173x x x x z min +-+= ????? ??=≥++≥++-≥-+-.x ,x ,x ,x ,x x x ,x x x x ,x x x x .t .s 10535846124 321421 43214321或 6、求图中点1v 到各点的最短路(不可逆行). 三、先建立问题的数学模型,再编写lingo 程序求解 1、某厂每日8小时的产量不低于1800件.为了进行质量控制,计划聘请两种不同水平的检验员.一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15小时/件,正确率95%,计时工资3元/小时.检验员每错检一次,工厂要损失2元.为使总检验费用最省,该工厂应聘一级、二级检验员各几名? 2、某饲料场饲养动物出售,设每头动物每天至少需700克蛋白质、30克矿物质、100毫克维生素.现有5种饲料可供选用,各种饲料每公斤营养成分含量及单价如表所示

LINGO练习题-1及答案

LINGO练习题-1及答案LINGO测试-1 1、用LINGO软件解方程组(1)221212222359 x x x x?+=??-=-??。 model: x^2+2*y^2=22; 3*x-5*y=-9; end Solution is locally infeasible Infeasibilities:0.5417411E-04 Extended solver steps:5 Total solver iterations:20 Variable Value X 2.000005 Y 3.000003 Row Slack or Surplus 1-0.5417411E-04 20.000000 2、用LINGO软件解线性规划问题 model: max=2*x+3*y; 4*x+3*y<=10;

3*x+5*y<=12; x>0;y>0; end Global optimal solution found. Objective value:7.454545 Infeasibilities:0.000000 Total solver iterations:2 Variable Value Reduced Cost X 1.2727270.000000 Y 1.6363640.000000 Row Slack or Surplus Dual Price max23,..4310,3512,,0.z x y s t x y x y x y=++≤+≤≥17.454545 1.000000 20.0000000.9090909E-01 30.0000000.5454545 4 1.2727270.000000 5 1.6363640.000000 3、用LINGO软件二次规划问题 (1)min2212z=x-3-2x+()() 22121212..-50, 24, ,0s t

lingo运算符号和函数

4.1.2 逻辑运算符 在LINGO中,逻辑运算符主要用于集循环函数的条件表达式中,来控制在函数中哪些集成员被包含,哪些被排斥。在创建稀疏集时用在成员资格过滤器中。 LINGO具有9种逻辑运算符: #not# 否定该操作数的逻辑值,#not#是一个一元运算符 #eq# 若两个运算数相等,则为true;否则为flase #ne# 若两个运算符不相等,则为true;否则为flase #gt# 若左边的运算符严格大于右边的运算符,则为true;否则为flase #ge# 若左边的运算符大于或等于右边的运算符,则为true;否则为flase #lt# 若左边的运算符严格小于右边的运算符,则为true;否则为flase #le# 若左边的运算符小于或等于右边的运算符,则为true;否则为flase #and# 仅当两个参数都为true时,结果为true;否则为flase #or# 仅当两个参数都为false时,结果为false;否则为true 这些运算符的优先级由高到低为: 高 #not# #eq# #ne# #gt# #ge# #lt# #le# 低 #and# #or# 例4.2逻辑运算符示例 2 #gt# 3 #and# 4 #gt# 2,其结果为假(0)。 4.1.3 关系运算符 在LINGO中,关系运算符主要是被用在模型中,来指定一个表达式的左边是否等于、小于等于、或者大于等于右边,形成模型的一个约束条件。关系运算符与逻辑运算符#eq#、#le#、#ge#截然不同,前者是模型中该关系运算符所指定关系的为真描述,而后者仅仅判断一个该关系是否被满足:满足为真,不满足为假。 LINGO有三种关系运算符:“=”、“<=”和“>=”。LINGO中还能用“<”表示小于等于关系,“>”表示大于等于关系。LINGO并不支持严格小于和严格大于关系运算符。然而,如果需要严格小于和严格大于关系,比如让A严格小于B: A= 4.2 数学函数 LINGO提供了大量的标准数学函数: @abs(x) 返回x的绝对值 @sin(x) 返回x的正弦值,x采用弧度制 @cos(x) 返回x的余弦值 @tan(x) 返回x的正切值 @exp(x) 返回常数e的x次方 @log(x) 返回x的自然对数 @lgm(x) 返回x的gamma函数的自然对数 @sign(x) 如果x<0返回-1;否则,返回1 @floor(x) 返回x的整数部分。当x>=0时,返回不超过x的最大整数;当x<0

对应各章的习题及Lingo求解

Lingo 精选题目及答案 答题要求:将Lingo 程序复制到Word 文档中,并且附上最终结果。 1、简单线性规划求解 (目标函数)2134m ax x x z += s.t.(约束条件)???????≥≤≤+≤+0 ,781022122 121x x x x x x x 2、整数规划求解 219040Max x x z += ??? ??≥≤+≤+0,7020756 792 12121x x x x x x 3、0-1规划求解 Max 4322 15.18.04.0x x x x f +++= 10106234321≤+++x x x x 10,,,4321或=x x x x 4、非线性规划求解 ||4||3||2||m in 4321x x x x z +++= s.t. ??? ? ??? - =+--=-+-=+--2132130432143214321x x x x x x x x x x x x 5、集合综合应用 产生一个集合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; end 2、 model: max=40*x1+90*x2; 9*x1+7*x2<56; 7*x1+20*x2<70; @gin(x1);@gin(x2); end 3、 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); end 4、 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; end 5、 model: sets: jihe/1..10/:y; ss/1..4/:S; endsets !由于y和s中部分有负数,所以要先去掉这个约束; @for(jihe:@free(y)); @for(ss(i):@free(S)); !产生元素;

Lingo练习题

一.用Lingo 求解下列规划问题 1、求解 2、求解 3.求解 6,,1,6,,1,106,,1,6,,1,6,,1,13. .max 61616161 =====≤=≤==∑∑∑∑====j i x j i x x j x x t s r x z ij ii ij i ij i ii i j ij ij 或者其中,???????? ??????????=110100111000001100 110100000111000011r 二、请给出下列问题的模型、lingo 求解程序及其运行结果 1.队员选拔问题 某校篮球队准备从十名预备队员中选择五名作为正式队员,队员的各种情况如下表: 队员号码 身高(厘米) 技术分 位置 1 185 8.6 中锋 2 186 9 中锋 3 193 8. 4 中锋 4 190 9. 5 中锋 5 182 9.1 前锋 6 184 9 前锋 7 188 8.1 前锋 8 186 7.8 后卫 9 190 8.2 后卫 10 192 9.2 后卫 队员的挑选要满足下面条件:(1)至少补充一名前锋。(2)至多补充2名中锋。(3)1号和3号队员最多只能入选1个。(4)平均身高要达到187厘米。(5)3号或10号入选了则4号就不能入选。 问:怎么选择使得技术平均分最高。 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 +---+≤≤≥ 且都是整

2. 超市奖品选购 超市提供了50种商品作为奖品供中奖顾客选择,车的容量为1000 cm3,奖品i占用的空间为w i cm3,价值为v i元, 具体的数据如下: v i = { 220, 208, 198, 192, 180, 180, 165, 162, 160, 158,155, 130, 125, 122, 120, 118, 115, 110, 105, 101, 100, 100, 98,96, 95, 90, 88, 82, 80, 77, 75, 73, 72, 70, 69, 66, 65, 63, 60, 58,56, 50, 30, 20, 15, 10, 8, 5, 3, 1} w i = {80, 82, 85, 70, 72, 70, 66, 50, 55, 25, 50, 55, 40, 48,50, 32, 22, 60, 30, 32, 40, 38, 35, 32, 25, 28, 30, 22, 50, 30, 45,30, 60, 50, 20, 65, 20, 25, 30, 10, 20, 25, 15, 10, 10, 10, 4, 4, 2,1}。问怎么选择价值最高。

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

Lingo软件在求解数学优化问题的使用技巧 LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO 主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。 LINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。 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)数据部分(DA TA):这部分以“DA TA:”开始,以“END DA TA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。 (4)初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。 编写LINGO程序要注意的几点: 1.所有的语句除SETS、ENDSETS、DA TA、ENDDA TA、INIT、ENDINIT和MODEL,END 之外必须以一个分号“;”结尾。 2.LINGO求解非线性规划时已约定各变量非负。 LINGO内部函数使用详解。 LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。 (1)常用数学函数 @ABS(X) 返回变量X的绝对数值。 @COS( X) 返回X的余弦值,X的单位为弧度 @EXP( X)

lingo练习题目的答案

2 8' 1' 2' 3' 4' 1 0 0 0 0 0 1 0 2 2线性规划习题答案 1、试述线性规划数学模型的组成部分及其特性 答:线性规划数学模型由决策变量、约束条件和目标函数三个部分组成。 线性规划数学模型特征: (1) (2) 24小时全天候营业,在各时间段中所需要的服务员数量分别为: 2 : 00~6: 00 3 人 6 :00~10: 00 9 人 10: 00~14: 00 12 人 14 :00~18: 00 5 人 18: 00~22: 00 18 人 22 :00~ 2 : 00 4 人 设服务员在各时间段的开始时点上上班并连续工作八小时, 员,才能满足各个时间段对人员的需要。试构造此问题的数学模型。 解:用决策变量 X i , X 2, X 3, X 4, X 5, X 6分别表示 2: 00~6: 00, 6 : 00~10: 00,10: 00~14: X 1,X 2,X 3,X 4,X 5,X 6 0 3、现要截取2.9米、2.1米和1.5 如何下料,才能使所消耗的原材料最省。试构造此问题的数学模型。 用0表示每种切割方案的剩余材料。其切割方案如下所示: 用一组决策变量表示某一方案,这组决策变量均为非负的连续变量; 存在一定数量(m )的约束条件,这些约束条件可以用关于决策变量的一组线性 等式或者不等式来加以表示; 有一个可以用决策变量加以表示的目标函数,而该函数是一个线性函数。 2、一家餐厅 问该餐厅至少配备多少服务 00 , 14: 00~18: 00, 18: 00~22: 00, 22 : 00~ 2 : 00时间段的服务员人数。 其数学模型可以表述为: min X 1 X 2 X 3 X 4 X 5 X 6 X 1 X 6 X 1 X 2 X 2 X 3 12 X 3 X 4 X 4 X 5 18 X 5 X 6 米的元钢各100根,已知原材料的长度是 7.4米,问应 方法一 解:圆钢的截取有不同的方案,

lingo练习题目的答案

2 线性规划习题答案 1、试述线性规划数学模型的组成部分及其特性 答:线性规划数学模型由决策变量、约束条件和目标函数三个部分组成。 线性规划数学模型特征: (1) 用一组决策变量表示某一方案,这组决策变量均为非负的连续变量; (2) 存在一定数量(m )的约束条件,这些约束条件可以用关于决策变量的一组线 性等式或者不等式来加以表示; (3) 有一个可以用决策变量加以表示的目标函数,而该函数是一个线性函数。 2、一家餐厅24小时全天候营业,在各时间段中所需要的服务员数量分别为: 2:00~6:00 3人 6:00~10:00 9人 10:00~14:00 12人 14:00~18:00 5人 18:00~22:00 18人 22:00~ 2:00 4人 设服务员在各时间段的开始时点上上班并连续工作八小时,问该餐厅至少配备多少服务员,才能满足各个时间段对人员的需要。试构造此问题的数学模型。 解:用决策变量1x ,2x ,3x ,4x ,5x ,6x 分别表示2:00~6:00, 6:00~10:00 ,10:00~14:00 ,14:00~18:00,18:00~22:00, 22:00~ 2:00 时间段的服务员人数。 其数学模型可以表述为:123456min Z x x x x x x =+++++ 16122334455612345639125184,,,,,0 x x x x x x x x x x x x x x x x x x +>=+>=+>=+>=+>=+>=≥ 3、现要截取2.9米、2.1米和1.5米的元钢各100根,已知原材料的长度是7.4米,问应如何下料,才能使所消耗的原材料最省。试构造此问题的数学模型。 方法一 解:圆钢的截取有不同的方案,用θ表示每种切割方案的剩余材料。其切割方案如下所示: 2.9 2.1 1.5 θ 1' 1 1 1 0.9 2' 2 0 0 0.1 3' 1 2 0 0.3 4' 1 0 3 0 5' 0 1 3 0.8 6' 0 0 4 1.4 7' 0 2 2 0.2 8' 0 3 0 1.1

LINGO中的常见函数

@bin(x) 限制x为0或1 @bnd(L,x,U) 限制L≤x≤U @free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数 @gin(x) 限制x为整数 LINGO提供了大量的标准数学函数: @abs(x) 返回x的绝对值 @sin(x) 返回x的正弦值,x采用弧度制 @cos(x) 返回x的余弦值 @tan(x) 返回x的正切值 @exp(x) 返回常数e的x次方 @log(x) 返回x的自然对数 @lgm(x) 返回x的gamma函数的自然对数 @sign(x) 如果x<0返回-1;否则,返回1 @floor(x) 返回x的整数部分。当x>=0时,返回不超过x的最大整数;当x<0 时,返回不低于x的最大整数。 @smax(x1,x2,…,xn) 返回x1,x2,…,xn中的最大值 @smin(x1,x2,…,xn) 返回x1,x2,…,xn中的最小值 LINGO具有9种逻辑运算符: #not# 否定该操作数的逻辑值,#not#是一个一元运算符 #eq# 若两个运算数相等,则为true;否则为flase #ne# 若两个运算符不相等,则为true;否则为flase #gt# 若左边的运算符严格大于右边的运算符,则为true;否则为flase #ge# 若左边的运算符大于或等于右边的运算符,则为true;否则为flase #lt# 若左边的运算符严格小于右边的运算符,则为true;否则为flase #le# 若左边的运算符小于或等于右边的运算符,则为true;否则为flase #and# 仅当两个参数都为true时,结果为true;否则为flase #or# 仅当两个参数都为false时,结果为false;否则为true ^乘方 ﹡乘 /除 ﹢加 ﹣减 LINGO唯一的一元算术运算符是取反函数“﹣”。 这些运算符的优先级由高到底为: 高﹣(取反) ^ ﹡/ 低﹢﹣ 运算符的运算次序为从左到右按优先级高低来执行。运算的次序可以用圆括号“()”来改变。

如何在lingo中使用集合

例题1. 在lingo 中输入下列线性规划模型,并求解 ∑∈?=A j i j i x j i d z ),(),(),( min s.t. 1),1(≥∑∈V j j x , , },10,,2,1{,0),(x , ),(, 1,1),(V V A V V i i i j i x j j i x V i ?==∈=>=∑∈ 为非负实数所有 的数值如下表:d d=0 8 5 9 12 14 12 16 17 22 8 0 9 15 16 8 11 18 14 22 5 9 0 7 9 11 7 12 12 17 9 15 7 0 3 17 10 7 15 15 12 16 9 3 0 8 10 6 15 15 14 8 11 17 8 0 9 14 8 16 12 11 7 10 10 9 0 8 6 11 16 18 12 7 6 14 8 0 11 11 17 14 12 15 15 8 6 11 0 10 22 22 17 15 15 16 11 11 10 0; 分析:这个模型输入的难点,在于变量的数量太多,足足有100个。约束条件也比较多,有没有什么方便的输入方法?下面介绍lingo 中集合的建立 新建lingo 文件 输入下面内容 model : sets : V/1..10/;!创建集合V; A(V,V):d,x;!创建集合A 是V 乘V.而d,x 是与A 同结构的,即d ,x 分别是10*10矩阵; endsets min =@sum (A(i,j):d(i,j)*x(i,j));!创建目标函数; @sum (V(j):x(1,j))>=1; !第一个约束条件; @for (V(j)|j#gt#1: !i#gt#1为逻辑判断语句表示i>1是返回真值,但这里不能直接写i>1,因为">"是关系运算符不是逻辑运算符;

LINGO练习题复习资料

1、用LINGO 软件解方程组221212222359 x x x x ?+=??-=-??。 2、用LINGO 软件解方程组1211221222/64 x x x x x ??-=-??=?。 3、用LINGO 软件解线性规划问题 4、用LINGO 软件解二次规划问题 且12,x x 都是整数 5、用LINGO 软件解下列问题 (1)max 12z=x x + 12121212..26, 4520,,0, ,s t x x x x x x x x +≤+≤≥为整数 (2) min 22 12z=x -3-2x +()() 22121212..-50, 24, ,0s t x x x x x x +≤+≤≥。 (3) min 2212z=x ++x +(1)(1) 22122..-20,1s t x 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求解。 9、某帆船制造公司要决定下两年八个季度的帆船生产量。八个季度的帆船需求量分别是40条、60条、75条、25条、30条、65条、50条、20条,这些需求必须按时满足,既不能提前也不能延后。该公司每季度的正常生产能力是40条帆船,每条帆船的生产费用为400美圆。如果是加班生产的,则每条生产费用为450美圆。帆船跨季度库存的费用为每条20美圆。初始库存是10条帆船。如何生产? 10、现要将8名同学分成4个调查队(每组2人)前往4个地区进行社会调查。假设他们任意两人组成一队的工作效率为已知,见下表(由于对称性,只须列出上三角部分): 任意两人组成一队的工作效率 学生S1 S2 S3 S4 S5 S6 S7 S8 S1 9 3 4 2 1 5 6 S2 1 7 3 5 2 1 S3 4 4 2 9 2 S4 1 5 5 2 S5 8 7 6 S6 2 3 S7 4 问如何组队可以使总效率最高?

lingo的常用函数

l i n g o的常用函数 This model paper was revised by the Standardization Office on December 10, 2020

Lingo基本用法总结(除集函数部分) LINGO是用来求解线性和非线性优化问题的简易工具。Lingo免费版可以支持30个未知数,lingo破解版可以支持几万个未知数、几万个约束条件。 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model –LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例如何在LINGO中求解如下的LP问题: 在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮即可。 得到如下结果: 所以当x1为250,x2为100时目标函数得到最大值。 算术运算符 Lingo中变量不区分大小写,以字母开头不超过32个字符 算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符: ^乘方﹡乘/除﹢加﹣减

LINGO唯一的一元算术运算符是取反函数“﹣”。 这些运算符的优先级由高到底为: 高﹣(取反) ^ ﹡/ 低﹢﹣ 运算符的运算次序为从左到右按优先级高低来执行。运算的次序可以用圆括号“()”来改变。 例:在x1+x2>=350,x1>=100,2*x1+x2<=600的条件下求2*x1+3*x2的最小值 在代码窗口中编写 min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后单击上面菜单lingo菜单下solve键即可。 数学函数 标准数学函数: @abs(x) 返回x的绝对值 @sin(x) 返回x的正弦值,x采用弧度制 @cos(x) 返回x的余弦值

运筹学实验报告-lingo软件的使用-习题代码

运筹学 实验报告 姓名: 学号: 班级:

相关问题说明: 一、实验性质和教学目的 本实验是运筹学课安排的上机操作实验。 目的在于了解、熟悉计算机Lingo软件在运筹学模型求解中的作用,激发学习兴趣,提高学习效果,增强自身的动手能力,提高实际应用能力。 二、实验基本要求 要求学生: 1. 实验前认真做好理论准备,仔细阅读实验指导书; 2. 遵从教师指导,认真完成实验任务,按时按质提交实验报告。 三、主要参考资料 1.LINGO软件 2. LINGO8.0及其在环境系统优化中的应用,大学,2005 3. 优化建模与LINDO/LINGO软件,清华大学,2005 4.运筹学编写组主编,运筹学(修订版),清华大学,1990 5.蓝伯雄主编,管理数学(下)—运筹学,清华大学,1997 6.胡运权主编,运筹学习题集(修订版),清华大学,1995 7.胡运权主编,运筹学教程(第二版),清华大学,2003

实验容 1、线性规划问题: ????? ? ?≥≤+≤+≤++=0 ,13119241171289..68max 2121212121x x x x x x x x t s x x z (1) 给出原始代码;(2) 计算结果(包括灵敏度分析,求解结果粘贴); (3) 回答下列问题(手写): a ) 最优解及最优目标函数值是多少; b ) 资源的对偶价格各为多少,并说明对偶价格的含义; c ) 为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件?这时目标函数值将是多少? d ) 对x 2的目标函数系数进行灵敏度分析; e ) 对第2个约束的约束右端项进行灵敏度分析; f ) 结合本题的结果解释“Reduced Cost ”的含义。 对偶价格就是说 约束方程右端变量增加1对目标函数值的影响 答案: (1)代码 max =8*x1+6*x2; 9*x1+8*x2<=12; 7*x1+11*x2<=24; 9*x1+11*x2<=13; x1>=0; x2>=0; (2)计算结果 Global optimal solution found. Objective value: 10.66667 Total solver iterations: 2 Variable Value Reduced Cost X1 1.333333 0.000000 X2 0.000000 1.111111 Row Slack or Surplus Dual Price 1 10.66667 1.000000 2 0.000000 0.8888889 3 14.66667 0.000000 4 1.000000 0.000000

Lingo例题2

在数据声明中输入两个相连的逗号表示该位置对应的集成员的属性值未知。两个逗号间可以有空格 sets: years/1..5/: capacity; endsets data: capacity = ,34,20,,; enddata Variable Value CAPACITY( 1) 1.234568 CAPACITY( 2) 34.00000 CAPACITY( 3) 20.00000 CAPACITY( 4) 1.234568 CAPACITY( 5) 1.234568 0000000000000000000000000000000000000000000000000000000000000 init: X, Y = 0, .1; endinit Y= @log(X); X^2+Y^2<=1; Feasible solution found. Infeasibilities: 102.5814 Extended solver steps: 5 Total solver iterations: 89 Elapsed runtime seconds: 0.25 Model Class: NLP Total variables: 2 Nonlinear variables: 2 Integer variables: 0 Total constraints: 3 Nonlinear constraints: 2 Total nonzeros: 4 Nonlinear nonzeros: 3 Variable Value X 9.915569 Y 2.294106 Row Slack or Surplus 1 0.000000 2 -102.5814

lingo优化练习即详解

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 服务员数 4 3 4 6 5 6 8 8 解:(1)设1x 为雇佣的全职人数,2x 为12-1小时休息的人数,1y -5y 分别为1-5时段开始雇佣的半时人员的人数。表1为各时间段的工作人数。每个时间段的工作人数要满足题目中的要求。 表1 各时间段在工作的服务员 时间段/h 服务员 9-10 11x y + 10-11 112x y y ++ 11-12 3 11 i i x y =+? 12-1 4 121 i i x y x =+ -? 1-2 5 22 i i x y =+ ? 2-3 5 13 i i x y =+? 3-4 5 14 i i x y =+ ? 4-5 15x y + 根据每个时段满足的要求,建立模型如下:

()5 1 23 1111 1 1 4 5 5 122 11 2 3 5 1154 5 1 min 100*x 140 : (1)x y 4; (2) x 3; (3) x 4 ; (4)x x 6;(5)x 5;(6)x 6 (7)x 8;(8)x 8 3 i i i i i i i i i i y st y y y y y y y y =========++>+ >+ >-+>+ >+ >+ >+>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.某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期

lingo用法总结(精品文档)

ji例程1、 model: sets: quarters/1..4/:dem,rp,op,inv; endsets min=@sum(quarters:400*rp+450*op+20*inv); @for(quarters(i):rp<=40); @for(quarters(i)|i#gt#1: inv(i)=inv(i-1)+rp(i)+op(i)-dem(i);); inv(1)=10+rp(1)+op(1)-dem(1); data: dem=40 60 75 25; enddata end 例程2、 model: sets: quarters/1..4/:dem,rp,op,inv; endsets min=@sum(quarters:400*rp+450*op+20*inv); @for(quarters(i):rp<=40); @for(quarters(i)|i#gt#1: inv(i)=inv(i-1)+rp(i)+op(i)-dem(i);); inv(1)=a+rp(1)+op(1)-dem(1); data: dem=40 60 75 25; a=? enddata end ?LINGO总是根据“MAX=”或“MIN=”寻找目标函数,而除注释语句和TITLE语句外的其他语句都是约束条件,因此语句的顺序并不重要。 ?LINGO中函数一律需要以“@”开头 ?Lingo中的每个语句都以分号结尾 ?用LINGO解优化模型时已假定所有变量非负(除非用限定变量取值范围的函数@free或@sub或@slb另行说明)。 ?以感叹号开始的是说明语句(说明语句也需要以分号结束)) ?理解LINGO建模语言最重要的是理解集合(Set)及其属性(Attribute)的概念。 ?一般来说,LINGO中建立的优化模型可以由5个部分组成,或称为5“段” (SECTION): (1)集合段(SETS):以“ SETS:” 开始,“ENDSETS”结束,定义

lingo练习

数学规划模型及lingo 求解练习: 1.考虑下述不平衡指派问题。现有7个人指派给他们5项任务,效率矩阵如下表。约定:①一个任务只能被一个人完成;②一个人在某时刻只能做一项任务;③所 (1) lingo 代码求解, 给出最优指派以及最优值; 1. 模型的建立: 设:题干中有i 个人共要完成j 件事情,可建立以下模型: i=1,2,3…..m j=1,2,3…..n =0或1 xij=1:指派第i 人做第j 事 xij=0: 不指派第i 人做第j 事 ( cij )称为系数矩阵。 2. 详细代码: Model: SETS: Chandi/1..7/:cl; Xiaodi/1..5/:xl; ChanXiao(Chandi,Xiaodi):c,x; ENDSETS DATA: c=2 15 13 1 8 10 4 14 15 7 9 14 16 13 8 7 8 11 9 4 8 4 15 8 6 12 4 6 8 13 5 16 8 5 10; m n ij ij i=1j=1 min =c x Z ?∑∑1 1 n ij j x ==∑1 1 m ij i x ==∑ij x

[obj] min=@sum(ChanXiao:c*x); @for(Chandi(i):@sum(Xiaodi(j):x(i,j))<1); @for(Xiaodi(j):@sum(Chandi(i):x(i,j))=1); @for(Chandi(i):@sum(Xiaodi(j):c(i,j)*x(i,j))

相关主题
文本预览
相关文档 最新文档