Проблема линейной дополнительности

редактировать

В математической теории оптимизации часто возникает проблема линейной дополнительности (LCP) в вычислительной механике и охватывает хорошо известное квадратичное программирование как частный случай. Он был предложен Коттлом и Данцигом в 1968 году.

Содержание
  • 1 Формулировка
  • 2 Выпуклая квадратичная минимизация: минимальные условия
  • 3 См. Также
  • 4 Примечания
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки
Формулировка

Для реальной матрицы M и вектора q задача линейной дополнительности LCP (q, M) ищет векторы z и w, которые удовлетворяют следующие ограничения:

  • w, z ⩾ 0, {\ displaystyle w, z \ geqslant 0,}{\ displaystyle w, z \ geqslant 0,} (то есть каждый компонент этих двух векторов неотрицателен)
  • z T w = 0 {\ displaystyle z ^ {T} w = 0}z ^ Tw = 0 или эквивалентно ∑ iwizi = 0. {\ displaystyle \ sum \ nolimits _ {i} w_ {i} z_ {i} = 0.}{\ displaystyle \ sum \ nolimits _ {i} w_ {i} z_ {i} = 0.} Это условие дополнительности, поскольку оно подразумевает, что для всех i {\ displaystyle i}i не более одного из wi {\ displaystyle w_ {i}}w_ {i} и zi {\ displaystyle z_ {i}}z_{i}могут быть положительными.
  • w = M z + q { \ displaystyle w = Mz + q}{\ displaystyle w = Mz + q}

Достаточное условие существования и единственности решения эта проблема состоит в том, что M симметрично положительно-определенно. Если M таково, что LCP (q, M) имеет решение для каждого q, то M является Q-матрицей. Если M таково, что LCP (q, M) имеет единственное решение для каждого q, то M является P-матрицей. Обе эти характеристики являются достаточными и необходимыми.

Вектор w является переменной запаса, и поэтому обычно отбрасывается после нахождения z. Таким образом, проблема также может быть сформулирована как:

  • M z + q ⩾ 0 {\ displaystyle Mz + q \ geqslant 0}{\ displaystyle Mz + q \ geqslant 0}
  • z ⩾ 0 {\ displaystyle z \ geqslant 0}{\ displaystyle z \ geqslant 0}
  • z T ( M z + q) знак равно 0 {\ displaystyle z ^ {\ mathrm {T}} (Mz + q) = 0}{\ displaystyle z ^ {\ mathrm {T}} (Mz + q) = 0} (условие дополнительности)
Выпуклая квадратичная минимизация: условия минимума

Поиск решения проблемы линейной дополнительности связан с минимизацией квадратичной функции

f (z) = z T (M z + q) {\ displaystyle f (z) = z ^ {T} (Mz + q)}{\ displaystyle f (z) = z ^ {T} (Mz + q)}

с учетом ограничений

M z + q ⩾ 0 {\ displaystyle {Mz} + q \ geqslant 0}{\ displaystyle {Mz} + q \ geqslant 0}
z ⩾ 0 {\ displaystyle z \ geqslant 0}{\ displaystyle z \ geqslant 0}

Эти ограничения гарантируют, что f всегда неотрицательно. Минимум f равен 0 в точке z тогда и только тогда, когда z решает проблему линейной дополнительности.

Если M положительно определено, любой алгоритм для решения (строго) выпуклых QP может решить LCP. Специально разработанные алгоритмы поворота с обменом базисами, такие как алгоритм Лемке и вариант симплексного алгоритма Данцига, использовались десятилетиями. Помимо полиномиальной временной сложности, методы внутренней точки также эффективны на практике.

Кроме того, задача квадратичного программирования сформулирована как минимизация f (x) = c T x + 1 2 x TQ x {\ displaystyle f (x) = c ^ {T} x + {\ tfrac {1} {2}} x ^ {T} Qx}{\ displaystyle f (х) = c ^ {T} x + {\ tfrac {1} {2}} x ^ {T} Qx} при условии A x ⩾ b {\ displaystyle Ax \ geqslant b}{\ displaystyle Ax \ geqslant b} , а также x ⩾ 0 {\ displaystyle x \ geqslant 0}{\ displaystyle x \ geqslant 0} с симметричным Q

аналогично решению LCP с

