En su libro "Complejidad computacional", Papadimitriou escribe:
RP es, en cierto sentido, un tipo nuevo e inusual de clase de complejidad. Ninguna máquina de Turing no determinista limitada polinómicamente puede ser la base para definir un lenguaje en RP. Para que una máquina N defina un lenguaje en RP , debe tener la notable propiedad de que en todas las entradas rechaza por unanimidad o acepta por mayoría . La mayoría de las máquinas no deterministas se comportan de otras maneras al menos para algunas entradas ... No hay una manera fácil de saber si una máquina siempre se detiene con una salida certificada. Informalmente llamamos clases semánticas a estas clases , a diferencia de las clases sintácticas como P y NP, donde podemos saber de inmediato mediante una comprobación superficial si una máquina adecuadamente estandarizada define un lenguaje en la clase.
Varias páginas después, señala que:
el lenguaje L está en la clase PP si hay una máquina Turing N polinomialmente limitada no determinista N tal que, para todas las entradas x, si más de la mitad de los cálculos de N en la entrada x terminan aceptando. Decimos que N decide L por mayoría .
Pregunta 1: ¿Por qué Papadimitriou concluye que PP es una clase sintáctica, mientras que su definición es solo ligeramente diferente de la de RP ?
Pregunta 2: ¿ Si ser "semántico" para una clase de complejidad es equivalente a NO tener problemas completos, o la falta de problemas completos se considera una propiedad que ADEMÁS poseemos las clases semánticas?
Editar: Ver tema relacionado ¿Todas las clases de complejidad tienen una caracterización de lenguaje hoja?
Respuestas:
RP implica una promesa de que 0 rutas aceptan o más de la mitad acepta, sin importar cuál sea la entrada. Para PP, no hay tal promesa. Si más de la mitad de los caminos aceptan, entonces , de lo contrario, x ∉ L . (PP se puede definir de manera que los criterios de aceptación son ≥ 1 / 2 y < 1 / 2 respectivamente).x∈L x∉L ≥1/2 <1/2
O, en otras palabras, si le doy un TM probabilístico alegando que es una máquina PP que decide algún idioma, puede estar seguro de que decide algún idioma. Claramente, el lenguaje que decide es este: Intente ingresar . Vea si más de la mitad de las rutas aceptan (o más de 1/2 cadenas aleatorias hacen que acepte). Si es así, x ∈ L . Si no es así, x ∉ L . Así que hemos definido un lenguaje usando este TM.x x∈L x∉L
Por otro lado, si le doy una TM probabilística que dice que es una máquina RP que decide un idioma, ni siquiera puede estar seguro de que decida algún idioma. El problema es que cuando observa que solo algunas rutas aceptan, no sabe si está en L o no. Entonces, si te doy una máquina RP, solo tienes que creer mi palabra. De hecho, verificar si esta máquina define un idioma es indiscutible.x L
En cuanto a su segunda pregunta, para las clases sintácticas generalmente hay un problema completo obvio, que es como "Dada la máquina M, decida si acepta a tiempo T en la entrada x". Si le dan una máquina no determinista, este problema es NP-completo, si es una máquina PP, entonces es PP-completo, etc. El problema obvio completo para las clases semánticas es indecidible, como mencioné. Por lo tanto, no tenemos un problema completo gratis para las clases semánticas. Pero una clase semántica puede tener un problema completo. Por ejemplo, si P = BPP (como se cree ampliamente), entonces BPP tiene una caracterización sintáctica.
EDITAR : Dado que hay una discusión sobre cómo definir clases semánticas y sintácticas, me gustaría señalar que Papadimitriou da una definición en su libro cuando habla de lenguajes de hoja. (Vea mi pregunta sobre lenguajes de hoja para algunas referencias).
Él dice que las clases sintácticas son aquellas para las cuales existe algún lenguaje que define la clase usando la técnica del lenguaje de hoja. Las clases semánticas son aquellas para las cuales todas esas caracterizaciones requieren problemas prometedores. Esta es una definición rigurosa, pero solo funciona para aquellos idiomas que tienen caracterizaciones de lenguaje hoja.
fuente
Si realmente fuera el caso de que simplemente no hay una lista fácilmente computable de máquinas (de cualquier tipo razonable) que acepten exactamente su clase, entonces sí, no creo que su clase pueda tener un lenguaje completo. Pero eso parece muy difícil de formalizar adecuadamente, y mucho menos demostrarlo.
fuente