最优化算法第1次实验内容1.docx

上传人:b****6 文档编号:15388438 上传时间:2023-07-04 格式:DOCX 页数:31 大小:109.27KB
下载 相关 举报
最优化算法第1次实验内容1.docx_第1页
第1页 / 共31页
最优化算法第1次实验内容1.docx_第2页
第2页 / 共31页
最优化算法第1次实验内容1.docx_第3页
第3页 / 共31页
最优化算法第1次实验内容1.docx_第4页
第4页 / 共31页
最优化算法第1次实验内容1.docx_第5页
第5页 / 共31页
最优化算法第1次实验内容1.docx_第6页
第6页 / 共31页
最优化算法第1次实验内容1.docx_第7页
第7页 / 共31页
最优化算法第1次实验内容1.docx_第8页
第8页 / 共31页
最优化算法第1次实验内容1.docx_第9页
第9页 / 共31页
最优化算法第1次实验内容1.docx_第10页
第10页 / 共31页
最优化算法第1次实验内容1.docx_第11页
第11页 / 共31页
最优化算法第1次实验内容1.docx_第12页
第12页 / 共31页
最优化算法第1次实验内容1.docx_第13页
第13页 / 共31页
最优化算法第1次实验内容1.docx_第14页
第14页 / 共31页
最优化算法第1次实验内容1.docx_第15页
第15页 / 共31页
最优化算法第1次实验内容1.docx_第16页
第16页 / 共31页
最优化算法第1次实验内容1.docx_第17页
第17页 / 共31页
最优化算法第1次实验内容1.docx_第18页
第18页 / 共31页
最优化算法第1次实验内容1.docx_第19页
第19页 / 共31页
最优化算法第1次实验内容1.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

最优化算法第1次实验内容1.docx

《最优化算法第1次实验内容1.docx》由会员分享,可在线阅读,更多相关《最优化算法第1次实验内容1.docx(31页珍藏版)》请在冰点文库上搜索。

最优化算法第1次实验内容1.docx

最优化算法第1次实验内容1

《最优化算法》实验指导书1

一、实验名称:

Lingo软件的介绍及使用

二、实验目的:

熟悉LINGO软件的使用方法、功能,会求解一般线性规划问题和简单非线性规划模型。

针对实际问题,会建立线性规划模型并求解。

三、实验内容

1、熟悉LINGO软件的启动步骤。

2、熟悉LINGO软件的各菜单、命令按钮的作用。

3、学会如何使用LINGO的帮助文件。

4、学会输入线性规划模型和简单非线性规划模型的基本格式,并能看懂求

解结果。

四、实验步骤

1启动LINGO软件的步骤。

当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:

 

外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。

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

LINGO包含了内置的建模语言,允许以简练、直观的方式描述较大规模的优化问题。

模型中所需数据可以以一定的格式保存在独立的文件中。

下面举两个例子。

2、示例:

用LINGO求解线性规划

则在LINGO的模型窗口中输入如下代码:

min =2*x1+2*x2;

2*x1+5*x2>=12;

x1+2*x2<=10;

注:

(1)在输入目标函数时,因变量Z可不要输,只输“=”及后面表达式;

(2)用*号表示乘号

(3)每一个约束条件或目标函数后用分号“;”结束;

(4)非负约束可以不要输入,软件默认变量是非负的。

(5)可以用“!

”开始写说明语句,但说明语句后也要用分号“;”结束。

然后点击工具条上的运行图标

,屏幕上出现

Rows=3Vars=2No.integervars=0(allarelinear)

Nonzeros=8Constraintnonz=4(1are+-1)Density=0.889

Smallestandlargestelementsinabsvalue=1.0000012.0000

No.<:

1No.=:

0No.>:

1,Obj=MIN,GUBs<=1

Singlecols=0

(以上这段是对模型的描述)

Optimalsolutionfoundatstep(最优解在第1步被找到):

1

Objectivevalue(目标函数值):

4.800000

(下列显示的是最优解)

Variable(变量)Value(值)ReducedCost

(缩减成本系数)

X10.00000001.200000

X22.4000000.0000000

(下列显示的是松驰变量或剩余变量)

RowSlackorSurplusDualPrice

(行)(松弛变量或剩余变量)(检验数,对偶问题的解)

14.800000-1.000000

20.0000000-0.4000000

35.2000000.0000000

结论:

原规划的最优解是x1=0,x2=2.4;最优值为4.8

注释:

