欢迎光临散文网 会员登陆 & 注册

数学规划求解软件Lingo使用简介

2023-07-08 10:17 作者:面壁思过令狐冲  | 我要投稿

一、规划软件LINDO

美国Chicago大学:Linus Schrage教授于1980年前后开发,后来成立了LINDO系统公司。(LINDO Systems Inc.)

网址:www.lindo.com

 

二、数学规划模型

决策变量 x=(x1,x2,…,xn)

目标函数 min Z=f(x)

约束条件 s.t. x属于A


求解:单纯形法

 

三、Lingo菜单及对话框


Lingo的工具栏:


Lingo菜单栏:


Lingo的运行状态窗口:



Options7个选项卡:


四、Lingo基本语法

1、定义目标函数为MIN=,MAX=.

2、以一个分号“;”结尾。除SETS,ENDSETS,DATA,ENDDATA,END之外。

3、可以放在约束条件的右端,同时数字也可放在约束条件的左端。

4、假定各变量非负。

5、注释:“!”

6、<\>为≤、≥






建模时需要的几个基本问题:

1、尽量使用实数优化,减少整数约束和整数变量

2、尽量使用光滑优化,减少非光滑约束的个数

如:尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等

3、尽量使用线性模型,减少非线性约束和非线性变量的个数

如:x/y<5改为x<5y

4、合理设定变量上下界,尽可能给出变量初始值

5、模型中使用的参数数量级要适当。如小于十的三次方。


五、Lingo运算符和函数

1、运算符及其优先级



2、Lingo基本数学函数


3、Lingo变量定界函数


4、Lingo条件判断函数

@IF(logical_condition,true_result,false_result)

分段函数

5、Lingo集合循环函数

难点、重点


六、Lingo建模语言

构成:四个段

目标与约束段

集合段

数据段

初始段

(计算段)










集合SET:

格式:集合名 元素列表 属性列表

      Setname[/member_list/][:attribute_list];

      [……] 表示可选项

元素列表:

显式列举法:列出全部元素,用逗号或空格分开

隐式列举法:1..n

属性列表缺省:集合可在程序中作为一循环变量使用,构造更复杂的派生集合

元素列表缺省:必须在数据段给出元素列表赋值

派生集合:

基于其他集合而派生出来的二维或多维集合

格式:集合名 父集合列表 元素列表 属性列表

  Setname(parent_set_list)[/member_list/][:attribute_list];

元素列表缺省:所有组合——稠密集合,或数据段列表赋值

元素列表——稀疏集合:元素列表法——枚举;元素过滤法——利用过滤条件

Setname(parent_set_list)[|filtrate_condition][:attribute_list];


七、Lingo集合循环函数

难点!重点!

循环操作函数——集合上的元素——下标:

集合名 集合索引列表 过滤条件 表达式

@function(setname{(set_index_list)[|condition]]:expression_list);

集合函数名:for max min sum prod

数学规划求解软件Lingo使用简介的评论 (共 条)

分享到微博请遵守国家法律