Permítanme comenzar con algunos ejemplos. ¿Por qué es tan trivial mostrar que CVP está en P pero tan difícil de mostrar que LP está en P? mientras que ambos son problemas P-completos.
O toma la primalidad. Es más fácil mostrar compuestos en NP que primos en NP (que requirieron Pratt) y eventualmente en P. ¿Por qué tuvo que mostrar esta asimetría?
Conozco a Hilbert, la necesidad de creatividad, las pruebas están en NP, etc. Pero eso no me ha impedido tener el presentimiento de que hay más de lo que parece.
¿Existe una noción cuantificable de "trabajo" y hay una "ley de conservación" en la teoría de la complejidad? Eso muestra, por ejemplo, que aunque CVP y LP son ambos P-completos, esconden sus complejidades en "lugares diferentes": uno en la reducción (¿Es CVP simple porque todo el trabajo se realiza en la reducción?) Y el otro en expresibilidad del lenguaje.
¿Alguien más mareado también y con algunas ideas? ¿O nos encogemos de hombros y decimos / aceptamos que esta es la naturaleza de la computación?
Esta es mi primera pregunta al foro: dedos cruzados.
Editar: CVP es un problema de valor de circuito y LP es programación lineal. Gracias Sadeq, por señalar una confusión.
fuente
Respuestas:
Esta es una pregunta que me ha pasado por la cabeza muchas veces.
Creo que un lugar para buscar es la teoría de la información. Aquí hay una especulación mía. Dado un problema, tal vez podamos dar algún tipo de valor de entropía a la información dada como entrada y la información recibida del algoritmo. Si pudiéramos hacer eso, entonces habría una cantidad mínima de ganancia de información requerida por un algoritmo para resolver ese problema.
Hay una cosa relacionada que quería resolver. En algunos problemas de NP completo, puede encontrar una versión restringida en P; con la ruta de Hamilton si especifica que el gráfico es un DAG, entonces hay un algoritmo de tiempo p para resolverlo. Con otros problemas como TSP, a menudo hay algoritmos de tiempo p que se aproximarán al óptimo. Me parece que, para los algoritmos de tiempo p restringidos, debería haber alguna relación proporcional entre la información de adición asumida y la reducción de la complejidad del tiempo de ejecución. En el caso del TSP, no estamos asumiendo información adicional, estamos relajando la precisión, que espero tenga un efecto similar en cualquier tipo de ganancia de información algorítmica.
Nota sobre las leyes de conservación
A principios de 1900 había una matemática alemana-estadounidense poco conocida llamada Emily Noether. Entre otras cosas, Einstein y Hilbert la describieron como la mujer más importante en la historia de las matemáticas. En 1915 publicó lo que ahora se conoce como el primer teorema de Noether . El teorema se refería a las leyes físicas de conservación, y decía que todas las leyes de conservación tienen una simetría diferencial correspondiente en el sistema físico. Conservation of Angular Momentum proviene de una simetría rotacional en el espacio, Conservation of Linear Momentum es traducción en el espacio, Conservation of Energy es traducción en el tiempo. Dado que, para que exista alguna ley de conservación de la complejidad en un sentido formal, se necesitaría una simetría diferencial correspondiente en una función de Langragian.
fuente
Creo que la razón radica en el sistema lógico que utilizamos. Cada sistema formal tiene un conjunto de axiomas y un conjunto de reglas de inferencia .
La longitud de la prueba de un teorema, suponiendo que sea decidible en el sistema lógico, depende totalmente de los conjuntos de axiomas y reglas de inferencia .
Por ejemplo, considere la lógica proposicional, para la cual existen varias caracterizaciones: Frege (1879), Nicod (1917) y Mendelson (1979). (Consulte esta breve encuesta para obtener más información).
Este problema se denomina complejidad de prueba . Para citar Beame y Pitassi :
fuente
Estaba pensando en esta misma pregunta el otro día, cuando estaba reproduciendo algunas de las Lecturas sobre física de Feynman, y llegué a la lección 4 sobre la conservación de la energía. En la conferencia, Feynman usa el ejemplo de una máquina simple que (a través de un sistema de palancas o poleas o lo que sea) reduce el peso de una unidad en cierta distancia x, y lo usa para levantar un segundo peso de 3 unidades. ¿Qué tan alto se puede levantar el peso? Feynman hace la observación de que si la máquina es reversible, entonces no necesitamos saber nada sobre el mecanismo de la máquina, podemos tratarla como una caja negra, y siempre levantará el peso la distancia máxima posible ( x / 3 en este caso).
¿Tiene esto un análogo en computación? La idea del cálculo reversible me recuerda el trabajo de Landauer y Bennett, pero no estoy seguro de que este sea el sentido del término en el que estamos interesados. Intuitivamente, si tenemos un algoritmo para algún problema que sea óptimo, entonces no se está desperdiciando ningún "trabajo" en los bits; mientras que un enfoque de fuerza bruta para el mismo problema sería descartar los ciclos de CPU de izquierda a derecha. Sin embargo, me imagino que uno podría construir un circuito físicamente reversible para cualquier algoritmo.
Creo que el primer paso para abordar una ley de conservación para la complejidad computacional es averiguar exactamente qué se debe conservar. El espacio y el tiempo son métricas importantes, pero a partir de la existencia de compensaciones espacio / tiempo, ninguno de los dos será adecuado como medida de cuánto "trabajo" está haciendo un algoritmo. Se han utilizado otras métricas, como las reversiones de cabezales TM o los cruces de celdas de cinta. Ninguno de estos realmente parece estar cerca de nuestra intuición de la cantidad de "trabajo" requerido para llevar a cabo un cálculo.
La otra cara del problema es descubrir en qué se convierte ese trabajo. Una vez que tiene la salida de un programa, ¿qué es exactamente lo que ha ganado?
fuente
Algunas observaciones que sugieren la existencia de la ley de conservación:
fuente
Tao sugiere la existencia de la ley de conservación de la dificultad en las matemáticas: "para probar cualquier resultado genuinamente no trivial, se debe hacer un trabajo duro en alguna parte".
Argumenta que la dificultad de algunas pruebas matemáticas sugiere un límite inferior a la cantidad de esfuerzo que necesita el proceso de prueba del teorema.
fuente