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

LINGO练习题答案

LINGO练习题答案
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) 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 +---+≤≤≥

22122..-20,1s t

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

问如何组队可以使总效率最高?

参考答案

1、MODEL:

X1^2+2*X2^2=22;3*X1-5*X2=-9; @gin(x1);@gin(x2);

END

2、MODEL:

X1^0.5-2*x1*X2=-2;X1^2=64*X2; END

max=2*x+3*y;

4*x+3*y<=10;

3*x+5*y<=12;

END

4、MODEL:

max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1<=2*x2;x1+x2<=100;

@gin(x1); @gin(x2);

END

5、(1) MODEL:

max=x1+x2;

2*x1+x2<=6;

4*x1+5*x2<=20;

@gin(x1); @gin(x2);

END

(2) MODEL:

min=(x1-3)^2+(x2-2)^2;

x1^2+x2^2<=5;

x1+2*x2<=4;

@gin(x1); @gin(x2);

END

min=(x1+1)^2+(x2+1)^2; x1^2+x2^2<=2;

x2>=1;

END

6、(1)model:

sets:

number/1..6/:x; endsets

@for

(number(I): x(I)=2*I-1); end

(2)model:

sets:

number/1..6/:x; endsets

@for

(number(I): x(I)=I^2); end

(3)

model:

number/1..5/:x;

endsets

@for

(number(I): x(I)=1/(I*(I+1)));

end

7、(1)model:

data:

N=6;

enddata

sets:

number/1..N/:x;

endsets

data:

x=1 3 0.5 7 5 2;

enddata

