Ejemplos de juguetes para solucionadores de Plotkin-Shmoys-Tardos y Arora-Kale


34

Me gustaría entender cómo el solucionador Arora-Kale SDP se aproxima a la relajación Goemans-Williamson en un tiempo casi lineal, cómo el solucionador Plotkin-Shmoys-Tardos aproxima los problemas de "empaquetamiento" y "cubrimiento" fraccionales en un tiempo casi lineal, y cómo los algoritmos son instancias del marco abstracto "aprender de los expertos".

La tesis de Kale tiene una excelente presentación, pero me resulta muy difícil saltar directamente al marco abstracto, y preferiría comenzar con un ejemplo de un problema simple por el cual es absolutamente obvio qué hacer, y luego pasar a problemas más generales , agregando progresivamente "características" al algoritmo y a su análisis.

Por ejemplo:

¿Cómo resuelve Plotkin-Shmoys la relajación de programación lineal de la cubierta de vértice no ponderada? ¿Cubierta de vértice ponderada? Establecer cubierta? Coincidencia bipartita?

¿Cuál es el ejemplo más simple en el que el algoritmo Arora-Kale está haciendo algo interesante? ¿Cómo calcula el mayor valor propio del laplaciano de un gráfico?

(Calcular el valor propio más grande del Laplaciano es equivalente al problema de resolver una versión más débil de la relajación Goemans-Williamson SDP de Max Cut, en la que, en lugar de requerir que cada vector sea de longitud uno, desea la suma de los cuadrados de las normas para ser | V |.)


2
Esa es una buena pregunta.
Suresh Venkat

44
Para comprender los algoritmos de estilo PST para problemas de empaquetamiento, es bueno mirar algoritmos para resolver aproximadamente el problema de flujo de múltiples productos, que es de donde evolucionó PST. El artículo de Neal Young describe la portada del set en detalle. Ihttp: //www.cs.ucr.edu/~neal/non_arxiv/SODA_1995_170.pdf. Pensé que la encuesta de Arora-Kale-Hazan también hace explícita la conexión entre el marco de expertos y los solucionadores de empaques / cubiertas.
Chandra Chekuri

1
@ChandraChekuri: Está bastante retrasado, pero me pregunto si deberías responder a esto.
Suresh Venkat

2
FWIW, para algunas notas que se expanden en el documento de SODA que mencionó @ChandraChekuri, consulte greedyalgs.info/blog/about .
Neal Young el

Enlace actualizado: algnotes.info/on/obliv
Neal Young

Respuestas:


26

Luca, ya que ha pasado un año, probablemente hayas investigado tu propia respuesta. Estoy respondiendo algunas de sus preguntas aquí solo para el registro. Reviso algunos algoritmos de relajación lagrangiana para los problemas que menciona, y bosquejo la conexión con el aprendizaje (en particular, siguiendo el consejo de expertos). No comento aquí sobre algoritmos SDP.

Tenga en cuenta que los algoritmos particulares que menciona no se ejecutan en un tiempo casi lineal. (Existe un algoritmo de tiempo casi lineal para problemas de empaque o cobertura dados explícitamente . Ver Beating Simplex para programas lineales de empaque fraccionado y cobertura ). Los algoritmos que tiene en mente generalmente tienen variantes que se ejecutan en un número casi lineal de iteraciones , pero cada una La iteración generalmente requiere al menos tiempo lineal también. Discuto algunos de estos algoritmos a continuación.

Algunas funciones útiles

Antes de comenzar, aquí hay algunas funciones que usaremos en los bocetos de prueba. (Si está interesado en los algoritmos, pero no en los detalles de la prueba, puede saltar adelante). Para cualquier vector yy , defina Lmax ( y )Lmax(y) como ln i exp ( y i )lniexp(yi) . Esta función es un límite superior en : Análogamente, defina como , un límite inferior en .max i y i maxiyimax i y iLmax ( y ) max i y i + ln m .     

