This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

OptimizationConstraint

Optimization constraints

Description

An OptimizationConstraint object contains constraint expressions in terms of OptimizationVariable objects. Each constraint expression uses one of these comparison operators: ==, <=, or >=.

A single expression can represent an array of constraints. For example, you can express the constraints that each row of a matrix variable x sums to one in this single expression.

constrsum = sum(x,2) == 1

Creation

Create constraints using optimization expressions with one of these comparison operators: ==, <=, or >=.

Include constraints in the Constraints property by using dot notation.

prob = optimproblem;
x = optimvar(x,4,6);
SumToOne = sum(x,2) == 1;
prob.Constraints.SumToOne = SumToOne;

You can also create an empty optimization constraint by using optimconstr. Typically, you then fill the expression in a loop. For examples, see the optimconstr function reference page.

Properties

expand all

Index names, specified as a cell array of strings or character vectors. For information on using index names, see Named Index for Optimization Variables.

Data Types: cell

Object Functions

infeasibilityConstraint violation at a point
showconstrDisplay optimization constraint
writeconstrSave optimization constraint description

Examples

collapse all

Create a 4-by-6 optimization variable matrix named x.

x = optimvar('x',4,6);

Create the constraints that each row of x sums to one.

constrsum = sum(x,2) == 1
constrsum = 
  4x1 OptimizationConstraint array with properties:

    IndexNames: {{}  {}}

  See constraint formulation with showconstr.

View the constraints.

showconstr(constrsum)
(1, 1)

  x(1, 1) + x(1, 2) + x(1, 3) + x(1, 4) + x(1, 5) + x(1, 6) == 1

(2, 1)

  x(2, 1) + x(2, 2) + x(2, 3) + x(2, 4) + x(2, 5) + x(2, 6) == 1

(3, 1)

  x(3, 1) + x(3, 2) + x(3, 3) + x(3, 4) + x(3, 5) + x(3, 6) == 1

(4, 1)

  x(4, 1) + x(4, 2) + x(4, 3) + x(4, 4) + x(4, 5) + x(4, 6) == 1

To include the constraints in an optimization problem, use dot notation.

prob = optimproblem;
prob.Constraints.constrsum = constrsum;

Introduced in R2017b