- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lingo的讲解
1,从Lindo到Lingo 线性规划是优化方法中最基本,也是最重要的方法,最根本的原因是模型的规范性以及求解的高效率。其最基本的形式如下: 当问题比较简单是,利用Lindo可以方便的求解。比如下面的问题 max 2x1+3x2 s.t. x1+x2 ≤ 2 x1-2x2≤1/2 x1,x2非负 按照Lindo的语法,写成 max 2x1+3x2 s.t. x1+x2 ≤ 2 x1-2x2≤1/2 end 使用LINDO的一些注意事项 “”(或“”)号与“=”(或“=”)功能相同 变量与系数间可有空格(甚至回车), 但无运算符 变量名以字母开头,不能超过8个字符 变量名不区分大小写(包括LINDO中的关键字) 目标函数所在行是第一行,第二行起为约束条件 行号(行名)自动产生或人为定义。行名以“)”结束 行中注有“!”符号的后面部分为注释。如: ! It’s Comment. 在模型的任何地方都可以用“TITLE” 对模型命名(最多72个字符),如: TITLE This Model is only an Example 使用LINDO的一些注意事项 变量不能出现在一个约束条件的右端 表达式中不接受括号“( )”和逗号“,”等任何符号, 例: 400(X1+X2)需写为400X1+400X2 表达式应化简,如2X1+3X2- 4X1应写成 -2X1+3X2 缺省假定所有变量非负;可在模型的“END”语句后用“FREE name”将变量name的非负假定取消 可在 “END”后用“SUB” 或“SLB” 设定变量上下界 例如: “sub x1 10”的作用等价于“x1=10” 但用“SUB”和“SLB”表示的上下界约束不计入模型的约束,也不能给出其松紧判断和敏感性分析。 14. “END”后对0-1变量说明:INT n 或 INT name 15. “END”后对整数变量说明:GIN n 或 GIN name 状态窗口(LINDO Solver Status) 当前状态:已达最优解 迭代次数:18次 约束不满足的“量”(不是“约束个数”):0 当前的目标值:94 最好的整数解:94 整数规划的界:93.5 分枝数:1 所用时间:0.00秒(太快了,还不到0.005秒) 刷新本界面的间隔:1(秒) 选项设置 Report/Statistics 但是当问题的规模扩大时,前面的方法显得非常不方便甚至是致命的。主要的原因是所含的变量和约束个数太多。另一方面,规划问题本身很有规律,所以我们希望使用循环来实现。引入如下的两个数组(或者向量), C=(c1,c2,…,cn), X=(x1,x2,…,xn), b=(b1,b2,…,bm), 为此,需要定义一个数组(向量)的结构,在Lindo中称之为集合。表征数组的维数的量在循环中有非常重要的作用。在Lindo中如下定义数组。 sets: setname/下标起数..下标止数/:数组名; endsets 比如,要实现前面例子的目标函数部分,只要写如下的代码: 集合段部分: sets: cargo/1..2/:c,x; endsets 目标函数段: max=@sum(cargo(i):c(i)*x(i)); 其中i为循环变量,cargo指出循环变量变化的范围。 对于约束,可以类似的处理如下: 集合部分: sets: cargo/1..n/:c,x,a1,a2,…,am; rhs/1..m/:b; endsets 程序部分: @sum(cargo(i):a1(i)*x(i))b(1); @sum(cargo(i):a2(i
文档评论(0)