maxiyi  Lmax(y)  maxiyi+lnm.
Lmin ( y ) Lmin(y)- Lmax ( - y ) Lmax(y)min i y iminiyi

Por conveniencia en lo que sigue, usamos para denotar el gradiente de Lmin. Usamos para denotar el gradiente de Lmax.g ( y ) g(y)Lmin ( y ) Lmin(y)G ( y ) G(y)Lmax ( y )Lmax(y)

Explícitamente, es mientras que es .g i ( y ) gi(y)exp ( - y i ) / i exp ( - y i ) exp(yi)/iexp(yi)G i ( y ) Gi(y)exp ( y i ) / i exp ( y i )exp(yi)/iexp(yi)

Lmin y Lmax son suaves en el siguiente sentido: para cualquier vector e , y d [ 0 , ε ] nd[0,ε]n y R n yRnLmin ( y + d ) Lmin ( y ) + ( 1 - O ( ε ) )    d g ( y )

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

Tenga en cuenta que ambos gradientes tienen una norma igual a 1: . (En todo momento usamos para denotar la norma 1).El | G ( y ) | = | g ( y ) | = 1 |G(y)|=|g(y)|=1| z ||z|

Tenga en cuenta también que, para una matriz , el gradiente de la función con respecto a es (por la regla de la cadena) . Más explícitamente, la derivada parcial de la función con respecto a es . Asimismo, la derivada parcial de Lmax con respecto a es .A Ax Lmin ( A x ) xLmin(Ax)x x( g ( A x ) ) T A (g(Ax))TAx j xji A i j exp ( - A i x ) / i exp ( - A i x ) iAijexp(Aix)/iexp(Aix)( A x ) (Ax)x j xji A i j exp ( A i exp ( i x ) /A i x )iAijexp(Aix)/iexp(Aix)

Tapa de conjunto fraccional

Arreglar una instancia de Set-Cover. Deje denotar la matriz de incidencia elemento / conjunto. Por lo tanto, si , si no 0, y es el grado en que la cobertura fraccional cubre el elemento .A AA e s = 1 Aes=1e s esA e x Aexxx ee

El LP es . Dado , el algoritmo esmin { | x | : A x 1 ; x 0 } min{|x|:Ax1;x0}ε ( 0 , 1 )ε(0,1)


  1. Inicialice todos . Deje . x s = 0 xs=0N = log ( n ) / εN=log(n)/ε
  2. Repita hasta : min e A e x NmineAexN

    2.1. Elija maximizando la derivada parcial de Lmin wrt . (Explícitamente, elija maximizing .) s s( A x ) (Ax)x sxs s e s exp ( - s e x s
    s )esexp(sexs)

    2.2. Aumente en . x sxs εε

  3. Devuelve .x / min e A e xx/mineAex


El algoritmo devuelve una solución aproximada en las iteraciones , donde es el número de elementos y es el óptimo cubierta de conjunto fraccional (trivialmente ). (Un algoritmo similar aparece en el documento que mencionó Chandra . Vertex Cover es, por supuesto, un caso especial).( 1 + O ( ε ) ) (1+O(ε))O ( | x | log ( n ) / ε 2 ) O(|x|log(n)/ε2)n nx x| x | n|x|n

( Observación: tenga en cuenta que el límite de iteración no depende de la cantidad de conjuntos, solo de la cantidad de elementos. Por lo tanto, el algoritmo se puede usar con un sistema de conjuntos definido implícitamente, siempre que, dados los pesos de los elementos, se pueda eficientemente encuentre un conjunto de peso total máximo (o casi máximo). Este tipo de oráculo es el mismo que el oráculo de separación requerido para aplicar el algoritmo elipsoide al problema dual . Para problemas de empaquetamiento como el empaquetado de conjuntos, necesita un oráculo que, los pesos dados en los elementos, devuelve un conjunto que minimiza el peso total. Para problemas tales como el flujo de múltiples productos, es posible que, por ejemplo, necesite encontrar una ruta que minimice la suma de algunos pesos de borde dados).