maxc=@max(number(I)| I#le#5:x); end

(2) model:

data:

N=6;

enddata

number/1..N/:x;

endsets

data :

x=1 3 0.5 7 5 2;

enddata

minc=@min (number(I)| I#ge#N-3:x^2);

end

(3) model :

data :

N=6;

enddata

sets :

number/1..N/:x;

endsets

data :

x=1 3 0.5 7 5 2;

enddata

s=@sum (number(I)| I#le#N:x);

end

8、解:若第i 名队员参加第j 种泳姿比赛,则令1=ij x ;否则令0=ij x ;共有20个决策变量ij x 。第i 名队员的第j 种泳姿成绩记为ij c ,则

目标函数为:∑∑==5141min i j ij ij x

c

约束条件有:每名队员顶多能参加一种泳姿比赛

5,4,3,2,1,141=≤∑=i x j ij ; 每种泳姿有且仅有一人参加 .4,3,2,1,151==∑=j x

i ij

这样就能建立如下“0----1规划”模型:

∑∑==5141

min i j ij ij x

c s.t.

5,4,3,2,1,141=≤∑=i x j ij .4,3,2,1,151==∑=j x

i ij

.4,3,2,1,5,4,3,2,1,10===j i x ij 或

Lingo 程序如下:

sets :

row/1..4/;

col/1..5/;

links(row,col):c,x;

endsets

data :

c=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;

min =@sum (links:c*x);

@for (col(j):@sum (row(i):x(i,j))<=1);

@for (row(i):@sum (col(j):x(i,j))=1);

@for (links:@bin (x));

答:14433221,,,x x x x 均等于1,即,依次取第2个人王、第3个人张、第4个人刘、第1个人李参加蝶泳、仰泳、蛙泳、自由泳,成绩为253.2秒。

9、解:八个季度的需求量数组记为xq ,则 xq=[40,60,75,25,30,65,50,20]. 类似地,用数组zc, jb, kc 分别表示八个季度的正常生产量、加班生产量、季度末库存量。

目标函数是全部费用之和:.))(20)(450)(400(min 8

1∑=++i i kc i jb i zc

约束条件:生产能力 8,...,2,1,40)(=≤i i zc ;

数量平衡 .

8,...,3,2),()()()1()(),1()1()1(10)1(=-++-=-++=i i xq i jb i zc i kc i kc xq jb zc kc 以上是模型。怎样用Lingo 编程呢? 把下标的范围当作集合,本题的集合是{1,2,3,4,5,6,7,8};定义在集合上的一个个数组,都分别称为该集合的属性,本题这个集合有四个属性,分别是xq,zc,jb,kc .

先看本题的Lingo 程序,再看注解:

model:

sets:

jihe/1..8/:xq,zc,jb,kc;

endsets

xq=40,60,75,25,30,65,50,20;

enddata

min=@sum(jihe:400*zc+450*jb+20*kc);

@for(jihe:zc<=40);

kc(1)=10+zc(1)+jb(1)-xq(1);

@for(jihe(i)|i#gt#1:kc(i)=kc(i-1)+zc(i)+jb(i)-xq(i));

end

10、解:构造一个效率集合xljh ,其属性xl 就是上表中那28个数据,如:xl(S1,S5)=2, xl(S3,S7)=9。 用y(Si,Sj)=1表示Si 与Sj 组成一个队;用y(Si,Sj)=0表示Si 与Sj 不是一个队。

目标函数:∑≤<≤?81),(),(max

j i Sj Si y Sj Si xl

约束条件:每名学生必须且只能参加某一个队,即,对于第k 名同学而言,他与其他人所组成的队的个数必须等于1,故有

1),(81=∑≤<≤==j i k j k i Sj Si y 或, k=1,2,3,…,8

另外,10),(或=Sj Si y

(以上就是本题的优化模型,是“0----1线性规划”)

model:

sets:

xsjh/1..8/;

xljh(xsjh,xsjh)|&2#gt#&1:xl,y;

endsets

xl=9,3,4,2,1,5,6,1,7,3,5,2,1,4,4,2,9,2,1,5,5,2,8,7,6,2,3,4;

enddata

max=@sum(xljh(i,j):xl(i,j)*y(i,j));

@for(xsjh(k): @sum(xljh(i,j)|(i#eq#k)#or#(j#eq#k):y(i,j))=1);

@for(xljh(i,j):@bin(y(i,j)));

end

注解:(1)根据基本集合xsjh构造效率集合xljh时,我们只需要二元对(i,j) 中那些当i

(2)过滤命令(i#eq#k)#or#(j#eq#k)表示i=k或j=k .

11

12、

12、

lingo实验报告材料

一、实验名称:推销员指派问题 二、实验目的及任务: 1、掌握Lingo 软件的使用方法 2、编写简单的Lingo 程序 3、解决Lingo 中的最优指派问题 三、实验容 1、问题描述 一个公司要分派5个推销员去5个地区推销某种产品,5个推销员在各个地区推销这种产品的预期利润如下表所示。若每个推销员只能去一个地区。应如何分派这5个推销员才能使公司的利润为最大? 2、模型建立 决策变量:设???=个地区个人去第不指派第个地区个人去第指派第j i 0j i 1ij x (i,j=1,2,3,4,5) 目标函数:设总利润为z ,第i 个人去第j 个地区的利润为A ij (i,j=1,2,3,4,5) ,假设A ij 为指派矩阵,则 Max ∑∑===5 15 1i j ij ij x A z 约束条件: 1.第j 个地区只有一个人去: 15 1 =∑=i ij x (j=1,2,3,4,5) 2.第i 个人只去一个地区: 15 1 =∑=j ij x (i=1,2,3,4,5) 由此得基本模型:

Max ∑∑===515 1 i j ij ij x A z S,t, 15 1 =∑=i ij x (j=1,2,3,4,5) 15 1 =∑=j ij x (i=1,2,3,4,5) 10或=ij x (i,j=1,2,3,4,5) 3、Lingo 程序 (一)常规程序 Lingo 输入: model : max =1*x11+8*x12+9*x13+2*x14+1*x15+5*x21+6*x22+3*x23+10*x24+7*x25+3*x31+10*x32+4*x33+11*x34+3*x35+7*x41+7*x42+5*x43+4*x44+8*x45+4*x51+2*x52+6*x53+3*x54+9*x 55; x11+x12+x13+x14+x15=1; x21+x22+x23+x24+x25=1; x31+x32+x33+x34+x35=1; x41+x42+x43+x44+x45=1; x51+x52+x53+x54+x55=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; x15+x25+x35+x45+x55=1; end Lingo 输出: Global optimal solution found. Objective value: 45.00000 Infeasibilities: 0.000000 Total solver iterations: 8 Variable Value Reduced Cost

实验项目二(附答案)

《税法》实验项目二 班级: 姓名: 学号:

一、单项选择题 1.纳税人委托加工应税消费品,其纳税义务发生时间为()。 A.委托行为发生的当天 B.向加工企业支付加工费的当天 C.纳税人提货的当天 D.向加工企业发出主要原料的当天 2.甲外贸进出口公司本月进口200辆小轿车,每辆车关税完税价格为人民币42.9 万元,缴纳关税12万元。已知小轿车适用的消费税税率为8%。该批进口小轿车应缴纳的消费税为()万元。 A.746.09 B.878.40 C.954.78 D.686.40 3.甲公司为增值税一般纳税人,本年7月从国外进口一批高档化妆品,海关核定的关税完税价格为60万元。已知进口关税税率为26%,消费税税率为15%,增值税税率为13%。该公司进口环节应纳增值税为()万元。 A.7.8 B.9.83 C.11.56 D.8.97 4.甲公司为增值税一般纳税人,外购高档护肤类化妆品生产高档修饰类化妆品,本年7月份生产销售高档修饰类化妆品取得不含税销售收入200万元。该公司7月初无高档护肤类化妆品库存,7月购进高档护肤类化妆品200万元,7月底库存高档护肤类化妆品20万元。已知高档化妆品适用的消费税税率为15%。该公司本年7月应纳消费税为()。 A.200×15%-(200-20)×15%=3(万元) B.200×15%-20×15%=27(万元) C.200×15%=30(万元) D.200×15%-200×15%=0 5.我国消费税对不同应税消费品采用了不同的税率形式。下列应税消费品中,适用复合计税方法计征消费税的是()。 A.啤酒 B.白酒 C.烟丝 D.摩托车 6.下列各项中,应征收消费税的是()。 A.农用拖拉机 B.电动汽车 C.游艇 D.调味料酒 7.甲公司为增值税一般纳税人,外购香水精生产香水,本年7月生产销售香水取得不含税销售收入80万元。该公司7月初库存香水精7万元,7月购进香水精60万元,7月底库存香水精20万元。已知外购的香水精和自产的香水均为高档化妆

lingo教程 和MATLAB入门教程

LINGO 使用教程 LINGO 是用来求解线性和非线性优化问题的简易工具。LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。 §1 LINGO 快速入门 当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO 中求解如下的LP 问题: ,6002100 350. .32min 21211 212 1≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。产销单位运价如

model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @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 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 然后点击工具条上的按钮即可。 为了能够使用LINGO的强大功能,接着第二节的学习吧。 §2 LINGO中的集 对实际问题建模的时候,总会遇到一群或多群相联系的对象,比如工厂、消费者群体、交通工具和雇工等等。LINGO允许把这些相联系的对象聚合成集(sets)。一旦把对象聚合成集,就可以利用集来最大限度的发挥LINGO建模语言的优势。 现在我们将深入介绍如何创建集,并用数据初始化集的属性。学完本节后,你对基于建模技术的集如何引入模型会有一个基本的理解。

lingo实验心得体会[工作范文]

lingo实验心得体会 篇一:LINGO软件学习入门实验报告 LINGO实验报告 一.实验目的 1、熟悉LINGO软件的使用方法、功能; 2、学会用LINGO软件求解一般的线性规划问题。 二.实验内容 1、求解线性规划: max z?x1?2x2 ?2x1?5x2?12 ??x1?2x2?8 ?x,x?0?12 2、求解线性规划: min z?20x1?10x2 ?5x1?4x2?24 ??2x1?5x2?5 ?x,x?0?12 3、假设现在一个计算机厂商要生产两种型号的PC:标准型和增强型,由于生产线和劳动力工作时间的约束,使得标准型PC最多生产100台。增强型PC最多生产120台;一共耗时劳动力时间不能超过160小时。已知每台标准型PC 可获利润$100,耗掉1小时劳动力工作时间;每台增强型PC 可获利润$150,耗掉2小时劳动力工作时间。请问:该如何

规划这两种计算机的生产量才能够使得最后获利最大? 三. 模型建立 1、求解线性规划: max z?x1?2x2 ?2x1?5x2?12 ??x 1?2x2?8 ??x1,x2?0 2、求解线性规划: min z?20x1?10x2 ?5x1?4x2?24 ?2x ?1?5x2?5 ?x1,x2?0 3、设生产标准型为x1台;生产增强型x2台,则可建立线性规划问题 数学模型为 max z?100x1?150x2 ??x1?100 ?x?120 ?2 ?x1?2x2?160

??x1,x2?0 四. 模型求解(含经调试后正确的源程序) 1、求解线性规划: model: max=x1+2*x2; 2*x1+5*x2>12; x1+2*x25; End 结果显示: 3、求解线性规划: model: mAX=100*x1+150*x2; x1+2*x2篇二:lingo上机实验报告 重庆交通大学 学生实验报告 实验课程名称专业综合实验Ⅰ 开课实验室交通运输工程实验教学中心 学院交通运输年级二年级专业班交通运输1班学生姓名学号631205020 开课时间20XX 至 20XX 学年第2学期 篇三:运筹学上机实践报告Southwestuniversityofscienceandtechnology

lingo入门

lingo入门教程之一--- 初识lingo ingo对于一些线性或者非线性的规划,优化问题非常有效 首先介绍一下,在lingo中运行程序时出现的页面(在工具栏点击类似靶子一样的图标便可运行) Solver status:求解器(求解程序)状态框 Model Class:当前模型的类型:LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP(以I开头表示IP,以PI 开头表示PIP) State:当前解的状态:"Global Optimum", "LocalOptimum", "Feasible", "Infeasible“(不可行), "Unbounded “(无界), "Interrupted“(中断), "Undetermined“(未确定) Object:解的目标函数值 Infeasibility:当前约束不满足的总量(不是不满足的约束的个数):实数(即使该值=0,当前解也可能不可行,因为这个量中没有考虑用上下界命令形式给出的约束) Iteration:目前为止的迭代次数 Extend solverstatus:扩展的求解器(求解程序)状态框 Solver type:使用的特殊求解程序: Bestobj :目前为止找到的可行解的最佳目标函数值 Objbound:目标函数值的界 Steps:特殊求解程序当前运行步数: Active:有效步数 Variables(变量数量): 变量总数(Total)、 非线性变量数(Nonlinear)、 整数变量数(Integer)。 Constraints(约束数量): 约束总数(Total)、

非线性约束个数(Nonlinear)。 Nonzeros(非零系数数量): 总数(Total)、 非线性项系数个数(Nonlinear)。 GeneratorMemory Used (K) (内存使用量) ElapsedRuntime (hh:mm:ss)(求解花费的时间) 运行之后页面介绍(这里的运行界面并不是与上面的运行过程中出现界面一致,即并非来自于同一个程序运行出现) 第一行表示在经过457次迭代后得到局部最优解 第二行给出该局部最优解的具体值 下面给出取局部最优值时,x1 x2的具体取值 这里求解的是局部最优解,如果想求出全局最优解,可以进行页面设置:lingo --> option --> global solver --> 勾选use global solver 对于运行结果也可以另存为,格式一般为ldt,因为有时候对于求解一个问题,或许需要运行很久才可以得出结果,所以没必要每次为了看结果都运行,而是运行成功一次后便把结果保存下来 注意事项 LINGO总是根据“MAX=”或“MIN=”寻找目标函数;

lingo实验报告 学习lingo心得

隆展实业发展有限公司产品生产计划的优化研究 问题分析 题目要求在不追加产值的情况下实现产值最大化,所以采用线性规划模型。 求解思路 首先指出本例中的一个错误:最后一张表——原材料的成本中 对AZ-1的成本计算有误,根据前几张表,AZ-1的成本应为96.0625 1、首先计算出每种产品的利润=出售价格-成本 例生产一件AZ-1的利润为350-96.0625=253.9375 经计算得下表 产品利润单位:元 2、由题得,公司目前所能提供的最大流动资金为36万元,且不准备追加投入,所以要求在调整后生产结构中,总的成本不得超过36万元。 3、考虑工人的工时问题 一条装配线可以装配多中零件,但每个零件要求工人的工时不同,总需求时间不得超过工人的每月的总工时。例如,在组装这项工作中,8个工人每月的总工时为2496小时, 而组装各个产品的需求时间分别为0.6,0.67,0.56,0.56,0.58,0.58。若另X1代表AZ-1的产量;X2代表BZ-1的产量;X3代表LZ-7的产量;X4代表RZ-7的产量;X5代表LR-8的产量;X6代表RZ-8的产量,则可列出不等式: 0.60*X1+0.67*X2+0.56*X3+0.56*X4+0.58*X5+0.58*X6<=2496 同理可得关于拉直及切断、剪板及折弯、焊接网胚及附件和焊接底盘工作所需工时的不等式4、题目中有提到在产品的销售方面LZ/RZ-8以其大载重量,结实坚固深得顾客的青睐,并希望能增加产量。所以解决方案中,希望RZ-8比原先的产量要多,相对的,其他产品的产量就要减少。

Lingo 程序 MAX=253.9375*X1+229.5*X2+292.5625*X3+306.5*X4+503.2125*X5+538.5*X6; 96.0625*X1+90.5000*X2+167.4375*X3+213.5000*X4+216.7875*X5+276.5000*X6<=360000; 0.60*X1+0.67*X2+0.56*X3+0.56*X4+0.58*X5+0.58*X6<=2496; 0.30*X1+0.31*X2+0.325*X3+0.34*X4+0.33*X5+0.35*X6<=624; 0.90*X1+0.90*X2+0.95*X3+1.00*X4+1.01*X5+1.05*X6<=1872; 1.30*X1+1.00*X2+1.25*X3+1.25*X4+1.35*X5+1.35*X6<=2496; 0.76*X1+0.76*X2+0.80*X3+0.82*X4+0.82*X5+0.85*X6<=1560; X6>=240; X5<=320; X4<=480; X3<=560; X2<=80; X1<=160; 结果分析 Global optimal solution found at iteration: 6 Objective value: 741998.8 Variable Value Reduced Cost X1 160.0000 0.000000 X2 80.00000 0.000000 X3 0.000000 33.53187 X4 0.000000 109.3038 X5 320.0000 0.000000 X6 969.3237 0.000000 Row Slack or Surplus Dual Price 1 741998.8 1.000000 2 0.000000 1.947559 3 1598.592 0.000000 4 106.3367 0.000000 5 315.0101 0.000000 6 467.4130 0.000000 7 291.2749 0.000000 8 729.3237 0.000000

实验二答案

实验二数据描述(基本数据类型及运算符)答案 编程及调试实例2-1改正错误后的程序 #include void main( ) { int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf("fahr = %d, celsius = %d\n", fahr, celsius); } 编程及调试练习2-1:源程序 (1) #include void main( ) { int celsius, fahr; fahr = 150; /*只改变fahr的值*/ celsius = 5 * (fahr - 32) / 9; /*celsius = 5 * (fahr - 32) / 9与上面的实例完全一样*/ printf("fahr =%d, celsius = %d\n", fahr, celsius); } 运行程序后,输出: fahr = 150, celsius = 65 (2) #include void main( ) { int celsius, fahr; fahr = 150; /*fahr的值仍为150*/ celsius = 5*fahr / 9 - 5*32 / 9; /* celsius的值的计算方法从数学上看与(1)的完全一样*/ printf("fahr =%d, celsius = %d\n", fahr, celsius); } 运行程序后,输出: fahr = 150, celsius = 66 (3) #include void main( ) { int celsius, fahr; fahr = 150; /* fahr的值仍为150*/

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中使用集合1

例题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,因为">"是关系运算符不是逻辑运算符; @sum (V(i):x(i,j))=1;); !利用循环函数表达:当i>1(即i 从2到10)时, {x(i,j):j=1..10}的和等于1;

13170130LINGO实验报告

2014?2015学年第二学期短学期 《数学软件及应用(Lingo)》实验报告 班级数学131班姓名张金库学号13170130 成绩______________________________ 实验名称 奶制品的生产与销售计划的制定 完成日期:2015年9月3日

一、实验名称:奶制品的生产与销售计划的制定 二、实验目的及任务 1?了解并掌握LINGO的使用方法、功能与应用; 2?学会利用LINGO去解决实际中的优化问题。 三、实验内容 问题一奶制品加工厂用牛奶生产A,A2两种奶制品,1桶牛奶可以在甲类设备上用12h 加工成3kg A1,或者在乙类设备上用8h加工成4kg A?。根据市场的需求,生产A, A?全部能售出,且每千克A获利24元,每千克A2获利16元。现在现在加工场每天能的到50桶牛奶的供应,每天正式工人总的劳动时间为480h,并且甲类设备每天至多能加工1OOkg A, 乙类设备的加工能力没有限制。为增加工厂的利益,开发奶制品的深加工技术:用2h和3元加工费,可将1kg A加工成0.8kg高级奶制品B i,也可将1kg傀加工成0.75kg高级奶制品B2,每千克B1能获利44元,每千克B2能获利32元。试为该工厂制订一个生产销售计 划,使每天的净利润最大,并讨论以下问题: (1)若投资30元可以增加供应1桶牛奶,投资3元可以增加1h的劳动时间,应否做 这些投资?若每天投资150,可以赚回多少? (2)每千克高级奶制品B1,B2的获利经常有10%的波动,对制订的生产销售计划有 无影响?若每千克B获利下降10%,计划应该变化吗? (3)若公司已经签订了每天销售10kg人的合同并且必须满足,该合同对公司的利润 有什么影响? 问题分析要求制定生产销售计划,决策变量可以先取作每天用多少桶牛奶生产A,,代,再添上用多少千克A加工B1,用多少千克A加工B2,但是问题要分析B1,B2的获利对生产销售计划的影响,所以决策变量取作A1,A2,B1,B2每天的销售量更为方便。目标 函数是工厂每天的净利润一一A1,A2,B1,B2的获利之和扣除深加工费用。 基本模型

LINGO软件简介

LINGO 软件简介 LINGO 软件是一个处理优化问题的专门软件,它尤其擅长求解线性规划、非线性规划、整 数规划等问题。 一个简单示例 有如下一个混合非线性规划问题: ?????≥≤≤+++---+为整数 213 212 13213 2 2212121,;0,,210022..15023.027798max x x x x x x x x x x t s x x x x x x x 。 LINGO 程序(模型): max =98*x1+277*x2-x1^*x1*x2-2*x2^2+150*x3; x1+2*x2+2*x3<=100; x1<=2*x2; @gin (x1);@gin (x2);! Lingo 默认变量非负 (注意:@bin(x)表示x 是0-1变量;@gin(x)表示x 是整数变量;@bnd(L,x,U)表示 限制LxU ;@free(x)表示取消对x 的符号限制,即可正、可负。) 结果: Global optimal solution found. Objective value: Extended solver steps: 0 Total solver iterations: 45 Variable Value Reduced Cost X1 X2 X3 Row Slack or Surplus Dual Price 1 2 3 ———————— 非常简单! 在LINGO 中使用集合 为了方便地表示大规模的规划问题,减少模型、数据表示的复杂程度,LINGO 引进了“集合”的用法,实现了变量、系数的数组化(下标)表示。 例如:对?? ? ??? ? ==-++-==≤++∑=.,,;10)0(;4,3,2,1),()())()1()(;4,3,2,1,20)(..)} (20)(450)(400{min 4 ,3,2,1均非负INV OP RP INV I I DEM I OP I RP I INV I INV I I RP t s I INV I OP I RP I 求解程序: model : sets : mark/1,2,3,4/:dem,rp,op,inv;!也可以vmark/1..4/:dem,rp,op,inv;

实验07-2参考答案

实验七-2 字符串和数组程序设计 班级:学号:姓名:评分: 一.【实验目的】 1、熟练掌握字符串的存取和操作方法方法。 2、进一步掌握C程序的调试方法和技巧。 二.【实验内容和步骤】 1、程序调试题 A.目标:进一步学习掌握程序调试的方法和技巧。 B.内容:从键盘输入一个以回车键结束的字符串(少于80个字符),将它的内容逆向输出。例如:输入“ABCD”,输出“DCBA”。改正程序中的错误,使其实现程序的功能。(注:程序文件保存在“调试示例”文件夹中,文件名为error08_1.cpp) ①调试正确的源程序清单 #include int main( ) { int i, k, temp; char str[80]; printf("input a string: "); i = 0; while((str[i] = getchar( )) != '\n') i++; str[i] = '\0'; k = i - 1; for(i = 0; i < k; i++){ /* 调试时设置断点 */ temp = str[i]; str[i] = str[k]; str[k] = temp; k--; } /* 调试时设置断点 */ for(i = 0; str[i] != '\0'; i++) putchar(str[i]); putchar('\n'); return 0; } ②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 2、完善程序,并调试运行程序 题目(1)求字符串长度。程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇## 则全部输入结束。统计并输出每个字符串的有效长度。例如:输入:hello 12#abc+0##,表示连续输入2个字符串"hello 12"和"abc+0"。输出:8 5。(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线

LINGO软件及其应用

LINGO 软件及其应用 一、求解线性规划 例题1:目标函数:max z=2x1+3x2 约束条件:x1+2x2<=8 4x1<=17 4x2<=13 x1,x2>=0 输入语句: model: max=2*x1+3*x2; x1+2*x2<8; 4*x1<17; 4*x2<13; end 说明: 1)问题模型由MODEL:命令开始,END 结束,对简单模型可以省略。 2)目标函数必须由“min =”或“max =”开头。 3)分号是LINGO的分隔符。LINGO中的每一行都以分号结束,如果缺少,模型将无法求解。若一个命令或语句一行写不下,可以分多行写,但是,最后结束命令时,一定别忘了打个分号“;”,一行内也可写多个命令,只要每个用分号分开即可。 4)语句中乘号(*)不能省略,支持()的输入。 5)LINGO中<与<=均代表<=,>与>=也均代表>=。 6)LINGO中的注解必须用感叹号“!”开始,用分号结束。在感叹号和分号之间的所有内容都将被LINGO忽略。注释可以占据多行,也可以插入LINGO 表达式之中。 7)LINGO的命令从来不区分大小写,当你在LINGO中定义变量时,每个变量都要以26个字母开始,后面可跟数字或者下划线,最多可以是32个字符。 8)软件默认决策变量是非负的。如果需要一个变量取负数、整数或一定范

