收藏 分销(赏)

LINGO的基本用法.pptx

上传人:快乐****生活 文档编号:4841366 上传时间:2024-10-14 格式:PPTX 页数:137 大小:2.36MB
下载 相关 举报
LINGO的基本用法.pptx_第1页
第1页 / 共137页
LINGO的基本用法.pptx_第2页
第2页 / 共137页
LINGO的基本用法.pptx_第3页
第3页 / 共137页
LINGO的基本用法.pptx_第4页
第4页 / 共137页
LINGO的基本用法.pptx_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、第 一 章LINGO的基本用法我我们们遇遇到到的的许许多多优优化化问问题题可可以以归归结结为为规规划划问问题题,例例如如线线性性规规划划、非非线线性性规规划划、二二次次规规划划、整整数数规规划划、动动态态规规划划、多多目目标标规规划划等等等等。当当变变量量比比较较多多时时,想想用用手手工工计计算算来来求求解解这这类类问问题题几几乎乎是是不不可可能能的的,编编程程计计算算虽虽然然可可行行,但但工工作作量量大大,程程序序长长而而繁繁,稍稍不不小小心心就就容容易易出出错错,可可行行的的办办法法是是用用现现成成软软件件求求解解LINGO是是专专门门用用来来求求解解各各种种规规划划问问题题的的软软件件包

2、包,其其功功能能十十分分强强大大,是是解解决决最最优优化化问问题题的的最最佳佳选择。选择。1.1 LINGO 入门 一、概况LINGO是是 美美 国国 LINDO系系 统统 公公 司司(LindoSystemInc)开开发发的的求求解解数数学学规规划划系系列列软软件件中中的的一一个个(其其它它软软件件为为LINDO,GINO,WhatsBest等等等等),的的主主要要功功能能是是求求解解大大型型线线性性、非非线线性性和和整整数数规规划划,目目前前的的版版本本是是11.0可可以以从从Internet网网址址http:/下下 载载 该该 软软 件件 的的 安安 装装 文文 件件lingo11.ex

3、e,执执行行该该文文件件即即可可在在计计算算机机内内安安装装LINGO软软件件系系统统,首首次次运运行行该该软软件件时时,要要求求用用户户输输入入密密码码,如如果果输输入入了了正正确确的的密密码码,则则该该软软件件就就成成了了正正式式版版,如如果果密密码码不不对对或或不不输输入入密密码码,则则该该软软件件就成为演示版就成为演示版LINGO的的不不同同版版本本对对模模型型的的变变量量和和约约束束条条件的数量作出不同的限制,如下表所示:件的数量作出不同的限制,如下表所示:版版本本变量总数变量总数非线性变量非线性变量整数变量整数变量约束条件数量约束条件数量Demo3003030150SolveSui

4、te5005050250Super20002002001000Hyper80008008004000Industrial320003200320016000LINGO的主要功能特色为:的主要功能特色为:1.输入模型简便直观;输入模型简便直观;2.运行速度很快;运行速度很快;3.内内置置建建模模语语言言,提提供供几几十十个个内内部部函函数数,从从而而能能以以较较少少语语句句,较较直直观观的的方方式式描描述述较较大大规模的优化模型;规模的优化模型;4.把把集集合合的的概概念念引引入入编编程程语语言言,很很容容易易将将实际问题转换为实际问题转换为LINGO模型;模型;5.能能方方便便地地与与EXCE

5、L、数数据据库库等等其其它它软软件件交换数据交换数据二、LINGO的基本用法启启动动LINGO后后,在在主主窗窗口口上上弹弹出出标标题题为为“LINGOModel-LINGO1”(模模型型)的的窗窗口口,用用于于输输入入模模型型,你你可可以以在在该该窗窗口口内内用用基基本本类类似似于于数数学学公公式式的的形形式式输输入小型规划模型通常,模型有以下三部分所组成:入小型规划模型通常,模型有以下三部分所组成:1.1.目目标标函函数数(求求某某个个数数学学表表达达式式的的最最大大值值或或最最小值);小值);2.决策变量,即目标函数值取决于哪些变量;决策变量,即目标函数值取决于哪些变量;3.约约束束条条

