Articulo de referencia

Problema de función

En la teoría de la complejidad computacional , un problema de función es un problema computacional en el que se espera una única salida para cada entrada, pero la salida es más ...

En la teoría de la complejidad computacional , un problema de función es un problema computacional en el que se espera una única salida para cada entrada, pero la salida es más compleja que la de un problema de decisión . En los problemas de función, la salida no es simplemente "sí" o "no".

Definición

Un problema de funciónPAG{\displaystyle P}se define por una relaciónR{\displaystyle R}sobre cadenas de un alfabeto arbitrarioΣ{\displaystyle \Sigma }:

RΣ×Σ.{\displaystyle R\subseteq \Sigma ^{*}\times \Sigma ^{*}.}

Tenga en cuenta queR{\displaystyle R}No tiene por qué ser una relación binaria funcional .

Un algoritmo resuelvePAG{\displaystyle P}si para cada entradaincógnita{\displaystyle x}de tal manera que exista unay{\displaystyle y}satisfactorio(incógnita,y)R{\displaystyle (x,y)\in R}, el algoritmo produce uno de esosy{\displaystyle y}y si no existen talesy{\displaystyle y}, lo rechaza.

Un problema de función de promesa permite que el algoritmo haga cualquier cosa (por lo tanto, puede que no termine) si no existe taly{\displaystyle y}existe.

Ejemplos

Un problema funcional bien conocido es el problema de satisfacibilidad booleana funcional, o FSAT por sus siglas en inglés. Este problema, estrechamente relacionado con el problema de decisión SAT , puede formularse de la siguiente manera:

Dada una fórmula proposicionalφ{\displaystyle \varphi }con variablesincógnita1,,incógnitanorte{\displaystyle x_{1},\ldots ,x_{n}}encontrar una tareaincógnitai{VERDADERO,FALSO}{\displaystyle x_{i}\rightarrow \{{\text{VERDADERO}},{\text{FALSO}}\}}de tal manera queφ{\displaystyle \varphi }evalúa aVERDADERO{\displaystyle {\text{VERDADERO}}}o decidir que no existe tal asignación.

En este caso la relaciónR{\displaystyle R}se da mediante pares de fórmulas proposicionales codificadas adecuadamente y asignaciones satisfactorias. Mientras que un algoritmo SAT, alimentado con una fórmulaφ{\displaystyle \varphi }, solo necesita devolver "insatisfacible" o "satisfacible", un algoritmo FSAT necesita devolver alguna asignación satisfactoria en el último caso.

Otros ejemplos destacables incluyen el problema del viajante , que pide la ruta que siguió el vendedor, y el problema de la factorización de números enteros , que pide la lista de factores.

Relación con otras clases de complejidad

Consideremos un problema de decisión arbitrario.L{\displaystyle L}en la clase NP . Por definición de NP , existe un sistema de certificados tal que cada instancia del problemaincógnita{\displaystyle x}que se responde 'sí' tiene un certificado de tamaño polinomialy{\displaystyle y}que sirve como prueba de la respuesta "sí" (y las instancias de problemas respondidas "no" no tienen tales certificados). Por lo tanto, el conjunto de estos pares(incógnita,y){\displaystyle (x,y)}forma una relación, que representa el problema de la función "dadoincógnita{\displaystyle x}enL{\displaystyle L}encontrar un certificadoy{\displaystyle y}paraincógnita{\displaystyle x}". Este problema de función se denomina variante de función deL{\displaystyle L}; pertenece a la clase FNP .

Por el contrario, cada problema R en FNP induce un problema de decisión correspondiente (único): dado x , decidir si existe algún y tal que R ( x , y ) se cumple.

La clase FNP puede considerarse el análogo de la clase NP en el ámbito de las funciones , ya que las soluciones de los problemas FNP pueden verificarse de forma eficiente (es decir, en tiempo polinomial con respecto a la longitud de la entrada) , pero no necesariamente hallarse de forma eficiente . En cambio, la clase FP , que puede considerarse el análogo de la clase P en el ámbito de las funciones , consta de problemas de funciones cuyas soluciones pueden hallarse en tiempo polinomial.

Autorreductibilidad

