LINGO在数学建模中的应用.docVIP

  • 56
  • 0
  • 约1.24万字
  • 约 25页
  • 2020-02-04 发布于安徽
  • 举报
.. .. .. PAGE .专业资料. 一、LINGO简介 LINGO是美国LINDO系统公司开发的求解数学规划系列软件中你的一个,它的主要功能是求解大型线性、非线性和整数规划问题,LINGO的不同版本对模型的变量总数、非线性变量数目、整型变量数目和约束条件的数量做出不同的限制. LINGO的主要功能特色为: (1)既能求解线性规划问题,也有较强的求解非线性规划问题的能力; (2)输入模型简练直观; (3)运行速度快、计算能力强. (4)内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型; (5)将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型; (6)能方便地与EXCEL、数据库等其他软件交换数据. LINGO像其他软件一样,对他的语法有规定,LINGO的语法规定如下: 求目标函数的最大值或最小值分别用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)简称LP问题,其数学模型称为线性规划(LP)模型. 线性规划问题数学模型的一般形式为:求一组变量的值,使其满足 式中“*”代表“”、“ ”或“=”. 上述模型可简写为 其中,变量称为决策变量,函数称为目标函数,条件称为约束条件, 称为非负约束.在经济问题中,又称为价值系数,为资源限量. 线性规划在科学决策与经营管理中实效明显,但是对于规模较大的线性模型,其求解过程非常繁琐,不易得出结果.而 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个劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大? 解 设两种产品的生产量分别为和,则该问题的数学模型为: 目标函数 约束条件 编写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; ENDDATA MAX=@SUM(SHC:C*X); @FOR(SHC(I):X(I)B(I)); @SUM(SHC(I):A(I)*X(I))=160; END 程序运行结果如下 Gl

文档评论(0)

1亿VIP精品文档

相关文档