6、件件,即即对对变变量量附附加加一一些些条条件件限限制制(等等式或不等式)式或不等式)例例1:某某工工厂厂有有两两条条生生产产线线,分分别别用用来来生生产产M和和P两两种种型型号号的的产产品品,利利润润分分别别为为200元元/个个和和300元元/个个,生生产产线线的的最最大大生生产产能能力力分分别别为为每每日日100和和120,生生产产线线每每生生产产一一个个M产产品品需需要要1个个劳劳动动日日进进行行调调试试、检检测测等等工工作作,而而每每个个P产产品品需需要要2个个劳劳动动日日,该该厂厂每每天天只只有有160个个劳劳动动日日可可用用,假假如如原原材材料料等等其其它它条条件件不不受受限限制制,

7、问问应应如如何何安安排排生生产产计计划划,使使获获得得的的利利润润最大?最大?设设两两种种产产品品的的生生产产量量分分别别为为x1和和x2,则则该该问问题的数学模型为:题的数学模型为:目标函数目标函数:Maxz=200 x1+300 x2约束条件:约束条件:x1100,x2120,x1+2x2160,x1,x20。在在Model窗口内输入窗口内输入MAX=200*X1+300*X2;X1=100;X2=120;X1+2*X2=160;注注:LINGO默默认认所所有有决决策策变变量量都都大大于于零零,因因而而变量非负条件可以不必输入变量非负条件可以不必输入选选菜菜单单File|SaveAs(或或

8、按按F5)将将输输入入的的模模型型存存盘盘,默默认认文文件件格格式式为为扩扩展展名名.lg4选选File|Print(或或按按F7)可以在打印机上输出该模型)可以在打印机上输出该模型LINGO的语法规定:的语法规定:1.求目标函数的最大值或最小值分别用求目标函数的最大值或最小值分别用MAX=或或MIN=来表示;来表示;2.每个语句必须以分号每个语句必须以分号“;”结束,语句可以跨结束,语句可以跨行;行;3.变量名称必须以字母(变量名称必须以字母(AZ)开头,由字母、)开头,由字母、数字(数字(09)和下划线所组成,长度不超过)和下划线所组成,长度不超过32个字个字符,不区分大小写;符,不区分大

9、小写;4.可以给语句加上标号,例如可以给语句加上标号,例如OBJMAX=200*X1+300*X2;5.5.以!开头的语句是注释语句以!开头的语句是注释语句6.6.默默认认变变量量非非负负,用用free(x)free(x)可可以以解解除除非非负负限限制。制。7.7.LINGO模模型型以以语语句句“MODEL:”开开头头,以以语语句句“END”结结束束,对对于于比比较较简简单单的的模模型型,这这两两个个语语句句可以省略。可以省略。选选菜菜单单Lingo|Solve(或或按按Ctrl+S),或或鼠鼠标标点点击击“求求解解”按按钮钮,如如果果模模型型有有语语法法错错误误,则则弹弹出出一一个个标标题题

10、为为“LINGOErrorMessage”(错错误误信信息息)的的窗窗口口,指指出出错错误误的的编编号号,改改正正错错误误以以后后再再求求解解,如如果果语语法法通通过过,LINGO用用内内部部所所带带的的求求解解程程序序解解出出所所给给模模型型的的解解,然然后后弹弹出出一一个个标标题题为为“LINGOSolverStatus”(求求解解状状态态)的的窗窗口口,其其内内容容为为变变量量个个数数、约约束束条条件件个个数数、优优化化状状态态、非非零零变变量量个个数数、耗耗费费内内存存、所所花花时时间间等等等等信信息息,点点击击Close关关闭闭 该该 窗窗 口口,屏屏 幕幕 上上 出出 现现 标标

11、题题 为为“SolutionReport”(解解的的报报告告)的的信信息息窗窗口口,显显示示优优化化计计算算的的步步数数、优优化化后后的的目目标标函函数数值值、列列出出各各变变量量的的计计算算结果,具体内容如下:结果,具体内容如下:Globaloptimalsolutionfoundatstep:2Objectivevalue:29000.00VariableValueReducedCostX1100.00000.0000000X230.000000.0000000RowSlackorSurplusDualPrice129000.001.00000020.000000050.00000390.

12、00000.000000040.0000000150.0000该该报报告告说说明明,2步步找找到到全全局局最最优优解解,目目标标函函数数值值为为29000,变变量量值值分分别别为为X1100,X230,“Row”指指的的是是输输入入模模型型中中的的行行号号,“Slack or Surplus”的的意意思思为为松松弛弛或或剩剩余余,“Dual Price”的的意意思思是是影影子子价价格格,如如报报告告中中Row 2的的剩剩余余为为0,意意思思是是说说第第二二行行的的约约束束条条件件,即即第第一一条条生生产产线线最最大大生生产产能能力力没没有有剩剩余余,影影子子价价格格为为50,含含义义是是:如如