围内的值,可以通过变量限定函数加以限制。 @bin(x) 限制x为0或1 @bnd(L,x,U) 限制L≤x≤U @free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数 @gin(x) 限制x为整数 在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+∞。@free取消了默认的下界为0的限制,使变量也可以取负值。@bnd用于设定一个变量的上下界,它也可以取消默认下界为0的约束。 求解结果如下: Global optimal solution found. Objective value: 14.12500 Total solver iterations: 1 Variable Value Reduced Cost X1 4.250000 0.000000 X2 1.875000 0.000000 Row Slack or Surplus Dual Price 1 14.12500 1.000000 2 0.000000 1.500000 3 0.000000 0.1250000 4 5.500000 0.000000 例题2 一奶制品加工厂用牛奶生产A 1,A 2 两种奶制品,1桶牛奶可以在甲车 间用12小时加工成3公斤A 1,或者在乙车间用8小时加工成4公斤A 2 。根据市 场需求,生产的A 1,A 2 全部能售出,且每公斤A 1 获利24元,每公斤A 2 获利16元。 现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间480小时,并且甲车间每天至多能加工100公斤A 1 ,乙车间的加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?

lingo实验报告

lingo实验报告 以下是为大家整理的lingo实验报告的相关范文,本文关键词为lingo,实验,报告,实验,名称,推销员,指派,问题,目的,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。 一、实验名称:推销员指派问题二、实验目的及任务: 1、掌握Lingo软件的使用方法 2、编写简单的Lingo程序 3、解决Lingo中的最优指派问题 三、实验内容

