数学建模与LINGO用法1

合集下载

数学建模中lingo的使用

数学建模中lingo的使用

20桶牛奶生产A1, 30桶生产A2,利润3360元。
首页 上页 下页 返回
结果解释
OBJECTIVE FUNCTION VALUE
max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480; 3*x1<=100;
1)
3360.000
VARIABLE
X1 X2
VALUE
Variable X1 X2 Row 1 2 3 4
Value 16.80000 22.30000
Reduced Cost 0.000000 0.000000
Slack or Surplus Dual Price 229.1000 1.000000 0.000000 2.200000 0.000000 0.1000000 53.90000 0.000000
首页上页返回下页资料仅供参考1桶桶牛奶3公斤a112小时8小时4公斤a2或或获利24元公斤获利16元公斤x1桶牛奶生产a1x2桶牛奶生产a2获利243x1获利164x2原料供应5021??xx劳动时间48081221??xx加工能力10031?x决策变量目标函数216472xxzmax??每天获利约束条件非负约束021?xx线性规划模型lp时间480小时至多加工100公斤a150桶牛奶每天首页上页返回下页资料仅供参考模型求解图解法x1x20abcdl1l2l3l4l55021??xx48081221??xx10031?x021?xx约束条件50
首页
上页
下页
返回
Lingo中的集
Lingo中集的定义语法: setname/member_list/:attribute_list; 说明: setname为集的名称; /member_list/为成员列表; attribute_list为属性列表。

Lingo软件与数学建模

Lingo软件与数学建模
我们给于以下解释:
变量数目:变量总数 (Total)、非线型变量 数(Nonlinear)、整数 变量数(Integer)
约束变量:约束总数 ( Total )、非线性约束 个数(Nonlinear)
非线性系数数量:总数 ( Total )、非线性项的 系数个数(Nonlinear)
内存使用量:单位为千字节
数据多,咋办?
value=1,1.2,0.9,1.1;
enddata
max=@sum(goods:weight*value);
@for(goods:@bin(x));
end
游泳
四名同学的混合泳接 力赛的四种成绩如左 表所示,确定如何分 配使成绩最佳。
蛙蝶自仰 泳泳由泳

甲 99 60 59 73
线性规划
二次规划
非线性规划
LINGO软件的基本操作
双击快捷方式 即可计入程序编辑界面
Lingo软件介绍
➢解决一个简单的线性规划(LP)问题
max z 2x 3y 4x 3y 10
s.t. 3x 5y 12 x, y 0
LINGO软件介绍
点击图标
运行,屏幕上显示运行状态窗口如下: 对于LINGO运行状态窗口,
基 @EXP(X):指数函数(以自然对数e为底),返回eX的值
本 数 学
@ LOG(X):自然对数函数,返回X的自然对数值; @POW(X,Y):指数函数,返回XY的值;
函 @SQR(X):平方函数,返回X2的值;
数 @SQRT( X ):平方根函数,返回X的平方根;
@FLOOR(X):取整函数,返回X的整数部分(向靠近0 的方向取);
@GIN(X):限制X为整数.
0-1规划(线性规划)

第6讲 Lingo在数学建模中的作用

第6讲 Lingo在数学建模中的作用

LINGO软件陕西铁路工程职业技术学院赵增逊2014年10月18日主要内容1.LINGO简介2.LINGO中建模语言(集合、运算符和函数等)3.LINGO编程实例1.1LINGO软件简介(1)美国芝加哥(Chicago)大学的Linus Schrage(莱纳斯.施拉盖)教授于1980年前后开发。

(2)LINGO: Linear Interactive General Optimizer (线性交互式通用优化器)。

(3)用来求解的优化模型(连续优化和整数规划(IP))。

类型:线性规划(LP)、二次规划(QP)、非线性规划(NLP)。

