主要内容

OptimizationInequality

不等式约束

描述

一个OptimizationInequality对象包含以的形式表示的不等约束OptimizationVariable对象或OptimizationExpression对象。不等式约束使用比较运算符< => =

一个语句可以表示一个不等式数组。例如,你可以表示矩阵变量的每一行的不等式x在这条语句中总和不超过1:

Constrsum = sum(x,2) <= 1

使用OptimizationInequality对象作为约束OptimizationProblem

提示

有关完整的工作流程,请参见具体问题具体分析优化工作流程

创建

使用优化表达式和比较运算符创建一个不等式< => =

将不等式包含在约束利用点表示法求解优化问题的性质。

概率= optimproblem;x = optimvar (“x”、4、6);SumLessThanOne = sum(x,2) <= 1;prob.Constraints.SumLessThanOne = SumLessThanOne;

您还可以使用optimineqoptimconstr.通常,您可以在循环中设置不等式。示例请参见在循环中创建不等式.然而,对于最有效的问题表述,避免在循环中设置不等式。看到创建有效的优化问题

属性

全部展开

索引名,指定为字符串或字符向量的单元格数组。有关使用索引名的信息,请参见优化变量的命名索引

数据类型:细胞

此属性是只读的。

对象中的优化变量,指定为的结构OptimizationVariable对象。

数据类型:结构体

对象的功能

不可能实行 在某一点违反约束
显示 显示优化对象信息
保存优化对象描述

例子

全部折叠

创建一个名为x的4 × 6优化变量矩阵。

x = optimvar (“x”、4、6);

创建不等式,使每一行x的和不超过1。

Constrsum = sum(x,2) <= 1
{{}{}}变量:[1x1 struct]包含1 OptimizationVariable参见不等式公式with show。

对不平等的看法。

显示(constrsum)
(1,1) x (1,1) + x(1、2)+ (3)+ (4)+ x(1、5)+ x (1,6) < = 1 (2, 1) x (2, 1) + (2, 2) + x(2、3)+ x(2、4)+(2、5)+ x (2,6) < = 1 (3,1) x (1) + (2) + (3) + x(3、4)+ x(3、5)+(3、6)< = 1 (4,1)x (4 1) + (2) + (3) + x (4, 4) + x(4、5)+(4、6)< = 1

要在优化问题中包含不等式,请设置一个约束财产constrsum用点表示法。

概率= optimproblem;prob.Constraints.constrsum = constrsum
描述:" ObjectiveSense: '最小化'变量:[1x1 struct]包含1个OptimizationVariable目标:[0x0 OptimizationExpression]约束:[1x1 struct]包含1个OptimizationConstraint参见问题公式with show。

创建一个双元素变量的约束x必须位于多个磁盘的交叉点,这些磁盘的中心和半径都在阵列中中心而且半径

x = optimvar (“x”、1、2);Centers = [1 -2;3 -4;-2 3];Radii = [6 7 8];若干= optimineq(长度(半径));i = 1:长度总和(若干)若干(i) = ((x -中心(我:))^ 2)< =半径(我)^ 2;结束

查看不等式表达式。

显示(若干)
arg_LHS <= arg_RHS where: arg1 = 0 (3,1);arg1(1) = sum((x - extraParams{1}).^2);arg1(2) = sum((x - extraParams{2}).^2);arg1(3) = sum((x - extraParams{3}).^2);arg_LHS = __arg1 (:);Arg1 = 0 (3,1);__arg1 (1) = 36;__arg1 (2) = 49;__arg1 (3) = 64;arg_RHS = __arg1 (:); extraParams{1}: 1 -2 extraParams{2}: 3 -4 extraParams{3}: -2 3

您可以通过对变量使用矩阵操作来创建相同的约束,而不是使用循环。

constr2 =总和(((x, x, x) -中心)^ 2,2)< =半径”。^ 2;

在循环中创建不等式比使用矩阵运算创建不等式更耗时。

版本历史

介绍了R2019b

Baidu
map