一级目录

二级目录

三级目录

一、lindo的代码规范和lingo是不一样的

问题(01规划)

下面的是lindo的代码

min 	x1+x2+x3+x4+x5+x6+x7+x8+x9!目标函数; 
st
   x1+x2+x3+x4+x5>=2!约束条件; 
   x3+x5+x6+x8+x9>=3
   x4+x6+x7+x9>=2 
   2x3-x1-x2<=0
   x4-x7<=0
   2x5-x1-x2<=0 
   x6-x7<=0
   x8-x5<=0 
   2x9-x1-x2<=0 
end
int 9

下面的是lingo的代码

@bin(x1);
@bin(x2);
@bin(x3);
@bin(x4);
@bin(x5);
@bin(x6);
@bin(x7);
@bin(x8);
@bin(x9);
MIN = 0.7*(x1+x2+x3+x4+x5+x6+x7+x8+x9)-0.3*(5*x1+4*x2+4*x3+3*x4+4*x5+3*x6+2*x7+2*x8+3*x9);!目标函数; 
	x1+x2+x3+x4+x5>=2;!约束条件; 
	x3+x5+x6+x8+x9>=3; 
	x4+x6+x7+x9>=2; 
	2*x3-x1-x2<=0; 
	x4-x7<=0; 
	2*x5-x1-x2<=0; 
	x6-x7<=0; 
	x8-x5<=0; 
	2*x9-x1-x2<=0; 

二、lingo和lindo的区别

  • lingo和lindo的主体不同。lingo是一个交互式的线性和通用优化求解器,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等¹²³。lindo是一个用于解决二次线性整数规划问题的方便而强大的工具¹²³。
  • lingo和lindo的特色不同。lingo的特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快¹²。lindo的主要设计原则是,如果一个用户只是想解决一个简单的问题,就不应该在学习LINDO的基本特性上花费太多的准备成本¹。
  • lingo和lindo的读取不同。lingo支持与其他数据文件(如文本文件、Excel电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题²。lindo可以对外建文件进行处理,只要这些文件里包含有必要的命令代码和输入数据,处理后就可以生成用于报告目的的文档²。
  • 文件名的后缀不同。lingo的后缀为.Ig4,lindo的后缀为.Itx。
    注意使用时,不要将lindo的代码写入到lingo中,这会报错。

三、适用条件

基于编程最简单的原则

线性规划LP和二次规划QP应使用LINDO编程
非线性规划则只能使用LINGO编程

线性优化求解程序

  1. 单纯形算法
  2. 内点算法(选)

非线性优化求解程序

  1. 顺序线性规划法(SLP)
  2. 广义既约梯度法(GRG) (选)
  3. 多点搜索(Multistart) (选)

非线性规划问题的求解

无约束条件最优解:多元函数求极值;
有约束条件最优解:条件极值,拉格朗日乘数法