Vous êtes sur la page 1sur 19

TeoradelaComplejidad

Pablo Avila, Andrs Heredia, Andrs Rojas

Forma de analizar, de reflexionar sobre determinados aspectos de la


naturaleza, la sociedad y el pensamiento.

Para estudiar un sistema es necesario elaborar un modelo, que ser una


representacin formal de la teora

Una vez planteado el modelo su resolucin prctica exige: un algoritmo


o mtodo de resolucin y un programa o codificacin de aquel en un
ordenador real.

Existen operacionesmatemticasque establecen laeficienciaterica


del programa, al estudio de estos casos se denomina Complejidad
Algortmica.

1.COMPLEJIDAD ALGORTMICA

Un algoritmo ser ms eficiente comparado con otro, siempre que consuma


menos recursos, como el tiempo y espacio de memoria

La complejidad de los algoritmos representa o seala el tiempo de ejecucin


de cualquier programa en base a los 'N' datos de entrada.

La eficiencia de un algoritmo puede ser cuantificada con las siguientes medidas:


a. Complejidad Temporal o Tiempo de ejecucin: Es el tiempo de cmputo
necesario para ejecutar algn programa

Para cada problema determinaremos una medida N, que se llamar tamao de


la entrada o nmero de datos a procesar por el programa.

No se puede establecer una regla para N, pues cada problema acarrea su


propia lgica y complejidad.

El tiempo de ejecucin de un programa se mide en funcin deN (cantidad de


datos), a lo que se designa comoT(N).

La funcin tiempo se puede calcular fsicamente ejecutando el programa


acompaado de un reloj, o calcularse directamente sobre el cdigo

b.Complejidad Espacial

Se define como la memoria que utiliza un programa para su ejecucin.

La eficiencia en memoria de un algoritmo indica la cantidad de espacio


requerido para ejecutar el algoritmo.

2.ORDENES DE COMPLEJIDAD:
Las funciones de complejidad algortmica ms habituales en las cuales el
nico factor del que dependen es el tamao de la muestra de entrada n,
ordenadas de mayor a menor eficiencia son:
ORDEN DE COMPLEJIDAD
O(1)

Orden constante

O(log n)

Orden logartmico

O(n)

Orden lineal

O(n log n)

Orden cuasi-lineal

O(n2)

Orden cuadrtico

O(n3)

Orden cbico

O(na)

Orden polinmico

O(2n)

Orden exponencial

O(n!)

Orden factorial

O(1): Complejidad constante. Cuando las instrucciones se ejecutan una vez.

O(log n): Complejidad logartmica. Esta suele aparecer en determinados


algoritmos con iteracin o recursin no estructural, ejemplo la bsqueda
binaria.

O(n): Complejidad lineal. Es una complejidad buena y tambin muy usual.


Aparece en la evaluacin de bucles simples siempre que la complejidad de las
instrucciones interiores sea constante.

O(n log n): Complejidad cuasi-lineal. Se encuentra en algoritmos de tipo


divide y vencers como por ejemplo en el mtodo de ordenacin quicksort y
se considera una buena complejidad.

O(n2): Complejidad cuadrtica. Aparece en bucles o ciclos doblemente


anidados. Si n se duplica, el tiempo de ejecucin aumenta cuatro veces.

O(n3): Complejidad cbica. Suele darse en bucles con triple anidacin. Si n se


duplica, el tiempo de ejecucin se multiplica por ocho

O(na): Complejidad polinmica (a > 3). Si a crece, la complejidad del


programa es bastante mala.

O(2n): Complejidad exponencial. No suelen ser muy tiles en la prctica por


el elevadsimo tiempo de ejecucin

Clases de complejidad:

Clase P

Contiene aquellos problemas de decisin que pueden ser resueltos en


tiempo polinmico. Aquellos problemas para los que la mejor solucin que
se conoce es de complejidad superior a la polinmica, se dice que son
problemas intratables
Clase NP

Problemas intratables pueden caracterizarse por el hecho de que puede


aplicarse un algoritmo polinmico para comprobar si una posible
solucin es valida o no.

Clase NP completos

Problemas de tipo NP de extrema complejidad. Se encuentran en la "frontera


externa" de la clase NP.

Son los peores problemas posibles de clase NP.

Si se descubriera una solucin para alguno de ellos, esta solucin sera


fcilmente aplicable a todos ellos.

Clase NP-duros.

Cualquier problema de decisin, pertenezca o no a problemas NP, el cual puede


ser transformado a un problema NPC, no podr ser resuelto en tiempo
polinomial a menos que P = NP.
Podemos decir que dicho problema es al menos tan difcil como un NP Completo.

Algoritmospara problemas NP-completos utilizan tiempo exponencial con


respecto al tamao de la entrada.

Se utiliza uno de los siguientes enfoques:

Aproximacin
Probabilstico
Restricciones
Casos particulares
Algoritmo gentico
Heursticas

INTRODUCCION A HEURISTICAS

Heursticas

Una heurstica es una tcnica que aumenta la eficiencia al resolver un


problema que puede resultar complejo sin una gua definida. Su
propsito es el de guiar el proceso de bsqueda en la mejor direccin
sugiriendo qu camino tomar cuando hay varias opciones.

La palabra heurstica procede del trmino griego (heuriskein),


que significa hallar, inventar

La popularizacin del concepto se debe al matemtico George Plya,


con su libro Cmo resolverlo (How to solve it) en 1957.

Si no consigues entender un problema, dibuja un esquema.

Si no encuentras la solucin, haz como si ya la tuvieras y mira qu


puedes deducir de ella (razonando a la inversa).

Si el problema es abstracto, prueba a examinar un ejemplo concreto.

Intenta abordar primero un problema ms general (es la paradoja del


inventor: el propsito ms ambicioso es el que tiene ms posibilidades
de xito).

El uso de las Heursticas se aconseja


cuando:

No existe un mtodo exacto de resolucin, o el mismo requiere de


mucho gasto computacional y/o de memoria.

No es necesario encontrar la solucin ptima; basta con una solucin


suficientemente buena.

Los datos son poco fiables y por tanto no tiene sentido el tratar de
encontrar el ptimo global para dichos datos.

Existen limitaciones de tiempo (y/o de memoria) en proporcionar la


respuesta.

Se va a utilizar como solucin inicial para un algoritmo exacto de tipo


iterativo.

Ventajas de las Heursticas:

Ms comprensibles e intuitivos (en general) que los mtodos exactos.

En algunas ocasiones (que, en general, no se podrn determinar a


priori), encontrarn una solucin (aceptablemente buena) en un tiempo
razonable.

El mtodo heurstico se utiliza como parte de un procedimiento global,


proporciona una buena solucin inicial de partida.

El mtodo heurstico es ms flexible que un mtodo exacto,


permitiendo, por ejemplo, la incorporacin de condiciones de difcil
modelizacin.

Desventajas de las Heursticas:

Es imposible conocer la cercana con respecto del ptimo global de la


solucin obtenida.

No garantizan que se encuentre una solucin, aunque existan


soluciones.

Si encuentran una solucin, no se asegura que sta tenga las mejores


propiedades (que sea de longitud mnima o de coste ptimo).

Falta de habilidad para adaptarse a nuevas situaciones o modificaciones


del problema de partida.

Clasificacin:

Mtodos Constructivos:

Mtodos de Descomposicin:

Consisten en construir literalmente paso a paso una solucin del problema.


Usualmente son mtodos deterministas y suelen estar basados en la mejor
eleccin en cada iteracin. Estos mtodos han sido muy utilizados en
problemas clsicos como el del viajante.

El problema original se descompone en sub problemas ms sencillos de


resolver, siendo el output del uno el input del otro, se debe tener en cuenta,
aunque sea de manera general, que ambos pertenecen al mismo problema.

Mtodos inductivos:

La idea de estos mtodos es generalizar de versiones pequeas o ms


sencillas al caso completo. Propiedades o tcnicas identificadas en estos
casos ms fciles de analizar pueden ser aplicadas al problema completo.

Mtodos de Reduccin:

Manipulacin del modelo:

Consiste en identificar propiedades que se cumplen mayoritariamente por las


buenas soluciones, es decir, se trata de identificar alguna caracterstica que
presumiblemente deba poseer la solucin ptima e introducirlas como
restricciones del problema.

Se trata de simplificar el esquema terico para encontrar los valores de las


variables de decisin con mayor facilidad, deduciendo, a partir de ella, la
solucin del problema original.

Mtodos de Bsqueda por entornos:

A diferencia de los mtodos anteriores, estos mtodos parten de una solucin


factible inicial (obtenida quiz mediante otra heurstica) y, mediante
alteraciones de esa solucin, van pasando de forma iterativa, y mientras no
se cumpla el criterio de parada, a otras soluciones factibles de su entorno,
almacenando la mejor de las alternativas visitadas.

Mtodos combinados:

Si bien todos los mtodos citados anteriormente han contribuido a ampliar


nuestro conocimiento para la resolucin de problemas reales, los mtodos
constructivos y los de bsqueda local constituyen la base de los
procedimientos metaheursticos y son conocidos como mtodos combinados.

Reglas de parada:

En cualquier procedimiento de bsqueda de soluciones para un


problema dado, uno de los elementos ms importantes es el criterio de
parada empleado. La regla de parada es responsable, en gran medida,
del grado de eficiencia y eficacia del procedimiento de solucin. En
ocasiones, el criterio de parada viene determinado por la bsqueda
empleada.

GRACIAS!

Vous aimerez peut-être aussi