¿Noción alternativa de complejidad basada en la brecha entre la fuerza bruta y el mejor algoritmo?

17

Por lo general, los algoritmos eficientes tienen un tiempo de ejecución polinómico y un espacio de solución exponencialmente grande. Esto significa que el problema debe ser fácil en dos sentidos: primero, el problema puede resolverse en un número polinómico de pasos y, en segundo lugar, el espacio de la solución debe estar muy estructurado porque el tiempo de ejecución es solo poliligarítmico en el número de soluciones posibles.

Sin embargo, a veces estas dos nociones divergen, y un problema es fácil solo en el primer sentido. Por ejemplo, una técnica común en algoritmos de aproximación y complejidad parametrizada es (aproximadamente) demostrar que el espacio de la solución en realidad puede restringirse a un tamaño mucho más pequeño que la definición ingenua y luego usar la fuerza bruta para encontrar la mejor respuesta en este espacio restringido . Si podemos restringirnos a priori a, digamos, n ^ 3 respuestas posibles, pero aún necesitamos verificar cada una, entonces, en cierto sentido, estos problemas siguen siendo "difíciles" en el sentido de que no hay mejor algoritmo que la fuerza bruta.

Por el contrario, si tenemos un problema con un número doblemente exponencial de posibles respuestas, pero podemos resolverlo en solo tiempo exponencial, entonces me gustaría decir que tal problema es "fácil" ("estructurado" puede ser mejor palabra) ya que el tiempo de ejecución es solo un registro del tamaño del espacio de la solución.

¿Alguien sabe de algún documento que considere algo como la dureza basada en la brecha entre un algoritmo eficiente y la fuerza bruta o dureza en relación con el tamaño del espacio de la solución?

Ian
fuente

Respuestas:

12

Un problema con la formalización de la pregunta es que la frase "espacio de solución para el problema A" no está bien definida. La definición de un espacio de solución necesita un algoritmo verificador que, dada una instancia y una solución candidata, verifique si la solución es correcta o no. Entonces, el espacio de solución de una instancia wrt a un verificador es el conjunto de soluciones candidatas que hacen que la salida del verificador sea "correcta".

Por ejemplo, tome el problema SAT0: dada una fórmula booleana, ¿está satisfecho con la asignación de todos los ceros? Este problema es trivial en el tiempo polinómico, pero su espacio de solución puede variar enormemente, según el verificador que utilice. Si su verificador ignora la solución candidata y solo comprueba si todos los ceros funcionan en la instancia, entonces el "espacio de solución" para cualquier instancia de SAT0 en ese verificador es trivial: son todas las soluciones posibles. Si su verificador verifica si la solución candidata es una tarea satisfactoria, entonces el espacio de solución de una instancia de SAT0 puede ser bastante complejo, posiblemente tan complejo como el espacio de solución de cualquier instancia de SAT.

Dicho esto, el problema de "evitar la búsqueda de fuerza bruta" se puede formalizar de la siguiente manera (como se ve en el artículo "Mejorar la búsqueda exhaustiva implica límites inferiores superpolinomiales"). Se le proporciona un algoritmo verificador que se ejecuta en el tiempo , en instancias de tamaño ny soluciones candidatas de k bits. La pregunta es, * en instancias arbitrarias de tamaño n , ¿podemos determinar si hay una solución correcta (wrt este verificador) con un máximo de k bits, en mucho menos tiempo que O ( 2 k t ( n , k ) ) ?t(norte,k)norteknortekO(2kt(norte,k))

Nota es el costo de probar todas las cadenas de longitud hasta k, y ejecutar el verificador. Por lo tanto, lo anterior puede verse como preguntando si podemos mejorar la búsqueda de fuerza bruta para el verificador dado. El área de "algoritmos exactos para problemas NP-duros" puede verse como un esfuerzo a largo plazo para estudiar la dificultad de mejorar la búsqueda de fuerza bruta para ciertos verificadores muy naturales: por ejemplo, la cuestión de encontrar algoritmos mejores que 2 n para SAT es la cuestión de si siempre podemos mejorar la búsqueda de fuerza bruta para el verificador que verifica si la solución candidata dada es una asignación satisfactoria para la instancia SAT dada.O(2kt(norte,k))2norte

El documento muestra algunas consecuencias interesantes de mejorar la búsqueda de fuerza bruta para algunos problemas. Incluso mejorar la búsqueda de fuerza bruta para "espacios de solución de tamaño polinómico" tendría consecuencias interesantes.

Ryan Williams
fuente
1
..
Soy más que un poco reacio a hacer referencia a mis propios documentos en una respuesta. Pero cuando se ajusta exactamente a la pregunta, es difícil resistirse ...
Ryan Williams
5

¿Cómo trataría los problemas típicos de programación dinámica? Aquí, lo que sucede a menudo es que el espacio de soluciones óptimas está limitado polinómicamente, pero el espacio de soluciones no lo está. Por lo tanto, parece "fácil" en su sentido porque el tiempo de ejecución es logarítmico en el espacio de la solución, pero es "difícil" en su sentido porque ejecuta "fuerza bruta" sobre todas las soluciones potencialmente óptimas.

Suresh Venkat
fuente
Hay una serie de sutilezas en las definiciones que tendrían que resolverse, como exactamente qué algoritmos califican como fuerza bruta. Probablemente intente restringir el espacio de la solución de la siguiente manera: si, para un tamaño de problema dado, puede eliminar una respuesta de la consideración sin mirar los datos, entonces no está en el espacio de la solución (es cierto, esto permite múltiples espacios de solución distintos). Dicho esto, estaría contento con una respuesta que es similar en espíritu a mi pregunta, incluso si difiere en muchos detalles.
Ian
3

La perspectiva parece asumir algunas cosas, como la finitud de los espacios de solución.

Por ejemplo, piense en el problema de generar una teselación de Voronoi a partir de un conjunto de puntos de entrada. Aquí hay un espacio de solución de tamaño infinito ya que cada punto en los bordes del diagrama es una tupla de números reales. Sin embargo, se puede llegar a una solución en O (n log (n)) en el número de puntos de entrada (para el plano).

Ross Snider
fuente
Es cierto que algunos problemas pueden no encajar en este marco. Aunque para algunos problemas con salidas de números reales, uno puede hacer que el espacio sea finito describiendo la salida algebraicamente en términos de las entradas (por ejemplo, como combinaciones lineales de puntos de entrada). No sé mucho sobre algoritmos geométricos, donde los números reales se encuentran típicamente, por lo que no estoy seguro de con qué frecuencia o si esto sería posible.
Ian
1
Los números reales no son la única forma de obtener espacios de solución infinitos. Considere un juego entre Alice y Bob. Alice escoge un número entero n. Bob hace conjeturas, y Alice le dice si él es más alto, más bajo o igual a su secreto n. Bob tiene una estrategia de tiempo finito para encontrar n porque siempre es finito. Comienza un 0 y luego elige una constante grande c. Alice le dice en qué dirección está su n y Bob adivinará la vuelta hasta que encuentre un límite inferior y superior, donde realiza una búsqueda binaria de n. Por otra parte, supongo que podría argumentar que hay un espacio de solución finita en el número de bits de n ...
Ross Snider
3

Relacionados están los problemas que admiten algoritmos con retraso polinómico . La primera solución, y todas las soluciones posteriores, se pueden generar en tiempo polinómico. Johnson, Yannakakis y Papdimitriou discuten este marco en el contexto de otras lagunas posibles (como el tiempo total polinómico): Sobre la generación de todos los conjuntos independientes máximos , Information Processing Letters 27 , 119–123, 1988.

András Salamon
fuente