Luca, odkąd minął rok, prawdopodobnie badałeś własną odpowiedź. Odpowiadam na niektóre z twoich pytań tutaj dla przypomnienia. Przeglądam niektóre algorytmy relaksacyjne Lagrangiana pod kątem wspomnianych problemów i szkicuję związek z uczeniem się (w szczególności zgodnie z poradami ekspertów). Nie komentuję tutaj algorytmów SDP.
Zauważ, że określone algorytmy, o których wspominasz, nie działają w czasie prawie liniowym. (Istnieje algorytm czasu prawie liniowego dla
jawnie zadawanych problemów z pakowaniem lub pokrywaniem. Zobacz Beating Simplex w przypadku ułamkowego pakowania i obejmowania
programów liniowych .) Algorytmy, o których myślisz, zazwyczaj mają warianty, które działają w prawie liniowej liczbie iteracji , ale każdy z nich iteracja zazwyczaj wymaga również co najmniej czasu liniowego. Poniżej omawiam niektóre z tych algorytmów.
Niektóre przydatne funkcje
Zanim zaczniemy, oto kilka funkcji, które wykorzystamy w szkicach próbnych. (Jeśli interesują Cię algorytmy, ale nie szczegóły, możesz przeskoczyć do przodu.) Dla dowolnego wektora zdefiniuj na . Ta funkcja jest górną granicą :
Analogicznie zdefiniuj na , dolna granica na .yLmax(y)ln∑iexp(yi)maxiyimin i y imaxiyi ≤ Lmax(y) ≤ maxiyi+lnm.
Lmin(y)−Lmax(−y)miniyi
Dla wygody poniżej używamy do oznaczenia gradientu Lmin. Używamy do oznaczenia gradientu Lmax.g(y)∇Lmin(y)G ( y)∇ Lmax ( y)
Oczywiście, to
podczas gdy to .solja( y)exp( - yja) / ∑ja′exp( - yja′)solja( y)exp( yja) / ∑ja′exp( yja′)
Lmin i Lmax są płynne w tym sensie: dla dowolnych wektorów oraz ,
i
re∈ [ 0 , ε ]ny∈ R.nLmin (y+ d) ≥ Lmin ( y ) + ( 1 - O ( ε ) ) re⋅ g( y)
Lmax (y+ d) ≤ Lmax ( y ) + ( 1 + O ( ε ) ) re⋅ G ( y) .
Zauważ, że oba gradienty mają 1-normę równą 1:
. (W całym używamy do oznaczenia 1-normy).| G(y) | = | sol( y) | = 1| z|
Zauważ również, że dla macierzy gradient funkcji w odniesieniu do
wynosi (według reguły łańcucha) . Mówiąc dokładniej, pochodna cząstkowa funkcji względem
to . Podobnie częściowa pochodna Lmax
w odniesieniu do to .ZAx ↦ Lmin ( A x )x( g( A x ) )T.ZAxjot∑jaZAI jexp( - Ajax ) / ∑jaexp( - Ajax )( A x )xjot∑jaZAI jexp( Ajax ) / ∑jaexp( Ajax )
Fractional Set Cover
Napraw instancję Set-Cover. Niech oznacza macierz padania elementu / zestawu. Zatem jeśli , w przeciwnym razie 0, a jest zakresem, w którym ułamkowa pokrywa obejmuje element .ZAZAe s= 1e ∈ sZAmixxmi
LP to . Biorąc pod uwagę , algorytm jestmin { | x | : A x ≥ 1 ; x ≥ 0 }ε ∈ ( 0 , 1 )
- Zainicjuj wszystkie . Niech . xs= 0N.= log( n ) / ε
Powtarzaj, aż : minmiZAmix ≥ N
2.1 Wybierz maksymalizując pochodną cząstkową Lmin wrt .
(Jawnie wybierz maksymalizowanie .) s(Ax)xs s ∑ e ∈ s exp ( - ∑ s ′ ∋ e x s ′ )
s∑e∈sexp(−∑s′∋exs′)
2.2 Zwiększ o . xsε
Zwróć .x / minmiZAmix
Algorytm zwraca przybliżone rozwiązanie w iteracjach , gdzie jest liczbą elementów, a jest optymalnym ułamkowy zestaw okładek (trywialnie ). (Podobny algorytm pojawia się we wspomnianej pracy Chandra . Wierzchołek to oczywiście szczególny przypadek).( 1 + O ( ε ) )O ( | x∗| log( n ) / ε2))nx∗| x∗| ≤n
( Uwaga: Należy zauważyć, że granica iteracji nie zależy od liczby zestawów, tylko od liczby elementów. W związku z tym algorytm może być stosowany z domyślnie zdefiniowanym systemem zestawów, pod warunkiem, że przy danym ciężarze elementów można skutecznie znajdź zestaw maksymalnej (lub prawie maksymalnej) masy całkowitej. Ten rodzaj wyroczni jest taki sam jak wyrocznia separacyjna wymagana do zastosowania algorytmu elipsoidy do podwójnego problemu. W przypadku problemów związanych z pakowaniem, takich jak pakowanie zestawów, potrzebujesz wyroczni, która: podane wagi na elementach, zwraca zestaw minimalizujący całkowitą wagę. W przypadku problemów takich jak przepływ wielu towarów, możesz na przykład znaleźć ścieżkę minimalizującą sumę niektórych podanych wag krawędzi.)
Oto szkic dowodu gwarancji wydajności. W każdej iteracji pochodna częściowa wr wybranego
wynosi co najmniej, gdzie jest optymalnym pokryciem zestawu ułamkowego.s1 / | x∗|x∗
(Aby zobaczyć dlaczego, przypomnijmy sobie, że gradient Lmin w stosunku do wynosi . Gdybyśmy mieli wybrać zbiór losowo z rozkładu oczekiwana wartość pochodnej cząstkowej w odniesieniu do
wynosiłaby zatem . Od , to wynosi co najmniej . Ponieważ , jest to co najmniej . Zatem muszą istnieć pewne dające pochodną cząstkową co najmniej . Ponieważ algorytm wybiera( A x )x( g( A x ) )T.ZAs′x∗/ | x∗|xs′( g( A x ) )T.A x∗/ | x∗|A x∗≥ 1| sol( A x ) | / | x∗|| sol( A x ) | = 11/|x∗|s1/|x∗|xsw każdej iteracji, aby zmaksymalizować
pochodną cząstkową, uzyskuje pochodną cząstkową o wartości co najmniej.) 1 / | x ∗ |1/|x∗|
Następnie rozmiar kroku jest wybierany na tyle mały, że żadna współrzędna wzrasta o więcej niż . Zatem, ze względu na gładkość Lmin, zwiększenie
do zwiększa o co najmniej
.εA xεxsxs+ εLmin (Ax)(1−O(ε))ε/|x∗|
W ten sposób algorytm utrzymuje niezmiennik
(Zauważ, że Lmin jest równy .)Lmin(Ax)≥(1−O(ε))|x|/|x∗|−lnn.
(0¯¯¯)lnn
W momencie zakończenia, w niezmienniku, to razy lewa strona, więc według obliczeń otrzymujemy. Po normalizacji w ostatnim wierszu algorytmu oznacza to.lnnO(ε)mineAex≥(1−O(ε))|x|/|x∗|| x | ≤(1+O(ε)) | x∗|
FWIW, nierówności związane z udowodnieniem niezmiennika są zasadniczo takie same jak te związane z udowodnieniem granicy z Chernoffem. (W rzeczywistości algorytm ten można uzyskać, stosując metodę prawdopodobieństw warunkowych do schematu zaokrąglania losowego, który wielokrotnie próbkuje zestawy z rozkładu
(z zamianą), zwiększając dla każdego próbkowanego zestawu Ta derandomizacja daje algorytm: niezmiennikiem leżącym u podstaw jest po prostu to, że estymator pesymistyczny pozostaje poniżej 1. Wykładnicze kary w estymatorze pesymistycznym wynikają z zastosowania granicy Chernoffa w analizie schematu zaokrąglania. we wspomnianym artykule Chandra .)x∗/ | x∗|xss
Fractional Weighted Set Cover (i ogólne Fractional Covering)
Aby efektywnie radzić sobie z problemami takimi jak Weighted Set Cover , modyfikujemy algorytm, aby używał niejednorodnych przyrostów (pomysł dzięki Garg i Konemann ).
LP to , gdzie rozciąga się na elementy, rozciąga się na zestawy, a wszystkie zmienne nie są -negatywny. Aby przedstawić algorytm, najpierw przepisz problem jako ogólny problem obejmujący. Niech dla A przeciwnym razie. Następnie (ze zmianą zmiennych, skalowanie każdego przez ), LP to , które możemy postrzegać jako ogólne obejmujące LP. Oto algorytm:min{c⋅x:(∀e)∑s∋exs≥1}esAes=1/cse∈sAes=0xscsmin{|x|:Ax≥1;x≥0}
Zainicjuj wszystkie . Niech .xs=0N=log(n)/ε
Powtarzaj, aż wszystkie ograniczenia obejmujące zostaną usunięte:
2.1 Wybierz maksymalizując pochodną cząstkową Lmin wrt .
(Jawnie wybierz maksymalizowanie .)s(Ax)xs s ∑ e ∈ s exp ( - ∑ s ′ ∋ e x s ′ ) / c s
s∑e∈sexp(−∑s′∋exs′)/cs
2.2 Zwiększ o , gdzie jest wybierane maksymalnie tak, że dla każdego pozostałego ograniczenia pokrycia wzrost wynosi najwyżej .xsδδeAe⋅xε
2.3 Usunięcie wszystkich ograniczeń obejmujące , tak że .eAe⋅x≥N
Zwraca .x/mineAe⋅x
Algorytm zwraca przybliżone rozwiązanie w iteracjach , gdzie jest liczbą obejmujących ograniczeń. (Każda iteracja zwiększa część pozostałego o ; może się to zdarzyć tylko razy do ograniczenia przed jego usunięciem.) Dowód poprawności jest zasadniczo taki sam niezmienny jak dla Set Cover.(1+O(ε))O(nlog(n)/ε2)nAexεN/ε
Ważona osłona wierzchołków to specjalny przypadek.
Maksymalne ułamkowe dopasowanie dwustronne
Biorąc pod uwagę wykres , naturalny LP dla problemu to .G=(U,W,E)max{|x|:∀v.∑e∋vxe≤1}
W reprezentacji macierzowej jest to pakujący LP
o współczynnikach 0-1 ( jeśli ). Takie problemy nie wymagają nierównomiernych przyrostów, więc prosty algorytm analogiczny do nieważonego algorytmu Set Cover (ale do pakowania) wykona:max{|x|:Ax≤1;x≥0}Ave=1v∈e
- Zainicjuj wszystkie . Niech .xe=0N=log(n)/ε
Podczas gdy :Ax<N
2.1 Wybierz minimalizując pochodną cząstkową Lmax wrt .
(Jawnie wybierz aby zminimalizować .)e(Ax)xe e ∑ v ∈ e exp ( ∑ e ′ ∋ v x e ′ )
e∑v∈eexp(∑e′∋vxe′)
2.2 Zwiększ o . xeε
Zwraca .x/maxvAvx
Algorytm zwraca przybliżone rozwiązanie w iteracjach . (Jest tak, ponieważ każda iteracja zwiększa o , a na koniec, przed normalizacją, .)(1−O(ε))O(nlog(n)/ε2)|x|ε|x|=O(Nn)
Dla zabawy, oto ciekawy alternatywny algorytm dla Perfect Bipartite Matching. Przypomnij sobie, że . Niech.G=(U,W,E)n=|U|=|W|
- Zainicjuj wszystkie . Niech . xe=0N=4ln(n)/ε
Powtórz razy:nN
2.1 Wybierz równomiernie losowo z .
2.2 Wybierz , aby minimalizowanie .
2.3 Zwiększ o . uU
w(u,w)∈E∑e∋wxe
xuwε
Powrót .x/N
Jeśli ma idealne dopasowanie, algorytm zwraca taką, że , i z dużym prawdopodobieństwem dla wszystkich wierzchołków , , a dla wszystkich wierzchołków , . Jeśli jesteś zainteresowany szczegółami dowodu, zapytaj ...Gx|x|=nu∈U1−O(ε)≤∑e∋uxe≤1+O(ε)w∈W∑e∋wxe≤1+O(ε)
Mieszane pakowanie i przykrycie
Być może zapytałeś o dwustronne dopasowanie, mając nadzieję na przykład problemu mieszanego pakowania i pokrycia, czyli jednej z postaci
Oto jeden algorytm dla takich problemów. Najpierw normalizacji tak że i .∃x? Px≤p;Cx≥c;x≥0.
p=1¯¯¯c=1¯¯¯
Niech będzie liczbą ograniczeń (rzędy w plus rzędy w ).mPC
- Zainicjuj wszystkie . Niech .xj=0N=2ln(m)/ε
Podczas gdy :Px<N
2.1 Wybierz aby częściowa pochodna Lmax w odniesieniu do była co najwyżej częściową pochodną Lmin w odniesieniu do . (Jawnie wybierz , abyj(Px)xj(Cx)xjj∑iPijexp(Pix)∑iexp(Pix)≤∑iCijexp(−Cix)∑iexp(−Cix).)
2.2 Zwiększ o , gdzie jest wybierane maksymalnie tak, aby żadne ograniczenie lub pozostałe ograniczenie wzrosło o więcej niż .xjδδPixCixε
2.3 Usuń wszystkie obejmujące ograniczeń takie, które .iCix≥N
Zwraca .x/maxiPix
Zakładając, że dany problem jest wykonalny, algorytm zwraca takie, że
i . Liczba iteracji wynosi , ponieważ każda iteracja zwiększa pewne ograniczenie o , i może się to zdarzyć dla każdego ograniczenia najwyżej razy.xPx≤1Cx≥1−O(ε)O(mln(m)/ε2)εN
Dowodem poprawności jest niezmiennik
Niezmiennik implikuje
Po zakończeniu po lewej stronie znajduje się , co potwierdza gwarancję wydajności.Lmax(Px)≤2ln(m)+(1+O(ε))Lmin(Cx).
maxPx≤2ln(m)+(1+O(ε))minCx.
Ω(log(m)/ε)
W kroku 2.1 pożądane musi istnieć tak długo, jak długo oryginalny problem jest wykonalny. (Jest tak, ponieważ dla każdego możliwego i dowolnego , jeśli wybralibyśmy losowe z rozkładu , oczekiwana wartość pochodnej cząstkowej Lmax w odniesieniu do
wynosiłoby co najwyżej (patrz poprzedni szkic dowodu dla Zestawu okładki). Podobnie, oczekiwana wartość częściowej pochodnej Lmin w odniesieniu do
będzie wynosić co najmniej . Zatem istniejejx ∗ x j ′ x ∗ / | x ∗ | ( P x ) x j ′ 1 / | x ∗ | ( C x ) x j ′ 1 / | x ∗ | j ( P x ) x j ′ ( C x ) x∗xj′x∗/|x∗|(Px)xj′1/|x∗|(Cx)xj′1/|x∗|jtak, że częściowa pochodna Lmax w odniesieniu do
jest co najwyżej częściową pochodną Lmin .)(Px)xj′(Cx)
Następnie niezmiennik jest utrzymywany w każdej iteracji, ponieważ poprzez wybór i oraz gładkość Lmin i Lmax, zwiększenie do
zwiększa Lmax
maksymalnie o
razy wzrost Lmin .xjδxjxj+δ(Px)1+O(ε)(Cx)
Uczenie się (obserwowanie ekspertów / wzmacnianie)
Jednym z odniesień do zrozumienia tego związku jest
gra adaptacyjna z wykorzystaniem mnożników , autorstwa Freunda i Schapire'a. Oto krótkie podsumowanie przedstawiające pomysł techniczny.
Rozważ następującą powtarzaną grę. W każdej rundzie : t
- Ty wybierasz rozkład prawdopodobieństwa na ( tak zwanych ekspertach ). pt[n]n
- Znając , przeciwnik wybiera wektor wypłaty . ptat∈[0,1]n
- Otrzymujesz wypłatę za rundę. pt⋅at
Gra kończy się po pewnej liczbie rund. Twoim celem jest, aby zminimalizować swój żal w stosunku do każdego pojedynczego eksperta (czyli czysta Strategia) . Oznacza to, że Twoim celem jest zminimalizowanie .i(maxi∑tati)−∑tpt⋅at
Napraw dowolne . Niech wektor oznacza , to znaczy
razy suma wektorów wektorów wypłat do czasu . Przypomnij sobie, że jest gradientem Lmax .ε>0ytε∑s≤tasεtG(y)(y)
Oto podstawowa strategia, którą przeanalizujemy:
W rundzie wybierz jako .tptG(yt−1)
Przez kontrolę daje to wypłatę w rundzie .at⋅G(yt−1)t
Ze względu na właściwość gładkości ,
Oznacza to, że w każdej rundzie nie może wzrosnąć więcej niż razy twoja wypłata. Ponieważ , zachowuje to niezmienność, że
to co najwyżej całkowity czas wypłaty , plus . Z drugiej strony żałujesz w porównaniu z najlepszym ekspertem
jest , tj.FLmax(yt)≤Lmax(yt−1)+(1+O(ε))εat⋅G(yt−1).
Lmax(yt)ε(1+O(ε))Lmax(0¯¯¯)=lnnLmax(yt)ε(1+O(ε)ln(n)imaxi∑tatiε−1maxiyti, co z kolei co najwyżej .ε−1Lmax(yt)
Dlatego żałujesz co najwyżej plus razy łączna wypłata.ε−1ln(n)O(ε)
Uwaga: Myślę, że, jak wskazują Freund i Schapire, algorytm „wzmacniający” (w teorii uczenia się) jest również zawarty w tej analizie. Zobacz ich artykuł, aby uzyskać więcej informacji.
Minimalizowanie całkowitej wypłaty
Możesz opracować podobną strategię dla ustawienia, w którym celem jest zminimalizowanie , a nie maksymalizacja całkowitej wypłaty. Żałujesz, że nadal chcesz zminimalizować, to . W takim przypadku odpowiednią strategią jest wybranie jako gradientu . Dzięki tej strategii ponownie żałujesz co najwyżej
plus razy łączna wypłata.∑tpt⋅at−miniatiptLmin(yt)ε−1lnnO(ε)
Połączenie z algorytmami relaksacji Lagrangiana
Aby zobaczyć połączenie z algorytmami relaksacyjnymi Lagrangian, napraw instancję Set-Cover. Rozważ ten drugi rodzaj gry (w celu zminimalizowania wypłaty), w którym eksperci odpowiadają elementom twojego zestawu gier . W każdej rundzie wybierz rozkład prawdopodobieństwa
aby był gradientem Lmin jak powyżej, i niech przeciwnik wybierze wektor wypłaty jako funkcję w następujący sposób:
wybierz zestaw maksymalizowanie , następnie pozwól jeśli , a przeciwnym razie.ept(yt)atpts t ∑ e ∈ s p t e a t e = 1 e ∈ s t a t e = 0st∑e∈spteate=1e∈state=0
Biorąc pod uwagę poprawny warunek zatrzymania (omówiony poniżej), proces ten daje dokładnie algorytm Set-Cover omówiony na początku.
Gwarancja wydajności algorytmu wynika z żalu związanego w następujący sposób. Niech będzie liczbą razy, gdy przeciwnik wybrał zestaw podczas gry. Niech będzie optymalnym pokryciem zestawu ułamkowego. Niechbyć liczbą rozegranych rund. Granica żalu oznacza
Xssx∗T=|Xs|∑tat⋅pt≤ε−1ln(m)+mine∑tate.
Zgodnie z definicją z , do p wypłat (w termin TH suma po lewej stronie) jest równa . Przeciwnik wybrał zminimalizowanie tego wypłat. Jeśli przeciwnik zamiast tego wybrał losowo z rozkładu, oczekiwanie wypłaty to
(Powyżej wykorzystujemy tę dla wszystkich , i ). Ponieważ każda wypłata przynajmniejattt∑e∈stpteststx∗/|x∗|∑sx∗s|x∗|∑e∈spte = 1|x∗|∑epte∑s∋ex∗s ≥ 1|x∗|∑epte = 1|x∗|.
∑s∋ex∗s≥1e|pt|=11/|x∗|, granica żalu oznacza
Zgodnie z definicją mamy (każda runda wybiera jeden zestaw), a , dając
Zatrzymujemy proces, gdy , więc wtedy (przestawienie warunków)
To znaczy, normalizacja daje co najwyżej ułamkowy zestaw wielkości czasy optymalne.T|x∗|≤ε−1ln(m)+mine∑tate.
X|X|=T∑tate=∑e[e∈st]=∑s∋eXs|X||x∗|≤ε−1ln(m)+mine∑s∋eXs.
mine∑s∋eXs=Ω(ε−2lnm)|X|mine∑s∋eXs ≤ (1+O(ε)|x∗|.
X(1+O(ε))
Uwaga: W pewnym sensie ta interpretacja teorii uczenia się uogólnia interpretację algorytmiczną. Jednak niektóre techniki algorytmiczne niezbędne dla wydajności (takie jak nierównomierne przyrosty i pomijanie spełnionych ograniczeń pokrycia) nie wydają się naturalnie przenosić się na teorię uczenia się. Podobnie, algorytmy
mieszanego pakowania i pokrywania płyt LP (np. Te ) nie wydają się mieć naturalnych analogów w ustawieniach teorii uczenia się.