En la teoría de la complejidad computacional , el argumento de relleno es una herramienta para demostrar condicionalmente que si algunas clases de complejidad son iguales, entonces otras clases mayores también lo son. Este tipo de argumento también se utiliza a veces para clases de complejidad espacial , clases alternas y clases alternas acotadas.
Ejemplo
EXP=NEXP
Teorema. Si P = NP , entonces EXP = NEXP .
Prueba. Por definición, basta con demostrarlo .
Sea L un lenguaje en NEXP , de modo que existe una máquina de Turing no determinista M que verifica en tiempo no determinista , para algún número natural constante c . Ahora definamos el lenguaje con relleno.
donde '1' es un símbolo que no aparece en L.
está en NP : Dada una entrada , primero verifica que tenga la forma y recházala si no la tiene. Si tiene la forma correcta, verifica usando M , que toma un tiempo no determinista .
Bajo la suposición P = NP, está en P , por lo que hay una máquina determinista DM que decide en tiempo polinomial.
Entonces podemos decidir L en tiempo exponencial determinista. Dado el input , escriba y use DM para decidir si . Esto lleva tiempo .
Teorema de Ladner
Otro teorema demostrado por el argumento del relleno es
Teorema de Ladner . Sientonces existe un problema computacional que es NP-intermedio: enpero no NP-completo.
Demostración. Supongamos que . Sea SAT el lenguaje de fórmulas satisfacibles. Es NP-completo. Ahora, dada cualquier función tal que sea computable en tiempo , podemos definir el lenguaje con relleno Afirmación 1: SAT* es NP. Esto se demuestra con este algoritmo
- Dada una fórmula , si no se ajusta al formato de SAT*, devuelva Falso.
- De lo contrario, elimine el relleno para obtener una fórmula más corta y compruebe si el relleno tiene la longitud especificada . Si no la tiene, devuelva Falso.
- De lo contrario, compruebe si se trata de un tiempo no determinista .
Afirmación 2: Si está acotada, entonces SAT* es NP-completo. Dado que está acotada, el relleno toma tiempo polinomial, reduciendo SAT a SAT*.
Afirmación 3: Si , entonces SAT* no es NP-completo.
Supongamos lo contrario, entonces existe un algoritmo que reduce el problema SAT a SAT* en tiempo . Entonces, podemos decidir SAT en tiempo polinomial de la siguiente manera:
- Dada una fórmula , si no se ajusta al formato de SAT*, devuelva Falso.
- De lo contrario, por límite superior de tiempo de ejecución, .
- Repetimos este proceso, obteniendo cada vez una fórmula más corta hasta que o bien
- Si se encuentra una fórmula que no se ajusta al formato de SAT*, devolvemos Falso.
- o bien obtener una fórmula con una longitud determinada para alguna constante , en cuyo caso simplemente enumeramos por fuerza bruta todas las posibles asignaciones de valores de verdad para . Si es satisfacible, entonces devolvemos Verdadero, de lo contrario devolvemos Falso.
Siempre que se elija lo suficientemente grande como para que para todo , podemos hacer que cada iteración reduzca la longitud: Por lo tanto, esto requiere iteraciones, y por lo tanto todo el algoritmo se ejecuta en tiempo . La idea es similar a la kernelización .
Paso 4: Construir un , de tal manera que sea computable en tiempo polinomial, , y SAT* no sea P.
Definimos de la siguiente manera: y para valores mayores de , es el entero positivo más pequeño tal que
- .
- Para cualquier longitud , la máquina de Turing decide correctamente con tiempo de ejecución .
- Si no existe tal máquina de Turing, entonces simplemente establezca .
donde hay dos funciones diseñadas para que sea computable en tiempo .
Afirmación: está bien definida y es computable en .
Esto se demuestra por inducción sobre . Los casos base simplemente se memorizan. Para el paso de inducción, se prueban todas las máquinas de Turing en todas las fórmulas posibles de longitud , para pasos. También necesitamos probar si , que tarda hasta tiempo comprobando todas las filas de su tabla de verdad . El tiempo total empleado está acotado superiormente por Ahora, si SAT* está en P, entonces sea una máquina que decide SAT* en tiempo . Para suficientemente grande tal que , la construcción permite considerar en la construcción de . Esto muestra que, para todo suficientemente grande , tenemos , y por lo tanto, según la afirmación 2, SAT* es NP-completo, pero entonces tenemos un problema NP-completo que está en P, lo que contradice la suposición de que .
Por lo tanto, SAT* no pertenece a P. Esto implica que se vería obligado a crecer hacia el infinito. Según la afirmación 3, SAT* no es NP-completo.
Véase también
Referencias
- Arora, Sanjeev ; Barak, Boaz (2009), Complejidad computacional: un enfoque moderno , Cambridge , pág. 57, ISBN 978-0-521-42426-4
- Teoría de la complejidad computacional