La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

COMPLEJIDAD COMPUTACIONAL Departamento de Educación Matemática Profesor: Carlos Aguilar Santana “La Matemática es el Alfabeto con el cual Dios ha Escrito.

Presentaciones similares


Presentación del tema: "COMPLEJIDAD COMPUTACIONAL Departamento de Educación Matemática Profesor: Carlos Aguilar Santana “La Matemática es el Alfabeto con el cual Dios ha Escrito."— Transcripción de la presentación:

1 COMPLEJIDAD COMPUTACIONAL Departamento de Educación Matemática Profesor: Carlos Aguilar Santana “La Matemática es el Alfabeto con el cual Dios ha Escrito el Universo” Galileo Galilei

2 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Metodología para la Solución de Problemas Por medio de un Computador 1.Definición del Problema(Requerimientos) 2.Análisis del Problema(Datos e entrada, salida. con lo que se cuenta) 3.Diseño (Algoritmos, BD, Topologías) 4.Codificación (Lenguaje de Programación) 5.Pruebas (Depuración) 6.Liberación(Entrega)

3 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Aspectos básicos 1.AlgoritmoEs un procedimiento “Paso a Paso” 2.Caracterización de un problema Algorítmico - Conjunto de todos los datos de entrada. - El objetivo del problema. 3.Resolución de un problema Se resuelve cuando se aplica el algoritmo a una entrada de datos (instancia) y se obtiene una salida que responde al objetivo.

4 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Representación de problemas Un problema se representa por: - Un dominio Ω que contiene las posibles soluciones. - Una pregunta cuya respuesta genera la solución al problema п. Ejemplo: PROBLEMA DEL VENDEDOR VIAJERO (PVV) 12 43 10 1520 12 4 3 Dominio: { 1-2-4-3-1 1-2-3-4-1 1-3-4-2-1 1-3-2-4-1 1-4-2-3-1 1-4-3-2-1 } = 57 = 29 = 57 = 42 = 29

5 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Variantes de un problema Π 1.Problemas de Decisión ¿Existe una estructura S que satisface las propiedades de п? Respuesta : SI o NO 2.Problemas de Localización Encontrar una estructura S que satisface las propiedades de п Respuesta : S 3.Problemas de Optimización Encontrar estructura S que satisface las propiedades de п y criterios de optimización Respuesta : S* = optimo (S),  S  Ω

6 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Complejidad Computacional NO 1. NO se refiere a: - Dificultad de diseño. - Rebuscado de un algoritmo. SI 2. SI se refiere a: - Medidas de desempeño - TiempoComplejidad Temporal - EspacioComplejidad Espacial

7 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Complejidad Temporal 1. Se utiliza el tamaño de entrada para definir al tiempo de ejecución. Sea n tamaño de entrada, se define T(n) como tiempo de ejecución No se considera los datos de entrada, sino el tamaño del conjunto de ellos. Ejemplo : Ordenamiento de una lista de números. Casos : - Mejor caso - Caso Medio - Peor Caso

8 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Ejemplo 1 : Para el siguiente algoritmo, su T(n) = 4n+3 Algoritmo : (1)suma = 0; (2)for(i=1;i<=n;i++) (3) suma = suma + i; 4n+3 TOTAL 4n+3 Instrucción (1)Ocupa 1 unidad de tiempo.1 Instrucción (3)Ocupa 2 unidades de tiempo y es ejecutada n veces.2n Instrucción (2)Ocupa 1 unidad de tiempo en la asignación, n+1 en las comparaciones y n en los incrementos. 2n+2

9 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Ejemplo 2 : Para el siguiente algoritmo, su T(n) = 7n 2 +8n+5 Algoritmo : (1)suma = 0; (2)for(i=1;i<=n;i++) (3) for(j=1;j<=n;j++) (4)suma = suma + i*j; Instrucción (2)(3)Ocupan 2n+2 unidades de tiempo cada una y se ejecutan anidadas. (2n+2)* (2n+2) = 4n 2 +8n+4 Instrucción (4)Ocupa 1 unidad de tiempo en la asignación, 2 en la suma y multiplicación y se repite n * n veces 3n 2 7n 2 +8n+5 TOTAL 7n 2 +8n+5 Instrucción (1)Ocupa 1 unidad de tiempo.1