1.2 LINDO/LINGO软件能求解的模型优化线性规划非线性规划二次规划连续优化整数规划LINDOLINGO1.3 LINGO的特点(1)求解线性规划问题(2)求解非线性规划问题(3)非线性方程组(4)输入模型简练直观(5)运行速度快、计算能力强1.4 学习LINGO 的要求 需要掌握:软件操作基本语法结构掌握集合(SETS)的应用 正确阅读求解报告 正确理解求解状态窗口 学会设置基本的求解选项(OPTIONS) LINGO: Linear Interactive General Optimizer 求解数学规划问题Min Z = f (x)s.t x ∈D (⊂Rn )Lingo软件的主窗口(用户界面) 所有Lingo窗口都在这个窗口内状态行(最左边显示“Ready”表示“准备就模型窗口(Model Window)用于输入LINGO优化模型(即LINGO程序)当前光标的位置当前时间1.5 LINGO软件界面1.新建(New )单击“新建”按钮或直接按F2键可以创建一个新的“Model ”窗口。

在这个新的“Model ”窗口中能够输入所要求解的模型。

2.打开(Open )单击“打开”按钮或直接按F3键可以打开一个已经存在的文本文件。

这个文件可能是一个Model 文件。

lingo基本用法

lingo基本用法

lingo基本用法以下是 9 条关于“lingo 基本用法”的内容:1. 嘿,你知道吗,lingo 里的变量定义可简单啦!就像给东西起个名字一样自然。

比如说,咱要算一堆苹果的数量,那就可以设个变量叫apple_num 呀,这不就清楚明白啦!2. 哇塞,lingo 的约束条件就像是给问题加上规矩。

就好比说,规定一个房间最多能进 10 个人,这就是个约束呀。

比如限制某种资源不能超过多少,lingo 就能很好地处理呢!3. 哎呀呀,lingo 的目标函数那可重要了!这就好比是你要去追求的目标。

比如你想让利润最大化,那目标函数就是让利润相关的表达式达到最大呀!像算怎么卖东西能赚最多钱,lingo 就能帮你找到答案哟!4. 嘿,lingo 的表达式书写也不难呢!就像写个数学式子一样。

比如 2x +3y 这么简单明了。

要计算一些关系,用它来写表达式再合适不过了!5. 哇哦,lingo 里的集合定义多有意思啊!像是把一群相关的东西归到一起。

比如把不同类型的商品归成一个集合,然后对它们进行统一的处理呀,是不是很方便呀?6. 哎呀,lingo 的求解命令一敲,就等着答案出来啦!就像你按下按钮,机器就开始工作一样。

你看,多神奇啊,一下子就知道结果了呢!7. 嘿,lingo 还能处理复杂的数据呢!就像一个聪明的小助手,不管多乱的数据它都能理清楚。

比如算一大堆乱七八糟数字的关系,lingo 绝对能应付得来呀!8. 哇,lingo 的模型建立虽然要动点脑筋,但一旦建好了,那可太好用啦!就跟盖房子一样,辛苦一点,盖好了住着就舒服啦。

你想想,自己建的模型能用起来,多有成就感呀!9. 哎呀呀,掌握了 lingo 的基本用法,那真的是能解决好多问题呢!不管是算数量还是优化方案,都不在话下。

所以呀,还不赶紧去学学,让它为你服。

数学建模-(货机装运lingo)

数学建模-(货机装运lingo)

数学建模-(货机装运lingo)货机装运是指将货物从一个起点运输到一个终点,在这个过程中需要考虑到货物的重量、体积、运输方式等多种因素。

在货机装运过程中,一个关键问题是如何最大化运载效率,即在保证运输安全和合法的前提下,尽可能地提高货机的装载量,从而降低单位运输成本。

在数学建模中,可以使用lingo等工具进行货机装运的优化。

具体来说,可以将该问题抽象为一个数学模型,以最大化货机的装载量为目标函数,同时考虑到运输安全、货物重量、体积等约束条件。

下面以一个具体例子来说明如何使用lingo进行货机装运的优化:假设有一架货机,其载重量为10000公斤,可以装载两种货物A和B,每种货物的重量和体积如下:货物类型重量(公斤)体积(立方米)A 600 1.5B 400 0.8同时,从起点到终点的运输费用如下:货物类型运输费用(元/公斤)A 10B 15要求在保证运输安全和合法的前提下,最大化货机的装载量,即:subject to:A +B <= 10000(装载量不超过10000公斤)其中,A和B表示货机装载的货物A和B的数量,V是货机的装载体积,运输费用是由货物类型和运输距离等因素决定的,这里简化为一个固定值。

使用lingo进行求解的过程如下:1.首先,在lingo中创建一个新的模型文件,并定义目标函数和约束条件:2.对模型进行求解,并设置模型参数:model:solve;parameters:V = 15;end;在上述代码中,V表示货机的装载体积,这里假设为15立方米。

solve表示对模型进行求解,通过设置end来结束参数定义。

3.对求解结果进行分析和优化,例如考虑不同装载体积下的最优解:for V := 15 to 20 dobeginwriteln('Optimal value for V=',V,': ',model.obj);在以上代码中,for循环遍历不同的装载体积值(15到20),分别求解模型并输出优化结果。

Lingo软件在数学建模竞赛中的应用word精品文档9页

Lingo软件在数学建模竞赛中的应用word精品文档9页

Lingo软件在数学建模竞赛中的应用[收稿日期] 2010-06-20[基金项目] 福建交通职业技术学院科技发展基金(Ky1001)。

数学建模(Mathematical Modeling)是对现实世界的一个特定对象,为了一个特定目的,根据特有的内在规律,作出一些必要的简化假设,运用适当的数学工具,得到一个数学结构的过程[1]。

1 非线性规划模型历年全国大学生数学建模竞赛都需解决最优生产计划、最优分配最优设计、最优决策、最佳管理等较为复杂的非线性规划问题,模型由决策变量、目标函数、约束条件三个要素组成,其计算量较大,可用Lingo软件求解。

2006“高教社杯”全国大学生数学建模竞赛C题[3]第二小题,设易拉罐是一个正圆柱体,什么是它的最优设计?经测量得圆柱的上底厚度为a=0.036 cm、下底厚度为c=0.040 cm、圆柱侧壁厚度为b=0.012 cm?А?悸且桌?罐设计美观性、便于把握以及材料节省等因素,于是建立目标规划模型如下:目标函数:minW=b×2πRh+(a+c)πR2约束条件:V=πR2>3552R/h=0.618πr2≤18.56,h≥8.71R>0,h>0,a=0.036,b=0.0 12利用Lingo8.0编程如下:Model:min=b*2*3.14159*R*h+(a+c)*3.14159*R^2;!以上是目标函数,以下为约束条件;3.14159* R^2 * h>355;2*R/h=0.618;3.14159*R^2=18.56;h>=8.71;R>0;h>0;a=0.036;c=0.040;b=0.012;EndLingo以语句Model开始,以语句End结束,这两个语句单独成一行。

语句分为集合定义部分、数据初始化部分、目标函数、约束条件部分,这几个部分的先后次序无关紧要。

min开头的语句表示求目标函数最小值。

“!”开头的语句是注释语句,Lingo不作运行,每条中间语句必须以“;”号作为结尾。

LINGO使用说明(比较简单)

LINGO使用说明(比较简单)
a,b,c= @OLE (‘ E:\DATA ’ , ‘ DA ’ , ‘ DB ’ , ‘ DC ’ ); ENDDATA MAX=@sum( xb1(i) : x(i) ); @for( xb2(i):
@sum( xb1(j) : a(i,j)*x(j)) +c(i) <= b(i);
); 同时我们在E盘新建了一个名为DATA.XLS的EXCLE文件;关于 EXCLE的使用,这里不更多说明。需要指出的是‘ DA ’ , ‘ DB ’ , ‘ DC ’是EXCLE中对一系列单元格的命名,即先选中某个一维或多维单元格 区域,然后再在显示单元格行列坐标的文本框中写入对这个区域的命 名,再回车确认。这样就可以通过这个命名来控制访问EXCLE的数据 了。至于另一种操作方法请查找相关的help文件。 以上只是介绍了LINGO基本的知识,上面的程序未经调试,可能存 在一些问题!还有希望大家能尽可能使用help文件,在其中有着详细的 解答!
相应Lingo代码如下: @max( xb1( i ) : b( i )*c( i ) ) <=33 ;
同样MAX语句也可以用于多维变量。 4.MIN语句:
MIN语句的功能是从一组取值与下标有关的表达式中返回它们 的最小值。用法与MAX的相同。
三.EXCEL电子表格接口
在你解决一个模型的时候,或许会有大量的数据要整合到你的 代码中去,而这些数据大部分时候会被保存在电子表格中。而且 EXCEL也是用来处理你所得到的数据较好的一个选择。出于上述原
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗 口:
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将 被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的 窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实 现。 示例:求解线性规划问题:

LINGO使用说明

LINGO使用说明

LINGO使用说明一、LINGO的基本特性1.建模语言:LINGO使用一种直观的建模语言,被称为LINGO语言,它使用简洁的语法和自然语言类似的表达方式,使用户能够轻松地描述问题。

2.线性优化:LINGO支持线性规划(LP)和整数线性规划(ILP),它的线性优化功能包括线性约束、线性目标函数和变量定义,可以解决诸如生产优化、资源分配等问题。

3.非线性优化:LINGO还支持非线性规划(NLP)和全局优化(GLO),可以解决包括非线性约束和非线性目标函数的问题。

它提供了多种求解方法和算法,如牛顿法、逐次线性规划等。

4.约束和限制:LINGO能够处理各种类型的约束和限制,包括等式约束、不等式约束、逻辑约束等。

用户可以根据具体问题定义约束,LINGO会自动处理约束的完整性和一致性。

5.求解器:LINGO内置了一系列高效的求解器,如线性规划求解器、非线性规划求解器、整数规划求解器等。

用户可以根据问题的复杂程度选择最适合的求解器。

6.结果分析:LINGO可以生成详细的结果报告,包括优化解、约束条件、目标函数值等。

用户可以通过结果报告来分析问题的解决方案,做出决策。

二、LINGO的使用方法2.创建模型:在LINGO中,用户需要先创建一个模型文件,来描述问题。

可以通过鼠标点击“新建模型”按钮或选择文件菜单中的“新建”选项来创建一个新的模型文件。

3.定义变量:在模型文件中,用户可以定义变量。

变量可以是整数、二进制或连续的,并为每个变量分配一个名称、类型和取值范围。

4.定义目标函数:在模型文件中,用户可以定义一个目标函数。

目标函数可以是线性的或非线性的,并定义在变量上。

5.定义约束:在模型文件中,用户可以定义约束。

约束可以是线性的或非线性的,并定义在变量上。

用户需要通过约束来限制变量的取值范围。

6.设置求解器:在模型文件中,用户可以选择合适的求解器来解决问题。

LINGO提供了多种求解器,用户可以根据问题的复杂程度选择最适合的求解器。

LINGO在数学建模中的应用

LINGO在数学建模中的应用

一、LINGO简介LINGO[1]是美国LINDO系统公司开发的求解数学规划系列软件中你的一个,它的主要功能是求解大型线性、非线性和整数规划问题,LINGO的不同版本对模型的变量总数、非线性变量数目、整型变量数目和约束条件的数量做出不同的限制.LINGO的主要功能特色为:(1)既能求解线性规划问题,也有较强的求解非线性规划问题的能力;(2)输入模型简练直观;(3)运行速度快、计算能力强.(4)内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型;(5)将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;(6)能方便地与EXCEL、数据库等其他软件交换数据.LINGO像其他软件一样,对他的语法有规定,LINGO的语法规定如下:(1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示;(2) 每个语句必须以字母开头,由字母、数字和下划线所组成,昌都不超过32个字符,不区分大小写;(3)每个语句必须以分号“;”结束,每行可以有多个语句,语句可以跨行;(4)如果对变量的取值范围没有特殊说明,则默认所有决策变量都非负;(5)LINGO模型以语句“MODEL”开头,以语句“END”结束,对于比较简单的模型,这这两个语句可以省略.LINGO提供了五十几个内部函数,使用这些函数可以大大减少编程工作量,这些函数都是以字符@开头,下面简单介绍其中的集合操作函数和变量定界函数及用法.集合是LINGO建模语言中最重要的概念,使用集合操作函数能够实现强大的功能,LINGO 提供的常用集合操作函数有@FOR(s:e)、@SUM(s:e)、@MAX(s:e)、@MIN(s:e)等.@FOR(s:e)常用在约束条件中,表示对集合s 中的每个成员都生成一个约束条件表达式,表达式的具体形式由参数e 描述;@SUM(s:e) 表示对集合s 中的每个成员,分别得到表达式e 的值,然后返回所有这些值的和;@MAX(s:e) 表示对集合s 中的每个成员,分别得到表达式e 的值,然后返回所有这些值中的最大值;@MIN(s:e) 表示对集合s 中的每个成员,分别得到表达式e 的值,然后返回所有这些值中的最小值.LINGO 默认变量的取值可以从零到正无穷大,变量定界函数可以改变默认状态,如对整数规划,限定变量取整数,对0-1规划,限定变量取0 1或.LINGO 提供的变量定界函数有:@BIN(X)、@BND(L,X,U)、@GIN(X)、@FREE(X).@BIN(X)限定X 为0或1,在0-1规划中特别有用;@GIN(X)限定X 为整数,在整数规划中特别有用;@BND(L,X,U)限定L <X <U,可用作约束条件;@FREE(X)取消对X 的限定,即X 可以取任意实数.二、LINGO 在线性规划中的应用具有下列三个特征的问题称为线性规划问题(Linear program )[2]简称LP 问题,其数学模型称为线性规划(LP)模型.线性规划问题数学模型的一般形式为:求一组变量(1,2,,)j x j n = 的值,使其满足1122max(min),n n z c x c x c x =+++2111122111211222221122***.0,1,2,,,,..n j n n n n nn nn n n x j n a x a x a x b a x a x a x b s t a x a x a x b ⎧⎪⎪⎪⎨⎪⎪≥=⎪⎩+++++++++式中“*”代表“≥”、“ ≥”或“=”.上述模型可简写为1max(min),njj j z cx ==∑1*0,1,2,,,1,2,,..nij j j ji a x x j n b i m s t =⎧⎪⎨⎪≥=⎩=∑其中,变量j x 称为决策变量,函数1njj j z cx ==∑称为目标函数,条件1*nj j i j c x b =∑称为约束条件,0j x ≥ 称为非负约束.在经济问题中,又称j c 为价值系数,i b 为资源限量. 线性规划在科学决策与经营管理中实效明显[3],但是对于规模较大的线性模型,其求解过程非常繁琐,不易得出结果.而 LINGO 中的内部集合函数有@FOR(s:e)、@SUM(s:e)、@MAX(s:e)、@MIN(s:e)等,可以用这些集合函数使程序编程简单可行,下面举例说明.例1 某工厂有两条生产线,分别用来生产M 和P 两种型号的产品,利润分别为200元每个和300元每个,生产线的最大生产能力分别为每日100和120,生产线没生产一个M 产品需要1个劳动日(1个工人工作8小时称为1个劳动日)进行调试、检测等工作,而每个P 产品需要2个劳动日,该工厂每天共计能提供160个劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大?解 设两种产品的生产量分别为1x 和2x ,则该问题的数学模型为:目标函数 12max 200300z x x =+约束条件212100,120,160,0,1,2.ix x x x x i ≤⎧⎪≤⎪⎨+≤⎪⎪≥=⎩ 编写LINGO 程序如下:MODEL:SETS:SHC/1,2 /:A,B,C,X; YF/1,2,3 /:J;ENDSETSDATA:A=1,2 ; B=100,120; C=200,300;ENDDATAMAX=@SUM(SHC:C*X);@FOR(SHC(I):X(I)<B(I)); @SUM(SHC(I):A(I)*X(I))<=160;END程序运行结果如下Global optimal solution found.Objective value: 29000.00 Total solver iterations: 0 Variable Value Reduced CostA( 1) 1.000000 0.000000A( 2) 2.000000 0.000000B( 1) 100.0000 0.000000B( 2) 120.0000 0.000000C( 1) 200.0000 0.000000C( 2) 300.0000 0.000000X( 1) 100.0000 0.000000X( 2) 30.00000 0.000000J( 1) 0.000000 0.000000J( 2) 0.000000 0.000000J( 3) 0.000000 0.000000Row Slack or Surplus Dual Price 1 29000.00 1.000000 2 0.000000 50.00000 3 90.00000 0.000000 4 0.000000 150.0000最优解为12100,30,x x ==最优值为29000.00z =.即每天生产100个M 产品30个P 产品,可获得29000元利润.三、LINGO 在整数规划和0-1规划中的应用1 求解整数规划整数规划[4]分为整数规划和混合整数规划,要求全部变量都为非负整数的数学规划称为纯整数规划,只要求部分变量为非负整数的数学规划称为混合整数规划.下面只讨论约束条件和目标函数均为线性的整数规划问题,即整数线性规划问题(以下简称整数规划,记为ILP ),其数学模型的一般形式是()1m ax m in njj j z cx ==∑,()()11,2,,..01,2,,nij j i j j j a x b i n s t x j n x =⎧≤=⎪⎪⎪≥=⎨⎪⎪⎪⎩∑ 全为整数或部分为整数。

lingo的语法规则

lingo的语法规则

lingo的语法规则Lingo是一种优化建模语言,它遵循一定的语法规则。

以下是一些Lingo的语法规则:1. 变量声明: 在Lingo中,变量需要在使用之前声明。

变量可以是连续的实数、整数或者集合。

2. 目标函数: 目标函数是Lingo模型的核心部分,用于表示需要优化的目标。

目标函数可以使用MAX或MIN关键字来指定最大化或最小化目标。

3. 约束条件: 约束条件是限制问题解的约束,通常由等式或不等式表示。

约束条件可以包括等式约束、不等式约束和逻辑约束。

4. 集合: Lingo允许使用集合来表示一组变量或一组约束。

集合可以用于定义变量、参数、约束等。

5. 参数: 参数是用于定义模型的数据,可以是数值型或字符型。

参数可以在模型中直接使用,也可以通过集合引用。

6. 运算符: Lingo支持多种运算符,包括算术运算符、逻辑运算符和关系运算符。

运算符的优先级遵循常规的数学规则。

7. 语句格式: Lingo语句通常以分号结尾,每行可以包含多个语句。

语句可以跨行,以提高可读性。

8. 注释: Lingo允许使用注释来解释模型或添加额外信息。

注释以“!”开头,可以出现在模型的任何位置。

9. 标号: Lingo允许给语句添加标号,以便在模型中引用或识别特定语句。

标号以方括号开头和结尾,例如[OBJ]。

10. 模型结构: Lingo模型以“MODEL:”开头,以“END”结束。

在模型中,可以包含多个目标函数、约束条件、参数等。

以上是Lingo的一些基本语法规则,使用这些规则可以帮助你构建有效的优化模型并解决实际问题。

LINGO在数学建模中的应用

LINGO在数学建模中的应用

LINGO的菜单
1.File(文件菜单) • Export file(输出特殊格式文件) • Database User Info(用户基本信息) 2.Edit Menu(编辑菜单) • Paste Special(选择性粘贴) • Go to Line(光标移到某一行) • Match Parenthesis(匹配括号) • Insert New Object(插入新对象)
3.关系运算符 = 表达式左右相等 <= 表达式左边小于或等于右边 >= 表达式左边大于或等于右边 注:Lingo没有单独的<和>
A<B A B, 是一个小的正数
Lingo函数
• Lingo提供了五十几个内部函数,所有函数都 以字符@开头
• 数学函数 @ABS(x),@SIN(X),@COS(x),@TAN(X), @LOG(X),@EXP(X),@SIGN(X), @SMAX(X1,…,Xn),@SMIN(X1,…,Xn) @FLOOR(X),@LGM(X)
LINGO的菜单
3.LINGO • Debug(调试) • Model Statistics(模型资料统计) • Look(查看)
LINGO的菜单
4.Window • Command Window(命令行窗口) • Status Window(状态窗口) 5.Help • Help Topics(帮助主题) • Register(在线注册) • Auto Update(自动更新) • About Lingo(关于Lingo)
41,52,现有8个客户各要一批货,数量分别为35,37,22,32, 41,32,43,38,各供货栈到8个客户的单位运价如表1. 如何确定各供货栈到8个客户的货物调运量,使总的运费最小?

lingo在数学建模中的应用

lingo在数学建模中的应用

LINGO 使用教程LINGO 是用来求解线性和非线性优化问题的简易工具。

LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。

§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。

在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。

下面举两个例子。

例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++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 54 95 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;enddataend然后点击工具条上的按钮即可。

数学建模与lingo软件使用

数学建模与lingo软件使用

东北大学秦皇岛分校数学建模课程设计报告生产、库存与设备维修综合计划的优化安排学院数学与统计学院专业数学与应用数学学号7110402姓名崔冰洁指导教师成绩教师评语:指导教师签字:2014年7月9日1 绪论线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。

研究线性约束条件下线性目标函数的极值问题的数学理论和方法,英文缩写LP。

它是运筹学的一个重要分支,广泛应用于军事作战、经济分析、经营管理和工程技术等方面。

为合理地利用有限的人力、物力、财力等资源做出的最优决策,提供科学的依据。

在经济生活中,一个公司库存、生产、销售量要受限于与公司设备的生产能力,如何确定最优的生产库存等计划,可以使用线性规划的知识进行数学模型的建立并通过数学软件进行求解。

将库存金额控制在合理水准,是每个公司都期望的,这样的话可以将运营成本降到最低,让现金流动起来。

就是要合理处理好生产、库存与设备维修综合计划的优化安排。

在保证企业生产、经营需求的前提下,合理处理好生产、设备维修综合计划的优化安排。

使库存量经常保持在合理的水平上;掌握库存量动态,适时,适量提出订货,避免超储或缺货;减少库存空间占用,降低库存总费用;控制库存资金占用,加速资金周转2 LINGO软件简介LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。

其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。

能方便与EXCEL,数据库等其他软件交换数据。

3 数学模型建立与求解3.1问题:某工厂有以下设备:4台磨床、2台立钻、3台水平钻、1台镗床和1台刨床。

lingo使用方法

lingo使用方法

4)以!开头,以“;”号结束的语句是注 释语句。 5)如果对变量的取值没有作特殊的说明, 则默认所有决策变量都非负; 6)Lingo语句以“MODEL:”开头,以END 结束,对于比较简单的模型,这两个语 句可以省略。 7)@gin(x)表示限制x为整数, @bin(x)表 示限制x为0或1。 8)模型中如果遇到乘号不能省略。
该模型是一个线性规划模型,用lingo软 件求解,令M=5000,编写程序如下:
求解得到优化结果:目标函数值,即每 年度的奖金数额S=135.2227万元,存款方 案,即 x1 , x2 , x3 , x4 , x5 , x6的值为:
分析:假定首次发放奖金的时间是在基金到位后1 年,以后每隔1年发放1次,每年发放的时间大致相 同,校基金会希望获得最佳的基金使用计划,以提 高每年的奖金额,且在n年末仍保留原基金数额M. 实际上n年中发放的奖金总额全部来自于利息,如果 全部基金都存为一年定期,每年都用到期利息发放 奖金,则每年的奖金数为5000*0.018=90万元,这 是没有优化的存款方案。显然,准备在两年后使用 的款项应当存成两年定期,比存两次一年定期的收 益高,以此类推,目标是合理分配基金的存款方案, 使得n年的利息总额最多。
例1 某工厂有两条生产线,分别用来生 产M和P两种型号的产品,利润分别为200 元/个和300元/个,生产线的最大生产能力 分别为每日100和120,生产线每生产一个 M产品需要1个劳动日(1个工人工作8小时 称为1个劳动日)进行调试、检测等工作, 而每个P产品需要两个劳动日,该厂工人每 天共计能提供160劳动日,假如原材料等其 他条件不受限制,问应如何安排生产计划, 才能使获得的利润最大?
解:设两种产品的生产量分别为x1和x2,则 该问题的数学模型为目标函数: maxz=200x1+300x2 约束条件为:

