En ciencias de la computación e investigación operativa , el redondeo aleatorio [ 1 ] es un enfoque ampliamente utilizado para diseñar y analizar algoritmos de aproximación . [ 2 ] [ 3 ]
Muchos problemas de optimización combinatoria son computacionalmente intratables para resolverlos de forma exacta (óptima). Para estos problemas, se puede utilizar el redondeo aleatorio para diseñar algoritmos de aproximación rápidos ( de tiempo polinomial ) , es decir, algoritmos que garantizan una solución aproximadamente óptima para cualquier entrada.
La idea básica del redondeo aleatorio es convertir una solución óptima de una relajación del problema en una solución aproximadamente óptima del problema original. El algoritmo resultante se suele analizar mediante el método probabilístico .
Descripción general
El método básico consta de tres pasos:
- Formule el problema a resolver como un programa lineal entero (PLI).
- Calcular una solución fraccionaria óptimaa la relajación de programación lineal (PL) del PLI.
- Redondea la solución fraccionariadel LP a una solución enteradel ILP.
(Aunque este método se aplica con mayor frecuencia a programas lineales, a veces se utilizan otros tipos de relajaciones. Por ejemplo, véase el algoritmo de aproximación de corte máximo de Goemans y Williamson , que se basa en un programa semidefinido que puede derivarse del primer nivel de la jerarquía de suma de cuadrados ).
En primer lugar, el reto consiste en elegir un programa lineal entero adecuado. Es necesario tener conocimientos de programación lineal, en particular de modelado mediante programas lineales y programas lineales enteros. Para muchos problemas, existe un programa lineal entero natural que funciona bien, como en el ejemplo de cobertura de conjuntos que se muestra a continuación. (El programa lineal entero debe tener una pequeña brecha de integralidad ; de hecho, el redondeo aleatorio se utiliza a menudo para demostrar límites en las brechas de integralidad).
En el segundo paso, la solución fraccionaria óptima se puede calcular normalmente en tiempo polinomial utilizando cualquier algoritmo de programación lineal estándar .
En el tercer paso, la solución fraccionaria debe convertirse en una solución entera (y, por lo tanto, en una solución al problema original). Esto se denomina redondeo de la solución fraccionaria. La solución entera resultante debería tener un costo (demostrable) no mucho mayor que el de la solución fraccionaria. Esto garantizará que el costo de la solución entera no sea mucho mayor que el de la solución entera óptima.
La técnica principal empleada para el tercer paso (redondeo) consiste en utilizar la aleatorización y, posteriormente, argumentos probabilísticos para acotar el incremento de coste derivado del redondeo (siguiendo el método probabilístico de la combinatoria). En este método, se emplean argumentos probabilísticos para demostrar la existencia de estructuras discretas con las propiedades deseadas. En este contexto, dichos argumentos se utilizan para demostrar lo siguiente:
- Dada cualquier solución fraccionariadel LP, con probabilidad positiva el proceso de redondeo aleatorio produce una solución enteraque se aproximasegún algún criterio deseado.
Finalmente, para que el tercer paso sea computacionalmente eficiente, se demuestra queaproximacionescon alta probabilidad (de modo que el paso pueda permanecer aleatorio) o se elimina la aleatoriedad del paso de redondeo, generalmente mediante el método de probabilidades condicionales . Este último método convierte el proceso de redondeo aleatorio en un proceso determinista eficiente que garantiza un buen resultado.
Ejemplo: el problema de la cobertura de conjuntos
El siguiente ejemplo ilustra cómo se puede utilizar el redondeo aleatorio para diseñar un algoritmo de aproximación para el problema de cobertura de conjuntos . Fije cualquier instanciade cubrir un universo.
Calculando la solución fraccionaria
Para el paso 1 , sea IP el programa lineal entero estándar para la cobertura de conjuntos para esta instancia.
Para el paso 2 , sea LP la relajación de programación lineal de IP, y calcule una solución óptima.a LP utilizando cualquier algoritmo estándar de programación lineal . Esto toma un tiempo polinomial en el tamaño de la entrada. Las soluciones factibles a LP son los vectoresque asignan cada conjuntoun peso no negativo, de tal manera que, para cada elemento,cubiertas—el peso total asignado a los conjuntos que contienenes al menos 1, es decir,
La solución óptimaes una solución factible cuyo costo
es lo más pequeño posible. Tenga en cuenta que cualquier conjunto cubreparaproporciona una solución factible(dóndepara,de lo contrario). El costo de estoiguala el costo de, eso es,
En otras palabras, el programa lineal LP es una relajación del problema de cobertura de conjuntos dado.
Desdetiene el costo mínimo entre las soluciones factibles para el LP, el costo dees un límite inferior del coste de la cobertura de conjunto óptima .
Paso de redondeo aleatorio
En el paso 3 , debemos convertir la cobertura de conjunto fraccionaria de costo mínimo.en una solución entera factible(correspondiente a una verdadera cobertura de conjunto). El paso de redondeo debería producir unque, con probabilidad positiva, ha costado dentro de un pequeño factor del costo de.Entonces (ya que el costo dees un límite inferior en el costo de la cobertura del conjunto óptimo), el costo deestará dentro de un pequeño factor del costo óptimo.
Como punto de partida, considere el esquema de redondeo más natural:
- Para cada conjuntoa su vez, tomecon probabilidad, de lo contrario, tome.
Con este esquema de redondeo, el costo esperado de los conjuntos elegidos es como máximo, el costo de la cobertura fraccionaria. Esto es bueno. Desafortunadamente, la cobertura no es buena. Cuando las variablesson pequeños, la probabilidad de que un elementono está cubierto es sobre
Por lo tanto, solo una fracción constante de los elementos estará cubierta en términos esperados.
Para hacerPara cubrir cada elemento con alta probabilidad, el esquema de redondeo estándar primero aumenta las probabilidades de redondeo por un factor apropiado.Aquí está el esquema de redondeo estándar:
- Fijar un parámetro. Para cada conjuntoSucesivamente,
- llevarcon probabilidad, de lo contrario, tome.
Aumentar las probabilidades medianteaumenta el costo esperado enpero hace probable la cobertura de todos los elementos. La idea es elegirlo más pequeño posible para que todos los elementos estén cubiertos con probabilidad distinta de cero. Aquí hay un análisis detallado.
Lema (garantía de aproximación para el esquema de redondeo)
- ArreglarCon probabilidad positiva, el esquema de redondeo devuelve una cobertura de conjunto.de costo como máximo(y por lo tanto de costo)veces el coste de la cobertura óptima del conjunto).
(Nota: con cuidado el puede reducirse a.)
Prueba
La salidaEl esquema de redondeo aleatorio tiene las propiedades deseadas siempre que no ocurra ninguno de los siguientes eventos "malos":
- el costodesupera, o
- para algún elemento,no logra cubrir.
La expectativa de cada es como máximo. Por linealidad de la esperanza , la esperanza de es como máximoPor lo tanto, según la desigualdad de Markov , la probabilidad del primer evento malo mencionado anteriormente es como máximo.
Para los eventos malos restantes (uno por cada elemento)), tenga en cuenta que, dado quepara cualquier elemento dado, la probabilidad de queno está cubierto es
(Esto utiliza la desigualdad, que es estricto para.)
Así, para cada uno de loselementos, la probabilidad de que el elemento no esté cubierto es menor que.
Por el límite de unión , la probabilidad de que uno de losLos eventos malos ocurren con menos frecuencia que. Por lo tanto, con probabilidad positiva no hay eventos malos yes una cobertura fija de costo como máximoQED
Desaleatorización mediante el método de probabilidades condicionales
El lema anterior muestra la existencia de una cobertura de conjunto de costo). En este contexto, nuestro objetivo es un algoritmo de aproximación eficiente, no solo una prueba de existencia, por lo que aún no hemos terminado.
Un enfoque sería aumentar Un poco, y luego demostrar que la probabilidad de éxito es al menos, digamos, 1/4. Con esta modificación, repetir el paso de redondeo aleatorio unas cuantas veces es suficiente para garantizar un resultado exitoso con alta probabilidad.
Ese enfoque debilita la razón de aproximación. A continuación, describimos un enfoque diferente que produce un algoritmo determinista que garantiza que coincida con la razón de aproximación de la prueba de existencia anterior. Este enfoque se denomina método de probabilidades condicionales .
El algoritmo determinista emula el esquema de redondeo aleatorio: considera cada conjuntoa su vez, y elige. Pero en lugar de hacer cada elección al azar en función de, toma la decisión de forma determinista , de manera que la probabilidad condicional de fallo, dadas las decisiones tomadas hasta ahora, se mantenga por debajo de 1 .
Limitar la probabilidad condicional de fallo
Queremos poder configurar cada variable.a su vez, para mantener la probabilidad condicional de fallo por debajo de 1. Para ello, necesitamos una buena cota para la probabilidad condicional de fallo. La cota se obtendrá refinando la prueba de existencia original. Dicha prueba acota implícitamente la probabilidad de fallo mediante la esperanza de la variable aleatoria.
- ,
dónde
es el conjunto de elementos que quedan sin descubrir al final.
La variable aleatoriaPuede parecer un poco misterioso, pero refleja la prueba probabilística de forma sistemática. El primer término enProviene de aplicar la desigualdad de Markov para acotar la probabilidad del primer evento malo (el costo es demasiado alto). Contribuye al menos 1 asi el costo dees demasiado alto. El segundo término cuenta el número de eventos malos del segundo tipo (elementos no cubiertos). Contribuye al menos con 1 asideja cualquier elemento sin cubrir. Por lo tanto, en cualquier resultado dondees menor que 1, debe cubrir todos los elementos y tener un costo que cumpla con el límite deseado del lema. En resumen, si el paso de redondeo falla, entoncesEsto implica (por la desigualdad de Markov ) que es una cota superior de la probabilidad de fallo. Nótese que el argumento anterior ya está implícito en la demostración del lema, que también muestra mediante cálculo que.
Para aplicar el método de probabilidades condicionales, necesitamos extender el argumento para acotar la probabilidad condicional de fallo a medida que avanza el redondeo. Por lo general, esto se puede hacer de forma sistemática, aunque puede resultar técnicamente laborioso.
Entonces, ¿qué ocurre con la probabilidad condicional de fallo a medida que el paso de redondeo itera a través de los conjuntos? Dado queen cualquier resultado donde el paso de redondeo falla, por la desigualdad de Markov , la probabilidad condicional de falla es como máximo la esperanza condicional de.
A continuación calculamos la esperanza condicional de, de forma similar a como calculamos la esperanza no condicionada deen la demostración original. Considere el estado del proceso de redondeo al final de alguna iteración.. Dejardenotamos los conjuntos considerados hasta ahora (el primeroconjuntos en). Dejardenotemos el vector (parcialmente asignado) (entoncesse determina solo si). Para cada conjunto, dejar denotemos la probabilidad con la quese establecerá en 1. Dejecontienen los elementos aún no cubiertos. Entonces la expectativa condicional de, dadas las decisiones tomadas hasta ahora, es decir, dadas, es
Tenga en cuenta quese determina solo después de la iteración.
Mantener la probabilidad condicional de falla por debajo de 1
Para mantener la probabilidad condicional de falla por debajo de 1, basta con mantener la esperanza condicional depor debajo de 1. Para ello, basta con mantener la expectativa condicional dedesde el aumento. Esto es lo que hará el algoritmo. Estableceráen cada iteración para asegurar que
(dónde).
En elEn la iteración , ¿cómo puede el algoritmo establecer para asegurar que¿Resulta que simplemente puede configurarlo? para minimizar el valor resultante de.
Para ver por qué, concéntrese en el momento en que la iteracióncomienza. En ese momento,está determinado, peroaún no está determinado --- puede tomar dos valores posibles dependiendo de cómo está configurado en iteración. Dejardenota el valor de. Dejary, denotan los dos posibles valores de , dependiendo de sise establece en 0 o 1, respectivamente. Por la definición de esperanza condicional,
Dado que el promedio ponderado de dos cantidades es siempre al menos el mínimo de esas dos cantidades, se deduce que
Por lo tanto, estableciendo para minimizar el valor resultante de garantizará que Esto es lo que hará el algoritmo.
En detalle, ¿qué significa esto? Considerado como una función de (con todas las demás cantidades fijas) es una función lineal dey el coeficiente deen esa función es
Por lo tanto, el algoritmo debería establecera 0 si esta expresión es positiva, y 1 en caso contrario. Esto da como resultado el siguiente algoritmo.
Algoritmo de redondeo aleatorio para la cobertura de conjuntos
entrada: establecer sistemauniverso, vector de costos
Salida: establecer cubierta(una solución al programa lineal entero estándar para la cobertura de conjuntos)
- Calcular una cobertura de conjunto fraccionaria de costo mínimo(una solución óptima para la relajación LP).
- Dejar. Dejarpara cada.
- Para cadahacer:
- Dejar. (contiene los conjuntos aún no decididos.)
- Si
- luego establecer,
- de lo contrario establecery.
- (Contiene los elementos aún no cubiertos.)
- Devolver.
lema (garantía de aproximación para el algoritmo)
- El algoritmo anterior devuelve una cobertura de conjunto.de costo como máximoveces el costo mínimo de cualquier cobertura de conjunto (fraccional).
prueba
El algoritmo garantiza que la expectativa condicional de, , no aumenta en cada iteración. Dado que esta expectativa condicional es inicialmente menor que 1 (como se mostró anteriormente), el algoritmo garantiza que la expectativa condicional se mantenga por debajo de 1. Dado que la probabilidad condicional de falla es como máximo la expectativa condicional deDe esta forma, el algoritmo garantiza que la probabilidad condicional de fallo se mantenga por debajo de 1. Así, al final, cuando se determinan todas las opciones, el algoritmo alcanza un resultado satisfactorio. Es decir, el algoritmo anterior devuelve una cobertura de conjunto. de costo como máximoveces el costo mínimo de cualquier cobertura de conjunto (fraccional).
Observaciones
En el ejemplo anterior, el algoritmo se guió por la esperanza condicional de una variable aleatoria.En algunos casos, en lugar de una expectativa condicional exacta, se utiliza un límite superior (o a veces un límite inferior) de alguna expectativa condicional. Esto se denomina estimador pesimista .
Comparación con otras aplicaciones del método probabilístico
El paso de redondeo aleatorio difiere de la mayoría de las aplicaciones del método probabilístico en dos aspectos:
- La complejidad computacional del paso de redondeo es importante. Debe poder implementarse mediante un algoritmo rápido (por ejemplo, de tiempo polinomial ) .
- La distribución de probabilidad subyacente al experimento aleatorio es una función de la solución.de una relajación de la instancia del problema. Este hecho es crucial para probar la garantía de rendimiento del algoritmo de aproximación, es decir, que para cualquier instancia del problema, el algoritmo devuelve una solución que se aproxima a la solución óptima para esa instancia específica . En comparación, las aplicaciones del método probabilístico en combinatoria suelen mostrar la existencia de estructuras cuyas características dependen de otros parámetros de la entrada. Por ejemplo, considérese el teorema de Turán , que puede enunciarse como "cualquier grafo convértices de grado promediodebe tener un conjunto independiente de tamaño al menos(Véase esto para una demostración probabilística del teorema de Turán ). Si bien existen grafos para los cuales esta cota es ajustada, también existen grafos que tienen conjuntos independientes mucho mayores quePor lo tanto, el tamaño del conjunto independiente que, según el teorema de Turán, existe en un grafo, puede ser, en general, mucho menor que el conjunto independiente máximo para ese grafo.
Véase también
- Método de probabilidades condicionales
- Redondeo aleatorio sin resolver el programa lineal. [ 4 ] [ 5 ]
Referencias
- ↑ Raghavan, Prabhakar ; Tompson, Clark D. (1987), "Randomized rounding: A technique for provably good algorithms and algorithmic proofs" , Combinatorica , 7 (4): 365–374 , doi : 10.1007/BF02579324 , S2CID 5749936 .
- ↑ Motwani, Rajeev ; Raghavan, Prabhakar (25 de agosto de 1995). Algoritmos aleatorios . Cambridge University Press . ISBN 978-0-521-47465-8.
- ^ Vazirani, Vijay (5 de diciembre de 2002). Algoritmos de aproximación . Springer Verlag . ISBN 978-3-540-65367-7.
- ↑ Young, Neal E. (2002). "Redondeo aleatorio sin resolver el programa lineal". arXiv : cs/0205036 .
- ↑ Young, Neal. "Redondeo aleatorio inconsciente" . AlgNotes . Consultado el 14 de septiembre de 2023 .
- Raghavan, Prabhakar (1988), "Construcción probabilística de algoritmos deterministas: aproximación de programas enteros de empaquetamiento", Journal of Computer and System Sciences , 37 (2): 130– 143, doi : 10.1016/0022-0000(88)90003-7.
Lecturas adicionales
- Althöfer, Ingo (1994), "Sobre aproximaciones dispersas a estrategias aleatorias y combinaciones convexas", Álgebra lineal y sus aplicaciones , 199 : 339–355 , doi : 10.1016/0024-3795(94)90357-3 , MR 1274423
- Hofmeister, Thomas; Lefmann, Hanno (1996), "Cálculo determinista de aproximaciones dispersas", Álgebra lineal y sus aplicaciones , 240 : 9–19 , doi : 10.1016/0024-3795(94)00175-8 , MR 1387283
- Lipton, Richard J.; Young, Neal E. (1994), "Estrategias simples para juegos de suma cero de gran tamaño con aplicaciones a la teoría de la complejidad", STOC '94: Actas del vigésimo sexto simposio anual de la ACM sobre teoría de la computación , Nueva York, NY: ACM , pp. 734–740 , arXiv : cs.cc/0205035 , doi : 10.1145/195058.195447 , ISBN 978-0-89791-663-9, S2CID 7524887
- Algoritmos
- argumentos probabilísticos