10 Orden de un Algoritmo 1. Para simplificar el estudio de la complejidad computacional, se adoptan ciertas convenciones en su notación. COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana 2.Se define el orden de un algoritmo como el termino de mayor grado. O(n) Tiempo de ejecución T(n)= 4n+3 Orden O(n) Orden Polinomial Lineal. O(n 2 ) Tiempo de ejecución T(n)= 7n 2 +8n+5 Orden O(n 2 ) Orden Polinomial Cuadrático. O() Tiempo de ejecución T(n)= 2 n +3 Orden O(2 n ) Orden Exponencial. O(n x )Tiempo Polinomial O(n x )Tiempo PolinomialAlgoritmos EficientesProblemas Tratables O(x n )Tiempo Exponencial O(x n )Tiempo ExponencialAlgoritmos IneficientesProblemas Intratables

11 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Ejemplo 3 : El siguiente algoritmo tiene tiempo exponencial de O(2 n ) Algoritmo : (1)void Hanoi( int n, int A, int B, int C) (2){ (3)if(n==1) (4) MueveAnillo(A,B); (5)else { (6) Hanoi(n-1, A, C, B); (7) MueveAnillo(A,B); (8) Hanoi(n-1, C, B, A); (9) } (10)} A B C H(2,A,B,C) A B C H(1,A,C,B) A B C M(A,B) H(1,C,B,A) A B C

12 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Algoritmo : (1)void Hanoi( int n, int A, int B, int C) (2){ (3)if(n==1) (4) MueveAnillo(A,B); (5)else { (6) Hanoi(n-1, A, C, B); (7) MueveAnillo(A,B); (8) Hanoi(n-1, C, B, A); (9) } (10)} H(3,A,B,C) H(2,A,C,B) M(A,B) H(2,C,B,A) A B C

13 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Recordemos que el orden de este algoritmo es 2 n luego su tiempo de ejecución es exponencial y por lo tanto es un problema intratable. Supongamos que el tiempo de ejecución en una máquina determinada es 10 -9 Seg. Por operación. Supongamos además que deseamos jugar con 1000 Aros. T(n=1000) = 10 -9 * 2 1000 = 5 -9 * 2 991 Seg. T(n=1000) = 10 282 Siglos.

14 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Recordemos las Variantes de un problema Π 1.Problemas de Decisión ¿Existe una estructura S que satisface las propiedades de п? Respuesta : SI o NO 2.Problemas de Localización Encontrar una estructura S que satisface las propiedades de п Respuesta : S 3.Problemas de Optimización Encontrar estructura S que satisface las propiedades de п y criterios de optimización Respuesta : S* = optimo (S),  S  Ω

15 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Π de optimización tratado como Π de decisión - Valor objetivo K para la instancia n - ¿ Existe una solución factible en el conjunto Ω ? Ejemplo : Problema de cobertura de Vértice. ( Conjunto U de vértices de G, tales que cualquier arco de G inicia y/o termina en un vértice de U) zv xy w u s U = { w, s, y, z}

16 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana PD de cobertura de vértices : Existe para el grafo G una cobertura S de tamaño K tal que no exista otra menor. 1. Instancia : Un grafo G y un valor K. 2. Respuesta : SI : Si hay una cobertura de vértices de tamaño menor o igual a K. NO : Si no existe. PO de cobertura de vértices : Encontrar el subconjunto de vértices menor que sea una cobertura de vértices. Instancia : Un grafo G. Respuesta : Una cobertura de vértices de tamaño mínimo. LUEGO UN PROBLEMA DE OPTIMIZACIÓN PUEDE SER TRATADO COMO UNO DE DECISIÓN

17 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Modelo de Cómputo Los podemos Agrupar en dos grandes conjuntos: Deterministicos. NO Deterministicos. DETERMINISTICO : Modelo matemático estándar, Siempre lo mismo. SI NO NO DETERMINISTICO : Modelo compuesto de dos fases: Adivinación, Verificación. SI NO

18 COMPLEJIDAD COMPUTACIONAL Profesor: Carlos Aguilar Santana Clases de Problemas de Decisión Clases P de problemas Conjunto de problemas, para los cuales se conoce un algoritmo Polinomial en una maquina Determinista. Clases NP de problemas Conjunto de problemas, para los cuales se toma aleatoria mente una posible solución, y se prueba su factibilidad con un algoritmo Polinomial en una maquina Determinista. Clases NP-Completo de problemas Se dice que un problema se decisión A pertenece a NP-Completo cuando: 1. A  NP. 2. Cada Problema en NP se puede reducir polinomialmente a A.

19 COMPLEJIDAD COMPUTACIONAL Departamento de Educación Matemática Profesor: Carlos Aguilar Santana “La Matemática es el Alfabeto con el cual Dios ha Escrito el Universo” Galileo Galilei


Descargar ppt "COMPLEJIDAD COMPUTACIONAL Departamento de Educación Matemática Profesor: Carlos Aguilar Santana “La Matemática es el Alfabeto con el cual Dios ha Escrito."

Presentaciones similares


Anuncios Google