Obsérvese que el problema FSAT introducido anteriormente puede resolverse utilizando solo un número polinomial de llamadas a una subrutina que decide el problema SAT : Un algoritmo puede primero preguntar si la fórmulaφ{\displaystyle \varphi }es satisfacible. Después de eso, el algoritmo puede fijar la variable.incógnita1{\displaystyle x_{1}}a VERDADERO y preguntar de nuevo. Si la fórmula resultante aún se puede satisfacer, el algoritmo continúaincógnita1{\displaystyle x_{1}}Se corrigió a VERDADERO y continúa corrigiéndoseincógnita2{\displaystyle x_{2}}, de lo contrario decide queincógnita1{\displaystyle x_{1}}tiene que ser FALSO y continúa. Por lo tanto, FSAT es resoluble en tiempo polinomial usando un oráculo que decide SAT . En general, un problema en FNP se llama autorreducible si puede resolverse en tiempo polinomial usando un oráculo para su problema de decisión inducido. Cada variante de función de cada problema NP-completo es autorreducible. Hay varias nociones (ligeramente diferentes) de autorreducibilidad. [ 1 ] [ 2 ] [ 3 ]

Reducciones y problemas completos

Los problemas de función se pueden reducir de forma muy similar a los problemas de decisión: Dados los problemas de funciónR{\displaystyle R}yS{\displaystyle S}decimos queR{\displaystyle R}se reduce aS{\displaystyle S}si existen funciones computables en tiempo polinomialF{\displaystyle f}ygramo{\displaystyle g}de tal manera que para todos los casosincógnita{\displaystyle x}deR{\displaystyle R}y posibles solucionesy{\displaystyle y}deS{\displaystyle S}, sostiene que

  • Siincógnita{\displaystyle x}tiene unR{\displaystyle R}-solución, entoncesF(incógnita){\displaystyle f(x)}tiene unS{\displaystyle S}-solución.
  • (F(incógnita),y)S(incógnita,gramo(incógnita,y))R.{\displaystyle (f(x),y)\in S\implies (x,g(x,y))\in R.}

Por lo tanto, es posible definir problemas FNP-difíciles análogos a problemas NP-difíciles:

Un problemaR{\displaystyle R}es FNP-difícil si cada problema en FNP se puede reducir aR{\displaystyle R}Un problemaR{\displaystyle R}es FNP-completo si es FNP-difícil y está en FNP . El problema FSAT es un problema FNP-completo y, por lo tanto, por la autorreducción de FSAT, se cumple quePAG=nortePAG{\displaystyle \mathbf {P} =\mathbf {NP} }si y solo siFPAG=FnortePAG{\displaystyle \mathbf {FP} =\mathbf {FNP} }.

Problemas de función total

La relaciónR(incógnita,y){\displaystyle R(x,y)}utilizado para definir problemas de función tiene el inconveniente de ser posiblemente incompleto: no todas las entradasincógnita{\displaystyle x}necesariamente tiene una contrapartey{\displaystyle y}de tal manera que(incógnita,y)R{\displaystyle (x,y)\in R}Por lo tanto, la cuestión de la computabilidad de las salidas no está separada de la cuestión de su existencia. Para superar este problema, es conveniente considerar la restricción de los problemas de funciones a relaciones totales, lo que da como resultado la clase TFNP como una subclase de FNP . Esta clase contiene problemas como el cálculo de equilibrios de Nash puros en ciertos juegos estratégicos donde se garantiza la existencia de una solución. Además, si TFNP contiene algún problema FNP-completo, se deduce quenortePAG=co-NP{\displaystyle \mathbf {NP} ={\textbf {co-NP}}}.

Véase también

Referencias

  1. Ko, ​​K. (1983). "Sobre la autorreducibilidad y la P-selectividad débil". Journal of Computer and System Sciences . 26 (2): 209– 221. doi : 10.1016/0022-0000(83)90013-2 .
  2. Schnorr, C. (1976). "Algoritmos óptimos para problemas autorreducibles". En S. Michaelson y R. Milner, editores, Actas del 3er Coloquio Internacional sobre Autómatas, Lenguajes y Programación : 322–337 .
  3. Selman, A. (1988). "Conjuntos autorreducibles naturales". SIAM Journal on Computing . 17 (5): 989– 996. doi : 10.1137/0217062 .
  • Raymond Greenlaw, H. James Hoover, Fundamentos de la teoría de la computación: principios y práctica , Morgan Kaufmann, 1998, ISBN 1-55860-474-Xpágs.  45-51
  • Elaine Rich , Autómatas, computabilidad y complejidad: teoría y aplicaciones , Prentice Hall, 2008, ISBN 0-13-228806-0, sección 28.10 "Las clases de problemas FP y FNP", págs.  689–694