13、果果该该生生产产线线最最大大生生产产能能力力增增加加1,能能使使目目标标函函数数值值,即即利利润润增增加加50,由由29000增增加加到到29050报报告告中中Row 4的的剩剩余余为为0,意意思思是是说说第第四四行行的的约约束束条条件件,即即劳劳动动日日资资源源已已经经全全部部用用完完,影影子子价价格格为为150,含含义义是是:如如果果增增加加1个个劳劳动动日日资资源源,能能使使目目标标函函数数值值,即即利利润润增增加加150,达达到到29150元元以上结果可以保存到文件中(扩展名为以上结果可以保存到文件中(扩展名为.lgr),也可以),也可以通过打印机打印出来通过打印机打印出来 例例2:求

14、函数:求函数的最小值的最小值解:显然,当解:显然,当x=-2,y=2时,时,z取得最小值取得最小值0为为了允许变量了允许变量x取负数,用取负数,用free函数,程序如下:函数,程序如下:MIN=(x+2)2+(y-2)2;free(x);求解得结果为:求解得结果为:Localoptimalsolutionfoundatiteration:45Objectivevalue:0.4999617E-12 计算误差使得目标函数值非零计算误差使得目标函数值非零例例3 基金的优化使用基金的优化使用(参见参见2001年竞赛年竞赛C题题)(1)(1)问问题题的的提提出出 假假设设某某校校基基金金会会得得到到了

15、了一一笔笔数数额额为为M M万万元元的的基基金金,打打算算将将其其存存入入银银行行,校校基基金金会会计计划划在在n n年年内内每每年年用用部部分分本本息息奖奖励励优优秀秀师师生生,要要求求每每年年的的奖奖金金额额相相同同,且且在在n n年年末末仍仍保保留留原原基基金金数数额银行存款税后年利率见下表:额银行存款税后年利率见下表:校校基基金金会会希希望望获获得得最最佳佳的的基基金金使使用用计计划划,以以提提高高每每年年的的奖奖金金额额,请请在在M=5000M=5000万万元元、n=5n=5年年的的情情况况下设计具体存款方案下设计具体存款方案存期存期1年年2年年3年年5年年税后利率税后利率(%)1.

16、82.162.5922.88(2)(2)问题的分析问题的分析:假假定定首首次次发发放放奖奖金金的的时时间间是是在在基基金金到到位位后后一一年年,以以后后每每隔隔一一年年发发放放一一次次,每每年年发发放放的的时时间间大大致致相相同同,校校基基金金会会希希望望获获得得最最佳佳的的基基金金使使用用计计划划,以以提提高高每每年年的的奖奖金金额额,且且在在n n年年末末仍仍保保留留原原基基金金数数额额M M,实实际际上上n n年年中中发发放放的的奖奖金金总总额额全全部部来来自自于于利利息息如如果果全全部部基基金金都都存存为为一一年年定定期期,每每年年都都用用到到期期利利息息发发放放奖奖金金,则则是是没没

17、有有优优化化的的存存款款方方案案,每每年年的的奖奖金金数数为为500050000.018=900.018=90万万元元显显然然,准准备备在在两两年年后后使使用用的的款款项项应应当当存存成成两两年年定定期期,比比存存两两次次一一年年定定期期的的收收益益高高,依依此此类类推推目目标标是是合合理理分配基金的存款方案,使得分配基金的存款方案,使得n n年的利息总额最多年的利息总额最多 定义定义 收益比收益比a a(本金(本金+利息利息)/)/本金。本金。于是存于是存2 2年的收益比为年的收益比为a a2 2=1+2.16%=1+2.16%2=1.04322=1.0432经分析得到两点结论:经分析得到两

18、点结论:1.1.一一次次性性存存成成最最长长期期,优优于于两两个个(或或两两个个以以上上)较短期的组合(中途转存)。较短期的组合(中途转存)。2.2.当当存存款款年年限限需需要要组组合合时时,收收益益比比与与组组合合的的先先后后次序无关。次序无关。存款年限及相应的最优收益比存款年限及相应的最优收益比存款年限1年2年3年4年(3+1)5年收益比ai1.0181.04321.077761.097159681.144(3)(3)建立模型建立模型把把总总基基金金M M分分成成5+15+1份份,分分别别用用x x1 1,x x5 5,x,x6 6表表示示,其其中中x x1 1,x x5 5分分别别表表示

