Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Profesora
Omaira E. Chrigo S
10 de diciembre de 2014
INDICE
Introduccin
Funcin de Complejidad en el tiempo
Relacin de Dominacin
Clases P y NP
Conclusiones
Infografa
INTRODUCCION
Hoy en da, a pesar de que las computadoras han evolucionado rpidamente y que
actualmente son capaces de procesar gran cantidad de operaciones por segundo, todava
existen problemas cuya solucin puede tardar aos en obtenerse.
Es difcil realizar un anlisis simple de un algoritmo que determine la cantidad exacta de
tiempo que ste requiere para ser ejecutado porque depende en gran parte del algoritmo y
de la computadora en que se ejecute.
Al hablar del uso eficiente de los recursos, ste puede medirse en funcin de dos
indicadores: el espacio (cantidad de memoria que utiliza) y tiempo (que tarda en
ejecutarse). Si para resolver un problema P, un algoritmo A, requiere de poca memoria del
equipo de cmputo y/o ejecuta un pequeo nmero de instrucciones comparado con el
resto de los algoritmos conocidos que resuelven el P, entonces se puede afirmar que A es
ms eficiente que los restantes cuando se resuelve P.
FUNCIN DE
COMPLEJIDAD EN EL
TIEMPO.
En
computacin, cuando el
tiempo
de ejecucin de un
algoritmo (mediante el cual se obtiene una solucin al problema) es menor que un cierto
Por ejemplo,
si determinar el camino ptimo que debe recorrer un cartero que pasa por
necesita menos de
casas
polinmico".
De esa manera, tiempos de
no lo es.
Dentro de los tiempos polinmicos, podemos distinguir los logartmicos
lineales
, los cuadrticos
, los cbicos
, los
, etc.
Funcin
Complejidad
tempora
asinttica
l f(n)
3.5n2
2 n3
n4
2n2+3n-1
O(n2)
O(n3)
O(n4)
O(n2)
CASE C OF v1:S1|v2:S2|...|vn:Sn
END; es T = T(C) + max{T(S1),T(S2),...,T(Sn)}.
Obsrvese que T(C) incluye el tiempo de comparacin con
T = T(C) + max{T(S1),T(S2)}.
El tiempo de ejecucin de un bucle de sentencias
WHILE C DO S END; es T = T(C) + (n iteraciones)*(T(S) + T(C))}
. Obsrvese que tanto T(C) como T(S)
Pueden variar en cada iteracin, y por tanto habr que tenerlo en cuenta para su clculo.
Para calcular el tiempo de ejecucin del resto de sentencias iterativas (FOR,
REPEAT, LOOP) basta expresarlas como un bucle WHILE. A modo de ejemplo,
el tiempo de ejecucin del bucle:
FOR i:=1 TO n DOS END;
Puede ser calculado a partir del bucle equivalente:
RELACIN DE DOMINACIN
Haciendo uso del concepto de aplicacin inyectiva, definimos una clase relacional binaria
sobre el universo de los conjuntos, la de dominacin, sobre la que se fundamentar en una
seccin posterior,
la comparacin entre los cardinales.
Sean A y B dos conjuntos. Decimos que B domina a A, o que A esta dominado por B, si
hay un monomorfismo de A en B. Si tal es el caso lo denotamos por A B.
EJERCICIO.
primer
que sean
es el
Teorema de Cantor-Bernstein;
Y que el ltimo caso no puede darse, ya que, como consecuencia del axioma de eleccin,
siempre se cumple que, para cualesquiera conjuntos A y B,
A B o B A.
Proposicin
f : A /B, el diagrama:
Conmuta. As pues, con la terminologa anterior, cada conjunto A esta dominado por
Sub(A).
Demostracin. Sea A un conjunto. Entonces la aplicacin {} A: A __ /Sub(A), Definida
como:
{
Es un monomorfismo.
Por otra parte, si f : A B y a A, entonces
{} B (f(a)) = {f(a)} y f[{}A(a)] = {f(a)},
Luego {} B f = f[] {}
A. Por consiguiente el diagrama conmutacin
Obsrvese que la definicin de las aplicaciones {} A y {} B es la misma, i.e., es
Independiente del conjunto que se considere, dicho de otro modo la familia de
aplicaciones
({} A) A V es una transformacin natural entre dos factores convenientes.
Ms adelante demostraremos que Sub(A) no est dominado por A
CLASES P Y NP
La clase P
P es conocido por contener muchos problemas
naturales,
incluyendo las versiones de decisin de
programa lineal,
clculo del mximo comn divisor, y encontrar una correspondencia mxima.
Problemas notables en P
Algunos problemas naturales son completos para P, incluyendo la conectividad (o la
accesibilidad) en grafos no dirigidos.
Una generalizacin de P es NP, que es la clase de lenguajes decidibles en tiempo
polinmico sobre una mquina de Turing no determinista. De forma trivial, tenemos que P
es un subconjunto de NP. Aunque no est demostrado, la mayor parte de los expertos
creen que esto es un subconjunto estricto.
Aqu, EXPTIME es la clase de problemas resolubles en tiempo exponencial. De todas las
clases.
Los problemas ms difciles en P son los problemas P-completos
Otra generalizacin de P es el Tiempo polinmico No uniforme (P/Poly)[1]. Si un problema
est en P/poly, entonces puede solucionarse en un tiempo polinomial determinado el cual,
dado una cadena, este solo depende de la longitud de la entrada. A diferencia de NP, no
se comprueban las cadenas defectuosas que entran en la mquina de Turing, puesto que
no es un verificador.
P/poly es una clase grande que contiene casi todos los algoritmos prcticos, incluyendo
todo el BPP. Si esta contiene a NP, la jerarqua polinomial se colapsa con el segundo nivel.
Por otra parte, esta tambin contiene algunos algoritmos poco prcticos, incluyendo
algunos problemas no decidibles.
Propiedades
Los algoritmos de tiempo polinmico son cerrados respecto a la composicin.
Intuitivamente, esto quiere decir que si uno escribe una funcin con un determinado
tiempo polinmico y consideramos que las llamadas a esa misma funcin son constantes
y, de tiempo polinmico, entonces el algoritmo completo es de tiempo polinmico. Esto es
uno de los motivos principales por los que P se considera una mquina independiente;
algunos rasgos de esta mquina, como el acceso aleatorio, es que puede calcular en
tiempo polinmico el tiempo polinmico del algoritmo principal reducindolo a una
mquina ms bsica.
Las pruebas existenciales de algoritmos de tiempo polinmico
Se conoce que algunos problemas son resolubles en tiempo polinmico, pero no se
conoce ningn algoritmo concreto para solucionarlos. Por ejemplo, el teorema RobertsonSeymour garantiza que hay una lista finita de los menores permitidos que compone (por
ejemplo) el conjunto de los grafos que pueden ser integrados sobre un toroide; adems,
Robertson y Seymour demostraron que hay una complejidad O (n 3) en el algoritmo para
determinar si un grafo tiene un grafo incluido. Esto nos da una prueba no constructiva de
que hay un algoritmo de tiempo polinmico para determinar si dado un grafo puede ser
integrado sobre un toroide, a pesar de no conocerse ningn algoritmo concreto para este
problema.
Ejemplos
Camino Mnimo: encontrar el camino mnimo desde un vrtice origen al resto de los
vrtices.
Ciclo Euleriano: Encontrar un ciclo que pase por cada arco de un grafo una nica vez.
La Clase NP
La clase NP est compuesta por los problemas que tienen un certificado sucinto (tambin
llamado testigo polinmico) para todas las instancias cuya respuesta es un S. La nica
forma de que tengan un tiempo polinomial es realizando una etapa aleatoria, incluyendo el
azar de alguna manera para elegir una posible solucin, y entonces en etapas posteriores
comprueba si esa solucin es correcta.
En otras palabras, dada una solucin para una cierta instancia, es posible comprobar que
es vlida en TIME (n^k). En el caso de SAT (Problema de satisfacibilidad booleana), dado
una asignacin de valores de verdad, se puede comprobar fcilmente si la frmula es
cierta o no. Una nMT puede "adivinar" la solucin en O (n) y verificarla en tiempo
polinmico.
Completitud de NP
Para analizar la pregunta P = NP, resulta muy til el concepto de completitud NP. De
manera informal, los problemas de completitud NP son los problemas ms "difciles" en
NP en el sentido de que ellos son los que son ms probable no se encuentren en P.
Problemas NP-difciles son aquellos para los cuales cualquier problema en NP puede ser
reducido en tiempo polinmico. Los problemas de completitud NP son aquellos problemas
NP-difcil que se encuentran
en NP. Por
ejemplo, la versin de
problema de
decisin del problema del
vendedor
viajero es completamente
NP. As
ningn caso de ningn
problema en
NP puede ser transformado
mecnicamente en una parte
del problema
del vendedor viajero, en
tiempo
polinmico. Por lo tanto, si el
problema del
vendedor viajero estuviera
contenido en
P, entonces P = NP. El problema del vendedor viajero es uno de muchos problemas NPcompletos. Si cualquier problema NP-completo se encuentra contenido en P, entonces se
verificara que P = NP. Desafortunadamente, se ha demostrado que muchos problemas
importantes son NP-completos y no se conoce la existencia de ningn
Problema
Denominamos Clique al siguiente problema:
Dado un grafo G y un entero k, es posible encontrar un subgrafo de G completo de
tamao k?
Claramente Clique pertenece a NP.
Ahora deberemos hacer una reduccin de SAT a NP.
Supongamos que tenemos una frmula en CNF:
C1 v C2 v . . . v Ck con n variables proposicionales.
Formaremos un grafo G con un nodo por cada literal que aparece en cada clusula. Cada
nodo est etiquetado con el literal que le dio origen. Agregaremos un arco entre un nodo
etiquetado con l y un nodo etiquetado con l0 si y solo si:
l y l0 estn en clusulas distintas.
l no es el literal complementario de l.
Supongamos la siguiente frmula: (x1 v x2 v x3) ^ (x1 v x3) ^ (x3 v x2). El grafo
resultante queda como:
Ejemplos
Camino Mximo: Dados dos vrtices de un grafo encontrar el camino (simple) mximo.
Ciclo Hamiltoniano: Ciclo simple que contiene cada vrtice del grafo.
NP-Completo[editar]
Para abordar la pregunta de si P=NP, el concepto de la completitud de NP es muy til.
Informalmente, los problemas de NP-completos son los problemas ms difciles de NP, en
el sentido de que son los ms probables de no encontrarse en P. Los problemas de NPcompletos son esos problemas NP-duros que estn contenidos en NP, donde los
problemas NP-duros son estos que cualquier problema en NP puede ser reducido a
complejidad polinomial. Por ejemplo, la decisin del Problema del viajante de comercio es
NP-completo, as que cualquier caso de cualquier problema en NP puede ser
transformado mecnicamente en un caso del Problema del viajante de comercio, de
complejidad polinomial. El Problema del viajante de comercio es de los muchos problemas
NP-completos existentes. Si cualquier problema NP-completo estuviera en P, entonces
indicara que P=NP. Desafortunadamente, se sabe que muchos problemas importantes
son NP-completos y a fecha de 2008, no se conoce ningn algoritmo rpido para ninguno
de ellos. Basndonos solo en esta idea, no es obvio que exista un problema NP-completo.
Un problema NP-completo trivial e ideado, se puede formular como: Dada una descripcin
de una mquina de Turing M que se detiene en tiempo polinmico, existe una entrada de
tamao polinmico que M acepte? Es NP porque, dada una entrada, es simple comprobar
si M acepta o no la entrada simulando M, es NP-duros porque el verificador para cualquier
caso particular de un problema en NP puede ser codificado como una maquina M de
tiempo polinomial que toma la solucin para ser verificada como entrada. Entonces la
pregunta de si el caso es o no un caso, est determinado por la existencia de una entrada
valida. El primer problema natural que se demostr ser NP-completo fue el Problema
booleano de satisfacibilidad. Este resultado es conocido como el teorema de Cook-Levin;
su prueba de que la satisfacibilidad es NP-completo contiene los detalles tcnicos sobre
mquinas de Turing y como se relacionan con la definicin de NP. Sin embargo, despus
se demostr que el problema era NP-completo, la prueba por reduccin, proporcion una
manera ms simple de demostrar que muchos otros problemas estn en esta clase. As,
una clase extensa de problemas aparentemente sin relacin es reducible a otra, y son en
este sentido el mismo problema.
Conclusiones
INFOGRAFIA
http://micursodeestructuradedatos.blogspot.com/2008/08/analisis-de-algoritmos.html
http://neofronteras.com/?p=3220
http://www.disfrutalasmatematicas.com/conjuntos/np-completo.HTML
http://www.dm.uba.ar/materias/optimizacion/2006/1/fbonomo_clase_npc.PDF
http://danieliha.blogspot.com/2011/07/clases-de-complejidad-computacional-p-y.html
http://centrodeartigo.com/articulos-utiles/article_112504.html
http://robotica.uv.es/pub/Libro/PDFs/CAPI7.pdf