Przykłady zabawek dla solverów Plotkin-Shmoys-Tardos i Arora-Kale


34

Chciałbym zrozumieć, w jaki sposób solver Arora-Kale SDP aproksymuje relaksację Goemansa-Williamsona w prawie liniowym czasie, jak solver Plotkin-Shmoys-Tardos aproksymuje ułamkowe problemy „upakowania” i „pokrycia” w prawie liniowym czasie oraz jak algorytmy są instancjami abstrakcyjnych ram „uczenia się od ekspertów”.

Teza Kale'a ma doskonałą prezentację, ale bardzo trudno mi przejść bezpośrednio do abstrakcyjnych ram i wolałbym zacząć od przykładu prostego problemu, dla którego jest absolutnie oczywiste, co robić, a następnie przejść do bardziej ogólnych problemów , stopniowo dodając „funkcje” do algorytmu i jego analizy.

Na przykład:

W jaki sposób Plotkin-Shmoys rozwiązuje relaksację programowania liniowego nieważonej osłony wierzchołków? Ważona pokrywa wierzchołków? Ustawić ochronę? Dwustronne dopasowanie?

Jaki jest najprostszy przykład, w którym algorytm Arora-Kale robi coś interesującego? Jak oblicza największą wartość własną Laplaciana na wykresie?

(Obliczenie największej wartości własnej Laplaciana jest równoznaczne z problemem rozwiązania słabszej wersji relaksacji SDP Goemans-Williamson Max Cut, w której zamiast wymagać, aby każdy wektor miał długość jeden, potrzebujesz sumy kwadratów norm, które mają być | V |.)


2
To miłe pytanie.
Suresh Venkat

4
Aby zrozumieć algorytmy typu PST do rozwiązywania problemów z pakowaniem, dobrze jest przyjrzeć się algorytmom w przybliżeniu rozwiązującym problem przepływu wielokomorowego, z którego ewoluował PST. Artykuł Neala Younga szczegółowo opisuje zestaw okładek. Ihttp: //www.cs.ucr.edu/~neal/non_arxiv/SODA_1995_170.pdf. Pomyślałem, że ankieta Arora-Kale-Hazana wyraźnie pokazuje związek między strukturą ekspertów a rozwiązaniami do pakowania / pokrywania.
Chandra Chekuri

1
@ChandraChekuri: To raczej opóźnione, ale zastanawiam się, czy powinieneś udzielić odpowiedzi?
Suresh Venkat

2
FWIW, kilka notatek rozwijanych na papierze SODA @ChandraChekuri, o których mowa, patrz greedyalgs.info/blog/about .
Neal Young,

Zaktualizowany link: algnotes.info/on/obliv
Neal Young

Odpowiedzi:


26

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)lniexp(yi)maxiyimin i y i

maxiyi  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 .gi(y)exp(yi)/iexp(yi)Gi(y)exp(yi)/iexp(yi)

Lmin i Lmax są płynne w tym sensie: dla dowolnych wektorów oraz , i d[0,ε]nyRn

Lmin(y+d)  Lmin(y) + (1O(ε))dg(y)
Lmax(y+d)  Lmax(y) + (1+O(ε))dG(y).