数学建模算法与应用-Lingo软件的使用

数学建模算法与应用-Lingo软件的使用

(11)@psn(x) 标准正态分布的累积分布函数。 (12)@ptd(n,x) 自由度为 n 的 t 分布的累积分布函数。 (13)@qrand(seed) 产生服从(0,1)区间的伪随机数。@qrand 只允许在 模型的数据部分使用,它将用伪随机数填满集属性。 通常,声明一个 m× n 的二维表,m 表示运行实验的 次数, n 表示每次实验所需的随机数的个数。 在行内, 随机数是独立分布的; 在行间, 随机数是非常均匀的。 这些随机数是用“分层取样”的方法产生的。
B.2 Lingo函数 B.2.1 算术运算符
^ ﹡ 乘方 乘 / 除 ﹢ 加 ﹣ 减
B.2.2 逻辑运算符
在 Lingo 中,逻辑运算符主要用于集循环函数的 条件表达式中,来控制在函数中哪些集成员被包含, 哪些被排斥。 在创建稀疏集时用在成员资格过滤器中。 Lingo 具有9种逻辑运算符 #not# 否定该操作数的逻辑值,#not#是一个 一元运算符。 #eq# false。 若两个运算数相等,则为 true;否则为
(5)@pfd(n,d,x) 自由度为 n 和 d 的 F 分布的累积分布函数。 (6)@pfs(a,x,c) 当负荷上限为 a,顾客数为 c,平行服务器数量为 x 时, 有限源的 Poisson 服务系统的等待或返修顾客数的期望 值。 a 是顾客数乘以平均服务时间, 再除以平均返修时间。 当 c 和(或)x 不是整数时,采用线性插值进行计算。 (7)@phg(pop,g,n,x) 超几何(Hypergeometric)分布的累积分布函数。pop 表 示产品总数, g 是正品数。从所有产品中任意取出 n (n≤pop)件。pop,g,n 和 x 都可以是非整数,这时采 用线性插值进行计算。

