¿Cuáles son exactamente las clases FP, FNP y TFNP?


13

En su libro Computational Complexity , Papadimitriou define FNP de la siguiente manera:

Supongamos que es un lenguaje en NP . Por la proposición 9.1, hay una decidable de tiempo polinómico, polinomialmente equilibrada relación R L tal que para todas las cadenas de x : No es una cadena y con R L ( x , y ) si y sólo si x L . El problema de función asociado con L , denotado F L , es el siguiente problema computacional:LRLxyRL(x,y)xLLFL

Dado , encuentre una cadena y tal que R L ( x , y ) si tal cadena existe; si no existe tal cadena, devuelva "no".xyRL(x,y)

La clase de todos los problemas de función asociados anteriormente con el lenguaje en NP se llama FNP . FP es la subclase resultante si solo consideramos problemas de función en FNP que pueden resolverse en tiempo polinómico.

(...)

(...), llamamos a un problema en total FNP si para cada cadena x hay al menos un y tal que R ( x , y ) . La subclase de FNP que contiene todos los problemas de función total se denota TFNP .R xyR(x,y)

En un diagrama de Venn en la descripción general del capítulo, Papadimitriou implica que FP TFNP FNP .

Me cuesta entender por qué exactamente sostiene que FP TFNP ya que los problemas en FP no tienen que ser totales per se.

Para obtener una mejor comprensión, he estado analizando la literatura para encontrar una definición a prueba de agua de FP , FNP y otras, sin éxito.

En mi muy (humilde) opinión, creo que hay poco (¡correcto!) Material didáctico sobre estos temas.

Para problemas de decisión, las clases son conjuntos de idiomas (es decir, conjuntos de cadenas).

¿Cuáles son exactamente las clases para problemas de función? ¿Son conjuntos de relaciones, idiomas, ...? ¿Qué es una definición sólida?


44
La notación común es algo descuidada. Primero, FP se usó y se utiliza para denotar la clase de funciones de poli-tiempo (por lo tanto, total) fuera del contexto de los problemas de búsqueda de NP, donde se ha redefinido. En segundo lugar, cada problema de búsqueda que se puede resolver en el tiempo polinómico tiene una extensión total que se puede resolver en el tiempo polinómico, por lo que, en ese sentido, no hay mucha diferencia real entre una definición total y no total de FP, por lo que los dos están combinados por el abuso del lenguaje.
Emil Jeřábek

Respuestas:


11

El comentario de Emil Jerabek es un buen resumen, pero quería señalar que hay otras clases con definiciones más claras que capturan más o menos el mismo concepto, y aclarar la relación entre todas estas cosas.

[Advertencia: aunque creo que he entendido bien las definiciones, algunas de las siguientes cosas reflejan mis preferencias personales: he tratado de aclarar dónde estaba eso].

En el mundo determinista, una clase de función es solo una colección de funciones (en el sentido matemático habitual de la palabra "función", es decir, un mapa ). Ocasionalmente queremos permitir "funciones parciales", cuya salida es "indefinida" para ciertas entradas. (De manera equivalente, funciones que se definen en un subconjunto de Σ ∗ en lugar de todo).ΣΣΣ

Desafortunadamente, hay dos definiciones diferentes para flotando, y por lo que puedo decir, no son equivalentes (aunque son equivalentes "moralmente").FP

  • (definición 1) es la clase de funciones que se pueden calcular en tiempo polinómico. Siempre que veas F P y no está en un contexto en el que la gente habla de F N P , T F N P , esta es la definición que supongo.FPFPFNP,TFNP