1、问题描述 一个公司要分派5个推销员去5个地区推销某种产品,5个推销员在各个地区推销这种产品的预期利润如下表所示。若每个推销员只能去一个地区。应如何分派这5个推销员才能使公司的利润为最大? 2、模型建立 ?1指派第i个人去第j个地区决策变量:设xij??(i,j=1,2,3,4,5)0不指派第i个人去第j个地区?目标函数:设总利润为z,第i 个人去第j个地区的利润为A(,iji,j=1,2,3,4,5) 假设Aij为指派矩阵,则 maxz???Aijxij i?1j?155约束条件: 1.第j个地区只有一个人去: ?xi?15ij?1(j=1,2,3,4,5) 2.第i个人只去一个地区: ?xj?15ij?1(i=1,2,3,4,5) 由此得基本模型: maxz???Aijxij i?1j?155s,t, 5?xi?15ij?1(j=1,2,3,4,5) ?xj?1ij?1(i=1,2,3,4,5)

xij?0或1(i,j=1,2,3,4,5) 3、Lingo程序(一)常规程序Lingo输入: model: max=1*x11+8*x12+9*x13+2*x14+1*x15+5*x21+6*x22+3*x23+10*x24+ 7*x25+3*x31+10*x32+4*x33+11*x34+3*x35+7*x41+7*x42+5*x43+4*x4 4+8*x45+4*x51+2*x52+6*x53+3*x54+9*x55;x11+x12+x13+x14+x15=1;x 21+x22+x23+x24+x25=1;x31+x32+x33+x34+x35=1;x41+x42+x43+x44+x4 5=1;x51+x52+x53+x54+x55=1;x11+x21+x31+x41+x51=1;x12+x22+x32+x4 2+x52=1;x13+x23+x33+x43+x53=1;x14+x24+x34+x44+x54=1;x15+x25+x3 5+x45+x55=1;end Lingo输出: globaloptimalsolutionfound. objectivevalue:45.00000Infeasibilities:0.000000Totalsolveriterations:8 VariableValueReduced cost x117.000000 x120.000000 x130.000000 x140.0000000.0000001.0000000.0000007.000000 x158.000000

