Aquí hay una posible alternativa a un argumento de relleno, basado en la generalización de Schöning del teorema de Ladner. Para comprender el argumento, debe tener acceso a este documento (que desafortunadamente estará detrás de un muro de pago para muchos):
Uwe Schöning. Un enfoque uniforme para obtener conjuntos diagonales en clases de complejidad. Informática teórica 18 (1): 95-103, 1982.
Vamos a aplicar el teorema principal de ese papel para y siendo idiomas y y siendo clases de la complejidad de la siguiente manera:A 2 C 1 C 2A1A2C1C2
- PA1=∅ (o cualquier idioma en )P
- A2=SAT
- C1=NPC
- C2=NP∩P/poly
En aras de la claridad, el hecho que demostraremos es implica .N P I ⊈ P / p o l yNP⊈P/polyNPI⊈P/poly
Bajo el supuesto de que tenemos y . Está claro que y están cerrados bajo variaciones finitas. El artículo de Schöning incluye una prueba de que es presentable de forma recursiva (la definición precisa de lo cual se puede encontrar en el documento), y la parte más difícil del argumento es demostrar que es presentable de forma recursiva.A 1 ∉ C 1 A 2 ∉ C 2 C 1 C 2 C 1 C 2NP⊈P/polyA1∉C1A2∉C2C1C2C1C2
Bajo estos supuestos, el teorema implica que existe un lenguaje que no está ni en ni en ; y dado que , sostiene que es Karp-reducible a , y por lo tanto . Dado que está en pero no es -completo ni en , se deduce que .C 1 C 2 A 1 ∈ P A A 2 A ∈ N P A N P N P N P ∩ P / p o l y N P I ⊈ P / p o l yAC1C2A1∈PAA2A∈NPANPNPNP∩P/polyNPI⊈P/poly
Queda por demostrar que es presentable de forma recursiva. Básicamente, esto significa que hay una descripción explícita de una secuencia de máquinas Turing deterministas que se detienen en todas las entradas y son tales que . Si hay un error en mi argumento, probablemente esté aquí, y si realmente necesita usar este resultado, querrá hacerlo con cuidado. De todos modos, al encajar en todas las máquinas de Turing no deterministas de tiempo polinómico (que se pueden simular determinísticamente porque no nos importa el tiempo de ejecución de cadaM 1 , M 2 , … N P ∩ P / p o l y = { L ( M k ) : k = 1 , 2 , … } M k M k M kNP∩P/polyM1,M2,…NP∩P/poly={L(Mk):k=1,2,…}Mk) y todos los polinomios, que representan límites superiores en el tamaño de una familia de circuitos booleanos para un idioma determinado, creo que no es difícil obtener una enumeración que funcione. En esencia, cada puede probar que su NTM de tiempo polinomial correspondiente concuerda con alguna familia de circuitos de tamaño polinómico hasta la longitud de la cadena de entrada que se le da buscando en todos los circuitos booleanos posibles. Si hay acuerdo, como lo haría la NTM, de lo contrario, rechaza (y como resultado representa un lenguaje finito).MkMk
La intuición básica detrás del argumento (que está oculto dentro del resultado de Schöning) es que nunca se pueden tener dos clases de complejidad "agradables" (es decir, las que tienen presentaciones recursivas) que son disjuntas y están juntas. La "topología" de las clases complejas no lo permite: siempre se puede construir un lenguaje correctamente entre las dos clases alternando de alguna manera entre las dos para tramos extremadamente largos de longitudes de entrada. El teorema de Ladner muestra esto para y , y la generalización de Schöning le permite hacer lo mismo para muchas otras clases.N P CPNPC