En el mundo no determinista, las cosas se ponen un poco divertidas. Allí, es conveniente permitir "funciones parciales y de valores múltiples". Sería natural llamar a tal cosa una relación binaria , es decir, un subconjunto de . Pero desde el punto de vista de la complejidad, a menudo es filosófica y mentalmente útil pensar en estas cosas como "funciones no deterministas". Creo que muchas de estas definiciones se aclaran mediante las siguientes clases (cuyas definiciones están completamente estandarizadas, si no muy conocidas):Σ×Σ

  • : La clase de "funciones parciales, de valores múltiples" computables por una máquina no determinista en tiempo polinomial. Lo que esto significa es que hay una máquina no determinista poli-tiempo, y en la entrada x , en cada rama no determinista, puede elegir aceptar y realizar alguna salida, o rechazar y no hacer ninguna salida. La salida "multivalor" en la entrada x es el conjunto de todas las salidas en todas las ramas no deterministas cuando se da x como entrada. Tenga en cuenta que este conjunto puede estar vacío, por lo que, como una "función de valores múltiples", esto solo puede ser parcial. Si pensamos en términos de relaciones binarias, esto corresponde a la relación { ( x , y ) : yNPMVxxx .{(x,y):y is output by some branch of the computation on input x}

  • : Total de "funciones" en N P M V , es decir, en cada entradax, al menos una rama acepta (y, por lo tanto, hace una salida, por definición)NPMVtNPMVx

  • : valorados-Single (potencialmente parciales) funciones en N P M V . Sin embargo, hay cierta flexibilidad aquí, ya que varias ramas pueden aceptar, pero si alguna rama acepta, se debe garantizar que todas las ramas aceptadasproduzcanelmismoresultado (de modo que realmente tenga un solo valor). Sin embargo, todavía es posible que ninguna rama acepte, por lo que la función es solo una "función parcial" (es decir, no está definida en todo Σ ).NPSVNPMVΣ

  • : Single-valorado funciones totales en N P S V . Estas realmente son funciones, en el sentido usual de la palabra, Σ Σ . Es un ejercicio no demasiado difícil ver que N P S V t = F P N Pc o N P (usando Def 1 para FP arriba).NPSVtNPSVΣΣNPSVt=FPNPcoNP

N P S V N P M V c f g x g f f g N P M V N P S V N P M V c N P S VNPMVNPSVNPSVNPMVcfgxgffsiempre son un subconjunto de las salidas de . La pregunta correcta es, entonces, si todos los "función" tiene un refinamiento. Si es así, escribimos .gNPMVNPSVNPMVcNPSV

  • PF (un poco menos estándar) es la clase de funciones (potencialmente parciales) computables en poli-tiempo. Es decir, una función ( ) está en si hay una máquina determinista de poli-tiempo tal que, en las entradas la las salidas de la máquina , y en las entradas la máquina no emite ninguna salida (/ rechaza / dice "no" / como quiera expresarlo).f:DΣDΣPFxDf(x)xD

  • FNP es una clase de "problemas de función" (en lugar de una clase de funciones). También llamaría a una "clase relacional", pero realmente cualquier palabra que uses para describirla necesitas aclararte después, por lo que no estoy particularmente interesado en esta definición. Para cualquier relación binaria hay un "problema de función" asociado. ¿Qué es un problema de función? No tengo una definición matemática clara como la tengo para lenguaje / función / relación; más bien, se define por lo que es una solución válida: una solución válida para el problema de la función asociada a es cualquier función (potencialmente parcial) tal que siFNPRΣ×ΣRf(y)[R(x,y)]f emite cualquier , y de lo contrario no emite ninguna salida. es la clase de problemas de función asociados a las relaciones manera que (cuando se considera como un lenguaje de pares) y está equilibrado en p. Entonces no es una clase de funciones, ni una clase de lenguajes, sino una clase de "problemas de función", donde "problema" aquí se define más o menos en términos de lo que significa resolverlo.yfFNPRRPFNP

  • TFNP es entonces la clase de problemas de función en - definida por una relación como arriba - tal es total, en el sentido de que para cada existe un tal que .FNPRRxyR(x,y)

Para no tener que escribir cosas como "Si cada problema de función (resp., ) tiene una solución en (resp., según lo anterior definición), entonces ... "en este contexto uno usa la Definición 2 de , que es:FNPTFNPPFFPFP

  • FP (definición 2) es la clase de problemas de función en que tienen una solución de poli-tiempo. Se puede suponer que la solución (= función) aquí es total eligiendo una cadena especial que no es válida para ninguna , y teniendo la función salida cuando de otro modo no sería válida . (Si es necesario, podemos modificar la relación al anteponer cada con un 1, y luego tomar como la cadena 0; esto no cambia la complejidad de nada involucrado).FNPy0yxy0yRyy0

Así es como estas diversas definiciones se relacionan entre sí, (definición 2, que es lo que debe asumir porque está en un contexto donde se compara con ) es equivalente a . (def 2) es equivalente a (def 1).FNPFPFNPNPMVcPFTFNPFPNPMVtcFP


Gracias por tu extensa respuesta. Estoy tratando de digerirlo y ha sido muy útil hasta ahora. Sin embargo, supongo que se refería a FP FNP y FP TFNP en el último párrafo.
Auberon el

1
@Auberon: No, el último párrafo se traduce entre varias conjeturas. Dice que , etc.FNPFPNPMVcPF
Joshua Grochow el

@JoshuaGrochow o posible o la jerarquía se colapsa? ¿También en o viceversa se mantiene (parece plausible ya que parece que no hay implicación de ninguna manera)? N P P U P P U P P T F N PNPPTFNPNPPUPPUPPTFNP
T ....

3

Además de la extensa respuesta de Joshua, quiero agregar las siguientes definiciones de Elaine Ruch: Automata, Computability and Complexity .

La clase FP : Una relación binaria está en si y sólo si existe un algoritmo de tiempo polinomial determinista que, dada una entrada arbitraria , puede encontrar algunos tal que .F P x y ( x , y ) QQFPxy(x,y)Q

La clase FNP : Una relación binaria está en si y sólo si hay un tiempo polinomio determinista verificador, dado un par de entrada arbitrario , determina si . De manera equivalente, está en si hay un algoritmo de tiempo polinomial no determinista que, dada una entrada arbitraria , puede encontrar algunos tales queF N P ( x , y ) ( x , y ) Q Q F N P x y ( x , y ) QQFNP(x,y)(x,y)QQFNPxy(x,y)Q

FPTFNPFNPFNP

Para mí, este ha sido el recurso más satisfactorio que consta de una sola página que he encontrado desde hace mucho tiempo.


FNP

py(x,y)Qy|y|p(|x|)y
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.