Reducedcost是指缩减成本系数,基变量的一定为0,对非基变量表示该变量每增加一个单位,目标函数值减少的量(对求解max的函数而言)。

Dualprice对偶价格,表示当对应的约束有微小变动时,目标函数的变化率。

3、LINGO软件的菜单命令(LINGOWINDOWS命令 )

(一)文件菜单(FileMenu)

(1)新建(New)

从文件菜单中选用“新建”命令、单击“新建”按钮或直接按F2键可以创建一个新的“Model”窗口。

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

(2)打开(Open)

从文件菜单中选用“打开”命令、单击“打开”按钮或直接按F3键可以打开一个已经存在的文本文件。

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

(3)保存(Save)

从文件菜单中选用“保存”命令、单击“保存”按钮或直接按F4键用来保存当前活动窗口(最前台的窗口)中的模型结果、命令序列等保存为文件。

(4)另存为...(SaveAs...)

从文件菜单中选用“另存为...”命令或按F5键可以将当前活动窗口中的内容保存为文本文件,其文件名为你在“另存为...”对话框中输入的文件名。

利用这种方法你可以将任何窗口的内容如模型、求解结果或命令保存为文件。

(5)关闭(Close)

在文件菜单中选用“关闭”(Close)命令或按F6键将关闭当前活动窗口。

如果这个窗口是新建窗口或已经改变了当前文件的内容,LINGO系统将会提示是否想要保存改变后的内容。

(6)打印(Print)

在文件菜单中选用“打印”(Print)命令、单击“打印”按钮或直接按F7键可以将当前活动窗口中的内容发送到打印机。

(7)打印设置(PrintSetup...)

在文件菜单中选用“打印设置...”命令或直接按F8键可以将文件输出到指定的打印机。

(8)打印预览(PrintPreview)

在文件菜单中选用“打印预览...”命令或直接按Shift+F8键可以进行打印预览。

(9)输出到日志文件(LogOutput...)

从文件菜单中选用“LogOutput...”命令或按F9键打开一个对话框,用于生成一个日志文件,它存储接下来在“命令窗口”中输入的所有命令。

(10)提交LINGO命令脚本文件(TakeCommands...)

从文件菜单中选用“TakeCommands...”命令或直接按F11键就可以将LINGO命令脚本(commandscript)文件提交给系统进程来运行。

(11)引入LINGO文件(ImportLingoFile...)

从文件菜单中选用“ImportLingoFile...”命令或直接按F12键可以打开一个LINGO格式模型的文件,然后LINGO系统会尽可能把模型转化为LINGO语法允许的程序。

(12)退出(Exit)

从文件菜单中选用“Exit”命令或直接按F10键可以退出LINGO系统。

 

(二)编辑菜单(EditMenu)

(1)恢复(Undo)

从编辑菜单中选用“恢复”(Undo)命令或按Ctrl+Z组合键,将撤销上次操作、恢复至其前的状态。

(2)剪切(Cut)

从编辑菜单中选用“剪切”(Cut)命令或按Ctrl+X组合键可以将当前选中的内容剪切至剪贴板中。

(3)复制(Copy)

从编辑菜单中选用“复制”(Copy)命令、单击“复制”按钮或按Ctrl+C组合键可以将当前选中的内容复制到剪贴板中。

(4)粘贴(Paste)

从编辑菜单中选用“粘贴”(Paste)命令、单击“粘贴”按钮或按Ctrl+V组合键可以将粘贴板中的当前内容复制到当前插入点的位置。

