Matlab 6.5 中使用LindoAPI 2.0(简介)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab 6.5 中使用LindoAPI 2.0(简介)

(2003.04.02)

1. 安装LindoAPI

2.0

(1)下载LINDO API 2.0安装程序lindoDLL.exe, 直接运行进行安装(以下假设LINDO API 2.0安装目录为'C:\LINDOAPI')。

(2)建立MA TLAB与LINDO API 2.0之间的接口(以下假设MATLAB 6.5安装目录为'C:\ MATLAB6P5')。请按照以下步骤进行:

(2A)用任何文本编辑器直接编辑C:\MATLAB6P5\TOOLBOX\LOCAL\STARTUP.M 文件(通常直接打开MA TLAB,用MATLAB本身的程序编辑器编辑该文件)。如果该目录下没有该文件,则将该目录下的STARTUPSA V.M改名为STARTUP.M,然后进行编辑;并且,如果STARTUPSA V.M 或STARTUP.M中有"load matlab.mat"语句,则将该语句直接删除.

(2B)在STARTUP.M中增加以下程序行,然后保存文件,退出编辑器:

global MY_LICENSE_FILE

MY_LICENSE_FILE = 'C:\LINDOAPI\LICENSE\LICENSE.H';

path(path,'C:\LINDOAPI\BIN')

path(path,'C:\LINDOAPI\INCLUDE')

path(path,'C:\LINDOAPI\MA TLAB');

(2C)启动MA TLAB,在命令提示符下键入'mxLINDO',屏幕上将显示以下信息:

mxLINDO (R) Matlab Interface Version 2.x.x

for LINDO API (R) Version 2.x.x

Copyright (c) 2001-200x by LINDO Systems, Inc.

All rights reserved.

Usage: [z1,z2,..,zk] = mxLINDO('LSfuncName',a1,a2,...,an)

这就表示已经成功建立了MATLAB与LINDO API 2.0之间的接口。

2. 运行LINDOAPI2.0提供的优化问题实例

LINDOAPI2.0提供的优化问题的例子放在'C:\LINDOAPI\MA TLAB'目录下。启动MA TLAB,可以打开该目录下的‘.M’文件进行查看、编辑或运行(有些程序可以不需要输入参数直接运行,有些则只是子程序)。对于可以直接运行的程序,可以在命令提示符下键入这些文件的名称运行。

如‘LMTESTLP ’(线性规划)、“MLTESTNLP1”(非线性规划)、‘LMTESTQP ’(二次规划)、“MLTESTMINLP1”(非线性混合整数规划)等。一般来说,文件名中带有“TEST ”的程序是可以直接运行的实际例子,其他程序一般只是子程序。

3. ‘l msolvem’程序的使用 3.1 一般使用方法

该程序的“.M ”源文件放在'C:\LINDOAPI\MA TLAB'目录下,可用于求解目标函数和约束

函数均为二次函数(包括线性函数)的数学规划(包括整数规划),例如:线性规划(LP )、二次规划(QP )、混合整数线性规划(MIP )、混合整数二次规划(MIQP ),等等。优化问题的一般模型为:

}

,...,n-,{J j x u

x l m i b x Q x x a t s x Q x cx Max Min j i i i c

121,0 , 1

,...,1,0,?'.

.')(2

121⊆∈≤≤-=++是整数

其中Q c ,Q i 为n 阶对称方阵,c 、a i 为n 维(行)向量,l 、u 为n 维(列)向量,决策变

量为x (n 维列向量)。“?”表示任意一种比较符号(等于、大于等于、小于等于之一),J 为整数变量的下标集合。

最复杂的调用语法为:

[x,y,s,dj,pobj,solstat] = LMsolvem(A,b,c,csense,l,u,vtype, QCrows,QCvar1,QCvar2,QCcoef, objsen,solver,verbose)

输出参数最多为6个, 含义是:

x: 最优解;

y: 对偶最优解(影子价格);

s: 原问题的松弛变量;

dj: 对偶问题的松弛变量;

pobj: 最优目标值;

solstat: 程序求解结束状态.

3.2例1:线性规划

对于如下问题:

MIN {cx: Ax >=b}

其中

A = [1 1 1 1;

0.2 0.1 0.4 0.9;

0.15 0.10 0.10 0.80;

-30 -40 -60 -100 ]

b = [ 4000 3000 2000 -350000]'

c = [ 65 42 64 110]

编写MATLAB程序如下:

A = [

1.0000 1.0000 1.0000 1.0000;

0.2000 0.1000 0.4000 0.9000;

0.1500 0.1000 0.1000 0.8000;

-30.0000 -40.0000 -60.0000 -100.0000 ];

b = [ 4000 3000 2000 -350000]';

c = [ 65 42 64 110];

csense = 'GGGG';

l=[-Inf,-Inf,-Inf,-Inf];

[x,y,s,dj,obj,solstat] = LMsolvem(A, b, c, csense, l)

相关文档
最新文档