Несколько решателей оптимизации принимают линейные ограничения, которые являются ограничениями на 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:
Заметьте, что неравенство «больше» сначала умножается на -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
аргументы в ограничениях линейного неравенства.