(5)粘贴特定..(PasteSpecial。

与上面的命令不同,它可以用于剪贴板中的内容不是文本的情形。

(6)全选(SelectAll)

从编辑菜单中选用“SelectAll”命令或按Ctrl+A组合键可选定当前窗口中的所有内容。

(7)匹配小括号(MatchParenthesis)

从编辑菜单中选用“MatchParenthesis”命令、单击“MatchParenthesis”按钮或按Ctrl+P组合键可以为当前选中的开括号查找匹配的闭括号。

(8)粘贴函数(PasteFunction)

从编辑菜单中选用“PasteFunction”命令可以将LINGO的内部函数粘贴到当前插入点。

 (三)LINGO菜单

(1)求解模型(Slove)

从LINGO菜单中选用“求解”命令、单击“Slove”按钮或按Ctrl+S组合键可以将当前模型送入内存求解。

(2)求解结果...(Solution...)

从LINGO菜单中选用“Solution...”命令、单击“Solution...”按钮或直接按Ctrl+O组合键可以打开求解结果的对话框。

这里可以指定查看当前内存中求解结果的那些内容。

(3)查看...(Look...)

从LINGO菜单中选用“Look...”命令或直接按Ctrl+L组合键可以查看全部的或选中的模型文本内容。

(5)模型通常形式...(Generate...)

从LINGO菜单中选用“Generate...”命令或直接按Ctrl+G组合键可以创建当前模型的代数形式、LINGO模型或MPS格式文本。

(6)选项...(Options...)

从LINGO菜单中选用“Options...”命令、单击“Options...”按钮或直接按Ctrl+I组合键可以改变一些影响LINGO模型求解时的参数。

该命令将打开一个含有7个选项卡的窗口,你可以通过它修改LINGO系统的各种参数和选项。

如上图。

修改完以后,你如果单击“Apply(应用)”按钮,则新的设置马上生效;如果单击“OK(确定)”按钮,则新的设置马上生效,并且同时关闭该窗口。

如果单击“Save(保存)”按钮,则将当前设置变为默认设置,下次启动LINGO时这些设置仍然有效。

单击“Default(缺省值)”按钮,则恢复LINGO系统定义的原始默认设置(缺省设置)。

6。

1Interface(界面)选项卡

选项组

选项

含义

General

(一般选项)

ErrorsInDialogs(错误对话框)

如果选择该选项,求解程序遇到错误时将打开一个对话框显示错误,你关闭该对话框后程序才会继续执行;否则,错误信息将在报告窗口显示,程序仍会继续执行

SplashScreen

(弹出屏幕)

如果选择该选项,则LINGO每次启动时会在屏幕上弹出一个对话框,显示LINGO的版本和版权信息;否则不弹出

StatusBar

(状态栏)

如果选择该选项,则LINGO系统在主窗口最下面一行显示状态栏;否则不显示

StatusWindow

(状态窗口)

如果选择该选项,则LINGO系统每次运行LINGO|Solve命令时会在屏幕上弹出状态窗口;否则不弹出

TerseOutput

(简洁输出)

如果选择该选项,则LINGO系统对求解结果报告等将以简洁形式输出;否则以详细形式输出

Toolbar

(工具栏)

如果选择该选项,则显示工具栏;否则不显示

SolutionCutoff

(解的截断)

小于等于这个值的解将报告为“0”(缺省值是10-9)

FileFormat

(文件格式)

lg4(extended)

(lg4,扩展格式)

模型文件的缺省保存格式是lg4格式(这是一种二进制文件,只有LINGO能读出)

lng(textonly)

(lng,纯文本格式)

模型文件的缺省保存格式是lng格式(纯文本)

SyntaxColoring

(语法配色)

Linelimit

(行数限制)

语法配色的行数限制(缺省为1000)。

LINGO模型窗口中将LINGO关键此显示为兰色,注释为绿色,其他为黑色,超过该行数限制后则不再区分颜色。

特别地,设置行数限制为0时,整个文件不再区分颜色。

Delay(延迟)

设置语法配色的延迟时间(秒,缺省为0,从最后一次击键算起)。

ParenMatch

(括号匹配)

如果选择该选项,则模型中当前光标所在处的括号及其相匹配的括号将以红色显示;否则不使用该功能

CommandWindow

(命令窗口)

SendReportstoCommandWindow

(报告发送到命令窗口)

如果选择该选项,则输出信息会发送到命令窗口;否则不使用该功能

EchoInput

(输入信息反馈)

如果选择该选项,则用File|TakeCommand命令执行命令脚本文件时,处理信息会发送到命令窗口;否则不使用该功能

LineCountLimits

(行数限制)

命令窗口能显示的行数的最大值为Maximum(缺省为800);如果要显示的内容超过这个值,每次从命令窗口滚动删除的最小行数为Minimum(缺省为400)

PageSizeLimit(页面大小限制)

命令窗口每次显示的行数的最大值为Length(缺省为没有限制),显示这么多行后会暂停,等待用户响应;每行最大字符数为Width(缺省为74,可以设定为64-200之间),多余的字符将被截断

 

6.2 GeneralSolver(通用求解器)选项卡

选项组

选项

含义

GeneratorMemoryLimit(MB)矩阵生成器的内存限制(兆)

缺省值为32M,矩阵生成器使用的内存超过该限制,LINGO将报告"Themodelgeneratorranoutofmemory"

RuntimeLimits

运行限制

Iterations

迭代次数

求解一个模型时,允许的最大迭代次数(缺省值为无限)

Time(sec)

运行时间(秒)

求解一个模型时,允许的最大运行时间(缺省值为无限)

DualComputations

(对偶计算)

求解时控制对偶计算的级别,有三种可能的设置:

·None:

不计算任何对偶信息;

·Prices:

计算对偶价格(缺省设置);

·PricesandRanges:

计算对偶价格并分析敏感性。

ModelRegeneration

(模型的重新生成)

控制重新生成模型的频率,有三种可能的设置:

·Onlywhentextchanges:

只有当模型的文本修改后才再生成模型;

·Whentextchangesorwithexternalreferences:

当模型的文本修改或模型含有外部引用时(缺省设置);

·Always:

每当有需要时。

Linearization(线性化)

Degree

(线性化程度)

决定求解模型时线性化的程度,有四种可能的设置:

SolverDecides:

若变量数小于等于12个,则尽可能全部线性化;否则不做任何线性化(缺省设置)

·None:

不做任何线性化

·Low:

对函数@ABS(),@MAX(),@MIN(),@SMAX(),@SMIN(),以及二进制变量与连续变量的乘积项做线性化

·High:

同上,此外对逻辑运算符#LE#,#EQ#,#GE#,#NE#做线性化

BigM(线性化的大M系数)

设置线性化的大M系数(缺省值为106)。

Delta(线性化的误差限)

设置线性化的误差限(缺省值为10-6)。

AllowUnrestrictedUseofPrimitiveSetMemberNames

(允许无限制地使用基本集合的成员名)

选择该选项可以保持与LINGO4.0以前的版本兼容:

即允许使用基本集合的成员名称直接作为该成员在该集合的索引值(LINGO4.0以后的版本要求使用@INDEX函数)。

CheckforDuplicateNamesinDataandModel(检查数据和模型中的名称是否重复使用)

选择该选项,LINGO将检查数据和模型中的名称是否重复使用,如基本集合的成员名是否与决策变量名重复。

UseR/CformatnamesforMPSI/O(在MPS文件格式的输入输出中使用R/C格式的名称)

在MPS文件格式的输入输出中,将变量和行名转换为R/C格式

 

 

6.3LinearSolver(线性求解器)选项卡

选项组

选项

含义

Method

求解方法

求解时的算法,有四种可能的设置:

·SolverDecides:

LINGO自动选择算法

(缺省设置)

·PrimalSimplex:

原始单纯形法

·DualSimplex:

对偶单纯形法

·Barrier:

障碍法(即内点法)

InitialLinearFeasibilityTol初始线性可行性误差限

控制线性模型中约束满足的初始误差限(缺省值为3*10-6)

FinalLinearFeasibilityTol.最后线性可行性误差限

控制线性模型中约束满足的最后误差限(缺省值为10-7)

ModelReduction

模型降维

控制是否检查模型中的无关变量,从而降低模型的规模:

·Off:

不检查

·On:

检查

·SolverDecides:

LINGO自动决定(缺省设置)

PricingStrategies

价格策略(决定出基变量的策略)

PrimalSolver

原始单纯形法

有三种可能的设置:

·SolverDecides:

LINGO自动决定(缺省设置)

·Partial:

LINGO对一部分可能的出基变量进行尝试

·Devex:

用Steepest-Edge(最陡边)近似算法对所有可能的变量进行尝试,找到使目标值下降最多的出基变量

DualSolver对偶单纯形法

有三种可能的设置:

·SolverDecides:

LINGO自动决定(缺省设置)

·Dantzig:

按最大下降比例法确定出基变量

·Steepest-Edge:

最陡边策略,对所有可能的变量进行尝试,找到使目标值下降最多的出基变量

MatrixDecomposition

矩阵分解

选择该选项,LINGO将尝试将一个大模型分解为几个小模型求解;否则不尝试

ScaleModel

模型尺度的改变

选择该选项,LINGO检查模型中的数据是否平衡(数量级是否相差太大)并尝试改变尺度使模型平衡;否则不尝试

 

 6.4 NonlinearSolver(非线性求解器)选项卡

选项组

选项

含义

InitialNonlinearFeasibilityTol.初始非线性可行性误差限

控制模型中约束满足的初始误差限(缺省值为10-3)

FinalNonlinearFeasibilityTol.最后非线性可行性误差限

控制模型中约束满足的最后误差限(缺省值为10-6)

NonlinearOptimalityTol.

非线性规划的最优性误差限

当目标函数在当前解的梯度小于等于这个值以后,停止迭代(缺省值为2*10-7)

SlowProgressIterationLimit缓慢改进的迭代次数的上限

当目标函数在连续这么多次迭代没有显著改进以后,停止迭代(缺省值为5)

Derivatives

导数

Numerical

数值法

用有限差分法计算数值导数(缺省值)

Analytical

解析法

用解析法计算导数(仅对只含有算术运算符的函数使用)

Strategies

策略

CrashInitialSolution

生成初始解

选择该选项,LINGO将用启发式方法生成初始解;否则不生成(缺省值)

QuadraticRecognition

识别二次规划

选择该选项,LINGO将判别模型是否为二次规划,若是则采用二次规划算法(包含在线性规划的内点法中);否则不判别(缺省值)

SelectiveConstraintEval

有选择地检查约束

选择该选项,LINGO在每次迭代时只检查必须检查的约束(如果有些约束函数在某些区域没有定义,这样做会出现错误);否则,检查所有约束(缺省值)

SLPDirections

SLP方向

选择该选项,LINGO在每次迭代时用SLP(SuccessiveLP,逐次线性规划)方法寻找搜索方向(缺省值)

SteepestEdge

最陡边策略

选择该选项,LINGO在每次迭代时将对所有可能的变量进行尝试,找到使目标值下降最多的变量进行迭代;缺省值为不使用最陡边策略

 

 6.5 IntegerPre-Solver(整数预处理求解器)选项卡

选项组

选项

含义

Heuristics

启发式方法

Level

控制采用启发式搜索的次数(缺省值为3,可能的值为0-100).启发式方法的目的是从分枝节点的连续解出发,搜索一个好的整数解。

MinSeconds

每个分枝节点使用启发式搜索的最小时间(秒)

ProbingLevel

探测水平(级别)

控制采用探测(Probing)技术的级别(探测能够用于混合整数线性规划模型,收紧变量的上下界和约束的右端项的值)。

可能的取值为:

·SolverDecides:

LINGO自动决定(缺省设置)

·1-7:

探测级别逐步升高。

ConstraintCuts

约束的割(平面)

Application

应用节点

控制在分枝定界树中,哪些节点需要增加割(平面),可能的取值为:

·RootOnly:

仅根节点增加割(平面)

·AllNodes:

所有节点均增加割(平面)

·SolverDecides:

LINGO自动决定(缺省设置)

RelativeLimit

相对上限

控制生成的割(平面)的个数相对于原问题的约束个数的上限(比值),缺省值为0.75

MaxPasses

最大迭代检查的次数

为了寻找合适的割,最大迭代检查的次数。

有两个参数:

·Root:

对根节点的次数(缺省值为200)

·Tree:

对其他节点的次数(缺省值为2)

Types

类型

控制生成的割(平面)的策略,共有12种策略可供选择。

(如想了解细节,请参阅整数规划方面的专著)

 

6.6 IntegerSolver(整数求解器)选项卡

整数预处理程序只用于整数线性规划模型(ILP模型),对连续规划和非线性模型无效。

选项组

选项

含义

Branching

分枝

Direction

控制分枝策略中优先对变量取整的方向,有三种选择:

·Both:

LINGO自动决定(缺省设置)

·Up:

向上取整优先

·Down:

向下取整优先

Priority

控制分枝策略中优先对哪些变量进行分枝,有两种选择:

·LINGODecides:

LINGO自动决定(缺省设置)

·Binary:

二进制(0-1)变量优先

Integrality

整性

Absolute

绝对误差限

当变量与整数的绝对误差小于这个值时,该变量被认为是整数。

缺省值为10-6

Relative

相对误差限

当变量与整数的相对误差小于这个值时,该变量被认为是整数。

缺省值为8*10-6

LPSolver

LP求解程序

WarmStart

热启动

当以前面的求解结果为基础,热启动求解程序时采用的算法,有四种可能的设置:

·LINGODecides:

LINGO自动选择算法(缺省设置)

·PrimalSimplex:

原始单纯形法

·DualSimplex:

对偶单纯形法

·Barrier:

障碍法(即内点法)

ColdStart

冷启动

当不以前面的求解结果为基础,冷启动求解程序时采用的算法,有四种可能的设置:

(同上,略)

Optimality

最优性

Absolute

目标函数的绝对误差限

当当前目标函数值与最优值的绝对误差小于这个值时,当前解被认为是最优解(也就是说:

只需要搜索比当前解至少改进这么多个单位的解)。

缺省值为8*10-8

Relative

目标函数的相对误差限

当当前目标函

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2