Aquí hay un boceto de la prueba de la garantía de rendimiento. En cada iteración, la derivada parcial wrt la elegida es al menos, donde es la cobertura óptima del conjunto fraccionario.s s1 / | x | 1/|x|Xx

(Para ver por qué, recuerde que el gradiente de Lmin con respecto a es . Si tuviéramos que elegir un conjunto al azar de la distribución , el valor esperado de la derivada parcial con respecto a sería . Dado que , esto es al menos . Dado que , esto es al menos . Por lo tanto, debe existir alguna dé una derivada parcial al menos . Dado que el algoritmo elige( A x ) (Ax)x x( g ( A x ) ) T A (g(Ax))TAs sx / | x | x/|x|x s xs ( g ( A x ) ) TA x / | x | (g(Ax))TAx/|x|A x 1 Ax1| g ( A x ) | / | x | |g(Ax)|/|x|El | g ( A x ) | = 1 |g(Ax)|=11 / | x | 1/|x|s s1 / | x | 1/|x|x sxs 1 / | x en cada iteración para maximizar la derivada parcial, logra una derivada parcial de al menos.) |1/|x|

Luego, el tamaño del paso se elige lo suficientemente pequeño como para que ninguna coordenada de aumente en más de . Por lo tanto, debido a la suavidad de Lmin, aumentar a aumenta al menos en .ε εA x Axε εx s xsx s + ε xs+εLmin ( A x ) Lmin(Ax)( 1 - O ( ε ) ) ε / | x |(1O(ε))ε/|x|

De esta forma, el algoritmo mantiene el invariante (Tenga en cuenta que Lmin es igual a .)Lmin ( A x ) ( 1 - O ( ε ) ) | x | / | x | - ln n .

Lmin(Ax)(1O(ε))|x|/|x|lnn.
( ¯ 0 ) (0¯¯¯)ln nlnn

Al finalizar, en el invariante, el término es multiplicado por el lado izquierdo, por lo que mediante el cálculo se obtiene. Después de la normalización en la última línea del algoritmo, esto implica.lnnlnnO(ε)O(ε)mineAex(1O(ε))|x|/|x|mineAex(1O(ε))|x|/|x||x|(1+O(ε))|x||x|(1+O(ε))|x|

FWIW, las desigualdades involucradas en probar la invariante son esencialmente las mismas que las involucradas en probar el límite de Chernoff. (De hecho, este algoritmo puede derivarse aplicando el método de probabilidades condicionales a un esquema de redondeo aleatorio que muestrea repetidamente conjuntos de la distribución (con reemplazo), aumentando para cada conjunto muestreado Esta desrandomización de eso da el algoritmo: la invariante subyacente es solo que el estimador pesimista se mantiene por debajo de 1. Las penalizaciones exponenciales en el estimador pesimista provienen del uso del límite de Chernoff en el análisis del esquema de redondeo. Esta idea básica se explica más adelante. en el periódico que mencionó Chandra ).x/|x|x/|x|xsxsss

Cubierta de conjunto ponderada fraccional (y cubierta fraccional general)

Para manejar problemas como la cobertura de conjunto ponderado de manera eficiente , modificamos el algoritmo para usar incrementos no uniformes (una idea debido a Garg y Konemann ).

El LP es , donde extiende sobre los elementos, extiende sobre los conjuntos y todas las variables son no -negativo. Para presentar el algoritmo, primero reescriba el problema como un problema de cobertura general. Deje para y de otro modo. Entonces (con un cambio de variables, escalando cada por ), el LP es , que podemos ver como un LP de cobertura general. Aquí está el algoritmo:min{cx:(e)sexs1}min{cx:(e)sexs1}eessAes=1/csAes=1/csesesAes=0Aes=0xsxscscsmin{|x|:Ax1;x0}min{|x|:Ax1;x0}


  1. Inicialice todos . Deje .xs=0xs=0N=log(n)/εN=log(n)/ε

  2. Repita hasta que se hayan eliminado todas las restricciones de cobertura:

    2.1. Elija maximizando la derivada parcial de Lmin wrt . (Explícitamente, elija maximizing .)ss(Ax)(Ax)xsxs
    ssesexp(sexs)/csesexp(sexs)/cs

    2.2. Aumente en , donde se elige al máximo de tal manera que, por cada restricción de cobertura restante , el aumento en sea ​​como máximo .xsxsδδδδeeAexAexεε

    2.3 Eliminar todas las restricciones que cubren tal que .e eA ex NAexN

  3. Devuelve .x/mineAexx/mineAex


