LINGO在数学建模中的应用

合集下载

数学建模中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在数学建模中的应用

一、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 na x a x a xb a x a x a x b s t a x a x a x b ⎧⎪⎪⎪⎨⎪⎪≥=⎪⎩+++++++++ 式中“*”代表“≥”、“ ≥”或“=”.上述模型可简写为1max(min),nj j j z c x ==∑1*0,1,2,,,1,2,,..nij j j ji a x x j n b i ms t =⎧⎪⎨⎪≥=⎩=∑其中,变量j x 称为决策变量,函数1nj jj z c x==∑称为目标函数,条件1*nj jij 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 =+约束条件1212100,120,160,0,1,2.i x x x x x i ≤⎧⎪≤⎪⎨+≤⎪⎪≥=⎩ 编写LINGO 程序如下: MODEL : SETS :SHC/1,2 /:A,B,C,X; YF/1,2,3 /:J; ENDSETS DATA :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),其数学模型的一般形式是()1max min nj j j z c x ==∑,()()11,2,,..01,2,,ni j j i j j j a x b i n s t x j n x =⎧≤=⎪⎪⎪≥=⎨⎪⎪⎪⎩∑全为整数或部分为整数。

第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的典型应用举例

假设预先准备的箱子总数为n个,即使每件物品单 独装一个箱子也够用,用决策变量yi=1或0表示第j个箱 子是用还是不用,用变量xij=1或0表示第i件物品是否放 入第j个箱子中,建立0-1规划模型如下:
n
min
z y j,
j1
n
w i x ij Cy
j , j 1,2 ,...,
n,
i1
s
表2.1 当前可供蔬菜养分含量(mg)和价格
养分
蔬菜

A1 青 豆 0.45
A2 胡萝卜 0.45
A3 花 菜 0.65
A4 卷心菜 0.4
A5 芹 菜 0.5
A6 土 豆 0.5
每周最低需求 6
每份蔬菜所含养分数量
每份价格
磷 维生素A 维生素C 烟酸 (元)
20
415
22
0.3
2.1
28
4065
例2.1 某疗养院营养师要为某类病人拟定本周蔬菜类菜单, 当前可供选择的蔬菜品种、价格和营养成分含量,以及病 人所需养分的最低数量见表2.1所示。病人每周需14份蔬 菜,为了口味的原因,规定一周内的卷心菜不多于2份, 胡萝卜不多于3份,其他蔬菜不多于4份且至少一份。在满 足要求的前提下,制订费用最少的一周菜单方案。
.t
.
n
x ij 1 , i 1 , 2 ,...,
n,
j1
yj x ij
0或 0或
1, j 1, i,
j
1,2 ,..., n , 1,2 ,..., n .
例5.1 已知30个物品,其中6个长0.51m,6个长 0.27m,6个长0.26m,余下的12个长0.23m,箱子长为 1m。问最少需要多少个箱子才能把30个物品全部装进箱 子。

Lingo软件在数学建模中的应用

Lingo软件在数学建模中的应用
• 背包问题 • 一个旅行者的背包最多只能装 6kg 物品, 现有4 种物品的重量和价值分别为 2 kg,3 kg,3 kg,4 kg;1 元,1.2元,0.9元,1.1 元。问应怎样携带那些物品使得携带物品 的价值最大?
• 建模:记 x j 为旅行者携带第 j 件物品的件 数, 取值只能为 0 或 1。 • 求目标函数 f x1 1.2x2 0.9x3 1.1x4 • 在约束条件 2x1 3x2 3x3 4x4 6 下的最大值.
• 集的定义格式 • Lingo中的集合分类
什么是集
• 集是一群相联系的对象,这些对象也称为 集的成员。 • 每个集成员可能有一个或多个与之有关联 的特征,我们把这些特征称为属性。
模型的集部分
• 格式: sets: setname[/member_list/][:attribute_list]; endsets • 注意:用“[]”表示该部分内容可选。
Lingo软件介绍
点击图标
运行,屏幕上显示运行状态窗口如下:
对于Lingo运行状态窗口, 我们给于以下解释:
变量数目:变量总数 (Total)、非线型变量 数(Nonlinear)、整数 变量数(Integer) 约束变量:约束总数 ( Total )、非线性约束 个数(Nonlinear) 非线性系数数量:总数 ( Total )、非线性项的 系数个数(Nonlinear) 内存使用量:单位为千字节
集合的定义
• Setname:集名字必须严格符合标准命名规 则: • 以字母或下划线(_)为首字符,其后由 拉丁字母(A—Z)、下划线、阿拉伯数字 (0,1,…,9)组成的总长度不超过32 个字符的字符串,且不区分大小写。 • 注意:该命名规则同样适用于集成员名和

