OptimizationConstraint

Ограничения оптимизации

Описание

Система координат OptimizationConstraint объект содержит ограничения в терминах OptimizationVariable объекты или OptimizationExpression объекты. Каждое ограничение использует один из следующих операторов сравнения: ==, <=, или >=.

Один оператор может представлять массив ограничений. Для примера можно выразить ограничения, которые каждая строка матрицы переменной x сумм к единице, как показано на разделе «Создание простых ограничений в цикле».

Создание

Создайте пустой объект ограничения с помощью optimconstr. Как правило, цикл используется для заполнения выражений в объекте.

Если вы создаете выражения оптимизации из переменных оптимизации с помощью операторов сравнения ==, <=, или >=, тогда получившийся объект является либо OptimizationEquality или OptimizationInequality. См. Вопросы совместимости.

Включите ограничения в Constraints свойство задачи оптимизации при помощи записи через точку.

prob = optimproblem;
x = optimvar('x',5,3);
rowsum = optimconstr(5);
for i = 1:5
    rowsum(i) = sum(x(i,:)) == i;
end
prob.Constraints.rowsum = rowsum;

Свойства

расширить все

Имена индексов, заданные как массив ячеек из строк или векторов символов. Для получения информации об использовании имен индексов смотрите Именованный индекс для переменных оптимизации.

Типы данных: cell

Это свойство доступно только для чтения.

Переменные оптимизации в объекте, заданные как структура OptimizationVariable объекты.

Типы данных: struct

Функции объекта

infeasibilityНарушение ограничений в точке
showОтобразите информацию об объекте оптимизации
writeСохраните описание объекта оптимизации

Примеры

свернуть все

Создайте переменную оптимизации 5 на 3 x.

x = optimvar('x',5,3);

Создайте ограничение, которое каждая строка суммирует с одной при помощи цикла. Инициализируйте цикл с помощью optimconstr.

rowsum = optimconstr(5);
for i = 1:5
    rowsum(i) = sum(x(i,:)) == 1;
end

Осмотрите rowsum объект.

rowsum
rowsum = 
  5x1 Linear OptimizationConstraint array with properties:

    IndexNames: {{}  {}}
     Variables: [1x1 struct] containing 1 OptimizationVariable

  See constraint formulation with show.

Показать ограничения в rowsum.

show(rowsum)
(1, 1)

  x(1, 1) + x(1, 2) + x(1, 3) == 1

(2, 1)

  x(2, 1) + x(2, 2) + x(2, 3) == 1

(3, 1)

  x(3, 1) + x(3, 2) + x(3, 3) == 1

(4, 1)

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

(5, 1)

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

Вопросы совместимости

расширить все

Поведение изменено в R2019b

Введенный в R2017b