El algoritmo devuelve una solución aproximada iteraciones , donde es el número de restricciones de cobertura. (Cada iteración aumenta algunos restantes en ; esto puede suceder solo veces a una restricción antes de que se elimine). La prueba de corrección es esencialmente la misma invariante que para Set Cover.(1+O(ε))(1+O(ε))O(nlog(n)/ε2)O(nlog(n)/ε2)nnAexAexεεN/εN/ε

La cubierta Vertex ponderada es un caso especial.

Coincidencia bipartita fraccional máxima

Dado un gráfico , el LP natural para el problema es .G=(U,W,E)G=(U,W,E)max{|x|:v.evxe1}max{|x|:v.evxe1}

En la representación matricial, este es un empaque LP con coeficientes 0-1 ( si ). Dichos problemas no requieren incrementos no uniformes, por lo que un algoritmo simple análogo al algoritmo Set Cover no ponderado (pero para empacar) hará:max{|x|:Ax1;x0}max{|x|:Ax1;x0}Ave=1Ave=1veve


  1. Inicialice todo . Deje .xe=0xe=0N=log(n)/εN=log(n)/ε
  2. Mientras :Ax<NAx<N

    2.1. Elija minimizando la derivada parcial de Lmax wrt . (Explícitamente, elija para minimizar .)ee(Ax)(Ax)xexe
    eeveexp(evxe)veexp(evxe)

    2.2. Aumente en . xexeεε

  3. Devuelve .x/maxvAvxx/maxvAvx


El algoritmo devuelve una solución aproximada iteraciones . (Esto se debe a que cada iteración aumenta en y, finalmente, antes de la normalización, .)(1O(ε))(1O(ε))O(nlog(n)/ε2)O(nlog(n)/ε2)|x||x|εε|x|=O(Nn)|x|=O(Nn)

Solo por diversión, aquí hay un algoritmo alternativo curioso para Perfect Bipartite Matching. Recuerde que . Sea.G=(U,W,E)G=(U,W,E)n=|U|=|W|n=|U|=|W|


  1. Inicialice todo . Deje . xe=0xe=0N=4ln(n)/εN=4ln(n)/ε
  2. Repita veces:nNnN

    2.1. Elija uniformemente al azar de . 2.2. Elija tal que minimizando . 2.3. Aumente en . uuUU
    ww(u,w)E(u,w)Eewxeewxe
    xuwxuwεε

  3. Volver .x/Nx/N


Si tiene una coincidencia perfecta, el algoritmo devuelve una tal que , y, con alta probabilidad, para todos los vértices , , y para todos los vértices , . Si está interesado en los detalles de la prueba, pregunte ...GGxx|x|=n|x|=nuUuU1O(ε)euxe1+O(ε)1O(ε)euxe1+O(ε)wWwWewxe1+O(ε)ewxe1+O(ε)

Embalaje y revestimiento mixto

Es posible que haya preguntado sobre la coincidencia bipartita esperando un ejemplo de un problema de empaquetamiento y cobertura mixtos , es decir, uno de la forma Aquí hay un algoritmo para tales problemas. Primero, normalice de modo que y .x? Pxp;Cxc;x0.

x? Pxp;Cxc;x0.
p=¯1p=1¯¯¯c=¯1c=1¯¯¯