设 xij ( i 1,2,

lingo用法

lingo用法

Lingo 是一种专门用于线性规划和整数规划的建模和求解语言。

它提供了一种简洁的方式来描述数学模型,并使用线性规划算法求解这些模型。

下面是Lingo 的一些基本用法示例:
1. 变量定义:
- 定义实数变量:`X = 0.5;`
- 定义整数变量:`INT_VAR Y;`
2. 目标函数定义:
- 最小化目标函数:`MIN = 2*X + 3*Y;`
- 最大化目标函数:`MAX = -X + 4*Y;`
3. 约束条件定义:
- 等式约束:`EQUATION C1: X + Y = 10;`
- 不等式约束:`INEQUATION C2: X >= 5;`
- 范围约束:`5 <= Y <= 20;`
4. 求解模型:
- 使用默认求解器求解:`SOLVE;`
- 指定求解器和参数:`SOLVE WITH LP_METHOD=3;` 以上是Lingo 的一些基本用法示例,实际上,Lingo 还提供了更多的功能和语法,用于描述更复杂的数学模型和问题。

它可以处理
线性规划、整数规划、混合整数规划等多种类型的问题,并提供了丰富的优化算法和工具来求解这些问题。

课件:数学建模LINGO软件的使用方法

课件:数学建模LINGO软件的使用方法

例:某公司需决定下四个季度的帆船生产量.下四个季度的
帆船需求量分别是40条,60条,75条,25条, 这些需求必须按 时满足.每个季度正常的生产能力是40条帆船,每条船的生产 费用为450美元. 每个季度末,每条船的库存费用为20美元. 假 定生产提前期为0, 初始库存为10条船. 如何安排生产可使总 费用最少?
集合的派生方法:
sets: A/1..5/:a1,a2,a3; B/1,2/:b1,b2; link(A,B):C; endsets data: a1=1,2,3,4,5; a2=6,5,4,3,2; a3=3,3,3,3,3; b1=5,6; b2=3,4; c=1 2 3 4 5 6 7 8 9 0; enddata
运算符:
max
约束名: 在 )之内
约束条件用st标记
LINGO模型特征
max= 系数与变量之间的乘号用 * 表示
在[ ]之内 省略
模型以MODEL:开始以END结束
LINGO模型要素: 集合段: 以SETS开始,以ENDSETS结束 数据段: 以DATA开始,以ENDDATA结束 初始段: 以INIT开始,以ENDINIT结束 计算段: 以DATA开始,以ENDCALC结束
集合循环函数:
@function(setname[(set-index-list) [∣condition ] ]: expression-list);
@FOR : 集合元素的循环函数(常用于约束条件) @MAX(MIN) : 集合属性的最大(小)值函数 @PROD : 集合属性的乘积函数 @SUM : 集合属性的求和函数 常用函数,文件输入输出函数等
LINGO运算符和函数:
算术运算符: + _ * / ^
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