19、示计计划划用用于于第第i i年年发发放放奖奖金金的的一一部部分分初初始始基基金金(单单位位:万万元元),x x6 6表表示示用用来来使使5 5年年末末本本息息合合计计等等于于原原基基金金总总数数的的那那部部分分初初始始基基金金用用S S表表示示每每年年用用于于奖奖励励优优秀秀师师生生的的奖奖金金额额,用用a ai i表表示示第第i i年的最优收益比年的最优收益比 目标函数为目标函数为 max S max S 约约束束条条件件有有3 3个个:各各年年度度的的奖奖金金数数额额相相等等;初始基金总数为初始基金总数为M M;n n年末保留原基金总额年末保留原基金总额M M于是得到模型如下:于是得到模型

20、如下:目标函数:目标函数:MAX SMAX S约束条件:约束条件:这这是是线线性性规规划划模模型型,可可以以用用LINGOLINGO软软件件求求解解令令M=5000M=5000、n=5n=5,程序为,程序为MAX=S;1.018*x1=S;1.0432*x2=S;MAX=S;1.018*x1=S;1.0432*x2=S;1.07776*x3=S;1.07776*1.018*x4=S;1.07776*x3=S;1.07776*1.018*x4=S;1.144*x5=S;1.144*x6=M;M=5000;1.144*x5=S;1.144*x6=M;M=5000;x1+x2+x3+x4+x5+x6

21、=M;x1+x2+x3+x4+x5+x6=M;(4)(4)优化结果优化结果最优存款方案最优存款方案:x x1 1,x x5 5,x,x6 6 分别为分别为132.8317 129.6230 125.4664132.8317 129.6230 125.4664123.2479 118.2016 4370.629123.2479 118.2016 4370.629(单位:万元单位:万元 )每年度的奖金数额为每年度的奖金数额为135.2227135.2227万元。万元。1.2 用LINGO编程语言建立模型前前面面介介绍绍的的基基本本方方法法,优优点点是是输输入入模模型型较较直直观观,通通常常的的数数

22、学学表表达达式式(目目标标函函数数表表达达式式、约约束束条条件件)无无须须作作大大的的变变换换即即可可直直接接输输入入对对于于规规模模较较小小的的规规划划模模型型,用用直直接接输输入入的的方方式式是是有有利利的的,如如果果模模型型的的变变量量和和约约束束条条件件个个数数都都比比较较多多,若若仍仍然然用用直直接接输输入入方方式式,虽虽然然也也能能求求解解,但但是是这这种种做做法法有有明明显显的的不不足足之之处处:模模型型的的篇篇幅幅很长,不便于分析修改和扩展。很长,不便于分析修改和扩展。例例如如,目目标标函函数数中中有有求求和和表表达达式式C CijijX Xijij(i(i从从1 1到到10,

23、j10,j从从1 1到到20)20),若若用用直直接接输输入入的的方方式式,将将有有200200个个系系数数与与200200个个变变量量相相乘乘再再相相加加,需需要要输输入入长长长长一一大大串串,既既不不便便于于输输入入,又又不不便便于于修修改改,别人看不懂,可读性较差别人看不懂,可读性较差 LINGO提提供供了了建建模模语语言言,能能够够用用较较少少语语句句描描述述目目标标函函数数和和约约束束条条件件,为为建建立立大大规规模模数数学学规规划划模模型型提提供供了了方方便便我我们们以以一一个个运输规划模型为例说明其用法。运输规划模型为例说明其用法。一、一、LINGO模型的基本组成模型的基本组成L

24、INGO将将集集合合(SET)的的概概念念引引入入建建模模语语言言为为建建立立大大规规模模数数学学规规划划模模型型提提供供了了方方便便。用用LINGO语语言言编编写写程程序序来来表表达达一一个个实实际际问问题题,称称之之为为LINGO模模型型,下下面面以以一一个个运运输输规规划划模模型型为为例例说说明明LINGO模型模型的基本组成。的基本组成。例例1.2.11.2.1:某某公公司司有有6个个供供货货栈栈(仓仓库库),库库存存货货物物总总数数分分别别为为60,55,51,43,41,52,现现有有8个个客客户户各各要要一一批批货货,数数量量分分别别为为35,37,22,32,41,32,43,3

