LINGO软件基本功能
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LINGO软件基本功能
1
LINGO软件简介 ?一、LINGO介绍 ?二、 用LINGO解决基本的线性规划问题 ?三、 用LINGO解决非线性规划问题
2
一、LINGO介绍
LINGO 是 美 国 LINDO 系 统 公 司 Lindo System Inc开发的求解数学规划系列软件中 的一个,还有LINDO,GINO,What's best 等等,它的主要功能是求解大型线形、非线形 和整数规划的问题。在此主要介绍 LINGO如 何求解规划问题,所使用的 LINGO为V12.0 版。
纯整数非线性规划
4
一、LINGO介绍
LINGO的主要功能特色为: 1. 既能求解线性规划问题,也有一定求解非 线性规划问题的能力; 2. 输入模型简练直观; 3. 运行速度快、计算能力强;
5
一、LINGO介绍
LINGO的主要功能特色为:
4. 内置建模语言,提供几十个内部函数,从 而能以较少的语句,较直观的方式描述较大规 模的优化模型; 5. 将集合的概念引入编程语言,很容易将实 际问题转换为LINGO模型; 6. 能方便地与Excel、数据库等其他软件交换 数据。
18
三、用LINGO解决非线性规划问题
例4 求解二次规划问题:
直接使用LINGO最大化过程:
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1 + x2 <= 100; x1 <= 2*x2; @gin(x1);@gin(x2);
19
三、用LINGO解决非线性规划问题
12
三、用LINGO解决非线性规划问题
例2 求解二次规划问题:
MODEL:
MIN=x^2+y^2-2*x-4*y; !目标函数;
x+y<=1;
!x,y为决策变量;
y<=0.5;
!第二、三行均为约束条件;
end
13
三、用LINGO解决非线性规划问题
14
三、用LINGO解决非线性规划问题
结果是:当 x=0.5,y=0.5时取得最小值,最 小值为-2.5
二、用LINGO解决基本的线性规划问题
通过此例我们对 LINGO有了一个基本的认识,下 面我们来总结一下 LINGO语法规定:
1. 求目标函数的最大值或最小值分别用 MAX=…… 或MIN=……来表示;
2. 每个语句必须以分号“;”结束,每行可以有多 个语句,语句可以跨行;
3. 变量名称必须以字母( A-Z)开头,由字母、数 字(0-9)和下划线所组成,长度不超过 32个字符,不 区分大小写;
21
10
二、用LINGO解决基本的线性规划问题
4. 可以给语句加上标号,例如 [OBJ] MAX=50*X1+70*X2 (乘号*不能省略) ;
5. 以!开头,以“;”结束的语句是注释语句,显 示为绿色;
6. 如果对变量的取值范围没有做特殊说明,则所有 默认的决策变量均为非负数;
7. LINGO 模型以语句一般以“ MODEL: ”开头,以 “END”结束,对于比较简单的模型,这两语句可以省 略
注意比较:
当去掉第二个约束条件y<=0.5时,最小 值为-3 (当x=0, y=1时);
当去掉所有约束条件(无条件最值)时,最
小值为-5 (当x=1, y=2时);
15
三、用LINGO解决非线性规划问题
例3 求解非线性规划问题:
16
三、用LINGO解决非线性规划问题
17
三、用LINGO解决非线性规划问题
6
二、用LINGO解决基本的线性规划问题
例1 求解如下的线性规划模型:
max z ? 50x1 ? 70x2,
? x1 ? 3x2 ? 18,
? ?
2
x1
?
x2
?
16,
? ?
4x2 ? 20,
?? x1, x2 ? 0
7
二、用LINGO解决基本的线性规划问题
我们编辑一个LINGO程序:
MAX=50*X1+70*X2; !目标函数;
3
一、LINGO介绍
LINGOV12.0版可用于求以下各类最优化数学模型:
LP
Linear Program 线性规划
QP
Quadratic Program 二次规划
ILP
Integer Linear Program 整数线性规划
IQP
Integer Quadratic Program 整数二次规划
8. 变量界定函数(见下页)
11
二、用LINGO解决基本的线性规划问题
8. 变量界定函数: @BND(L,x,U) ,即L<=x<=U; 注意:没有想象中的的 @SLB函数与@SUB函数; @BIN(x) ,限制 x仅取整数 0或1; 注意:不是 @INT(x) 函数; @FREE(x) ,取消对x的符号限制 ; @GIN(x) ,限制x仅取非负整数。
X1+ 3*X2<=18;
!X1,X2为决策变量;
2*X1+ X2<=16;
4*X2<=20; !第二到四行均为约束条件
ຫໍສະໝຸດ Baidu
8
二、用LINGO解决基本的线性规划问题
我们编辑程序并求解后,得到 LINGO Model 窗口、 Solution report 窗口和Solver status 窗口如下:
9
20
三、用LINGO解决非线性规划问题
结果是: 当x1=35,x2=65时最大利润为11077.50,
【说明:在LINGO11版本中执行上述同样程序 后,其结果是:当 x1=36,x2=64取得最大 利润11076.80,怀疑是旧版本的算法在数值不 均衡时引起的计算错误。不过当采用最小化目 标函数时,却并不出错!】
PILP
Pure Integer Linear Program
纯整数线性规划
PIQP
Pure Integer Quadratic Program
纯整数二次规划
NLP
Nonlinear Program 非线性规划
INLP
Integer Nonlinear Program 整数非线性规划
PINLP
Pure Integer Nonlinear Program
1
LINGO软件简介 ?一、LINGO介绍 ?二、 用LINGO解决基本的线性规划问题 ?三、 用LINGO解决非线性规划问题
2
一、LINGO介绍
LINGO 是 美 国 LINDO 系 统 公 司 Lindo System Inc开发的求解数学规划系列软件中 的一个,还有LINDO,GINO,What's best 等等,它的主要功能是求解大型线形、非线形 和整数规划的问题。在此主要介绍 LINGO如 何求解规划问题,所使用的 LINGO为V12.0 版。
纯整数非线性规划
4
一、LINGO介绍
LINGO的主要功能特色为: 1. 既能求解线性规划问题,也有一定求解非 线性规划问题的能力; 2. 输入模型简练直观; 3. 运行速度快、计算能力强;
5
一、LINGO介绍
LINGO的主要功能特色为:
4. 内置建模语言,提供几十个内部函数,从 而能以较少的语句,较直观的方式描述较大规 模的优化模型; 5. 将集合的概念引入编程语言,很容易将实 际问题转换为LINGO模型; 6. 能方便地与Excel、数据库等其他软件交换 数据。
18
三、用LINGO解决非线性规划问题
例4 求解二次规划问题:
直接使用LINGO最大化过程:
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1 + x2 <= 100; x1 <= 2*x2; @gin(x1);@gin(x2);
19
三、用LINGO解决非线性规划问题
12
三、用LINGO解决非线性规划问题
例2 求解二次规划问题:
MODEL:
MIN=x^2+y^2-2*x-4*y; !目标函数;
x+y<=1;
!x,y为决策变量;
y<=0.5;
!第二、三行均为约束条件;
end
13
三、用LINGO解决非线性规划问题
14
三、用LINGO解决非线性规划问题
结果是:当 x=0.5,y=0.5时取得最小值,最 小值为-2.5
二、用LINGO解决基本的线性规划问题
通过此例我们对 LINGO有了一个基本的认识,下 面我们来总结一下 LINGO语法规定:
1. 求目标函数的最大值或最小值分别用 MAX=…… 或MIN=……来表示;
2. 每个语句必须以分号“;”结束,每行可以有多 个语句,语句可以跨行;
3. 变量名称必须以字母( A-Z)开头,由字母、数 字(0-9)和下划线所组成,长度不超过 32个字符,不 区分大小写;
21
10
二、用LINGO解决基本的线性规划问题
4. 可以给语句加上标号,例如 [OBJ] MAX=50*X1+70*X2 (乘号*不能省略) ;
5. 以!开头,以“;”结束的语句是注释语句,显 示为绿色;
6. 如果对变量的取值范围没有做特殊说明,则所有 默认的决策变量均为非负数;
7. LINGO 模型以语句一般以“ MODEL: ”开头,以 “END”结束,对于比较简单的模型,这两语句可以省 略
注意比较:
当去掉第二个约束条件y<=0.5时,最小 值为-3 (当x=0, y=1时);
当去掉所有约束条件(无条件最值)时,最
小值为-5 (当x=1, y=2时);
15
三、用LINGO解决非线性规划问题
例3 求解非线性规划问题:
16
三、用LINGO解决非线性规划问题
17
三、用LINGO解决非线性规划问题
6
二、用LINGO解决基本的线性规划问题
例1 求解如下的线性规划模型:
max z ? 50x1 ? 70x2,
? x1 ? 3x2 ? 18,
? ?
2
x1
?
x2
?
16,
? ?
4x2 ? 20,
?? x1, x2 ? 0
7
二、用LINGO解决基本的线性规划问题
我们编辑一个LINGO程序:
MAX=50*X1+70*X2; !目标函数;
3
一、LINGO介绍
LINGOV12.0版可用于求以下各类最优化数学模型:
LP
Linear Program 线性规划
QP
Quadratic Program 二次规划
ILP
Integer Linear Program 整数线性规划
IQP
Integer Quadratic Program 整数二次规划
8. 变量界定函数(见下页)
11
二、用LINGO解决基本的线性规划问题
8. 变量界定函数: @BND(L,x,U) ,即L<=x<=U; 注意:没有想象中的的 @SLB函数与@SUB函数; @BIN(x) ,限制 x仅取整数 0或1; 注意:不是 @INT(x) 函数; @FREE(x) ,取消对x的符号限制 ; @GIN(x) ,限制x仅取非负整数。
X1+ 3*X2<=18;
!X1,X2为决策变量;
2*X1+ X2<=16;
4*X2<=20; !第二到四行均为约束条件
ຫໍສະໝຸດ Baidu
8
二、用LINGO解决基本的线性规划问题
我们编辑程序并求解后,得到 LINGO Model 窗口、 Solution report 窗口和Solver status 窗口如下:
9
20
三、用LINGO解决非线性规划问题
结果是: 当x1=35,x2=65时最大利润为11077.50,
【说明:在LINGO11版本中执行上述同样程序 后,其结果是:当 x1=36,x2=64取得最大 利润11076.80,怀疑是旧版本的算法在数值不 均衡时引起的计算错误。不过当采用最小化目 标函数时,却并不出错!】
PILP
Pure Integer Linear Program
纯整数线性规划
PIQP
Pure Integer Quadratic Program
纯整数二次规划
NLP
Nonlinear Program 非线性规划
INLP
Integer Nonlinear Program 整数非线性规划
PINLP
Pure Integer Nonlinear Program