码迷,mamicode.com
首页 > 其他好文 > 详细

Matlab中intlinprog函数的用法总结

时间:2019-07-07 12:21:17      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:isp   display   写法   简介   ogr   bae   结果   tla   代码   

Matlab中 intlinprog函数用法简介

1.简介

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

Matlab中,该模型的标注写法如下
\[ min\ f\,^Tx\;\; \s.t. \begin{equation} \left\{ \begin{array}{**lr**} x(intcon)\ are \ integers \ A \cdot x \leq b \\ Aeq\cdot x =beq\\ lb \leq x \leq ub \end{array} \right. \end{equation} \]

\[ f,x,b,beq,lb,ub,intcon是向量;A和Aeq是矩阵 \]

2.基本语法

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

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

例如
\[ x_1和x_3是整数变量 \则有,intcon=[1,3] \]

3.实例

示例1,求解整数规划
\[ max\ z=5x_1+8x_2 \s.t. \begin{equation} \left\{ \begin{array}{**lr**} x_1+x_2\leq6\ 5x_1+9x_2\leq45\ x_1,x_2\geq0,且x_1,x_2为整数 \end{array} \right. \end{equation} \]
求解代码

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

所得结果为:
\[ x_1=0,x_2=5\z=40 \]

示例2,求解0-1规划
\[ max\ z =6x_1+2x_2+3x_3+5x_4\s.t. \begin{equation} \left\{ \begin{array}{**lr**} 3x_1-5x_2+x_3+6x_4\geq4\ 2x_1+x_2+x_3-x_4\leq3\ x_1+2x_2+4x_3+5x_4\leq10\ x_j=0或1,j=1,2,3,4 \end{array} \right. \end{equation} \]
求解代码:

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

所得结果为:
\[ x_1=1\x_2=0\x_3=1\x_4=1\z=14\\]

Matlab中intlinprog函数的用法总结

标签:isp   display   写法   简介   ogr   bae   结果   tla   代码   

原文地址:https://www.cnblogs.com/goodtwo/p/11145699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!