牌号 甲 乙
产量 x1 x2
成本 价格 q1 p1 q2 p2
p随x (两种牌号)增加而减小,呈线性关系
p1 b1 a11x1 a12 x2 , b1 , a11, a12 0, a11 a12
p2 b2 a21x1 a22 x2 , b2 , a21, a22 0, a22 a21
决策变量:周一至周日每天(新)聘用人数 x1, x2,x7 目标函数:7天(新)聘用人数之和 约束条件:周一至周日每天需要人数
设系统已进入稳态(不是开始的几周) 连续工作5天 周一工作的应是(上)周四至周一聘用的 x4 x5 x6 x7 x1 50
mi n s.t. z x1 x2 x3 x4 x5 x6 x7 x1 x4 x5 x6 x7 5 0 x1 x2 x5 x6 x7 5 0 x Z , i x1 x2 x3 x6 x7 5 0 即为非负整数 x1 x2 x3 x4 x7 5 0 x1 x2 x3 x4 x5 8 0 x2 x3 x4 x5 x6 9 0 x3 x4 x5 x6 x7 8 0
比 xi对目标函数的 例 “贡献”与xi取值 性 成正比 xi对约束条件的 “贡献”与xi取值 成正比 xi对目标函数的 可 “贡献”与xj取值 加 无关 性 xi对约束条件的 “贡献”与xj取值 无关 连续性 xi取值连续
线性规划模型
A1,A2每公斤的获利是与各 自产量无关的常数 每桶牛奶加工出A1,A2的数量 和时间是与各自产量无关的常 数 A1,A2每公斤的获利是与相 互产量无关的常数 每桶牛奶加工出A1,A2的数量和 时间是与相互产量无关的常数 加工A1,A2的牛奶桶数是实数
x2 A
l1 B l2 C Z=3600 l3
Max z 72 x1 64 x2
z=c (常数) ~等值线
0
l5
Z=0
x1 D Z=2400
在B(20,30)点得到最优解 最优解一定在凸多边 形的某个顶点取得。
目标函数和约束条件是线性函数 可行域为直线段围成的凸多边形 目标函数的等值线为直线
假设:料场 和工地之间 有直线道路
1)现有 2 料场,位于 A (5, 1), B (2, 7), 记(xj,yj),j=1,2, 日储量 ej 各有 20 吨。
目标:制定每天的供应计划,即从 A,
B 两料场分别 向各工地运送多少吨水泥,使总的吨公里数最小。
优化建模
决策变量:ci j (料场j到工地i的 运量)~12维 线性规划模型(LP) 用例中数 据计算, 最优解为
优化建模
LP其他算法
内点算法(Interior point method)
• 20世纪80年代人们提出的一类新的算法——内点算法 • 也是迭代法,但不再从可行域的一个顶点转换到另一个 顶点,而是直接从可行域的内部逼近最优解。
有效集(Active Set)方法
• LP是QP的特例(只需令所有二次项为零即可) • 可以用QP的算法解QP(如: 有效集方法)
若选择队员i参加泳姿j 的比赛,记xij=1, 否则记xij=0
目标 函数
约束 条件
Min Z cij xij
j 1 i 1
4
5
0-1规划: 整数规划的特例
5
每人最多入选泳姿之一
每种泳姿有且只有1人
x
j 1
4
ij
1, i 1,5
x
i 1
ij
1, j 1, 4
优化建模
局部最优解与整体最优解
f(x)
x1
* o x2
x
• 局部最优解 (Local Optimal Solution, 如 x1 ) • 整体最优解 (Global Optimal Solution, 如 x2 )
优化建模
优化模型的 简单分类
数学规划 连 续 优 化 离 散 优 化
min s.t.
优化建模
1. 优化模型的基本概念
优化建模
优化模型和算法的重要意义
最优化: 在一定条件下,寻求使目标最大(小)的决策 最优化是工程技术、经济管理、科学研究、社 会生活中经常遇到的问题, 如: 结构设计 资源分配 生产计划 运输方案
解决优化问题的手段
• 经验积累,主观判断
• 作试验,比优劣 • 建立数学模型,求解最优策略
优化建模
模型求解
x1 x2 50
图解法
约 l2 : 12 x1 8x2 480 束 12 x1 8x2 480 l4 条 3x1 100 l3 : 3x1 100 件 c l4 : x1 0, l5 : x2 0 x1 , x2 0 目标 函数
l1 : x1 x2 50
整数规划问题 min xZ n 一般形式
f ( x)
优化建模
s.t.
hi ( x) 0, i 1,..., m g j ( x) 0, j 1,..., l
整数规划问题的分类
• 整数线性规划(ILP) 目标和约束均为线性函数 • 整数非线性规划(NLP) 目标或约束中存在非线性函数 • 纯(全)整数规划(PIP) 决策变量均为整数 • 混合整数规划(MIP) 决策变量有整数,也有实数 • 0-1规划 决策变量只取0或1
优化建模
LP的约束和目标函数均为线性函数 2维 可行域 线段组成的凸多边形 目标函数 等值线为直线 n维 超平面组成的凸多面体 等值线是超平面
最优解 凸多边形的某个顶点
求解LP的基本思想
凸多面体的某个顶点
思路:从可行域的某一顶点开始,只需在有限多个 顶点中一个一个找下去,一定能得到最优解。
LP的通常解法是单纯形法(G. B. Dantzig, 1947)
优化建模
线性规划模型的解的几种情况
线性规划问题
有可行解(Feasible)

