一:安装LINGO环境
1、64-bit LINDO API下载地址:http://www.lindo.com/downloads/LAPI-WINDOWS-64x86-9.0.zip
下载之后选择默认路径进行安装
2、配置startup.m文件
1)打开MATLAB安装目录下toolbox\local(比如我的路径是D:\matlab\toolbox\local)的startupsav.m文件改为startup.m
2)将startup.m 文件中 load matlab.mat这句话用"%"屏蔽掉。然后将下列语句拷过来
global MY_LICENSE_FILE3)启动MATLAB,在命令提示符下键入 'mxlindo',屏幕上将显示以下信息表示运行成功
mxLINDO (R) Version 9.0.251
Matlab Interface for LINDO API (R) Version 9.0.2528.303, Built Nov 8 2016 13:42:21
Barrier Solver Version 7.1.0.053, Nonlinear Solver Version 3.15P
Platform Windows 64x86 (B)
Copyright (c) 2001-2014 by LINDO Systems, Inc.
All rights reserved.
Usage: [z1,z2,..,zk] = mxLINDO('LSfuncName',a1,a2,...,an)
二:调用lindo API解决线性规划问题
函数为:[x, y, s, dj, obj, solstat] = LMsolvem(A, b, c, csense, l, u,vtype, QCrows, QCvars1, QCvars2, QCcoef);
输入参数:
A:约束条件所有左端项(参数),每个约束用分号隔开
b:约束条件所有右端项(结果)
c:目标参数
csense:对应于约束类型(缺省为“E”);“L”表示“>=”、“G”表示“<=”、“E”表示“=”
l和u:决策变量x的下界(缺省为0)、上界(缺省为正无穷)
vtype:表示决策变量x的类型(缺省为“C”);“C”表示连续变量(实数)、“I”表示一般整数变量、“B”表示0-1变量;
QCrows: 具有相同维数的向量,用来确定n阶对称方阵Qc,Qi的具体值(缺省为0); 表示“约束指标”(-1对应于Qc,i(0到m-1)对应于Qi)
QCvar1:表示的Qi 的“行”
QCvar2:表示的Qi 的“列”
QCcoef:表示矩阵元素的具体值
输出参数:
x:最优解
y:对偶最优解(影子价格)
s:原问题的松弛变量
dj:对偶问题的松弛变量
obj:最优目标值
solstat:程序求解结束状态.
例如求解以下整数规划:
z=5x1+3x2+x3;
3x1+x2<=10
x1+x2+x3<=5;
2x2+x3<=8;
在MATLAB上调用LINDO求解整数规划代码如下:
A= [3 1 0; 1 1 1; 0 2 1];
b=[10 5 8];
c=[5 3 1]; csense = 'GGG'; vtype = 'III';
[x,y,s,dj,obj,solstat] = LMsolvem(A, b, c, csense, [], [],vtype);
x
求解结果为:
x =
2
4
0