Luca, seit ein Jahr vergangen ist, hast du wahrscheinlich deine eigene Antwort recherchiert. Ich beantworte einige Ihrer Fragen hier nur zur Veranschaulichung. Ich überprüfe einige Lagrange-Relaxationsalgorithmen auf die von Ihnen genannten Probleme und skizziere den Zusammenhang mit dem Lernen (insbesondere unter Befolgung fachmännischer Empfehlungen). Ich kommentiere hier keine SDP-Algorithmen.
Beachten Sie, dass die von Ihnen erwähnten Algorithmen nicht in nahezu linearer Zeit ausgeführt werden. (Es gibt einen nahezu linearen Zeitalgorithmus für
explizit gegebene Packungs- oder Abdeckungsprobleme. Siehe
Beating Simplex für gebrochenes Packen und Abdecken linearer Programme .) Die Algorithmen, an die Sie denken, haben normalerweise Varianten, die in einer nahezu linearen Anzahl von Iterationen ausgeführt werden Die Iteration erfordert typischerweise auch mindestens eine lineare Zeit. Ich diskutiere einige dieser Algorithmen unten.
Einige nützliche Funktionen
Bevor wir beginnen, sind hier einige Funktionen, die wir in den Proofskizzen verwenden werden. (Wenn Sie an den Algorithmen interessiert sind, aber nicht an den , können Sie .) Definieren Sie für jeden Vektor als . Diese Funktion ist eine Obergrenze für :
Analog definieren Sie als , eine Untergrenze für .yLmax(y)ln∑iexp(yi)maxiyimaxiyi ≤ Lmax(y) ≤ maxiyi+lnm.
Lmin(y)−Lmax(−y)miniyi
Der bezeichnen wir mit den Gradienten von Lmin. Wir verwenden , um den Gradienten von Lmax zu bezeichnen.g(y)∇Lmin(y)G(y)∇Lmax(y)
Explizit ist
während ist .gi(y)exp(−yi)/∑i′exp(−yi′)Gi(y)exp(yi)/∑i′exp(yi′)
Lmin und Lmax sind in folgendem Sinne glatt : Für alle Vektoren und gilt
und
d∈[0,ε]ny∈RnLmin(y+d) ≥ Lmin(y) + (1−O(ε))d⋅g(y)
Lmax(y+d) ≤ Lmax(y) + (1+O(ε))d⋅G(y).
Man beachte, dass beide Gradienten eine 1-Norm haben, die gleich 1 ist:
. (Wir verwenden für die Bezeichnung der 1-Norm.)|G(y)|=|g(y)|=1|z|
Man beachte auch, dass für eine Matrix der Gradient der Funktion in Bezug auf
(nach der Kettenregel) . Insbesondere kann die partielle Ableitung der Funktion in Bezug explizit auf
IS . Ebenso ist die partielle Ableitung von Lmax
mit Bezug auf IS .Ax↦Lmin(Ax)x(g(Ax))TAxj∑iAijexp(−Aix)/∑iexp(−Aix)(Ax)xj∑iAijexp(Aix)/∑iexp(Aix)
Bruchteile Satzabdeckung
Reparieren Sie eine Set-Cover-Instanz. Let bezeichnen die Element / set Inzidenzmatrix. Somit ist wenn , andernfalls 0, und ist das Ausmaß, in dem die gebrochene Abdeckung das Element bedeckt .AAes=1e∈sAexxe
Die LP ist . Bei ist der Algorithmusmin{|x|:Ax≥1;x≥0}ε∈(0,1)
- Initialisiere alle . Sei . xs=0N=log(n)/ε
Wiederholen, bis : mineAex≥N
2.1. Wählen Sie die partielle Ableitung von Lmin zu maximieren WRT .
(Explizit wählen maximier .) s(Ax)xs s ∑ e ∈ s exp ( - ∑ s ′ ∋ e x s ′ )
s∑e∈sexp(−∑s′∋exs′)
2.2. Erhöhe um . xsε
Sie .x/mineAex
Der Algorithmus gibt eine ungefähre Lösung in Iterationen von , wobei die Anzahl der Elemente und das Optimum ist gebrochene Deckung setzen (trivial ). (Ein ähnlicher Algorithmus erscheint in der erwähnten Veröffentlichung Chandra . Vertex Cover ist natürlich ein Sonderfall.)(1+O(ε))O(|x∗|log(n)/ε2)nx∗|x∗|≤n
( Anmerkung: Es ist zu beachten, dass die gebundene Iteration nicht von der Anzahl der Mengen abhängt, sondern nur von der Anzahl der Elemente. Somit kann der Algorithmus mit einem implizit definierten Mengen-System verwendet werden, solange bei gegebener Gewichtung der Elemente effizient gearbeitet werden kann Finden Sie eine Menge von maximalem (oder nahezu maximalem) Gesamtgewicht. Diese Art von Orakel entspricht dem Trennungs-Orakel, das erforderlich ist, um den Ellipsoid-Algorithmus auf das doppelte Problem anzuwenden . Wenn Sie die Elemente gewichten, wird eine Menge zurückgegeben, die das Gesamtgewicht minimiert . Bei Problemen wie dem Multi-Commodity-Flow müssen Sie möglicherweise einen Pfad finden, der die Summe einiger gegebener Kantengewichte minimiert.)
Hier ist eine Skizze des Nachweises der Leistungsgarantie. In jeder Iteration ist die partielle Ableitung bezüglich des gewählten
mindestens, wobei die optimale Teilmenge ist.s1/|x∗|x∗
(Um zu sehen , warum erinnert, dass der Gradient von Lmin in Bezug auf ist Wenn wir einen Satz wählen waren. aus der Verteilung zufällig , der erwartete Wert der partiellen Ableitung in Bezug auf
wäre somit . Da , this ist mindestens . Da , ist dies mindestens . Es müssen also mindestens einige existieren , die eine partielle Ableitung ergeben . Da der Algorithmus wählt(Ax)x(g(Ax))TAs′x∗/|x∗|xs′(g(Ax))TAx∗/|x∗|Ax∗≥1|g(Ax)|/|x∗||g(Ax)|=11/|x∗|s1/|x∗|xsUm
die partielle Ableitung zu maximieren, wird in jeder Iteration eine partielle Ableitung von mindestens.) 1 / | x ∗ |1/|x∗|
Dann wird die Schrittgröße gerade so klein gewählt, dass keine Koordinate von um mehr als zunimmt . Somit ist es aufgrund der Glätte von Lmin, zunehmenden
zu erhöht durch mindestens
.εAxεxsxs+εLmin(Ax)(1−O(ε))ε/|x∗|
Auf diese Weise der Algorithmus die Invariante aufrecht
(Beachten Sie, dass Lmin gleich .)Lmin(Ax)≥(1−O(ε))|x|/|x∗|−lnn.
(0¯¯¯)lnn
Bei Beendigung ist in der Invariante der Term mal die linke Seite, so dass man rechnerisch erhält. Nach der Normalisierung in der letzten Zeile des Algorithmus impliziert dies.lnnO(ε)mineAex≥(1−O(ε))|x|/|x∗||x|≤(1+O(ε))|x∗|
FWIW, die Ungleichungen beim Nachweis der Invariante sind im Wesentlichen die gleichen wie beim Nachweis der Chernoff-Bindung. (Tatsächlich kann dieser Algorithmus abgeleitet werden, indem die Methode der bedingten Wahrscheinlichkeiten auf ein randomisiertes Rundungsschema angewendet wird, bei dem Mengen aus der Verteilung
(mit Ersetzung) wiederholt abgetastet werden , wobei für jede abgetastete Menge erhöht wird Diese Derandomisierung ergibt den Algorithmus: Die zugrunde liegende Invariante ist nur, dass der pessimistische Schätzer unter 1 bleibt in der Zeitung Chandra erwähnt .)x∗/|x∗|xss
Fractional Weighted Set Cover (und allgemeine fraktionierte Deckung)
Um Probleme wie Weighted Set Cover effizient zu behandeln , modifizieren wir den Algorithmus so, dass ungleichmäßige Inkremente verwendet werden (eine Idee von Garg und Konemann ).
Die LP lautet , wobei sich über die Elemente erstreckt, sich über die Mengen erstreckt und alle Variablen nicht sind -Negativ. Um den Algorithmus zu präsentieren, schreiben Sie das Problem zunächst als allgemeines Abdeckungsproblem um. sei für und . Dann (mit einer Änderung der Variablen, wobei jedes durch ) ist die LP , das wir als allgemeine Covering-LP betrachten können. Hier ist der Algorithmus:min{c⋅x:(∀e)∑s∋exs≥1}esAes=1/cse∈sAes=0xscsmin{|x|:Ax≥1;x≥0}
Initialisiere alle . Sei .xs=0N=log(n)/ε
Wiederholen, bis alle Covering-Einschränkungen gelöscht wurden:
2.1. Wählen Sie Maximieren der partiellen Ableitung von Lmin bezüglich .
(Explizit wählen maximier .)s(Ax)xs s ∑ e ∈ s exp ( - ∑ s ' ∋ e x s ' ) / c s
s∑e∈sexp(−∑s′∋exs′)/cs
2.2. Erhöhe um , wobei maximal so gewählt wird, dass für jede verbleibende Bedeckungsbedingung die Zunahme von höchstens .xsδδeAe⋅xε
2.3 Löschen aller abdeckt Einschränkungen , so dass .eAe⋅x≥N
Return .x/mineAe⋅x
Der Algorithmus gibt eine - ungefähre Lösung in Iterationen von , wobei die Anzahl der überdeckenden Bedingungen ist. (Jede Iteration erhöht einige verbleibende um ; dies kann nur mal vorkommen, bevor eine Einschränkung gelöscht wird.) Der Beweis der Richtigkeit erfolgt über im Wesentlichen dieselbe Invariante wie für Set Cover.(1+O(ε))O(nlog(n)/ε2)nAexεN/ε
Weighted Vertex Cover ist ein Sonderfall.
Maximales fraktioniertes zweiteiliges Matching
Bei einem Graphen ist die natürliche LP für das Problem .G=(U,W,E)max{|x|:∀v.∑e∋vxe≤1}
In der Matrixdarstellung ist dies eine Packungs-LP
mit 0-1 Koeffizienten ( wenn ). Für solche Probleme sind keine uneinheitlichen Inkremente erforderlich. Ein einfacher Algorithmus, der dem ungewichteten Set-Cover-Algorithmus (aber für das Packen) entspricht, ist also ausreichend:max{|x|:Ax≤1;x≥0}Ave=1v∈e
- Initialisiere alle . Sei .xe=0N=log(n)/ε
Während :Ax<N
2.1. Wählen Sie die partielle Ableitung von Lmax bezüglich .
(Wählen Sie explizit um zu minimieren .)e(Ax)xe
e∑v∈eexp(∑e′∋vxe′)
2.2. Erhöhen von . xeε
Sie .x/maxvAvx
Der Algorithmus gibt eine - ungefähre Lösung in -Iterationen zurück. (Dies liegt daran, dass jede Iteration um zunimmt und schließlich vor der Normalisierung .)(1−O(ε))O(nlog(n)/ε2)|x|ε|x|=O(Nn)
Aus Spaß ist hier ein kurioser alternativer Algorithmus für Perfect Bipartite Matching. Denken Sie daran, dass . Sei.G=(U,W,E)n=|U|=|W|
- Initialisiere alle . Es sei . xe=0N=4ln(n)/ε
Wiederhole mal:nN
2.1. Wähle gleichmäßig zufällig aus .
2.2. Wählen , so dass Minimierungs .
2.3. Erhöhen von . uUw ( u , w ) ∈ E ∑ e ∋ w x e x u w ε
w(u,w)∈E∑e∋wxe
xuwε
Zurück .x/N
Wenn eine perfekte Abstimmung hat, kehrt der Algorithmus eine , so dass , und mit hohen Wahrscheinlichkeit für alle Scheitelpunkte , und für all Vertices , . Wenn Sie an den Details des Beweises interessiert sind, fragen Sie bitte ...Gx|x|=nu∈U1−O(ε)≤∑e∋uxe≤1+O(ε)w∈W∑e∋wxe≤1+O(ε)
Gemischte verpackung und abdeckung
Möglicherweise haben Sie nach einem zweigliedrigen Abgleich gefragt, in der Hoffnung, ein Beispiel für ein gemischtes Packungs- und Abdeckungsproblem zu finden, d. Eine der Formen
Hier ist ein Algorithmus für solche Probleme. Normalisieren Sie zunächst so, dass und .∃x? Px≤p;Cx≥c;x≥0.
p=1¯¯¯c=1¯¯¯
Sei die Anzahl der Nebenbedingungen (Zeilen in plus Zeilen in ).mPC
- Initialisiere alle . Es sei .xj=0N=2ln(m)/ε
Während :Px<N
2.1. Wählen Sie so, dass die partielle Ableitung von Lmax in Bezug auf höchstens die partielle Ableitung von Lmin in Bezug auf . (Wähle explizit so, dassj(Px)xj(Cx)xjj∑iPijexp(Pix)∑iexp(Pix)≤∑iCijexp(−Cix)∑iexp(−Cix).)
2.2. Erhöhe um , wobei maximal so gewählt wird, dass keine Einschränkung oder verbleibende Einschränkung um mehr als zunimmt .xjδδPixCixε
2.3. Löscht alle abdeckt Einschränkungen so dass .iCix≥N
Rückgabe .x/maxiPix
Unter der Annahme, dass das gegebene Problem realisierbar ist, gibt der Algorithmus ein so dass
und . Die Anzahl der Iterationen ist , da jede Iteration eine Einschränkung um erhöht , und dies kann für jede Einschränkung höchstens mal vorkommen.xPx≤1Cx≥1−O(ε)O(mln(m)/ε2)εN
Der Beweis der Richtigkeit erfolgt über die Invariante
Die Invariante impliziert
Bei Beendigung ist die linke Seite , was die Leistungsgarantie belegt.Lmax(Px)≤2ln(m)+(1+O(ε))Lmin(Cx).
maxPx≤2ln(m)+(1+O(ε))minCx.
Ω(log(m)/ε)
In Schritt 2.1 muss das gewünschte existieren, solange das ursprüngliche Problem realisierbar ist. (Dies liegt daran, dass für jedes mögliche und jedes , wenn wir ein zufälliges aus der Verteilung wählen , der erwartete Wert der partiellen Ableitung von Lmax in Bezug auf
wäre höchstens (siehe vorherige Beweisskizze für Set Cover) Ebenso der erwartete Wert der partiellen Ableitung von Lmin in Bezug auf
wäre mindestens . Es gibt also einjx ≤ 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∗|jso dass die partielle Ableitung von Lmax in Bezug auf
höchstens die partielle Ableitung von Lmin .)(Px)xj′(Cx)
Dann wird die Invariante in jeder Iteration beibehalten, weil durch die Wahl von und und die Glätte von Lmin und Lmax durch Erhöhen von auf
Lmax
um höchstens das
fache erhöht wird Zunahme von Lmin .xjδxjxj+δ(Px)1+O(ε)(Cx)
Lernen (nach Experten / Boosten)
Eine Referenz zum Verständnis dieses Zusammenhangs ist das
adaptive Spielen mit multiplikativen Gewichten von Freund und Schapire. Hier ist eine kurze Zusammenfassung, um die technische Idee zu geben.
Betrachten Sie das folgende wiederholte Spiel. In jeder Runde : t
- Sie wählen eine Wahrscheinlichkeitsverteilung auf (die sogenannten Experten ). pt[n]n
- In Kenntnis von wählt der Gegner dann einen Auszahlungsvektor . ptat∈[0,1]n
- Sie erhalten Auszahlung für die Runde. pt⋅at
Das Spiel stoppt nach einigen Runden. Ihr Ziel ist es, Ihr Bedauern im Vergleich zu einem einzelnen Experten (dh einer reinen Strategie) so gering wie möglich zu halten .Das heißt, Ihr Ziel ist es, zu minimieren .i(maxi∑tati)−∑tpt⋅at
Fix jedes . Der Vektor bezeichne ,
mal die Vektorsumme der Auszahlungsvektoren bis zum Zeitpunkt . Denken Sie daran, dass der Gradient von Lmax .ε>0ytε∑s≤tasεtG(y)(y)
Hier ist die grundlegende Strategie, die wir analysieren werden:
Wählen Sie in Runde als .tptG(yt−1)
Nach Prüfung erhalten Sie eine Auszahlung von in Runde .at⋅G(yt−1)t
Wegen der von ist
Das heißt, in jeder Runde kann nicht mehr als das -fache Ihrer Auszahlung betragen. Da , wird die Invariante beibehalten, dass
höchstens Ihre Gesamtauszahlungszeit plus ist auf der anderen Seite, Ihr Bedauern im Vergleich zu den besten Experten.
ist , dhFLmax(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 ist wiederum höchstens .ε−1Lmax(yt)
Daher ist Ihr Bedauern höchstens plus multipliziert mit Ihrer Gesamtauszahlung.ε−1ln(n)O(ε)
Bemerkung: Ich denke, wie Freund und Schapire hervorheben, ist in dieser Analyse auch ein "Boosting" -Algorithmus (in der Lerntheorie) enthalten. Weitere Einzelheiten finden Sie in ihrem Artikel.
Minimierung der Gesamtauszahlung
Sie können eine ähnliche Strategie für die Einstellung ableiten, bei der das Ziel eher die Minimierung als die Maximierung der Gesamtauszahlung ist. Ihr Bedauern, das Sie immer noch minimieren möchten, ist . In diesem Fall besteht die entsprechende Strategie darin, als Gradienten von zu wählen . Mit dieser Strategie ist Ihr Bedauern wieder höchstens
plus mal Ihre Gesamtauszahlung.∑tpt⋅at−miniatiptLmin(yt)ε−1lnnO(ε)
Anbindung an Lagrange-Relaxationsalgorithmen
Korrigieren Sie eine Set-Cover-Instanz, um die Verbindung zu Lagrange-Relaxationsalgorithmen zu sehen. Betrachten Sie die letztere Art von Spiel (mit dem Ziel, die Auszahlung zu minimieren), bei der die Experten den Elementen Ihres festgelegten Systems entsprechen. Wählen Sie in jeder Runde die Wahrscheinlichkeitsverteilung
als den Gradienten von Lmin wie oben, und lassen Sie den Gegner den Auszahlungsvektor als eine Funktion von wie folgt wählen :
Wählen Sie die Menge maximiere , dann lasse wenn , und ansonsten .ept(yt)atptst∑e∈spteate=1e∈state=0
Unter der Voraussetzung, dass die Stoppbedingung korrekt ist (siehe unten), erhalten Sie bei diesem Vorgang genau den zu Beginn beschriebenen Set-Cover-Algorithmus.
Die Leistungsgarantie des Algorithmus ergibt sich aus dem Bedauern wie folgt. Lassen die Anzahl der Zeiten der Gegner wählte Satz während des Spiels. Sei die optimale Deckung für gebrochene Mengen. Seisei die Anzahl der gespielten Runden. Das gebundene Bedauern impliziert
Xssx∗T=|Xs|∑tat⋅pt≤ε−1ln(m)+mine∑tate.
Unter Verwendung der Definition von ist der te Gewinn (der te Term in der Summe auf der linken Seite) gleich . Der Gegner wählte diese Auszahlung zu minimieren. Wenn der Gegner stattdessen zufällig aus der Verteilung, die Erwartung der Auszahlung wäre gewesen
(Oben verwenden wir für alle und ) Da jede Auszahlung mindestens istattt∑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∗|bedeutet das gebundene Bedauern
Nach der Definition von haben wir (jede Runde wählt eine Menge) und , was ergibt
Wir stoppen den Prozess, wenn , also (Begriffe neu ordnen)
Das heißt, die Normalisierung von ergibt eine Teilmenge von höchstens mal optimal.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(ε))
Bemerkung: Diese lerntheoretische Interpretation verallgemeinert gewissermaßen die algorithmische Interpretation. Einige der für die Effizienz erforderlichen algorithmischen Techniken (wie ungleichmäßige Inkremente und das Fallenlassen erfüllter Bedeckungsbeschränkungen) scheinen sich jedoch nicht auf die Lerntheorie zu übertragen. Ebenso scheinen Algorithmen für
gemischte Pack- und Covering-LPs (z. B. diese ) keine natürlichen Analoga in der Lerntheorie zu haben.