可 行 解 (Infeasible)
有 最 优 解 ( Optimal )

最 优 (Unbounded)

优化建模
二次规划模型-例1.2:产销计划问题
某厂生产两个牌号的同一种产品,如何确定产量使利润最大
假设A 假设B
产销平衡
优化建模
目标
x1 , x2
利润最大
max z ( x1, x2 ) ( p1 q1) x1 ( p2 q2 ) x2
(100-x1-0.1 x2-2)x1 +(280-0.2x1-2x2-3)x2 =98 x1 + 277 x2 - x12 - 0.3 x1 x2 - 2x22 =
聘用方案
优化建模
整数规划
模型(IP)
优化建模
0-1规划 -混合泳接力队的选拔
例1.5: 5名候选人的百米成绩
蝶泳 仰泳 蛙泳 自由泳 甲 1’06”8 1’15”6 1’27” 58”6 乙 57”2 1’06” 1’06”4 53” 丙 1’18” 1’07”8 1’24”6 59”4 丁 1’10” 1’14”2 1’09”6 57”2 戊 1’07”4 1’11” 1’23”8 1’02”4
3 0 4
4 7 0
5 0 6
6 1 10
总吨公里数为Βιβλιοθήκη 36.2选址问题:NLP优化建模
2)改建两个新料场,需要确定新料场位置(xj,yj)和 运量cij ,在其它条件不变下使总吨公里数最小。
min

