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 -ésima de las cuales corresponde al peso dado al -é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 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?
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 minimizarproblemas, 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ñofactor (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.