实验2 交互式SQL_参考答案

实验2 交互式SQL (参考答案,仅供参考,答案不唯一) 1.使用SQL语言创建下面的三个表 create table Student( Sno varchar(7) primary key, Sname varchar(10) not null, Ssex varchar(2), Sage int, Sdept varchar(20) ) create table Course( Cno varchar(10) primary key, Cname varchar(20) not null, Ccredit int, Semster int, Period int ) create table SC( Sno varchar(7), Cno varchar(10), Grade int , XKLB varchar(4), primary key(Sno,Cno), foreign key(Sno) references Student(Sno), foreign key(Cno) references Course(Cno) ) 2.在以上的三个表中,使用SQL语句插入下面的数据 insert into Student values('9512101','李勇','男','19','计算机系'); insert into Student values('9512102','刘晨','男','20','计算机系'); insert into Student values('9512103','王敏','女','20','计算机系'); insert into Student values('9521101','张立','男','22','信息系'); insert into Student values('9521102','吴宾','女','21','信息系'); insert into Student values('9521103','张海','男','20','信息系'); insert into Student values('9531101','钱小平','女','18','数学系'); insert into Student values('9531102','王大力','男','19','数学系'); insert into Course values('C01','计算机文化基础',3,1,null);

lingo简明教程

LINGO 是用来求解线性和非线性优化问题的简易工具。LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。 LINGO 快速入门 当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO 中求解如下的LP 问题: ,6002100 350. .32min 21211 212 1≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。产销单位运价如