Zauważ, że oba gradienty mają 1-normę równą 1: . (W całym używamy do oznaczenia 1-normy).|G(y)|=|g(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 .AxLmin(Ax)x(g(Ax))TAxjiAijexp(Aix)/iexp(Aix)(Ax)xjiAijexp(Aix)/iexp(Aix)

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 .AAes=1esAexxe

LP to . Biorąc pod uwagę , algorytm jestmin{|x|:Ax1;x0}ε(0,1)


  1. Zainicjuj wszystkie . Niech . xs=0N=log(n)/ε
  2. Powtarzaj, aż : mineAexN

    2.1 Wybierz maksymalizując pochodną cząstkową Lmin wrt . (Jawnie wybierz maksymalizowanie .) s(Ax)xs s e s exp ( - s e x s )
    sesexp(sexs)

    2.2 Zwiększ o . xsε

  3. Zwróć .x/mineAex


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(Ax)x(g(Ax))TAsx/|x|xs(g(Ax))TAx/|x|Ax1|g(Ax)|/|x||g(Ax)|=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 .εAxεxsxs+εLmin(Ax)(1O(ε))ε/|x|

W ten sposób algorytm utrzymuje niezmiennik (Zauważ, że Lmin jest równy .)

Lmin(Ax)(1O(ε))|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(1O(ε))|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{cx:(e)sexs1}esAes=1/csesAes=0xscsmin{|x|:Ax1;x0}


  1. Zainicjuj wszystkie . Niech .xs=0N=log(n)/ε

  2. 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
    sesexp(sexs)/cs

    2.2 Zwiększ o , gdzie jest wybierane maksymalnie tak, że dla każdego pozostałego ograniczenia pokrycia wzrost wynosi najwyżej .xsδδeAexε

    2.3 Usunięcie wszystkich ograniczeń obejmujące , tak że .eAexN

  3. Zwraca .x/mineAex


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.evxe1}

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|:Ax1;x0}Ave=1ve


  1. Zainicjuj wszystkie . Niech .xe=0N=log(n)/ε
  2. 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 )
    eveexp(evxe)

    2.2 Zwiększ o . xeε

  3. 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ą, .)(1O(ε))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|


  1. Zainicjuj wszystkie . Niech . xe=0N=4ln(n)/ε
  2. 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)Eewxe
    xuwε

  3. 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|=nuU1O(ε)euxe1+O(ε)wWewxe1+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? Pxp;Cxc;x0.
p=1¯c=1¯

Niech będzie liczbą ograniczeń (rzędy w plus rzędy w ).mPC


  1. Zainicjuj wszystkie . Niech .xj=0N=2ln(m)/ε
  2. 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 .iCixN

  3. 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.xPx1Cx1O(ε)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).
maxPx2ln(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 ) xxjx/|x|(Px)xj1/|x|(Cx)xj1/|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

  1. Ty wybierasz rozkład prawdopodobieństwa na ( tak zwanych ekspertach ). pt[n]n
  2. Znając , przeciwnik wybiera wektor wypłaty . ptat[0,1]n
  3. Otrzymujesz wypłatę za rundę. ptat

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(maxitait)tptat

Napraw dowolne . Niech wektor oznacza , to znaczy razy suma wektorów wektorów wypłat do czasu . Przypomnij sobie, że jest gradientem Lmax .ε>0ytεstasεtG(y)(y)

Oto podstawowa strategia, którą przeanalizujemy: W rundzie wybierz jako .tptG(yt1)

Przez kontrolę daje to wypłatę w rundzie .atG(yt1)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.F

Lmax(yt)Lmax(yt1)+(1+O(ε))εatG(yt1).
Lmax(yt)ε(1+O(ε))Lmax(0¯)=lnnLmax(yt)ε(1+O(ε)ln(n)imaxitaitε1maxiyit, 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.tptatminiaitptLmin(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 = 0stespetaet=1estaet=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 XssxT=|Xs|

tatptε1ln(m)+minetaet.

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 przynajmniejatttestpetststx/|x|

sxs|x|espet = 1|x|epetsexs  1|x|epet = 1|x|.
sexs1e|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)+minetaet.
X|X|=Ttaet=e[est]=seXs
|X||x|ε1ln(m)+mineseXs.
mineseXs=Ω(ε2lnm)
|X|mineseXs  (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ę.


8
To jest całkiem odpowiedź !!
Suresh Venkat

1
Dzięki. Prawdopodobnie przesadził. Interesuje mnie informacja zwrotna: jak zaprezentować te pomysły w przystępny sposób, co jeszcze obejmować ...
Neal Young,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.