数学建模-(货机装运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在多目标规划和最大最小化模型中的应用

数学建模必备LINGO 在多目标规划和最大最小化模型中的应用一、多目标规划的常用解法多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:1.主要目标法确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。

2.线性加权求和法对每个目标按其重要程度赋适当权重0≥i ω,且1=∑ii ω,然后把)(x f i ii ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。

3.指数加权乘积法设p i x f i ,,2,1),( =是原来的p 个目标,令∏==pi a i ix f Z 1)]([其中i a 为指数权重,把Z 作为新的目标函数。

4.理想点法先分别求出p 个单目标规划的最优解*i f ,令∑-=2*))(()(iifx f x h然后把它作为新的目标函数。

5.分层序列法将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。

这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。

例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。

线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。

二、最大最小化模型在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。

例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。

最大最小化模型的目标函数可写成)}(,),(),(max{min 21X f X f X f p X或)}(,),(),(min{max 21X f X f X f p X式中T n x x x X ),,,(21 是决策变量。

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

LINGO编程(建模)语言
• 例 运输问题 LINGO模型
MIN=@SUM(LINKS(I,J):C(I,J)*X(I,J); @FOR(WH(I):@SUM(VD(J):X(I,J)<=AI(I)); @FOR(VD(J):@SUM(WH(I):X(I,J)=DJ(J)); END 求解Lingo|Solve Solition Report Golbal optimal solution found at step:17 Objective value: 664.0000 Variable value X(w1,v1) 0.000 X(w1,v2) 19.000 ……………….. Reduced cost (缩减成本系数) 5.000000 0.000000
集合的类型
setname(parent_set_list) [/member_list/] [: attribute_list];
集合
setname [/member_list/] [: attribute_list];
派生集合 稀疏集合
基本集合
稠密பைடு நூலகம்合 直接列举法 隐式列举法
元素列表法 元素过滤法
需要掌握的几个重要方面
掌握集合(SETS)的应用; 的应用; 掌握集合 的应用 正确阅读求解报告; 正确阅读求解报告; 正确理解求解状态窗口; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 学会设置基本的求解选项 掌握与外部文件的基本接口方法
LINGO在数学建模中的应用
• LINGO的基本用法
min z =
∑ ∑
i=1
6
8
j =1
c ij x ij ,
8 ∑ x ij ≤ a i , i = 1 , L , 6 , j=1 6 s . t . ∑ x ij = d j , j = 1 , L , 8 , i=1 x ij ≥ 0 , i = 1 , L , 6 , j = 1 , L , 8 .
LINGO的菜单
3.LINGO • Solution(求解结果)
打开求解结果对话框,文本或图表方式查看结果
• Range(灵敏性分析)
产生当前模型的灵敏性分析报告:最优解不变目标函数系 数的变化范围;影子价格和缩减系数不变,约束条件右端常 数的变化范围(用时需激活)
• Options(选项设置) • Generate(生成模型展开式) • Picture(生成图形)
LINGO的菜单
3.LINGO • Debug(调试) • Model Statistics(模型资料统计) • Look(查看)
LINGO的菜单
4.Window • Command Window(命令行窗口) • Status Window(状态窗口) 5.Help • Help Topics(帮助主题) • Register(在线注册) • Auto Update(自动更新) • About Lingo(关于Lingo)
Golbal optimal solution found at iteration:2 Objective value: 29000.00 Variable value Reduced cost (缩减成本系数)
X1 100.000 0.000000 X2 30.000 0.000000 Row Slack (松池) or Surplus (剩余) Dual Price(影子价格) 1 29000.00 1 2 0.000000 50.00000 3 90.00000 0.000000 4 0.000000 150.0000 注 Row 模型中行号 Slack=右-左(<=) Surplus=左-右(>=)
3.关系运算符 = 表达式左右相等 <= 表达式左边小于或等于右边 >= 表达式左边大于或等于右边 注:Lingo没有单独的<和> A<B A + ε <= B, ε 是一个小的正数
模型窗口”LINGO Model-LINGO1”用于输入模型 可用基本类似数学公式的形式输入小模型
•LINGO的语法规则
1.最大值MAX=…,最小值MIN=… 2.语句必须以分号”;”结束 每行可多个语句 语句可跨行 3.变量名由字母、数字和下划线组成 以字母开头 长度 不超32个字符 不区分大小写 4.默认决策变量非负 其他要求可做说明 5.模型以MODEL:开头,以END结束
表1 各供货栈到8个客户的单位运价
V1 V2 V3 V4 V5 V6 V7 V8
W1 W2 W3 W4 W5 W6
6 4 5 7 2 5
2 9 2 6 3 5
6 5 1 7 9 2
7 3 9 3 5 2
4 8 7 9 7 8
2 5 4 2 2 1
5 8 3 7 6 4
9 2 3 1 5 3
LINGO编程(建模)语言 • 例 运输问题 数学模型
月份型 monthM..month OCT..JAN N 年份- monthYearM..m 年份 月份型 onthYearN OCT2001..JA N2002
LINGO编程(建模)语言 • LINGO模型的基本组成 2.数据初始化部分(数据段) LINGO建模语言通过数据初始化部分来实现对已知 属性赋予初始值 数据初始化部分以语句DATA:开始,以语句 ENDDATA结束 如:DATA:
LINGO编程(建模)语言
• 例 运输问题 LINGO模型
MODEL: SETS: WH/W1..W6/:AI;VD/V1..V8/:Dj; LINKS(WH,VD):C,X; ENDSETS DATA: AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43,38; C=6,2,6,7,4,2,5,9 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,5,5,8,1,4,3 ENDDATA
LINGO在数学建模中的应用
吉林大学数学学院 全国大学生数学建模竞赛吉林赛区 组委会
LINGO在数学建模中的应用
LINGO的主要功能和特点
1.求解线性规划和非线性规划问题 2.模型输入简练直观 3.运行速度快 计算能力强 4.内置建模语言 提供内部函数 较少语句直观描述大 规模优化模型 5.引入集合 容易建模 6.数据交换方便(与EXCEL和数据库)
• 例 工厂有两条生产线,分别生产M和P两种型号的 产品,利润分别为200元/个和300元/个,生产能 力分别为100和120,生产一个产品分别需1个和2 个劳动日,工厂每天能提供160个劳动日。假设原 材料不受限制,如何安排生产计划,利润最大。 设生产计划为生产x1个M和x2个P,数学模型为
max z = 200 x1 + 300 x 2 x1 ≤ 100, x 2 ≤ 120 s.t. x1 + 2 x 2 ≤ 160, x1 ≥ 0, x 2 ≥ 0.
Lingo运算符
1.算术运算符 ^乘方,*乘,/除,+加,-减 2.逻辑运算符
分 类 运算符 #EQ# #NE# 作 用 运算对象是两个数 运算对象是两个数 两个运算对象相等时为真,否则为假 两个运算对象不相等时为真,否则为假
运算对象是两个数 运算对象是两个数 运算对象是两个数 运算对象是两个数 对象是逻辑值或 表达式
LINGO编程(建模)语言
• LINGO模型的基本组成 1.集合定义部分
集合是一组相关对象构成的组合,代表模型中的实际事物,并与数学变 量和常量联系起来,实际问题到数学问题的抽象,集合使用前应定义,内 容为:集合名称、集合内的成员、集合的属性(命名规则同变量) 初始集合:集合名称/集合内的成员/:集合的属性 如:WH/W1..W6/:AI;VD/V1..V8/:Dj 衍生集合:集合名称 对应的初始集合 集合成员 集合的属性 集合名称( 对应的初始集合,对应的初始集合): 集合的属性 如:LINKS(WH,VD):C,X; 集合定义部分以语句SETS:开头,以语句ENDSETS结束
AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43, 38; C=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 … ENDDATA
LINGO编程(建模)语言
• LINGO模型的基本组成 3.目标函数和约束条件 内部函数:@SUM,@FOR
@SUM是LINGO的内部函数 功能是对某个集合的所有成员 是 的内部函数,功能是对某个集合的所有成员 的内部函数 求指定表达式的和,有两个参数 其一是集合名称,指定对该 有两个参数,其一是集合名称 求指定表达式的和 有两个参数 其一是集合名称 指定对该 集合的所有成员求和,其二是一个表达式 其二是一个表达式,表示求和运算对 集合的所有成员求和 其二是一个表达式 表示求和运算对 该表达式进行. 该表达式进行 @FOR是LINGO的内部函数 功能是对某个集合的所有成员 的内部函数,功能是对某个集合的所有成员 是 的内部函数 分别派生一个约束表达式有两个参数,其一是集合名称 其一是集合名称,表 分别派生一个约束表达式有两个参数 其一是集合名称 表 示对该集合的所有成员分别派生一个约束表达式,其二是 示对该集合的所有成员分别派生一个约束表达式 其二是 约束表达式的具体内容. 注: :@SUM和@FOR可以嵌套使用 和 可以嵌套使用
集合元素的隐式列举 集合元素的隐式列举
类型 隐式列举格式 数字型 1..n 字符- stringM..stringN 字符 数字型 星期型 dayM..dayN 示例 1..5 Car101..car20 8 MON..FRI 示例集合的元素 1, 2, 3, 4, 5 Car101, car102, … , car208 MON, TUE, WED, THU, FRI OCT, NOV, DEC, JAN OCT2001, NOV2001, DEC2001, JAN2002
相关文档
最新文档