【Matlab】混合整数规划

您所在的位置:网站首页 matlab优化模型例题 【Matlab】混合整数规划

【Matlab】混合整数规划

2024-03-28 13:29| 来源: 网络整理| 查看: 265

混合整数规划 官方文档语法实例1实例2

官方文档

链接

语法 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. xmin​fTx 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. xmin​8x1​+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​

%案例二 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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3