¿La programación dinámica nunca es más débil que Greedy?


15

En la complejidad del circuito, tenemos separaciones entre potencias de varios modelos de circuito.

En la complejidad de la prueba, tenemos separaciones entre los poderes de varios sistemas de prueba.

Pero en lo algorítmico, todavía tenemos pocas separaciones entre los poderes de los paradigmas algorítmicos .

Mis preguntas a continuación apuntan a tocar este último problema para dos paradigmas: codicioso y programación dinámica.

Tenemos un conjunto básico de elementos, y algunas familias de sus subconjuntos declarados como soluciones viables. Asumimos que esta familia está cerrada a la baja: los subconjuntos de solución factible son factibles. Dada una asignación de pesos no negativos a los elementos básicos, el problema es calcular el peso total máximo de una solución factible.

El algoritmo codicioso comienza con una solución parcial vacía, y en cada paso, agrega un elemento aún no tratado de mayor peso si es posible, es decir, si la solución extendida aún es factible. El conocido teorema de Rado-Edmonds establece que este algoritmo encontrará una solución óptima para todas las ponderaciones de entrada si la familia de soluciones factibles es un matroide.

En términos generales, un algoritmo DP es simple , si solo usa operaciones Max y Sum (o Min y Sum). Para ser más específico (como lo sugirió Joshua), mediante un algoritmo DP simple me referiré a un circuito (max, +) con puertas Fanin-2 Max y Sum. Las entradas son variables, la yo -ésima de las cuales corresponde al peso dado al yo -ésimo elemento. Tal circuito puede resolver cualquier problema simplemente calculando el peso total máximo de una solución factible. Pero esto puede ser una exageración enorme, si tenemos exponencialmente muchas de esas soluciones (como es casi siempre el caso).

Pregunta 1: ¿Hay matroides, en los cuales cualquier algoritmo DP simple necesitará un número súper polinómico de operaciones para resolver el problema de maximización correspondiente?

COMENTARIO (añadido 24/12/2015): Esta pregunta ya está contestada (véase más adelante): no son tales matroides, incluso en la abrumadora mayoría.

La siguiente pregunta pide separar DP codicioso y simple para problemas de aproximación . En el problema de coincidencia de peso máximo , la familia de soluciones factibles consiste en todas las coincidencias en el gráfico bipartito norte×norte completo. Para una asignación dada de pesos a sus bordes, el objetivo es calcular el peso máximo de una coincidencia (esta siempre será una coincidencia perfecta, ya que el peso no es negativo).

El algoritmo codicioso simple puede aproximarse a este problema dentro del factor 2: simplemente tome siempre un borde disuelto de peso máximo aún no visto. El peso obtenido será al menos la mitad del peso óptimo.

Pregunta 2: ¿Puede un simple algoritmo DP aproximar el problema de coincidencia de peso máximo dentro del factor 2 usando solo polinomialmente muchas operaciones Max y Sum?

Por supuesto, un algoritmo trivial DP, que genera veces el peso máximo de un borde, aproxima este problema dentro del factor n . Pero queremos un factor mucho más pequeño. Supongo que incluso un factor n / log n no se puede lograr, pero, nuevamente: ¿cómo probar esto? nortenortenorte/ /Iniciar sesiónnorte

RELACIONADO: Un primo de la coincidencia de peso máximo es el problema de asignación : encuentre el peso mínimo de una coincidencia perfecta. Este problema se puede resolver (incluso exactamente) mediante programación lineal (el llamado algoritmo húngaro) utilizando solo operaciones . Pero el límite inferior de Razborov en el tamaño de los circuitos booleanos monótonos que calculan la función permanente implica (no del todo directamente) que cualquier circuito (min, +) que se aproxime a este problema dentro de cualquier factor finito (!) Debe usar n Ω ( log n ) operaciones . Por lo tanto, para minimizarO(norte3)norteΩ(Iniciar sesiónnorte)problemas, los algoritmos DP simples pueden ser mucho más débiles que la programación lineal. Mis preguntas anteriores apuntan a mostrar que tales algoritmos DP pueden ser incluso más débiles que Greedy.

¿Alguien ha visto preguntas similares siendo consideradas por alguien?


AGREGADO (el 24.12.2015): la pregunta 2 tiene como objetivo mostrar que un problema particular de maximización (el problema de coincidencia de peso máximo), que puede ser aproximado por el algoritmo codicioso con factor , no puede ser aproximado por un tamaño de polietileno simple DP con el mismo factor r . Mientras tanto, obtuve una separación más débil entre DP codicioso y simple: por cada r = o ( n / log n ) , hay un problema explícito de maximización que puede ser aproximado por el algoritmo codicioso con factor r , pero no DP simple de tamaño polivinílico algoritmo puede aproximar este problema con un más pequeñor=2rr=o(norte/ /Iniciar sesiónnorte)rfactor (ver aquí un boceto). Aún así, la pregunta 2 en sí misma (no necesariamente para este problema particular de peso máximo) sigue siendo real: sería interesante apuntar al mismo factor por ambos algoritmos.<r/ /3


2
¿Quiere definir "algoritmo DP simple" como "cualquier (+ max), circuito con puertas de fan-in 2"?
Joshua Grochow

@Joshua: sí. Digamos que Bellman-Ford para la ruta st más corta tiene una variable de entrada para cada borde de K n . Las puertas en la 1ª capa son D ( j , 1 ) = x s , j . En la capa l-ésima, tenemos D ( j , l ) = min { D ( j , l - 1 ) , m i n i { D ( i , l -Xyo,jKnortere(j,1)=Xs,j . La puerta de salida es D ( t , n - 1 ) . Hay O ( n 3 ) puertas en total. En realidad, la restitución de faninis no es tan importante en mi pregunta. re(j,l)=min{re(j,l-1),metroyonorteyo{re(yo,l-1)+Xyo,j}}re(t,norte-1)O(norte3)
Stasys

Respuestas:


6

Creo que la respuesta a la pregunta 1 es afirmativa : no son matroides sencilla en la que DP falla gravemente! Es decir, el DP simple puede ser mucho peor que Greedy cuando se trata de resolver un problema de optimización exactamente .

KnorteKnorteFF(max,+)

22norte/ /norte3/ /2norte

2kkmatroides Por otro lado, hasta donde yo sé, los algoritmos de aproximación basados ​​en DP generalmente usan algún tipo de "escala" de pesos de entrada, y solo se aplican a problemas "similares a la mochila" o algunos problemas de programación. Una respuesta negativa a la pregunta 2 confirmaría esta aparente "debilidad de aproximación" de DP.


1
Una observación algo tangencial: DP también se usa en los algoritmos de estilo Arora para varios problemas euclidianos de dimensión fija, por ejemplo, Euclidean TSP. Pero esto todavía está en el espíritu de redondear la entrada.
Sasho Nikolov el

@ Sasho: Sí, estos son algoritmos basados ​​en DP lindos. Woeginger incluso ha intentado capturar problemas para los cuales DP puede ayudar a aproximarlos. Pero no he visto ninguna buena aproximación DP que sea pura (solo Max y Sum o Min y Sum, sin redondeo / escalado, sin ArgMax, etc.) Por supuesto, esto podría ser solo mi culpa: los algoritmos de aproximación son algo nuevo para mí .
Stasys

No conozco ningún ejemplo de una buena aproximación DP "pura", en su sentido de puro: todos los ejemplos que conozco utilizan alguna forma de redondeo.
Sasho Nikolov
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.