q = [c - b], M = [Q - ATA 0] {\ displaystyle q = {\ begin {bmatrix} c \\ - b \ end {bmatrix}}, \ qquad M = {\ begin {bmatrix} Q -A ^ {T} \\ A 0 \ end {bmatrix} }}{\ displaystyle q = {\ begin {bmatrix } c \\ - b \ end {bmatrix}}, \ qquad M = {\ begin {bmatrix} Q -A ^ {T} \\ A 0 \ end {bmatrix}}}

Это связано с тем, что условия Каруша – Куна – Такера задачи QP можно записать как:

{v = Q x - AT λ + cs = A x - bx, λ, v, s ⩾ 0 Икс T v + λ T s знак равно 0 {\ displaystyle {\ begin {cases} v = Qx-A ^ {T} {\ lambda} + c \\ s = Ax-b \\ x, {\ lambda}, v, s \ geqslant 0 \\ x ^ {T} v + {\ lambda} ^ {T} s = 0 \ end {cases}}}{\ displaystyle {\ begin {cases} v = Qx-A ^ {T} {\ lambda} + c \\ s = Ax-b \\ x, {\ lambda}, v, s \ geqslant 0 \\ x ^ {T} v + {\ lambda} ^ {T} s = 0 \ end {cases}}}

с v множителями Лагранжа на неотрицательность ограничений, λ - множители для ограничений-неравенств, а s - переменные запаса для ограничений-неравенств. Четвертое условие вытекает из дополнительности каждой группы переменных (x, s) с ее набором векторов KKT (оптимальные множители Лагранжа), являющимся (v, λ). В этом случае

z = [x λ], w = [vs] {\ displaystyle z = {\ begin {bmatrix} x \\\ lambda \ end {bmatrix}}, \ qquad w = {\ begin { bmatrix} v \\ s \ end {bmatrix}}}{\ displaystyle z = {\ begin {bmatrix} x \\\ лямбда \ конец {bmatrix}}, \ qquad w = {\ begin {bmatrix} v \\ s \ end {bmatrix}}

Если ограничение неотрицательности на x ослаблено, размерность проблемы LCP может быть уменьшена до количества неравенств, пока Q не -особое число (что гарантируется, если оно положительно определено ). Множителей v больше нет, и первые условия KKT можно переписать как:

Q x = AT λ - c {\ displaystyle Qx = A ^ {T} {\ lambda} -c}{\ displaystyle Qx = A ^ {T} {\ lambda} -c}

или:

x = Q - 1 (AT λ - c) {\ displaystyle x = Q ^ {- 1} (A ^ {T} {\ lambda} -c)}{\ displaystyle x = Q ^ {- 1} (A ^ {T} {\ lambda} -c)}

предварительное умножение двух сторон на A и вычитая b, получаем:

A x - b = AQ - 1 (AT λ - c) - b {\ displaystyle Ax-b = AQ ^ {- 1} (A ^ {T} {\ lambda} -c) -b \,}{\ displaystyle Ax-b = AQ ^ {- 1} (A ^ {T} {\ lambda} -c) -b \,}

Левая часть из-за второго условия KKT - s. Замена и изменение порядка:

s = (AQ - 1 AT) λ + (- AQ - 1 c - b) {\ displaystyle s = (AQ ^ {- 1} A ^ {T}) {\ lambda} + ( -AQ ^ {- 1} cb) \,}{\ displaystyle s = (AQ ^ {- 1} A ^ {T}) {\ lambda} + (- AQ ^ {- 1} cb) \,}

Звонок сейчас

M: = (AQ - 1 AT) q: = (- AQ - 1 c - b) {\ displaystyle {\ begin {align} M : = (AQ ^ {- 1} A ^ {T}) \\ q : = (- AQ ^ {- 1} cb) \ end {align}}}{\ displaystyle {\ begin {align} M : = (AQ ^ {- 1} A ^ {T}) \\ q : = (- AQ ^ {-1} cb) \ end {align}}}

у нас есть LCP из-за отношения дополнительности между переменными запаса s и их множителями Лагранжа λ. Как только мы ее решим, мы можем получить значение x из λ через первое условие KKT.

Наконец, также можно обрабатывать дополнительные ограничения равенства:

A eqx = beq {\ displaystyle A_ {eq} x = b_ {eq}}{\ displaystyle A_ {eq} x = b_ {eq}}

Это вводит вектор множителей Лагранжа μ, с тем же размером, что и beq {\ displaystyle b_ {eq}}{\ displaystyle b_ {eq}} .

Легко проверить, что M и Q для системы LCP s = M λ + Q {\ displaystyle s = M {\ lambda} + Q}{\ displaystyle s = M {\ lambda} + Q} теперь выражаются как:

M: = [A 0] [QA eq T - A eq 0] - 1 [AT 0] q: = - [A 0 ] [QA eq T - A eq 0] - 1 [cbeq] - b {\ displaystyle {\ begin {align} M : = {\ begin {bmatrix} A 0 \ end {bmatrix}} {\ begin {bmatrix} QA_ { eq} ^ {T} \\ - A_ {eq} 0 \ end {bmatrix}} ^ {- 1} {\ begin {bmatrix} A ^ {T} \\ 0 \ end {bmatrix}} \\ q : = - {\ begin {bmatrix} A 0 \ end {bmatrix}} {\ begin {bmatrix} Q A_ {eq} ^ {T} \\ - A_ {eq} 0 \ end {bmatrix}} ^ {- 1} {\ begin {bmatrix} c \\ b_ {eq} \ end {bmatrix}} - b \ end {align}}}{\ displaystyle {\ begin {align} M : = {\ begin {bmatrix} A 0 \ end {bmatrix}} {\ begin { bmatrix} Q A_ {eq} ^ {T} \\ - A_ {eq} 0 \ end {bmatrix}} ^ {- 1} {\ begin {bmatrix} A ^ {T} \\ 0 \ end {bmatrix}} \ \ q : = - {\ begin {bmatrix} A 0 \ end {bmatrix}} {\ begin {bmatrix} Q A_ {eq} ^ {T} \\ - A_ {eq} 0 \ end {bmatrix}} ^ {- 1 } {\ begin {bmatrix} c \\ b_ {eq} \ end {bmatrix}} - b \ end {align}}}

Теперь по λ мы можем восстановить значения как x, так и множителя равенств Лагранжа μ:

[x μ] = [QA eq T - A eq 0] - 1 [AT λ - c - beq] {\ displaysty le {\ begin {bmatrix} x \\\ mu \ end {bmatrix}} = {\ begin {bmatrix} Q A_ {eq} ^ {T} \\ - A_ {eq} 0 \ end {bmatrix}} ^ {- 1} {\ begin {bmatrix} A ^ {T} \ lambda -c \\ - b_ {eq} \ end {bmatrix}}}{\ displaystyle {\ begin {bmatrix} x \\\ mu \ end {bmatrix}} = {\ begin {bmatrix} Q A_ {eq } ^ {T} \\ - A_ {eq} 0 \ end {bmatrix}} ^ {- 1} {\ begin {bmatrix} A ^ {T} \ lambda -c \\ - b_ {eq} \ end {bmatrix }}}

Фактически, большинство решателей QP работают с формулировкой LCP, включая метод внутренней точки, методы поворота принципала / комплементарности и методы активного набора. Проблемы LCP могут быть решены также с помощью перекрестного алгоритма, наоборот, для задач линейной дополнительности алгоритм перекрестного завершения завершается окончательно, только если матрица является достаточной матрицей. A является обобщением как положительно определенной матрицы, так и P-матрицы, у которых главные миноры каждый положительный. Такие LCP могут быть решены, когда они сформулированы абстрактно с использованием ориентированного матроида теории.

См. Также
Примечания
Ссылки
Дополнительная литература
  • RW Cottle и GB Dantzig. Дополнительная теория вращения математическое программирование. Линейная алгебра и ее приложения, 1: 103-125, 1968.
  • Terlaky, Tamás; Zhang, Shu Zhong (1993). "Pivot rules for linear programming: A Survey on the недавние теоретические разработки". Annals of Operations Исследования. Вырождение в задачах оптимизации. 46–47 (1): 203–233. CiteSeerX 10.1.1.36.7658. doi : 10.1007 / BF02096264. ISSN 0254-5330. MR 1260019. Cite имеет пустой неизвестный параметр: | 1 =() CS1 maint: ref = harv (ссылка )
Внешние ссылки
  • LCPSolve - Простая процедура в GAUSS для решения проблемы линейной дополнительности
  • Siconos / Numerics с открытым исходным кодом Реализация GPL на языке C алгоритма Лемке и др. методы решения LCP и MLCP
Последняя правка сделана 2021-05-27 10:31:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте