presentacion.pptx

19
Teoría de la Complejidad Pablo Avila, Andrés Heredia, Andrés Rojas

Upload: andres-heredia

Post on 12-Sep-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

INTRODUCCION A HEURISTICAS

Teora de la Complejidad

Pablo Avila, Andrs Heredia, Andrs RojasForma 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 teoraUna 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 memoriaLa 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 programaPara 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 EspacialSe 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 COMPLEJIDADO(1)Orden constanteO(log n)Orden logartmicoO(n)Orden linealO(n log n)Orden cuasi-linealO(n2)Orden cuadrticoO(n3)Orden cbicoO(na)Orden polinmicoO(2n)Orden exponencialO(n!)Orden factorialO(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 ochoO(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 ejecucinClases de complejidad:Clase PContiene 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 intratablesClase 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 completosProblemas 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:AproximacinProbabilsticoRestriccionesCasos particularesAlgoritmo genticoHeursticas

INTRODUCCION A HEURISTICASHeursticasUna 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: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.

Mtodos de Descomposicin: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: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.Manipulacin del modelo: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!