Sea el número de restricciones (filas en más filas en ).mmPPCC


  1. Inicialice todos . Deje .xj=0xj=0N=2ln(m)/εN=2ln(m)/ε
  2. Mientras :Px<NPx<N

    2.1. Elija para que la derivada parcial de Lmax con respecto a sea ​​como máximo la derivada parcial de Lmin con respecto a . (Explícitamente, elija tal quejj(Px)(Px)xjxj(Cx)(Cx)xjxjjjiPijexp(Pix)iexp(Pix)iCijexp(Cix)iexp(Cix).)

    iPijexp(Pix)iexp(Pix)iCijexp(Cix)iexp(Cix).)

    2.2. Aumente en , donde se elige al máximo de tal manera que ninguna restricción o la restricción restante aumente en más de .xjxjδδδδPixPixCixCixεε

    2.3. Eliminar todas las restricciones que cubren tal que .iiCixNCixN

  3. Devuelve .x/maxiPixx/maxiPix


Suponiendo que el problema dado es factible, el algoritmo devuelve una tal que y . El número de iteraciones es , porque cada iteración aumenta alguna restricción de , y esto puede suceder para cada restricción en la mayoría de las veces.xxPx1Px1Cx1O(ε)Cx1O(ε)O(mln(m)/ε2)O(mln(m)/ε2)εεNN

La prueba de corrección es a través de la invariante La invariante implica Al finalizar, el lado izquierdo es , lo que demuestra la garantía de rendimiento.Lmax(Px)2ln(m)+(1+O(ε))Lmin(Cx).

maxPx2ln(m)+(1+O(ε))minCx.
Ω(log(m)/ε)

En el Paso 2.1, el deseado debe existir siempre que el problema original sea factible. (Esto se debe a que, para cualquier factible , y cualquier , si tuviéramos que elegir una aleatoria de la distribución , el valor esperado de la derivada parcial de Lmax con respecto a sería a lo sumo (vea el boceto de prueba anterior para Set Cover). Asimismo, el valor esperado de la derivada parcial de Lmin con respecto a sería al menos . Por lo tanto, hay unaj xxjx/|x|(Px)xj1/|x|(Cx)xj1/|x|jtal que la derivada parcial de Lmax con respecto a es como máximo la derivada parcial de Lmin .)(Px)xj(Cx)

Luego, la invariante se mantiene en cada iteración porque, mediante la elección de y , y la suavidad de Lmin y Lmax, al aumentar a aumenta Lmax como máximo veces el aumento en Lmin .xjδxjxj+δ(Px)1+O(ε)(Cx)

Aprendizaje (seguimiento de expertos / impulso)

Una referencia para comprender esta conexión es el juego adaptativo que usa pesos multiplicativos , de Freund y Schapire. Aquí hay un resumen rápido para dar la idea técnica.

Considere el siguiente juego repetido. En cada ronda : t

  1. Eliges una distribución de probabilidad en (los llamados expertos ). pt[n]n
  2. Conociendo , el adversario elige un vector de pago . ptat[0,1]n
  3. Usted recibe el pago por la ronda. ptat

El juego se detiene después de algunas rondas. Su objetivo es minimizar su arrepentimiento en comparación con cualquier experto individual (es decir, estrategia pura) . Es decir, su objetivo es minimizar .i(maxitati)tptat

Arregle cualquier . Deje que el vector denote , es decir, multiplicado por la suma del vector de los vectores de pago hasta el tiempo . Recuerde que es el gradiente de Lmax .ε>0ytεstasεtG(y)(y)

Aquí está la estrategia básica que analizaremos: en la ronda , elija para que sea .tptG(yt1)

Por inspección, esto le da recompensa en la ronda .atG(yt1)t

Debido a la propiedad de suavidad de , Es decir, en cada ronda, no puede aumentar más de veces su pago. Dado que , esto mantiene la invariante de que es como máximo sus tiempos de pago totales , más . Por otro lado, su arrepentimiento en comparación con el mejor experto es , es decir,FLmax(yt)Lmax(yt1)+(1+O(ε))εatG(yt1).