25、8各各供供货货栈栈到到8个个客客户户处处的的单单位位货货物物运运输输价价如如表表1 1所所示示(元(元/每单位)。每单位)。试试确确定定各各货货栈栈到到各各客客户户处处的的货货物物调调运运数数量量,使总的运输费用最小使总的运输费用最小 表表1.1.单位货物运输价单位货物运输价(元元)V1V2V3V4V5V6V7V8W162674259W249538582W352197435W476739271W523957265W655228143先先建建立立本本问问题题的的数数学学模模型型,引引入入决决策策变变量量xij,代代表表从从第第i个个货货栈栈到到第第j个个客客户户的的货货物物运运量量用用符符号号c

26、ij表表示示从从第第i个个货货栈栈到到第第j个个客客户户的的单单位位货货物物运运价价,ai表表示示第第i个个货货栈栈的的最最大大供供货货量量,dj表表示示第第j个个客客户户的订货量,则本问题的数学模型为:的订货量,则本问题的数学模型为:目标函数目标函数MIN约束条件约束条件非负条件非负条件xij 0,i=1,2,6,j=1,2,81.集合定义部分集合定义部分LINGO将将集集合合(SET)的的概概念念引引入入建建模模语语言言,集集合合是是一一组组对对象象构构成成的的组组合合,代代表表模模型型中中的的实实际际事事物物,并并与与数数学学变变量量及及常常量量联联系系起起来来,是是实实际际问问题题到到

27、数数学学的的抽抽象象。例例题题中中6个个货货栈栈可可以以看看成成是是一一个个集集合,合,8个客户是另一个集合。个客户是另一个集合。定定义义集集合合时时要要明明确确三三个个方方面面内内容容,集集合合的的名名称称,集集合合内内的的成成员员(组组成成集集合合的的个个体体,也也称称成成员员),集集合合的的属属性性(与与该该集集合合有有关关的的变变量量及及常常量量,相相当当于数组)此处先定义一个集合:于数组)此处先定义一个集合:WH/W1.W6/:AI;其其中中WH是是集集合合名名称称,W1.W6表表示示集集合合内内的的成成员员共共有有6 6个个,表表示示6个个供供货货栈栈,“.”是是特特定定的的省省略

28、略号号(如如果果不不用用该该省省略略号号,也也可可以以把把集集合合成成员员一一一一罗罗列列出出来来,成成员员之之间间用用逗逗号号或或空空格格分分开开),AI是是集集合合的的属属性性,属属性性可可以以看看成成是是一一个个一一维维数数组组,它它有有6个个分分量量,分分别别表表示示各各货货栈栈现现有有货货物物的的总总数数集集合合、成成员员、属属性性的的命命名名规规则则与与变变量量相相同同,可可按按自自己己的的意意愿愿,用用有有一一定定意意义义的的字字母母数数字字串串来来表表示示,式式中中“/”和和“/:”是是规规定定的的语语法法规规则则,成员之间的逗号可用空格来代替成员之间的逗号可用空格来代替再定义

29、集合:再定义集合:VD/V1.V8/:DJ;该该集集合合表表示示客客户户,它它有有8个个成成员员所所组组成成,其其属属性性DJ(有有8个个分分量量)表表示示各各客客户户的的需需求求量量以以上上两两个个集集合合称称为为初初始始集集合合,其其属属性性都都是是一维数组一维数组为为了了表表示示数数学学模模型型中中的的cij和和xij,再再定定义义一一个个表表示示运输关系(路线)的集合:运输关系(路线)的集合:LINKS(WH,VD):C,X;该该集集合合以以初初始始集集合合WH和和VD为为基基础础,称称为为衍衍生生集集合合,类类似似于于矩矩阵阵(二二维维数数组组),它它的的行行数数与与集集合合WH的的

30、成成员员个个数数相相等等,它它的的列列数数与与集集合合VD的的成成员员个个数数相相等等,因因而而该该集集合合共共有有48个个成成员员,式式中中定定义义了了两两个个属属性性:C和和X,相相应应地地,C和和X都都相相当当于于二二维维数数组组,各各有有48个个分分量量,C表表示示货货栈栈i i到到客客户户j j的的单单位位货货物物运运价价,X表表示示货货栈栈i i到到客客户户j j的的货货物物运运量量衍生集合的定义语句有如下要素组成:衍生集合的定义语句有如下要素组成:(1)集合的名称;集合的名称;(2)对应的初始集合;对应的初始集合;(3)集合的成员(可以省略不写明);集合的成员(可以省略不写明);

