Problem liniowej komplementarności

W matematycznej teorii optymalizacji problem komplementarności liniowej (LCP) pojawia się często w mechanice obliczeniowej i obejmuje dobrze znane programowanie kwadratowe jako przypadek szczególny. Zaproponowali go Cottle i Dantzig w 1968 roku.

Sformułowanie

Mając rzeczywistą macierz M i wektor q , problem liniowej komplementarności LCP( q , M ) szuka wektorów z i w , które spełniają następujące ograniczenia:

  • (czyli każdy składnik tych dwóch wektorów jest nieujemny)
  • lub równoważnie Jest to , , że dla wszystkich najwyżej jeden z być dodatni

Wystarczającym warunkiem istnienia i jednoznaczności rozwiązania tego problemu jest, aby M było symetrycznie dodatnio określone . Jeśli M jest takie, że LCP( q , M ) ma rozwiązanie dla każdego q , to ​​M jest Q-macierzą . Jeśli M jest takie, że LCP( q , M ) ma unikalne rozwiązanie dla każdego q , to M jest macierzą P . Obie te charakterystyki są wystarczające i konieczne.

Wektor w jest zmienną typu „slack” i dlatego jest generalnie odrzucany po znalezieniu z . W związku z tym problem można również sformułować w następujący sposób:

  • (warunek komplementarności)

Minimalizacja wypukła kwadratowa: warunki minimalne

Znalezienie rozwiązania problemu liniowej komplementarności wiąże się z minimalizacją funkcji kwadratowej

podlega ograniczeniom

Te ograniczenia zapewniają, że f jest zawsze nieujemne. Minimum f wynosi 0 w z wtedy i tylko wtedy, gdy z rozwiązuje problem liniowej komplementarności.

Jeśli M jest dodatnio określone , dowolny algorytm rozwiązywania (ściśle) wypukłych QP może rozwiązać LCP. Specjalnie zaprojektowane algorytmy obracania wymiany bazowej, takie jak algorytm Lemkego i wariant algorytmu simplex Dantziga, są używane od dziesięcioleci. Oprócz wielomianowej złożoności czasowej, metody punktów wewnętrznych są również skuteczne w praktyce.

Również problem programowania kwadratowego określony jako minimalizacja z zastrzeżeniem również z Q symetrycznym

jest tym samym, co rozwiązanie LCP z

Dzieje się tak, ponieważ warunki Karusha – Kuhna – Tuckera problemu QP można zapisać jako:

z v mnożnikami Lagrange'a na ograniczeniach nieujemnych, λ mnożnikami na ograniczeniach nierówności i s zmiennymi luźnymi dla ograniczeń nierówności. Czwarty warunek wynika z komplementarności każdej grupy zmiennych ( x , s ) z jej zbiorem wektorów KKT (optymalne mnożniki Lagrange'a) wynoszącym ( v , λ ) . W tym wypadku,

Jeśli ograniczenie nieujemności na x zostanie złagodzone, wymiarowość problemu LCP można sprowadzić do liczby nierówności, o ile Q nie jest osobliwa (co jest gwarantowane, jeśli jest dodatnio określone ). Mnożniki v nie są już obecne, a pierwsze warunki KKT można przepisać jako:

Lub:

wstępnie mnożąc obie strony przez A i odejmując b otrzymujemy:

Lewa strona, ze względu na drugi warunek KKT, to s . Podstawianie i zmiana kolejności:

Dzwonię teraz

mamy LCP, ze względu na relację komplementarności między zmiennymi luźnymi s a ich mnożnikami Lagrange'a λ . Gdy go rozwiążemy, możemy otrzymać wartość x z λ przez pierwszy warunek KKT.

Wreszcie, możliwe jest również obsłużenie dodatkowych ograniczeń równości:

Wprowadza to wektor mnożników Lagrange'a μ , o tym samym wymiarze co .

Łatwo jest sprawdzić, czy M i Q dla systemu LCP są teraz wyrażone jako:

Z λ możemy teraz odzyskać wartości zarówno x , jak i mnożnika równości Lagrange'a μ :

W rzeczywistości większość solwerów QP pracuje na formule LCP, w tym na metodzie punktu wewnętrznego , przestawianiu zasady/komplementarności i metodach zbioru aktywnego . Problemy LCP można również rozwiązać algorytmem krzyżowym , i odwrotnie, w przypadku problemów z liniową komplementarnością algorytm krzyżowy kończy się skończenie tylko wtedy, gdy macierz jest wystarczającą macierzą. Wystarczająca macierz jest uogólnieniem zarówno macierzy dodatnio określonej, jak i macierzy P , której główne drugorzędne każdy jest pozytywny. Takie LCP można rozwiązać, gdy zostaną sformułowane abstrakcyjnie przy użyciu zorientowanych matroidów .

Zobacz też

Notatki

Dalsza lektura

Linki zewnętrzne

  • LCPSolve — Prosta procedura w GAUSS do rozwiązania problemu liniowej komplementarności
  • Siconos / Numerics implementacja open source GPL w C algorytmu Lemkego i inne metody rozwiązywania LCP i MLCP