Линейные ограничения

Что такое линейные ограничения?

Несколько решателей оптимизации принимают линейные ограничения, которые являются ограничениями на x решения, чтобы удовлетворить линейным равенствам или неравенствам. Решатели, которые принимают линейные ограничения, включают fmincon, intlinprog, linprog, lsqlin, quadprog, мультиобъективные решатели и некоторые решатели Global Optimization Toolbox.

Линейные ограничения неравенства

Линейные ограничения неравенства имеют форму   A·x ≤ b. Когда A m -by - n, существуют m ограничения для переменной x с n компонентами. Вы поставляете m n матрицей A и m - составляющий вектор b.

Передайте линейные ограничения неравенства в A и b аргументы.

Например, предположим, что у вас есть следующие линейные неравенства как ограничения:

<reservedrangesplaceholder1> 1 + <reservedrangesplaceholder0> 3  4,
2 <reservedrangesplaceholder1> 2 – <reservedrangesplaceholder0> 3 -2,
<reservedrangesplaceholder3> 1 – <reservedrangesplaceholder2> 2 + <reservedrangesplaceholder1> 3 – <reservedrangesplaceholder0> 4  9.

Здесь m = 3 и n = 4.

Запишите эти ограничения с помощью следующих матричных A и векторных b:

A=[101002101111],b=[429].

Заметьте, что неравенство «больше» сначала умножается на -1, чтобы поместить их в форму неравенства «меньше». В MATLAB® синтаксис:

A = [1 0 1 0;
    0 -2 1 0;
    -1 1 -1 1];
b = [4;2;-9];

Вам не нужно давать градиенты для линейных ограничений; решатели вычисляют их автоматически. Линейные ограничения не влияют на Гессианов.

Даже если вы передаете начальную точку x0 как матрица, решатели передают текущую точку x как вектор-столбец линейным ограничениям. См. матричные аргументы.

Более сложный пример линейных ограничений см. в разделе Настройка линейной программы, основанная на решателе.

Промежуточные итерации могут нарушать линейные ограничения. Смотрите Итерации могут нарушать ограничения.

Линейные ограничения равенства

У линейных равенств есть   форма <reservedrangesplaceholder8>, которая представляет m уравнения с n - составляющий вектор x. Вы поставляете m n матрицей Aeq и m - составляющий вектор beq.

Передайте линейные ограничения равенства в Aeq и beq аргументы так же, как описано для A и b аргументы в ограничениях линейного неравенства.

Похожие темы