Lmax(yt)ε(1+O(ε))Lmax(¯0)=lnnLmax(yt)ε(1+O(ε)ln(n)imaxitatiε1maxiyti, que a su vez es como máximo .ε1Lmax(yt)

Por lo tanto, su arrepentimiento es como máximo , más multiplicado por su pago total.ε1ln(n)O(ε)

Observación: Creo que, como señalan Freund y Schapire, un algoritmo de "impulso" (en teoría del aprendizaje) también está implícito en este análisis. Vea su artículo para más detalles.

Minimizando el pago total

Puede derivar una estrategia similar para la configuración en la que el objetivo es minimizar , en lugar de maximizar, la recompensa total. Su arrepentimiento, que aún desea minimizar, es . En ese caso, la estrategia correspondiente es elegir para que sea el gradiente de . Con esta estrategia, su arrepentimiento es nuevamente como máximo más multiplicado por su pago total.tptatminiatiptLmin(yt)ε1lnnO(ε)

Conexión a algoritmos de relajación lagrangiana

Para ver la conexión con los algoritmos de relajación lagrangiana, arregle una instancia de Set-Cover. Considere el último tipo de juego (con el objetivo de minimizar la recompensa), donde los expertos corresponden a los elementos de su sistema establecido. En cada ronda, elija la distribución de probabilidad para que sea el gradiente de Lmin como se indicó anteriormente, y haga que el adversario elija el vector de pago en función de siguiente manera: elija el conjunto maximizando , luego deje si , y caso contrario.ept(yt)atptstespteate=1estate=0

Dada la condición de detención correcta (discutida a continuación), este proceso le proporciona exactamente el algoritmo Set-Cover discutido al inicio.

La garantía de rendimiento del algoritmo se deriva del arrepentimiento vinculado de la siguiente manera. Deje que sea ​​la cantidad de veces que el adversario eligió el set durante la jugada. Deje ser la cubierta óptima del conjunto fraccional. Dejeser el número de rondas jugadas. El límite de arrepentimiento implica XssxT=|Xs|tatptε1ln(m)+minetate.

Usando la definición de , el pago th (el término en la suma de la izquierda) es igual a . El adversario eligió para minimizar esta recompensa. Si el adversario hubiera elegido al azar de la distribución, la expectativa de la recompensa habría sido (Arriba usamos ese para todo , y ) Dado que cada pago es al menosatttestpteststx/|x|sxs|x|espte = 1|x|eptesexs  1|x|epte = 1|x|.

sexs1e|pt|=11/|x|, el límite de arrepentimiento implica Por la definición de , tenemos (cada ronda elige un conjunto) y , dando Hacemos que el proceso se detenga cuando , entonces (reorganizando los términos) Es decir, la normalización de da una cobertura de tamaño fraccional como máximo tiempos óptimosT|x|ε1ln(m)+minetate.
X|X|=Ttate=e[est]=seXs|X||x|ε1ln(m)+mineseXs.
mineseXs=Ω(ε2lnm)|X|mineseXs  (1+O(ε)|x|.
X(1+O(ε))

Observación: En cierto sentido, esta interpretación de la teoría del aprendizaje generaliza la interpretación algorítmica. Sin embargo, algunas de las técnicas algorítmicas necesarias para la eficiencia (como los incrementos no uniformes y la eliminación de restricciones de cobertura satisfechas) no parecen trasladarse al entorno de la teoría del aprendizaje de forma natural. Del mismo modo, los algoritmos para empaquetado y cobertura de LPs mixtos (por ejemplo, estos ) no parecen tener análogos naturales en el contexto de la teoría del aprendizaje.


8
Esa es toda la respuesta!
Suresh Venkat

1
Gracias. Probablemente lo exageró. Estoy interesado en comentarios: cómo presentar estas ideas de manera accesible, qué más incluir ...
Neal Young
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.