Está en la página 1de 16

ISAE UNIVERSIDAD

FACULTAD DE CIENCIAS TECNOLGICAS


FUNDAMENTO DE MATEMATICAS
DISCRETA PARA COMPUTADORA

ELEMENTOS DE COMPLEJIDAD ALGORIMICA


JAIME REYES GONZALES
8-478-725
Grupo LE #9-10

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

valor calculado a partir del nmero de variables implicadas (generalmente variables de


entrada) usando una frmula polinmica, se dice que dicho problema se puede resolver
en un tiempo polinmico.

Por ejemplo,
si determinar el camino ptimo que debe recorrer un cartero que pasa por
necesita menos de

casas

segundos, entonces el problema es resoluble en un "tiempo

polinmico".
De esa manera, tiempos de

son polinmicos; pero

no lo es.
Dentro de los tiempos polinmicos, podemos distinguir los logartmicos
lineales

, los cuadrticos

, los cbicos

, los

, etc.

La complejidad temporal se expresa normalmente utilizando la notacin notacin O o


de la O grande, con la cual se dispone de un medio para expresar la cota asinttica de
una funcin en el peor de los casos. El trmino asinttico es referente al tamao de la
entrada del problema, en este caso para un valor de n grande. El peor de los casos indica
cuando el algoritmo computacional lleva a cabo el total de las instrucciones que el
algoritmo puede ejecutar. Es una expresin aproximada de la relacin entre el tamao de
un problema y la cantidad de instrucciones necesarias en el algoritmo para obtener un
resultado.

Ejemplos de esto son:

Funcin

Complejidad

Los ejemplos mostrados no son tan sencillos de evaluar

tempora

asinttica

como parecen, es solo una muestra de un anlisis detallado

l f(n)
3.5n2
2 n3
n4
2n2+3n-1

O(n2)
O(n3)
O(n4)
O(n2)

que debe realizarse a una serie de instrucciones que se aplican en un algoritmo


computacional para resolver un problema.
El tiempo de ejecucin de una secuencia consecutiva de instrucciones se calcula los
tiempos de ejecucin de cada una de las instrucciones.
El tiempo de ejecucin de la sentencia

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

v1, v2 ,..., vn.


El tiempo de ejecucin de la sentencia
IF C THEN S1 ELSE S2 END; es

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:

i:=1;WHILE i<=n DOS; INC(i) END;


El tiempo de ejecucin de una llamada a un procedimiento o funcin
F(P1, P2,..., Pn) es 1 (por la llamada), ms el tiempo de evaluacin de los parmetros P1,
P2,..., Pn, ms el tiempo que tarde en ejecutarse
F, esto es,T = 1 + T(P1) + T(P2) + ... + T(Pn) + T(F).
No contabilizamos la copia de los argumentos a la pila de ejecucin, salvo que se trate de
estructuras complejas (registros o vectores) que se pasan por valor. En este caso
contabilizaremos
Tantas OE como valores simples contenga la estructura. El paso de parmetros por
referencia, por tratarse simplemente de punteros, no contabiliza tampoco.
El tiempo de ejecucin de las llamadas a procedimientos recursivos va a dar lugar a
ecuaciones en recurrencia, que veremos posteriormente.
Tambin es necesario tener en cuenta, cuando el compilador las incorpore, las
optimizaciones del cdigo y la forma de evaluacin.

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.

Demustrese que no existe el conjunto { (A, B) | A B }.


Respecto de la relacin de dominacin puede ocurrir, a priori, para dos conjuntos
Arbitrarios A y B, la siguiente toracotoma
1. ) A B y B A.
2. ) A B pero B _ A.
3. ) A _ B pero B A.
4. ) A _ B y B _ A.
Posteriormente, demostraremos que en el

primer

caso obtenemos que A y B sean isomorfos,

que sean

indistinguibles en la teora de conjuntos, que

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

La proposicin que sigue establece que la relacin binaria, , de dominacin sobre el


universo de los conjuntos, tiene las propiedades de una relacin de pre orden, i.e.,es
reflexiva y transitiva.

Sean A, B y C tres conjuntos. Entonces:


1. A A.
2. Si A B y B C, entonces A C.
Demostracin. Esta Proposicin se deduce inmediatamente de la Proposicin.
Ejercicio
Demustrese que la clase relacional 1 tiene las propiedades de una relacin de
equivalencia, i.e., es reflexiva simtrica y transitiva.
Teorema
El teorema de Cantor que sigue, establece que cada conjunto est dominado por
Otro conjunto, concretamente, por el conjunto de sus partes.
Para cada conjunto A, hay un monomorfismo natural
de A en Sub(A), i.e., hay un {} A : A __ /Sub(A)
tal que, para cada aplicacin

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

La definicin anterior de NP permite considerar de manera natural una clase de problemas


complementarios. La co-NP est compuesta por los problemas que tienen un
contraejemplo sucinto para todas las instancias cuya respuesta es NO.

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:

Ahora deberemos demostrar que G tiene un subgrafo completo de tamao k si es


satisfactible. Como todos los miembros del subgrafo pertenecen a clusulas distintas,
cualquier valuacin que hace verdadero a todo literal en el subgrafo hace verdadera a la
frmula (recordemos que dos literales complementarios no pueden estar en un subgrafo
completo). Si la frmula es satisfecha, debe existir una valuacin que haga verdaderos a
al menos un literal en cada clusula. Sean l1 pertenece a C1, l2 pertenece a C2, . . . , lk
pertenece Ck estos literales. Notemos que no es posible que existan dos literales
complementarios li y lj. Necesariamente, entonces, podemos construir arcos entre cada
par de nodos en donde aparecen dichos literales siguiendo las reglas de construccin del
grafo.

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

La matemtica discreta Para computadoras antes de realizar un programa conviene elegir


un buen algoritmo, donde por bueno entendemos que utilice pocos recursos, siendo
usualmente los ms importantes el tiempo que lleve ejecutarse y la cantidad de espacio
en memoria que requiera. Las matemticas discretas son un rea de las matemticas
encargadas del estudio de los conjuntos discretos: finitos o infinitos numerables

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

También podría gustarte