Documente Academic
Documente Profesional
Documente Cultură
k
P:
En el nivel 0 se definen
0
P,
0
P y
0
P, los tres iguales a P
En los niveles 1, 2, , se definen, para k 0:
k+1
P = P
kP
k+1
P = NP
kP
k+1
P = CO-NP
kP
Computabilidad, Complejidad Computacional y Verificacin de Programas 186
As, la jerarqua polinomial tiene a la clase P en el nivel 0; a las clases P, NP y CO-NP
en el nivel 1 (simplificando); a las clases P
NP
, NP
NP
y CO-NP
NP
en el nivel 2; etc. Es
natural asumir que las tres clases del nivel 1 en adelante son distintas y se relacionan de
la misma manera. Toda clase de un nivel incluye a todas las clases de los niveles
inferiores. De esta manera, alcanza con definir a la jerarqua polinomial como la unin
infinita de las clases
k
P. Se la denota con PH (por polynomial hierarchy o jerarqua
polinomial). Se prueba que PH PSPACE. Por otra parte, no se sabe si a partir de un
determinado k se cumple
k
P =
k+1
P, lo que se conoce como colapso de la jerarqua
polinomial. La jerarqua podra colapsar an si P NP. Un ejemplo de problema
clasificado en trminos de la jerarqua polinomial es el del circuito booleano mnimo. El
problema consiste en establecer si un circuito booleano es el ms pequeo que existe
para computar una funcin booleana determinada. Se prueba que el problema pertenece
a la clase
2
P = CO-NP
NP
, y no se sabe si es completo en la clase. Otro problema
clsico de la jerarqua polinomial es el problema QBF
k
, caso particular de QBF con
frmulas de la forma
X
1
X
2
X
3
QX
k
()
siendo Q = o segn k sea impar o par, respectivamente, y X
1
, , X
k
una particin
de las variables de la frmula . Se prueba que QBF
k
es
k
P-completo. Se han
encontrado pocos problemas completos en la jerarqua polinomial. En particular, no se
conocen problemas PH-completos. Probablemente no existan, porque se prueba que si
se encuentra un problema PH-completo, entonces la jerarqua colapsa. Por lo tanto, PH
= PSPACE es otra condicin suficiente para que la jerarqua polinomial colapse, ya que
PSPACE tiene problemas completos. Tambin en este caso existe una caracterizacin
provista por la complejidad descriptiva. Se demuestra que la clase PH coincide con los
problemas que pueden especificarse mediante la lgica de segundo orden (ahora
completa, es decir no restringida a la lgica existencial, que es la que corresponde a NP,
ni a la lgica universal, que es la que corresponde a CO-NP).
TEMA 10.3. MQUINAS DE TURING PROBABILSTICAS
Los algoritmos probabilsticos conforman una alternativa muy til para el estudio de la
complejidad temporal de los problemas. Un algoritmo de este tipo es de tiempo
Ricardo Rosenfeld y Jernimo Irazbal 187
polinomial, y en determinados pasos elige aleatoriamente una continuacin entre varias,
lo que puede provocar que genere diferentes salidas en diferentes ejecuciones.
Conociendo la distribucin de las salidas, se efectan asunciones con una determinada
probabilidad.
El modelo computacional asociado lo constituyen las mquinas de Turing
probabilsticas, las cuales se definen como MT no determinsticas que trabajan en
tiempo polinomial y tienen un criterio de aceptacin distinto al considerado hasta ahora:
aceptan o rechazan una entrada de acuerdo a la relacin que se cumple entre la cantidad
de computaciones de aceptacin y rechazo. Sin perder generalidad, se trabaja con MTN
con grado no determinstico dos, todos los pasos son no determinsticos, y todas las
computaciones ejecutan la misma cantidad polinomial de pasos con respecto a la
longitud de la entrada.
Esta aproximacin, que es la que tendremos en cuenta, se denomina on-line (en lnea, y
tambin se la conoce como de tiro de moneda o coin-flipping). Una aproximacin
alternativa, denominada off-line (fuera de lnea), consiste en manejar la aleatoriedad por
medio de una segunda cadena de entrada, que es una secuencia de unos y ceros cuya
longitud es la cantidad polinomial de pasos a ejecutar, determinando as para cada paso
la eleccin a adoptar.
Se definen distintos tipos de MT probabilsticas, y correspondientemente clases de
problemas con el mismo nombre, segn el criterio de aceptacin que se adopte. Por
ejemplo, una mquina PP (por probabilistic polynomial time, o tiempo polinomial
probabilstico) acepta una entrada si y slo si la acepta en ms de la mitad de sus
computaciones. Siendo PP la clase de problemas asociada a las mquinas PP, se
demuestra fcilmente que NP PP (la prueba queda como ejercicio).
Un segundo tipo de MT probabilstica es la mquina RP (por randomized polynomial
time, o tiempo polinomial aleatorio). Se define de la siguiente manera:
Dada una entrada, la acepta en al menos 1/2 de sus computaciones o la rechaza
en todas.
Acepta una entrada si y slo si la acepta en al menos 1/2 de sus computaciones.
En el ejemplo que se presenta a continuacin, se describe una mquina RP para el
problema de composicionalidad.
Computabilidad, Complejidad Computacional y Verificacin de Programas 188
Ejemplo 10.5. MT probabilstica para la composicionalidad
Vamos a construir una mquina RP M para establecer, con una determinada
probabilidad de error, si un nmero natural m es compuesto (no es primo). El algoritmo
se basa en una condicin de composicionalidad derivada de un teorema de Fermat: si m
es un nmero natural compuesto impar, entonces tiene al menos (m 1) / 2 testigos de
composicionalidad, siendo x un testigo de composicionalidad de m si 1 x < m y x
m 1
1 (mod m), o bien existen nmeros naturales z, i que cumplen z = (m 1) / 2
i
, y x
z
1
y m tienen un divisor comn diferente de 1 y m. Dado un nmero natural m, la mquina
RP M hace (para simplificar, no se considera que el grado del no determinismo de M
sea dos, ni que todos sus pasos sean no determinsticos):
1. Si m es par, acepta.
2. Hace x := random(1, m 1).
3. Si x es un testigo de composicionalidad, acepta, y en caso contrario, rechaza.
La funcin random(1, m 1) selecciona aleatoriamente un nmero entre 1 y m 1. Se
prueba que se puede determinar eficientemente si x es un testigo de composicionalidad.
Notar que si m es primo, todas las computaciones de M rechazan, y as la probabilidad
de error es cero, y si m es compuesto, al menos la mitad de las computaciones de M
aceptan, por lo que la probabilidad de error en este caso es a lo sumo 1/2.
Fin de Ejemplo
Siguiendo con la mquina RP M del ejemplo, la probabilidad de error para determinar si
un nmero es compuesto se puede achicar arbitrariamente de la siguiente manera:
Se itera k veces la mquina M a partir de un mismo nmero m, por ejemplo 100
veces.
Si en alguna iteracin M acepta, entonces se acepta: m es un nmero compuesto
porque es par o porque es impar y tiene un testigo de composicionalidad. En este
caso la probabilidad de error es cero.
Si en cambio al cabo de las 100 iteraciones M rechaza, entonces se rechaza: m es
un nmero primo y por eso no se encuentran testigos de composicionalidad, o
Ricardo Rosenfeld y Jernimo Irazbal 189
bien es un nmero compuesto. En este ltimo caso, la probabilidad de error es a
lo sumo 2
100
, asumiendo que toda iteracin es independiente de las anteriores.
Este mecanismo de iteracin aplica a cualquier problema de la clase RP asociada a las
mquinas RP. Las mquinas RP nunca aceptan mal. Pueden rechazar mal, pero con una
probabilidad arbitrariamente pequea si se las itera un nmero hasta polinomial de
veces con respecto a la longitud de las entradas (con las mquinas PP no ocurre lo
mismo, para alcanzar una probabilidad de error arbitrariamente pequea puede llegar a
necesitarse iterar un nmero exponencial de veces). Notar que en base a este esquema
iterativo, la clase RP no cambia si se modifica la definicin de las mquinas RP,
reemplazando la fraccin 1/2 por otra menor. Se prueba fcilmente que P RP (queda
como ejercicio).
Si CO-RP es la clase complemento de RP, entonces las mquinas asociadas ahora
pueden aceptar errneamente (con probabilidad a lo sumo 1/2) y no pueden rechazar
errneamente. Por lo tanto, la clase RP CO-RP incluye lenguajes que se reconocen
por medio de dos algoritmos probabilsticos distintos, uno sin aceptaciones errneas y
otro sin rechazos errneos. Ejecutando los dos algoritmos independientemente k veces,
la probabilidad de no obtener una respuesta definitiva es a lo sumo 2
k
. La diferencia de
este algoritmo compuesto con el que vimos antes es que nunca responde errneamente.
La probabilidad de no tener una respuesta definitiva puede hacerse arbitrariamente
pequea. Existe un algoritmo de este tipo para el problema de primalidad, que utiliza el
que mostramos en el ejemplo anterior para la composicionalidad, y que se vale de una
propiedad que, al igual que los nmeros compuestos, tambin tienen los nmeros
primos, de abundancia de testigos (en este caso testigos de primalidad), chequeable
eficientemente. La idea general de dicho algoritmo compuesto es la siguiente. Dado un
nmero natural m:
1. Elige aleatoriamente un posible testigo de primalidad x, y chequea si
efectivamente x es un testigo de primalidad. Si lo es, acepta.
2. Elige aleatoriamente un posible testigo de composicionalidad z, y chequea si
efectivamente z es un testigo de composicionalidad. Si lo es, rechaza.
3. Si los pasos 1 y 2 se iteraron un nmero suficiente de veces, entonces responde
que no hay respuesta, y en caso contrario vuelve al paso 1.
Computabilidad, Complejidad Computacional y Verificacin de Programas 190
Los algoritmos de este tipo, en que puede haber adems de aceptacin y rechazo una
respuesta indefinida, se conocen como algoritmos de Las Vegas (para diferenciarlos de
los otros, que se denominan algoritmos de Monte Carlo). Las mquinas probabilsiticas
correspondientes se denominan ZPP (por zero probabilistic polynomial time, o tiempo
polinomial probabilstico con cero probabilidad de error), lo mismo que la clase de
problemas asociada, definida entonces como ZPP = RP CO-RP. Claramente, se
cumple que P ZPP (la prueba queda como ejercicio).
El ltimo tipo de MT probabilstica que vamos a presentar es la mquina BPP (por
bounded probabilistic polynomial time, o tiempo polinomial probabilstico acotado). Se
define de la siguiente manera:
Dada una entrada, la acepta en al menos 3/4 de sus computaciones o la rechaza
en al menos 3/4 de sus computaciones.
Acepta una entrada si y slo si la acepta en al menos 3/4 de sus computaciones.
Es decir que esta mquina es otra variante de los algoritmos de Monte Carlo. Acepta por
clara mayora o rechaza por clara mayora. Como en el caso de las mquinas RP, se
puede modificar su definicin sin alterar la clase de problemas BPP asociada (la
fraccin 3/4 se puede reemplazar por cualquier otra mayor que 1/2). Y al igual que con
las mquinas RP y ZPP, se pueden obtener probabilidades de error muy bajas iterando
una cantidad polinomial de veces. Se cumple que RP BPP PP (la prueba queda
como ejercicio).
Integrando las relaciones entre las clases probabilsticas mencionadas anteriormente,
queda:
P ZPP RP BPP PP
P ZPP RP NP PP
No se sabe si las inclusiones son estrictas. Tambin se desconoce si BPP NP. Es
habitual de todos modos considerar tratables a los problemas de ZPP, RP y BPP (bajo la
hiptesis de que los algoritmos probabilsticos son implementables, es decir que se
cuenta con generadores confiables de nmeros aleatorios), y as no se espera que alguna
mquina ZPP, RP o BPP resuelva un problema NP-completo. En la prctica, a veces el
Ricardo Rosenfeld y Jernimo Irazbal 191
uso de estas mquinas apunta a resolver ms simple o eficientemente que las MT
determinsticas determinados problemas de P y NPI.
En la complejidad espacial tambin se definen clases probabilsticas, anlogas a las
anteriores, como por ejemplo RL y BPL. En este caso, las mquinas probabilsticas
trabajan en espacio logartmico. Al igual que la conjetura P = RP = BPP, se suelen
considerar las igualdades DLOGSPACE = RL = BPL.
Otra utilizacin de la teora de probabilidades, que ya mencionamos en la Clase 6, es la
que se relaciona con el criterio del caso promedio en lugar del peor caso para el clculo
del tiempo de un algoritmo. En este caso se debe considerar la distribucin de la
poblacin de las entradas de las MT, lo que comnmente es una tarea difcil. Cabe
destacar que existen problemas NP-completos que resultan tratables si se considera el
tiempo promedio de resolucin. Un rea en la que particularmente no aplica el criterio
del peor caso es la criptografa de clave pblica, basada en la posibilidad de que existan
funciones difciles de invertir. Nos referimos a las funciones one-way (o de sentido
nico). Estas son funciones inyectivas f que se computan eficientemente, tales que para
toda cadena w, f(w) es a lo sumo polinomialmente ms grande o ms pequea que w, y
la funcin inversa f
1
no es computable eficientemente (es decir que las cadenas de
salida de la funcin inversa de una funcin one-way son ineficientemente computables
pero eficientemente chequeables). Por lo tanto, slo si P NP pueden existir funciones
de este tipo. Una funcin one-way candidata es la multiplicacin de enteros. Si bien
existen algoritmos de tiempo subexponencial, al da de hoy no se conoce una manera
eficiente para obtener los factores del producto de dos nmeros primos muy grandes, es
decir para factorizarlo. Otra funcin candidata es la exponenciacin mdulo primo,
denotada con r
x
mod p, siendo p un nmero primo. Invertir esta funcin, es decir
obtener x, es un problema bien conocido, computacionalmente difcil, denominado
logaritmo discreto. Se han encontrado algoritmos cunticos polinomiales que resuelven
este ltimo problema y la factorizacin. Lo cierto es que la criptografa de clave pblica
se basa en el supuesto de la existencia de funciones one-way. El esquema de clave
pblica trabaja esencialmente con dos claves, una clave pblica c y una clave privada d.
La transmisin de un mensaje w se efecta encriptndolo mediante un algoritmo
polinomial C(c, w) = v, mientras que la decodificacin del mensaje se lleva a cabo por
medio de otro algoritmo D(d, v) = w, de modo tal que no se puede obtener
eficientemente la clave d a partir de la clave c, ni el mensaje w a partir del mensaje v sin
conocer la clave d. Naturalmente, no es aceptable en este esquema tratar con el criterio
Computabilidad, Complejidad Computacional y Verificacin de Programas 192
del peor caso (por ejemplo, no es razonable permitir que la mitad de los mensajes
encriptados sean fcilmente decodificados). De esta manera se maneja una acepcin
ms restringida de funcin one-way, en que se requiere entre otras cosas que la
ejecucin de la funcin inversa sea ineficiente para un alto porcentaje de las cadenas, y
que los algoritmos involucrados sean probabilsticos en lugar de determinsticos.
TEMA 10.4. LA CLASE NC
Adems de las clases espaciales DLOGSPACE y NLOGSPACE, existe una clase
temporal que se conjetura que est incluida estrictamente en P. Se denomina NC (por
Nick's class, o la clase de Nick, en homenaje a Nick Pippenger, quien trabaj sobre este
tema), y se interpreta como la clase de los problemas de P que se pueden resolver
mucho ms rpido con algoritmos paralelos.
El modelo de ejecucin con paralelismo ms conocido en que se considera la clase NC
lo constituyen las familias polinomiales uniformes de circuitos booleanos. Una familia
de circuitos booleanos es una secuencia de circuitos booleanos c
1
, c
2
, , que acepta la
unin de los lenguajes reconocidos por los c
n
. Todo c
n
tiene n compuertas de entrada y
una compuerta de salida (tambin se pueden contemplar varias compuertas), su tamao
(cantidad de compuertas) se denota con H(c
n
), y su profundidad (longitud del camino
ms largo desde una compuerta de entrada hasta la compuerta de salida) se denota con
T(c
n
). Intuitivamente, el tamao es la cantidad de procesadores, y la profundidad es el
tiempo paralelo. Las familias de circuitos booleanos son polinomiales porque H(c
n
) es
polinomial con respecto a n, restriccin natural sosteniendo la analoga con la cantidad
de procesadores de una computadora real. Por otro lado, que las familias sean uniformes
significa que existe una MTD que computa la funcin 1
n
c
n
en espacio O(log H(c
n
));
la idea es que todos los circuitos booleanos representen un mismo algoritmo, para evitar
inconsistencias.
Antes de caracterizar a la clase NC, cabe destacar lo siguiente en el marco del modelo
de paralelismo considerado:
Se prueba que un lenguaje pertence a P si y slo si existe una familia polinomial
uniforme de circuitos booleanos que lo reconoce, por lo que este modelo podra
contribuir a probar la conjetura P NP. De hecho, existe una conjetura que
plantea que los problemas NP-completos no pueden resolverse por medio de
Ricardo Rosenfeld y Jernimo Irazbal 193
familias de circuitos booleanos polinomiales (uniformes o no uniformes).
Incluso se demuestra que si SAT se puede resolver por circuitos booleanos
polinomiales, entonces la jerarqua polinomial colapsa en el segundo nivel.
Se define como costo o trabajo total de un circuito booleano al producto de su
tamao por su profundidad, o en otras palabras, a la cantidad de pasos
ejecutados en conjunto por todos sus procesadores. Como un algoritmo
paralelo puede simularse por uno secuencial, entonces el costo total del primero
no puede ser menor que el mejor tiempo del segundo. De esta manera, el
paralelismo no puede resolver eficientemente ningn problema NP-completo,
asumiendo P NP: costo total exponencial con tamao polinomial implica
profundidad exponencial.
La clase NC es la clase de los lenguajes que pueden reconocerse por familias
polinomiales uniformes de circuitos booleanos de profundidad polilogartmica con
respecto al tamao de las entradas. Se define como la unin infinita de subclases NC
k
,
cada una de las cuales se asocia a circuitos booleanos de profundidad O(log
k
n). Como
dijimos previamente, se asume que NC caracteriza a los problemas de decisin con
solucin paralela eficiente. La clase FNC se define de manera similar considerando los
problemas de bsqueda. Algunos ejemplos de problemas en NC son las cuatro
operaciones aritmticas elementales, el problema de la alcanzabilidad en grafos
(orientados o no orientados), distintas operaciones con matrices de n
2
elementos como el
producto, el determinante y la inversa, etc.
Se prueba fcilmente que NC P:
Los circuitos booleanos c
n
tienen tamao H(c
n
) polinomial con respecto a n, se
pueden generar en espacio determinstico O(log H(c
n
)) por la condicin de
uniformidad, y as en tiempo determinstico polinomial con respecto a n.
El problema de evaluacin de circuitos booleanos (CIRCUIT VALUE)
pertenece a P.
No se sabe si la inclusin es estricta. Asumiendo NC P, como se cumple que NC es
cerrada con respecto a las reducciones log-space, entonces probar que un lenguaje L es
P-completo con respecto a las reducciones log-space implica que L NC. As como
asumiendo P NP se prueba que existe la clase de complejidad intermedia NPI,
Computabilidad, Complejidad Computacional y Verificacin de Programas 194
asumiendo NC P pueden haber en P problemas no P-completos fuera de NC. Como
ejemplo de problema P-completo ya hemos mencionado al problema CIRCUIT
VALUE. Otro ejemplo clsico es el problema del flujo mximo en una red: en su
versin de problema de decisin, consiste en determinar, dado un grafo con arcos con
capacidades, si se puede transportar un flujo de valor al menos B desde un vrtice v
1
con grado de entrada 0 hasta un vrtice v
2
con grado de salida 0. Como CIRCUIT
VALUE, este problema parece ser inherentemente secuencial.
Tambin se prueba
NC
1
DLOGSPACE NLOGSPACE NC
2
Por lo tanto, asumiendo NC
1
DLOGSPACE, encontrar un lenguaje L que sea
DLOGSPACE-completo con respecto a un tipo de reduccin adecuada implica que L no
admite una solucin paralela de tiempo logartmico. Y ms en general, considerando
NC P, y por lo tanto DLOGSPACE P, probar que un problema es P-completo con
respecto a las reducciones log-space significa que no admite una resolucin eficiente ni
en trminos de tiempo paralelo ni en trminos de espacio determinstico logartmico, o
en otras palabras, que resolverlo requiere mucha informacin simultnea en memoria.
La clase NC tambin se puede definir en trminos de las mquinas PRAM (por parallel
random access machines, o mquinas de acceso aleatorio paralelo), que constituyen la
versin paralela de las mquinas RAM que tratamos en el Tema 5.1. Las PRAM son
mquinas sincrnicas (todos los procesadores ejecutan una instruccin al mismo tiempo
y todas las instrucciones tardan lo mismo), y tienen una nica memoria global
compartida por todos los procesadores. Como en el caso de los circuitos booleanos, se
establece una condicin de uniformidad: debe existir una MTD que genere las PRAM
en espacio logartmico con respecto a la longitud de los inputs. En trminos de este
modelo de ejecucin alternativo, ms cercano a las computadoras reales, NC se define
como la clase de los problemas que se resuelven en tiempo polilogartmico mediante
PRAM con una cantidad polinomial de procesadores.
Ejercicios de la Clase 10
1. Probar que las Cook-reducciones son reflexivas y transitivas.
2. Completar la prueba del Ejemplo 10.2.
Ricardo Rosenfeld y Jernimo Irazbal 195
3. Probar que SAT es auto-reducible.
4. Probar que los siguientes incisos son equivalentes:
i. A es Cook-reducible a B.
ii. A
C
es Cook-reducible a B.
iii. A es Cook-reducible a B
C
.
iv. A
C
es Cook-reducible a B
C
.
5. Probar que NP es cerrado con respecto a las Cook-reducciones si y slo si NP es
cerrado con respecto al complemento.
6. Probar que FSAT es FNP-completo.
7. Dada una frmula booleana , sea V() la funcin que calcula la cantidad de
asignaciones de valores de verdad que satisfacen . Se define que A es una
aproximacin de una funcin f con respecto a una cota C 1, si es una funcin que
cumple que (f(x) / C) A(x) (f(x) . C). Probar que si existe una aproximacin A
en P de la funcin V con respecto a una cota C 1, entonces P = NP.
8. Completar la prueba del Ejemplo 10.4.
9. Probar que el problema QBF
k
es efectivamente un caso particular de QBF.
10. Justificar, en el marco de la complejidad temporal, que no se pierde generalidad
cuando se trabaja con MTN con grado no determinstico dos, todos los pasos son no
determinsticos, y todas las computaciones ejecutan la misma cantidad de pasos.
11. El problema MAJSAT (por majority satisfactibility, es decir satisfactibilidad por
mayora), consiste en determinar si una frmula booleana es satisfactible por al
menos la mitad ms uno de las asignaciones de valores de verdad posibles. Probar
que MAJSAT PP.
12. Probar:
i. La clase RP no cambia si se modifica la definicin de las mquinas RP,
reemplazando la fraccin 1/2 por cualquier otra.
ii. La clase BPP no cambia si se modifica la definicin de las mquinas BPP,
reemplazando la fraccin 3/4 por cualquier otra que sea mayor que 1/2.
13. Probar que las clases RP y BPP son cerradas con respecto a la interseccin y la
unin.
14. Probar que las clases ZPP, RP, BPP y PP son cerradas con respecto a las
reducciones polinomiales.
15. Probar:
i. P ZPP RP BPP PP.
Computabilidad, Complejidad Computacional y Verificacin de Programas 196
ii. RP NP PP.
iii. Si NP BPP, entonces NP = RP.
16. Probar que a partir de una MTD M que trabaja en tiempo T(n), se puede construir en
espacio logartmico una familia de circuitos booleanos de tamao O(T
2
(n)) que
reconoce L(M).
17. Considerando el ejercicio anterior, probar que CIRCUIT VALUE es P-completo con
respecto a las reducciones log-space, como se indic previamente. Probar adems
que la P-completitud de CIRCUIT VALUE sigue valiendo an con la restriccin de
que las compuertas de los circuitos booleanos sean slo de tipo o bien .