主要内容

OptimizationInequality

不等式约束

自从R2019b

描述

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

一个语句可以代表一个数组的不平等。例如,您可以表达每一行一个矩阵变量的不平等x金额不超过一个在这条语句:

constrsum =总和(x, 2) < = 1

使用OptimizationInequality在一个对象作为约束OptimizationProblem

提示

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

创建

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

包括不平等的约束通过使用点符号属性的优化问题。

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

您还可以创建一个空的优化不平等使用optimineqoptimconstr。通常情况下,然后在一个循环中设置的不平等。例如,看到的在循环创造不平等。然而,对于制定最有效的问题,避免在循环中设置的不平等。看到创建高效的优化问题

属性

全部展开

索引名称,指定字符串或字符单元阵列的向量。使用索引名称的信息,请参阅为优化变量命名索引

数据类型:细胞

这个属性是只读的。

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

数据类型:结构体

对象的功能

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

例子

全部折叠

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

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

创建每一行(x)的不平等和不超过一个。

constrsum =总和(x, 2) < = 1
constrsum = 4 x1线性OptimizationInequality数组属性:IndexNames:{{}{}}变量:[1 x1 struct]包含1 OptimizationVariable看到不平等与显示配方。

对不平等的看法。

显示(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
概率= OptimizationProblem属性:描述:“ObjectiveSense:“最小化”变量:[1 x1 struct]包含1 OptimizationVariable目的:[0 x0 OptimizationExpression]约束:[1 x1 struct]包含1 OptimizationConstraint看到问题公式化。

创建一个双元素变量的约束x必须躺在十字路口的磁盘阵列的中心和半径中心半径

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

查看不平等表达式。

显示(若干)
arg_LHS < = arg_RHS地点:__arg1 = 0 (3,1);__arg1总和(1)= ((x - extraParams {1}) ^ 2);__arg1(2) =总和((x - extraParams {2}) ^ 2);__arg1(3) =总和((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