j 1 i 1 2
2
6
cij [( x j ai ) 2 ( y j bi ) 2 ]1 / 2
约束
x1 + x2 ≤100 x1 ≤ 2 x2 x1 , x2 ≥ 0
二次规划模型(QP)
若还要求产量为整数,则是整数二次规划模型(IQP)
优化建模
非线性规划模型-例1.3:选址问题
某公司有6个建筑工地,位置坐标为(ai, bi) (单位:公里), 水泥日用量di (单位:吨)
i a b d 1 1.25 1.25 3 2 8.75 0.75 5 3 0.5 4.75 4 4 5.75 5 7 5 3 6.5 6 6 7.25 7.75 11
优化建模
整数规划问题对应的松弛问题
f ( x) hi ( x) 0, i 1,..., m g j ( x) 0, j 1,..., l x D n
• 线性规划(LP) 目标和约束均为线性函数 • 非线性规划(NLP) 目标或约束中存在非线性函数 二次规划(QP) 目标为二次函数、约束为线性 • 整数规划(IP) 决策变量(全部或部分)为整数 整数线性规划(ILP),整数非线性规划(INLP) 纯整数规划(PIP), 混合整数规划(MIP) 一般整数规划,0-1(整数)规划
优化建模
优化问题的一般形式
优化问题三要素:决策变量;目标函数;约束条件 目标函数 约 束 条 件
min s.t.
决策变量
f ( x) hi ( x) 0, i 1,..., m g j ( x) 0, j 1,..., l xD
n
• 无约束优化(没有约束)与约束优化(有约束) • 可行解(只满足约束)与最优解(取到最优值)
制订生产计划,使每天获利最大 • 35元可买到1桶牛奶,买吗?若买,每天最多买多少? • 可聘用临时工人,付出的工资最多是每小时几元? • A1的获利增加到 30元/公斤,应否改变生产计划?
优化建模
1桶 牛奶 或
12小时
3公斤A1
4公斤A2
获利24元/公斤
获利16元/公斤
8小时 每天 50桶牛奶 时间480小时 至多加工100公斤A1 决策变量 x1桶牛奶生产A1 x2桶牛奶生产A2
相关文档
最新文档