31、(4)集合的属性(可以没有)集合的属性(可以没有)定定义义衍衍生生集集合合时时可可以以用用罗罗列列的的方方式式将将衍衍生生集集合合的的成成员员一一一一列列出出来来,如如果果省省略略不不写写,则则默默认认衍衍生生集集合合的的成成员员取取它它所所对对应应初初始始集集合合的的所所有有可可能能的的组组合合,上上述述衍衍生生集集合合LINKS的的定定义义中中没没有有指指明明成成员员,而而它它对对应应的的初初始始集集合合WH有有6个个成成员员,VD有有8个个成成员员,因因此此LINKS成成员员取取WH和和VD的的所所有有可可能能组合,即集合组合,即集合LINKS有有48个成员个成员 完整的集合定义为:完整

32、的集合定义为:SETS:WH/W1.W6/:/:AI;VD/V1.V8/:/:DJ;LINKS(WH,VD):C,X;ENDSETS注:集合定义部分以语句注:集合定义部分以语句SETS:开始,以语开始,以语句句ENDSETS结束,这两个语句必须单独成结束,这两个语句必须单独成一行一行 ENDSETS的后面不加标点符号。的后面不加标点符号。2数据初始化(数据段)数据初始化(数据段)以以上上集集合合中中属属性性X X(有有4848个个分分量量)是是决决策策变变量量,属属性性AIAI、DJDJ、C C(分分别别有有6 6、8 8、4848个个分分量量)都都是是已已知知数数,需需对对它它们们赋赋以以初

33、初始始值值,LINGOLINGO通通过过数数据据初初始始化部分来实现,语句格式为:化部分来实现,语句格式为: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,94,9,5,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;ENDDATA注:数据初始化部分以语句注:数据初始化部分以语句DATA:开始,以语句开始,以语句ENDDATA结束,这两个语句必须单独成一行数据之间结束,这两个语句必须单独成一行数据之间的逗号和空格可

