< />

Matllab整数规划 kisara

Matlab中 intlinprog函数用法简介

原博客(https://www.cnblogs.com/goodtwo/p/11145699.html)

1.简介

intlinprog是matlab中用于求解混合整数线性规划(Mixed-integer linear programming)的一个函数,用法基本和linprog差不多

Matlab中,该模型的标注写法如下

4-17-2020-111.png

f,x,b,beq,lb,ub,intcon是向量;

A和Aeq是矩阵

f,x,b,beq,lb,ub,intcon是向量;

A和Aeq是矩阵

2.基本语法

2.1 x=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)

与linprog相比,多了参数intcon,代表了整数决策变量所在的位置

例如x1和x3是整数变量则有,intcon=[1,3]

x1和x3是整数变量则有,intcon=[1,3]

3.实例

示例1,求解整数规划

4-17-2020-222.png

求解代码

f=[-5 -8];
A=[1 1;5 9];
b=[6 45];
lb=zeros(2,1);
intcon=[1 2];
[x,fval]=intlinprog(f,intcon,A,b,[],[],lb,[]);
x,fval=-fval

所得结果为:

x1=0,x2=5

z=40

示例2,求解0-1规划

4-17-2020-333.png

求解代码:

f=[-6 -2 -3 -5];
A=[-3 5 -1 -6;2 1 1 -1;1 2 4 5];
b=[-4 3 10]';
intcon=[1 2 3 4];
lb=zeros(4,1);
ub=ones(4,1);
[x,fval]=intlinprog(f,intcon,A,b,[],[],lb,ub);
x,fval=-fval

所得结果为:

x1=1 x2=0 x3=1 x4=1 z=14

kisarawechat kisaraalipay