xδfxx
Wyobraź sobie, że masz problem z optymalizacją:
minimize (over x)subject tof(x)∀j∈{1…k}gj(x)≤0
Gdzie i istnieje ograniczeń.x∈Rnk
Niech będzie wektorem kolumnowym oznaczającym gradient obliczony w .∇f(x)fx
W tej sytuacji Farkas Lemma stwierdza, że dla dowolnego punktu dokładnie jedna z następujących instrukcji:x∈Rn
- Istnieje taki, że iλ∈Rk∑kj=1λj∇gj(x)=−∇f(x)λ≥0
- Istnieje taki, że iδ∈Rn∀jδ′gj(x)≤0δ′∇f(x)<0
Co to znaczy? Oznacza to, że dla każdego możliwego punktu :x
- Warunek (1) zostaje zachowany, a warunki KKT są spełnione.
- Warunek (2) obowiązuje i istnieje możliwy kierunek który poprawia funkcję celu bez zwiększania ograniczeń . (np. możesz poprawić , przechodząc z do )δfgjfxx+ϵδ
Warunek (1) stwierdza, że istnieją nieujemne mnożniki dzięki czemu warunki KKT są spełnione w punkcie . (Geometrycznie mówi się, że leży w wypukłym stożku określonym przez gradienty wiązań).λx−∇f
Warunek (2) stwierdza, że w punkcie istnieje kierunek aby przenieść (lokalnie), tak aby:xδ
- Poruszanie się w kierunku zmniejsza funkcję celu (ponieważ iloczyn iloczynu i jest mniejszy od zera).δ∇f(x)δ
- Poruszanie się w kierunku nie zwiększa wartości ograniczeń (ponieważ iloczyn iloczynu i jest mniejszy lub równy zero dla wszystkich ograniczenia ).δ∇gj(x)δj
(Geometrycznie możliwy kierunek definiuje oddzielającą hiperpłaszczyznę między wektorem a wypukłym stożkiem zdefiniowanym przez wektory .)δ−∇f(x)∇gj(x)
(Uwaga: aby zamapować to na Farkas Lemma , zdefiniuj macierz )A=[∇g1,∇g2,…,∇gk]
Ten argument wskazuje na konieczność (ale nie wystarczalność) warunków KKT w optymalny sposób. Jeśli warunki KKT nie są spełnione (i spełnione są kwalifikacje ograniczeń), możliwe jest ulepszenie celu bez naruszania ograniczeń.
Rola kwalifikacji ograniczających
Co może pójść źle? Możesz uzyskać zdegenerowane sytuacje, w których gradienty wiązań nie opisują dokładnie możliwych kierunków ruchu.
Istnieje wiele różnych kwalifikacji ograniczeń do wyboru, które pozwolą na działanie powyższego argumentu.
Minimalna, maksymalna interpretacja (imho najbardziej intuicyjna)
Utwórz Lagrangian
L(x,λ)=f(x)+∑j=1kλjgj(x)
Zamiast minimalizować podlegające ograniczeniom , wyobraź sobie, że próbujesz zminimalizować podczas gdy jakiś przeciwnik próbuje go zmaksymalizować. Mnożniki można interpretować jako kary (wybrane przez niektórych przeciwników) za naruszenie ograniczeń. g j L λ ifgjLλi
Rozwiązanie pierwotnego problemu optymalizacji odpowiada:
minxmaxλL(x,λ)
To jest:
- Najpierw wybierasz aby zminimalizować Lagrangian , wiedząc, że ...xL
- Następnie aby zmaksymalizować Lagrangian (obserwując twój pick ).λx
Na przykład, jeśli naruszysz ograniczenie , mogę cię ukarać, ustawiając na nieskończoność!g2λ2
Słaba dualność
W przypadku dowolnej funkcji zauważ, że:f(x,y)
∀x^,y^minxf(x,y^)≤f(x^,y^)≤maxyf(x^,y)
Ponieważ odnosi się to do każdego i to również, że:
x^y^
maxyminxf(x,y)≤minxmaxyf(x,y)
W ustawieniach Langriana ten wynik jest taki, że jest znany jako słaba dualność.maxλminxL(x,λ)≤minxmaxλL(x,λ)
Podwójny problem daje ci dolną granicę rozwiązaniamaxλminxL(x,λ)
Silna dualność
W pewnych szczególnych warunkach (np. Problem wypukły, gdy utrzymuje się stan Slatera), masz silną dualność (tj. Właściwość punktu siodłowego).
maxλminxL(x,λ)=minxmaxλL(x,λ)
Ten piękny wynik oznacza, że możesz odwrócić kolejność problemu.
Najpierw wybieram kary aby zmaksymalizować Lagrangian.λ
Następnie wybierz aby zminimalizować Lagrangian .L.xL
zestaw w tym procesie są cenami za naruszenie ograniczeń, a ceny są ustawione tak, że nigdy nie będzie naruszać ograniczeń.λ