34、以互相替换的逗号和空格可以互相替换3目标函数和约束条件目标函数和约束条件 目标函数中的表达式用目标函数中的表达式用LINGO语句表示为:语句表示为:MIN=SUM(LINKS(I,J):C(I,J)*X(I,J);式式中中SUM是是LINGO提提供供的的内内部部函函数数,其其作作用用是是对对某某个个集集合合的的所所有有成成员员,求求某某个个表表达达式式的的和和,该该函函数数需需要要两两个个参参数数,第第一一个个参参数数为为集集合合名名称称,指指定定对对该该集集合合的的所所有有成成员员求求和和,如如果果此此集集合合是是一一个个初初始始集集合合,它它有有m个个成成员员,则则求求和和运运算算对对这这

35、m个个成成员员进进行行,第第二二个个参参数数是是一一个个表表达达式式,表表示示求求和和运运算算对对该该表达式进行表达式进行此此处处SUM的的第第一一个个参参数数是是LINKS(I,J),表表示示求求和和运运算算对对衍衍生生集集合合LINKS进进行行,该该集集合合的的维维数数是是二二,共共有有48个个成成员员,运运算算规规则则是是:先先对对48个个成成员员分分别别求求表表达达式式C(I,J)*X(I,J)的的值值,然然后后求求和和,表表达达式式中中的的C和和X是是集集合合LINKS的的两两个个属属性性,它它们们各各有有48个分量个分量如如果果表表达达式式中中参参与与运运算算的的属属性性属属于于同

36、同一一个个集集合合,则则SUM语语句句中中的的索索引引(相相当当于于矩矩阵阵或或数数组组的的下下标标)可可以以省省略略(隐隐藏藏),假假如如表表达达式式中中参参与与运运算算的的属属性性属属于于不不同同的的集集合合,则则不不能能省省略略属属性性的的索索引引 目标函数可以简写为目标函数可以简写为 MIN=SUM(LINKS:C*X)约约束束条条件件xijai实实际际上上包包含含了了6 6个个不不等等式式,LINGO语句为:语句为:FOR(WH(I):SUM(VD(J):X(I,J)=AI(I);语语句句中中的的FOR是是LINGO提提供供的的内内部部函函数数,它它的的作作用用是是对对某某个个集集合

37、合的的所所有有成成员员各各生生成成一一个个约约束束表表达达式式,它它有有两两个个参参数数,第第一一个个参参数数是是集集合合名名,表表示示对对该该集集合合的的所所有有成成员员来来生生成成约约束束表表达达式式,此此参参数数现现为为WH,它它表表示示货货栈栈,共共有有6个个成成员员,故故应应生生成成6个个约约束束表表达达式式,第第二二个个参参数数是是约约束束表表达达式式的的具具体体内内容容,这这里里再再调调用用SUM函函数数,表表示示约约束束表表达达式式的的左左边边是是求求和和,是是对对集集合合VD的的8个个成成员员求求和和,是是对对表表达达式式X(I,J)中的第二维中的第二维J求和,即求和,即约约

38、束束表表达达式式的的右右边边是是集集合合WH的的属属性性AI。它它有有6个分量,与个分量,与6个约束表达式一一对应。个约束表达式一一对应。类似地,类似地,约束条件约束条件用用LINGO语句表示为:语句表示为:FOR(VD(J):SUM(WH(I):X(I,J)=DJ(J);4完整的模型完整的模型综上所述,完整的综上所述,完整的LINGO模型如下:模型如下:MODEL:SETS:WH/W1.W6/:AI;VD/V1.V8/:DJ;LNKS(WH,VD):C,X;ENDSETSDATA:AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43,38;C=6,2,6,

39、7,4,2,5,94,9,5,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;ENDDATAMIN=SUM(LINKS:C*X);FOR(WH(I):SUM(VD(J):X(I,J)=AI(I);FOR(VD(J):SUM(WH(I):X(I,J)=DJ(J);END注注:LINGO模模型型以以语语句句MODEL:开开始始,以以语语句句END结结束束,这这两两个个语语句句单单独独成成一一行行,模模型型分分为为集集合合定定义义部部分分、数数据据初初始始化化部部分分、目目标标函函数数、约约束束条条件件,这这

40、几几个个部部分分的的先先后后次次序序无无关关紧紧要要,!开开头头的的语句是注释语句,在模型中可有可无语句是注释语句,在模型中可有可无选菜单选菜单Lingo|Solve(或按(或按Ctrl+S),或鼠标点),或鼠标点击击“求解求解”按钮,在按钮,在“SolutionReport”信息窗口信息窗口中,看到具体求解结果。中,看到具体求解结果。Globaloptimalsolutionfoundatstep:17(17步找到全局最优解)步找到全局最优解)Objectivevalue:664.0000(目标函数值)(目标函数值)VariableValueReducedCost(以下是调运方案)(以下是调

41、运方案)X(W1,V1)0.00000005.000000X(W1,V2)19.000000.000000(以上省略了以上省略了X(W1,V3)至至X(W6,V5)的具体数值的具体数值)X(W6,V6)27.000000.000000X(W6,V7)3.0000000.000000X(W6,V8)0.00000003.000000表表2.2.最优运输方案最优运输方案 V1V2V3V4V5V6V7V8合计合计W1019004100060W210032000033W3011000040051W400000503843W534700000041W6002200273052合计合计3537223241

42、324338二、二、LINGO建模语言的优点建模语言的优点1.对对大大规规模模数数学学规规划划,LINGO语语言言所所建建模模型型较简洁,语句不多;较简洁,语句不多;2.模模型型易易于于扩扩展展,因因为为FOR、SUM等等语语句句并并没没有有指指定定循循环环或或求求和和的的上上下下限限,如如果果在在集集合合定定义义部部分分增增加加集集合合成成员员的的个个数数,则则循循环环或或求求和和自自然然扩扩展,不需要改动目标函数和约束条件;展,不需要改动目标函数和约束条件;3.数数据据初初始始化化部部分分与与其其它它部部分分语语句句分分开开,对对同同一一模模型型用用不不同同数数据据来来计计算算时时,只只需

43、需改改动动数数据据部部分分即可,其它语句不变;即可,其它语句不变;4.“集集合合”是是LINGO有有特特色色的的概概念念,它它把把实实际际问问题题中中的的事事物物与与数数学学变变量量及及常常量量联联系系起起来来,是是实实际际问问题题到到数数学学量量的的抽抽象象,它它比比C语语言言中中的的数数组组用用途途更更为广泛。为广泛。5.使使用用了了集集合合以以及及FOR、SUM等等集集合合操操作作函函数数以以后后可可以以用用简简洁洁的的语语句句表表达达出出常常见见的的规规划划模模型型中中的的目目标标函函数数和和约约束束条条件件,即即使使模模型型有有大大量量决决策策变变量和大量数据,组成模型的语句并不随之

44、增加量和大量数据,组成模型的语句并不随之增加 1.3 1.3 LINGO的菜单 一、文件菜单(File MenuFile Menu)1 1 新建(新建(NewNew)选选用用“新新建建”命命令令、单单击击“新新建建”按按钮钮或或直直接接按按F2F2键键可可以以创创建建一一个个新新的的“ModelModel”窗窗口口。在在这这个个新新的的“ModelModel”窗口中能够输入所要求解的模型。窗口中能够输入所要求解的模型。2 2 打开(打开(OpenOpen)选选用用“打打开开”命命令令、单单击击“打打开开”按按钮钮或或直直接接按按F3F3键键可可以以打打开开一一个个已已经经存存在在的的文文本本文

45、文件件。这这个个文文件件可可以以是是一一个个ModelModel文件。文件。3 3 保存保存(Save)(Save)选用选用“保存保存”命令、单击命令、单击“保存保存”按钮或直接按按钮或直接按F4F4键键用来保存当前活动窗口(最前台的窗口)中的模型结果、用来保存当前活动窗口(最前台的窗口)中的模型结果、命令序列等保存为文件。命令序列等保存为文件。4 4 另存为另存为(Save As(Save As)选选用用“另另存存为为”命命令令或或按按F5F5键键可可以以将将当当前前活活动动窗窗口口中中的的内内容容保保存存为为文文本本文文件件,其其文文件件名名为为你你在在“另另存存为为”对对话话框框中中输输

46、入入的的文文件件名名。利利用用这这种种方方法法你你可可以将任何窗口的内容如模型、求解结果或命令保存为文件。以将任何窗口的内容如模型、求解结果或命令保存为文件。5 5 关闭(关闭(CloseClose)选选用用“关关闭闭”(Close)(Close)命命令令或或按按F6F6键键将将关关闭闭当当前前活活动动窗窗口口。如如果果这这个个窗窗口口是是新新建建窗窗口口或或已已经经改改变变了了当当前前文文件件的的内容,内容,LINGOLINGO系统将会提示是否想要保存改变后的内容。系统将会提示是否想要保存改变后的内容。6 6 打印打印(Print)(Print)选用选用“打印打印”(Print)(Print

47、)命令、单击命令、单击“打印打印”按钮或直按钮或直接按接按F7F7键可以将当前活动窗口中的内容发送到打印机。键可以将当前活动窗口中的内容发送到打印机。7 7 打印设置打印设置(Print Setup(Print Setup)在在文文件件菜菜单单中中选选用用“打打印印设设置置”命命令令或直接按或直接按F8F8键可以将文件输出到指定的打印机。键可以将文件输出到指定的打印机。8 8 打印预览打印预览(Print Preview)(Print Preview)在在文文件件菜菜单单中中选选用用“打打印印预预览览”命命令令或直接按或直接按Shift+F8Shift+F8键可以进行打印预览。键可以进行打印预

48、览。9 9 输出到日志文件输出到日志文件(Log Output(Log Output)从文件菜单中选用从文件菜单中选用“Log OutputLog Output”命命令或按令或按F9F9键打开一个对话框,将原来输出到报告键打开一个对话框,将原来输出到报告窗口的内容输出到文本文件中。窗口的内容输出到文本文件中。1010提提交交LINGOLINGO命命令令脚脚本本文文件件(Take(Take CommandsCommands)从从文文件件菜菜单单中中选选用用“Take Take CommandsCommands”命命令令或或直直接接按按F11F11键键就就可可以以将将LINGOLINGO命命令令脚

49、脚本本(command command scriptscript)和和模模型型文文件件打打包包成成批批处处理理文文件件,以便自动执行。以便自动执行。1111引入引入LINDOLINDO文件文件(Import LINDO File(Import LINDO File)从从文文件件菜菜单单中中选选用用“Import Import LINDO LINDO FileFile”命命令令或或直直接接按按F12F12键键可可以以打打开开一一个个LINDOLINDO格格式式模模型型的的文文件件,然然后后LINGOLINGO系系统统会会尽尽可可能能把把模模型型转转化化为为LINGOLINGO语法允许的程序。语法

50、允许的程序。12.12.输出特殊格式文件输出特殊格式文件(Export File)(Export File)输输出出MPSMPS或或者者MPIMPI格格式式文文件件,这这是是IBMIBM开开发发的的工工业标准格式。业标准格式。13.13.软件注册软件注册(License)(License)如如果果安安装装时时没没有有注注册册码码,后后来来得得到到了了注注册册码码,可可以以在在这这里里输输入入,以以便便使使LINGOLINGO软软件件从从学学习习版版升升级级成正式版。成正式版。14.14.用户基本信息用户基本信息(Database User Info)(Database User Info)显示

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服