线性及非线性规划计算软件lingo.ppt_第1页
线性及非线性规划计算软件lingo.ppt_第2页
线性及非线性规划计算软件lingo.ppt_第3页
线性及非线性规划计算软件lingo.ppt_第4页
线性及非线性规划计算软件lingo.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常用数学软件基础及应用 线性规划及非线性规划计算软件 主讲人 王为洪 线性规划及非线性规划计算软件 Lingo是求解非线性规划的常用软件包 同时它也能够求解线性规划 但是 如果将Lingo用于求解线性规划 则其计算速度要比只能求解线性规划的软件Lindo慢得多 因此 如果专门求解线性规划 而且决策变量个数或者约束条件较多 请使用Lindo 这两个软件都是同一个公司开发的 或者使用mathematica 它也是计算线性规划的较好的软件包 启动Lingo 你会看到如下窗口 将求解内容填入命令窗口后 按求解按钮 则得到计算结果 求解按钮 命令窗口 最后计算结果是 x 0 y 100 可见 是一个简便的线性规划与非线性规划计算程序 下面用一个例子来说明 的基本概念 在命令窗口中输入 MAX 100 这就是一个最简单的线性规划 输入后 按求解键 就会给出计算结果 其中结果用求解窗口的形式给出 此处 称为目标函数 本例中求目标函数 的最大值 为约束条件 为决策变量 中的每一行都以分号结束 如果有多个约束条件 就从上面的第三行一直往下写 中 与 均代表 与 也均代表 中的注解命令用符号 开头 若一个命令或语句一行写不下 可以分多行写 用回车键换行 但是 最后结束命令时 一定要打个分号 一行内也可写多个命令 只要每个命令用分号分开即可 也就是说 分号是 的分隔符 的命令从来不区分大小写 当你在 中定义变量时 每个变量都要以 个字母开头 后面可跟数字或者下划线 最多可以有 个字符 下面是 个例子 例1在决策变量均非负的条件下 求目标函数 x y 2 z 2 2 4的最小值 在 中输入下面的程序后 按求解按钮 观察 给出的结果 MIN x y 2 z 2 2 4 x 0 y 0 z 0 用 求解规划问题是十分方便的 例 目标函数是 x1 2 x2 3 x3 4 x4 8 x8 9 x9 2约束条件是 3 x3 4 x4 1 5 x5 6 x6 7 x7 2 8 x8 9 x9 3 在 中输入下列命令 MIN x1 2 x2 3 x3 4 x4 5 x5 6 x6 7 x7 8 x8 9 x9 2 3 x3 4 x4 1 5 x5 6 x6 7 x7 2 8 x8 9 x9 3 最后得到最小值36 在 中 输入约束条件时 如果约束条件很多 而某个约束条件出错 则 给出的错误信息是一个行号 告诉你某行出现错误 但如果你在约束条件前面加上用方括号括起来的某个字符串 行标 那么此时若约束条件出错 给出的错误信息就会一目了然 而且 最后给出的分析结果你也会看得清清楚楚 不过这个字符串应该符合变量的定义规则 建议你用这种方法输入约束条件 通过以上介绍 就完全可以计算了 下面我们介绍LINGO的语法 算术运算符 用括号括起来的式子优先级最高 逻辑运算符 NOT AND OR EQ NE GT GE LT LE 分别表示非 与 或 相等 不等 大于 大于或等于 小于 小于或等于 主要用在 MIN MAX SUM FOR等函数中 关系运算符 请注意 LINGO中没有严格的 或 如果你真要用到的话 比如A B 请将它转化为A e B 其中e是一个近似于零的数 数学函数 ABS X SIN X COS X TAN X 正切函数 EXP X FLOOR X 取整函数 返回X的整数部分 若X 0 它返回小于X的最大整数 若XLINGO SOPERATORSANDFUNCTIONS PROBABILITYFUNCTIONS 变量域函数 如果不用下面的函数明确修改变量的取值范围 LINGO认为每个变量都是非负实数 你可用下面的命令修改LINGO的默认值 BIN var 限制变量VAR为一个二进制数 即VAR取值为0或1 BND A var B 限制变量VAR在区间 A B 内 FREE var 取消变量VAR是非负数的限制 即它可以任意实数 GIN var 限制变量VAR为一个整数 以上是对LINGO所作的最简单的介绍 LINGO中提供了一个详细的帮助文件 可在LINGO中的HELP菜单得到 同时它也提供了几十个演示程序 这可以在LINGO中打开FILE菜单的OPEN选项 然后选取 LINGO目录中的 SAMPLES子目录 这个子目录中都是LINGO的例子 用OPEN打开后即可求解 下面是LINGO中SAMPLE目录下的演示程序BOX LG4 程序名 BOX LG4 是对程序的注解 每一个规划都以 MODEL 开始 又以 END 结束 也可以省略此结构 下面的程序段表示求2 05 d w d h 1 w h 的最小值 LINGO中的命令都以分号结束 用方括号 括起来的字符串如 COST 是行标 对实际计算没有什么用处 但它会使LINGO的输出结果一目了然 具体请看看输出结果 你就知道这些方括号的用处了 MODEL COST min 2 05 d w d h 1 w h 以下都是约束条件 SURFACE 2 h d h w d w 888 VOLUME h d w 1512 NOTNARRO h w 518 FOOTPRNT d w 252 END 在按下求解键后 LINGO输出计算结果为 其中汉字是我加入的 使你能看明白 总共6行 3个变量 整数变量没有 Rows 6Vars 3No integervars 0 非线性行数6行非线性变量3个非线性约束条件5个Nonlinearrows 6Nonlinearvars 3Nonlinearconstraints 5Nonzeros 20Constraintnonz 12Density 0 833No 3 Obj MINSinglecols 0 进行到第9次求出解来 其解为50 96508Localoptimalsolutionfoundatstep 9Objectivvalue 50 96508 以下是具体数值VariableValueReducedCostD23 030960 0000000W9 5621960 0000000H6 8656570 0000000 上面计算得出 在最小值处D 23 03096 W 9 562196 H 6 865657 下面我们将D限制在1 5到10 5之间 取消W是非负值的限制 让H取一个整数值 则改成如下 程序名 BOX LG4 已经改动 MODEL COST min 2 05 d w d h 1 w h BND 1 5 d 10 5 FREE W GIN H SURFACE 2 h d h w d w 888 VOLUME h d w 1512 NOTNARRO h w 518 FOOTPRNT d w 252 END 其实 BND 1 5 d 10 5 可以在限制条件中 用D 1 5及D 10 5来代替 但 FREE W 与 GIN H 是不能用别的式子来代替的 GIN 可用于求整数规划 下面我们再提出一个问题 如果目标函数在不同的条件下取不同的值 即用不同的式子来表示 相当于分段函数 那么 怎么计算 这里的关键是目标函数的表达方式 解决这个问题 可以用LINGO中的逻辑运算符 NOT AND OR EQ NE GT GE LT LE 这些运算符 当条件满足时 返回数值1 真 否则返回数值0 假 比如对逻辑表达式 D LT 1 当D 1时 其值为1 否则为0 因此 如果将BOX LG4的目标函数改一下 改成当D 1 W 2 H 3时 还是原来的那个函数 而当D H W取其它值时 目标函数变成3 D W H 则目标函数就变成如下形式 MODEL COST min d LT 1 AND W LT 2 AND H LT 3 2 05 d w d h 1 w h NOT d LT 1 AND W LT 2 AND H LT 3 3 W D H SURFACE 2 h d h w d w 888 VOLUME h d w 1512 NOTNARRO h w 518 FOOTPRNT d w 252 END下面是修改后的运行结果 Localoptimalsolutionfoundatstep 14Objectivevalue 109 9803VariableValueReducedCostD12 437580 1774019E 08W14 099260 0000000H10 123270 0000000RowSlackorSurplusDualPriceCOST109 98031 000000SURFACE0 1136868E 12 0 6192584E 01VOLUME263 22180 0000000NOTNARRO0 00000004 041292NOTHIGH0 20000000 0000000FOOTPRNT76 639410 0000000 LINGO中有一个语句DATA 可以利用它来输入数值数据 请看对BOX LG4的修改 MODEL DATA 此语句必须以 DATA 开始 以 ENDDATA 结束 const1 1512 const2 0 1 这是定义2个常量 input1 程序运行到此处时 会弹出一个对话框 要求你输入input1的值 input2 输入input2的值 也可写成input1 input2 ENDDATA COST min input1 05 d w d h const2 w h SURFACE 2 h d h w d w input2 VOLUME h d w const1 NOTNARRO h w 518 FOOTPRNT d w 252 END 再看看下面的函数 y 4x2 x4 3 其函数图象为 其最大值点为为x sqrt 2 下面是运用LINGO求解的程序 model MAX max 4 x 2 x 4 3 free x init x 2 endinitend 其中 init endinit 命令是给变量设一个初值 不同的初值不仅会影响求解的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论