model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @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 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 然后点击工具条上的按钮即可。 为了能够使用LINGO的强大功能,接着第二节的学习吧。 灵敏性分析(Range,Ctrl+R) 用该命令产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分析是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态,但是默认是不激活的。为了激活灵敏性分析,运行LINGO|Options…,选择General Solver Tab,在Dual Computations列表框中,选择Prices and Ranges选项。灵敏性分析耗费相当多的求解时间,因此当速度很关键时,就没有必要激活它。 下面我们看一个简单的具体例子。 例5.1某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、木工和漆工。生产数据如下表所示:

LINGO软件简介

LINGO 软件简介 LINGO 软件是一个处理优化问题的专门软件,它尤其擅长求解线性规划、非线性规划、整数规划等问题。 一个简单示例 有如下一个混合非线性规划问题: ?????≥≤≤+++---+为整数 213 212 13213 2 2212121,;0,,210022..15023.027798max x x x x x x x x x x t s x x x x x x x 。 LINGO 程序(模型): max =98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2+150*x3; x1+2*x2+2*x3<=100; x1<=2*x2; @gin (x1);@gin (x2);! Lingo 默认变量非负 (注意:@bin(x)表示x 是0-1变量;@gin(x)表示x 是整数变量;@bnd(L,x,U)表示 限制L ≤x ≤U ;@free(x)表示取消对x 的符号限制,即可正、可负。) 结果: Global optimal solution found. Objective value: 9561.200 Extended solver steps: 0 Total solver iterations: 45 Variable Value Reduced Cost X1 6.000000 -76.70000 X2 31.00000 -151.2000 X3 16.00000 -150.0000 Row Slack or Surplus Dual Price 1 9561.200 1.000000 2 0.000000 0.000000 3 56.00000 0.000000 ———————— 非常简单! 在LINGO 中使用集合 为了方便地表示大规模的规划问题,减少模型、数据表示的复杂程度,LINGO 引进了“集合”的用法,实现了变量、系数的数组化(下标)表示。

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