官方文档
链接
语法
x = intlinprog(f, intcon,A,b)
x = intlinprog(f , intcon,A,b,Aeq, beq)
X=intlinprog(f , intcon, A, b, Aeq, beq,1b,ub)
x = intlinprog(f, intcon,A, b,Aeq, beq, lb, ub,x0)
x = intlinprog(f, intcon, A, b,Aeq, beq,lb, ub, x0, options)
x = intlinprog(problem)
[x, fval, exitflag,output] = intlinprog(__)
f、x、intcon、lb、beq、Ib和ub是向量,A和Aeq是矩阵
min
x
f
T
x
subject to
{
x
(
intcon
)
are integers
A
⋅
x
≤
b
Aeq
x
=
b
e
q
l
b
≤
x
≤
u
b
\min _{x} f^{T} x \text { subject to }\left\{\begin{array}{l} x(\text { intcon }) \text { are integers } \\ A \cdot x \leq b \\ \text { Aeq } x=b e q \\ l b \leq x \leq u b \end{array}\right.
xminfTx subject to ⎩⎪⎪⎨⎪⎪⎧x( intcon ) are integers A⋅x≤b Aeq x=beqlb≤x≤ub
x = intlinprog(f,intcon,A,b) 最小化 f'*x,使得 intcon 中的 x 分量是整数,且 A*x ≤ b。
x = intlinprog(f,intcon,A,b,Aeq,beq) 求解上述问题,同时还满足等式约束 Aeq*x = beq。如果不存在不等式,请设置 A = [] 和 b = []。
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub) 定义设计变量 x 的一组下界和上界,使解始终在 lb ≤ x ≤ ub 范围内。如果不存在等式,请设置 Aeq = [] 和 beq = []。
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0) 使用初始可行点 x0 进行优化。如果不存在边界,请设置 lb = [] 和 ub = []。
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0,options) 使用 options 中指定的优化选项执行最小化。使用 optimoptions 可设置这些选项。如果不存在初始点,请设置 x0 = []。
f-系数向量。intcon -整数约束组成的向量,就说受到约束的整数个数。A-线性不等式约束矩阵。b-线性不等式约束向量。Aeq -线性等式约束矩阵。beq -线性等式约束向量。Ib-下界。ub-上界。x0 -初始点。
实例1
min
x
8
x
1
+
x
2
subject to
{
x
2
is an integer
x
1
+
2
x
2
≥
−
14
−
4
x
1
−
x
2
≤
−
33
2
x
1
+
x
2
≤
20
\min _{x} 8x_1+x_2\text { subject to }\left\{\begin{array}{l} x_2 \text { is an integer } \\ x_1+2x_2\geq-14\\ -4x_1-x_2\leq -33\\ 2x_1+x_2 \leq 20 \end{array}\right.
xmin8x1+x2 subject to ⎩⎪⎪⎨⎪⎪⎧x2 is an integer x1+2x2≥−14−4x1−x2≤−332x1+x2≤20
z
=
8
x
1
+
x
2
z=8x_1+x_2
z=8x1+x2受
x
1
和
x
2
x_1和x_2
x1和x2限制。
代码构建和之前的类似
f = [8;1];%确定目标函数系数
intcon = 2;%理解为两个受x受到整数限制
A = [-1,-2;
-4,-1;
2,1];%构造不不等式左边系数矩阵
b = [14;-33;20];%构造不等式右边矩阵
x = intlinprog(f,intcon,A,b)
实例2
min x ( − 3 x 1 − 2 x 2 − x 3 ) subject to { x 3 binary x 1 , x 2 ≥ 0 − x 1 + x 2 + x 3 ≤ 7 4 x 1 + 2 x 2 + x 3 = 20 \min _{x} \left( {-3x_1-2x_2-x_3} \right)\text { subject to }\left\{\begin{array}{l} x_3 \text { binary } \\ x_1,x_2\geq0\\ -x_1+x_2+x_3\leq7\\ 4x_1+2x_2+x_3 = 20 \end{array}\right. xmin(−3x1−2x2−x3) subject to ⎩⎪⎪⎨⎪⎪⎧x3 binary x1,x2≥0−x1+x2+x3≤74x1+2x2+x3=20文章来源:https://www.toymoban.com/news/detail-441683.html
%案例二
clear all
clc
% 编写目标函数向量和由整数变量组成的向量。
f = [-3;-2;-1];
intcon = 3;
% 编写线性不等式约束。
A = [1,1,1];
b = 7;
% 编写线性等式约束。
Aeq = [4,2,1];
beq = 12;
% 编写边界约束。
lb = zeros(3,1);%等效于lb=[0;0;0]
ub = [Inf;Inf;1]; %强制x(3)为一个固定1
%调用intlinprog
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
返回结果:
当
x
2
=
5
,
x
3
=
1
,
x
1
=
0
x_2=5,x_3=1,x_1=0
x2=5,x3=1,x1=0时,最值为
−
12
-12
−12文章来源地址https://www.toymoban.com/news/detail-441683.html
到了这里,关于【Matlab】混合整数规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!