Complejidad de Algoritmos



Documentos relacionados
Complementos de Matemáticas, ITT Telemática

Análisis de algoritmos

Introducción a las sentencias de control

Algoritmos: Algoritmos sobre secuencias y conjuntos de datos

La eficiencia de los programas

Complejidad algorítmica. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A.

Práctica 3. CÁLCULO DE LA FUNCIÓN SENO UTILIZANDO UN DESARROLLO EN SERIE

Estructuras de control. Secuencial, condicional y repetitivas.

Tema Contenido Contenidos Mínimos

Práctica 2 Métodos de búsqueda para funciones de una variable

UNIDAD I. ALGORITMOS

Ecuaciones cuadráticas Resolver ecuaciones cuadráticas mediante factorización

315 M/R Versión 1 Integral 1/ /1 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA

Notación Asintótica. Temas. Introducción Notación O Notación Omega Notación Theta. Análisis de Algoritmos

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

TEMA 11. Autovalores y autovectores. Diagonalización y formas canónicas.

Valores y Vectores Propios

λ autovalor / valor propio v autovector / vector propio

5. RECURRENCIAS LINEALES

Ecuaciones. 3º de ESO

Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i)

Algoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. Dept. de Computación, Universidade da Coruña

Estructuras de control

Análisis y Diseño de Algoritmos

Multiplicación de enteros Algoritmo clásico 1234*5678 = 1234* (5* *100+7*10+8) = 1234*5* *6* *7* *8 Operaciones bási

UNIDAD UNO PROGRAMACIÓN LÍNEAL Parte 3

Introducción a MATLAB

Unidad 1. Las fracciones.

UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO

Métodos Numéricos (SC 854) Solución de sistemas de ecuaciones lineales

Tema 2. Sistemas de ecuaciones lineales

Contenidos mínimos 4B ESO. 1. Contenidos. Bloque I: Aritmética y álgebra.

Seminario 1: Resolución de recurrencias

3. Estructuras iterativas

Optimización en Ingeniería

Desarrollo de las condiciones de optimalidad y factibilidad. El problema lineal general se puede plantear como sigue:

Anexo C. Introducción a las series de potencias. Series de potencias

Tema 3. Análisis de costes

Universidad de Puerto Rico en Aguadilla Departamento de Matemáticas PRONTUARIO

Matrices, determinantes, sistemas de ecuaciones lineales.

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

Ámbito Científico-Tecnológico Módulo III Bloque 3 Unidad 2 Cuanto más, mejor y viceversa

Expresión, Operador, Operando, Asignación, Prioridad

Programación Lineal. Unidad 1 Parte 2

Ejercicio 1: Realiza las siguientes divisiones por el método tradicional y por Ruffini: a)

Funciones algebraicas

Tema 9. Recursividad

Flujo del programa. Este flujo puede alterarse mediante: El ordenador ejecuta cada sentencia y va a la siguiente hasta el final del programa.

Tema 01: Fundamentos del Análisis Asintótico de Algoritmos

Algoritmos y Diagramas de flujo

CAPÍTULO 10 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA Búsqueda en listas Resumen Ejercicios Problemas

1. Ecuaciones de recurrencia

Análisis de algoritmos.

Dirección de Desarrollo Curricular Secretaría Académica

λ = es simple se tiene que ( )

Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG) Matemáticas aplicadas a las Ciencias Sociales II - Junio Propuesta B

Problemas de Recursividad

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Práctica: Métodos de resolución de ecuaciones lineales.

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

PRIMERA PARTE PROGRAMACION MATEMATICA

Definición de problemas de programación lineal. Método gráfico. Método del SIMPLEX. Método de las dos fases. Análisis de sensibilidad y problema dual

Polinomios. 1.- Funciones cuadráticas

Ecuaciones de rectas y planos. Un punto O y una base B B = { i, j,

1. Introducción al análisis de algoritmos

VOCABULARIO HABILIDADES Y CONCEPTOS

PROGRAMACION ENTERA. M. en C. Héctor Martínez Rubin Celis 1

Análisis de algoritmos

Preparación para Álgebra 1 de Escuela Superior

Lenguaje C, segundo bloque: Sentencias de control

MANUAL DE EXCEL AVANZADO

Introducción a MATLAB

INSTITUCION EDUCATIVA LA PRESENTACION

Universidad Central Del Este U.C.E. Facultad de Ciencias Administrativas y de Sistemas Escuela de Ingeniería de Sistemas

Etapas para la solución de un problema por medio del computador

Curso de Matemática. Unidad 2. Operaciones Elementales II: Potenciación. Profesora: Sofía Fuhrman. Definición

Introducción al Análisis del Coste de Algoritmos

Colegio Beato Carlos Manuel Rodríguez Departamento de Matemáticas. Mapa curricular Algebra I 8 vo grado

3. Métodos clásicos de optimización lineal

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria

Recordar las principales operaciones con expresiones algebraicas.

Análisis de problemas

Tablas Hash y árboles binarios

Solución de ecuaciones algebraicas y trascendentes: Método de Newton Raphson

GUÍAS. Módulo de Razonamiento cuantitativo SABER PRO

1.4 SISTEMAS HOMOGÉNEOS DE ECUACIONES. 36 CAPÍTULO 1 Sistemas de ecuaciones lineales y matrices

Combinación Lineal. Departamento de Matemáticas, CCIR/ITESM. 10 de enero de 2011

Algoritmos y Complejidad

AUTORES PRÓLOGO...13 INTRODUCCIÓN CAPÍTULO 1. INICIACIÓN A LA PROGRAMACIÓN EN MAPLE...19

Análisis de algoritmos

COMPARACIÓN DE SUPERFICIES DE RESPUESTA CON BÚSQUEDA TABÚ Y ALGORITMOS GENÉTICOS

Capítulo 1 LA COMPLEJIDAD DE LOS ALGORITMOS

ALGORITMO DE OPTIMIZACIÓN BASADO EN EL APAREAMIENTO DE LAS ABEJAS(HBMO). UN NUEVO ENFOQUE HEURÍSTICO DE OPTIMIZACIÓN.


RAICES DE ECUACIONES Y SISTEMA DE ECUACIONES

UNIDAD: ÁLGEBRA Y FUNCIONES ECUACIÓN DE SEGUNDO GRADO Y FUNCIÓN CUADRÁTICA

3. POLINOMIOS, ECUACIONES E INECUACIONES

INDICE Parte I Inducción a la programación lineal Capitulo 1 Origen y definición de la programación lineal Capitulo 2 Modelación y formulación

Transcripción:

Complejidad de Algoritmos Tema 5

Introducción Un algoritmo es una secuencia de instrucciones que resuelve un problema Puede tener diferentes implementaciones Para comparar las diferentes formas (algoritmos) de resolver un problema debe ser posible medirlos : Tiempo y memoria. La medida de la eficiencia requiere determinar la complejidad de un algoritmo.

Factores del tiempo Datos de entrada:la dimensión del vector a ordenar o el tamaño de las matrices a multiplicar Calidad del código generado por el compilador Arquitectura del procesador (cisc, risc) Complejidad intrínseca del algoritmo Medidas: A priori (Acotación teórica del algoritmo) A posteriori (empírica o práctica) para un conjunto de datos y para un ordenador concreto.

Factores del tiempo II La unidad de tiempo no puede ser concreta, no existe un ordenador estándar al que puedan hacer referencia todas las medidas. T(n) el tiempo de ejecución para una entrada de tamaño n. Principio de Invarianza Dado un algoritmo y dos implementaciones suyas I1 e I2, que tardan T1(n) y T2(n) segundos respectivamente, el Principio de Invarianza afirma que existe una constante real c > 0 y un número natural n0 tales que para todo n >= n0 se verifica que T1(n) <= ct2(n). Nota : a priori un algoritmo de orden cuadrático es mejor que uno de orden cúbico T1(n) = 10 el primero sólo será mejor que el segundo para tamaños de la entrada superiores a 200.000.

Mejor,peor y tiempo medio El comportamiento de un algoritmo puede cambiar notablemente para diferentes entradas (lo ordenados que se encuentren ya los datos a ordenar). Se Estudian tres casos : Caso peor: mayor número posible de instrucciones ejecutadas por el algoritmo. Caso mejor :menor número posible de instrucciones ejecutadas por el algoritmo. Caso medio (o general):número de instrucciones igual a la esperanza matemática de la variable aleatoria definida por todas las posibles trazas del algoritmo para un tamaño de la entrada dado, con las probabilidades de que éstas ocurran para esa entrada

Operaciones Elementales Las Operaciones Elementales (OE): Medida básica de complejidad de algoritmos las operaciones aritméticas básicas: +,-,/,*,... asignaciones a variables los saltos (llamadas funciones y procedimientos, retorno desde ellos, etc.) las comparaciones y operaciones lógicas (2 > 5 AND 5 == 3) El acceso a vectores y matrices. Ejemplos : a++ 2 OE (=,+) b = a*5 Vector[2*2] 5 OE (=,*,-,[],*) b += suma(a,b<2) 4 OE (=,+,salto,<) C++ == E[1] AND B>3 6 OE (=,+,==,[],AND,>)

Análisis del caso caso mejor :línea (1) y (2) sólo la primera mitad de la condición: 2 OE (expresiones se evalúan de izquierda a derecha, y con cortocircuito ) + (5) a (7). T(n)=1+2+3=6. caso peor: (1) bucle se repite n 1 veces hasta que se cumple la segunda condición (5) hasta línea (7). Cada iteración del bucle compuesta (2) y (3), + ejecución adicional de la línea (2)

Análisis del caso II

Calculo de OE II - CASE C OF v1:s1 v2:s2... vn:sn END T = T(C)+max{T(S1),T(S2),...,T(Sn)}. - IF C THEN S1 ELSE S2 END T = T(C) + max{t(s1),t(s2)}. _ WHILE C DO S END T = T(C) + (nº iteraciones)*(t(s) + T(C)). ojo tanto T(C) como T(S) pueden variar en cada iteración Para resto de sentencias iterativas (FOR,etc...) basta expresarlas como un bucle WHILE.

Fórmulas I Sumatorias 1) La sumatoria de una suma es igual a la suma de las sumatorias: a + b = a + b 2) Cuando el cuerpo de la sumatoria es independiente de los índices, el valor es el número de valor diferentes que toma el índice multiplicado por el valor del cuerpo: n 1 i= 0 n 1 i= 0 a = a.n n a + f(i) = 1 i= 0 n a + 1 i= 0 n f(i) = a.n + 1 i= 0 f(i)

Fórmulas II 3) Cuando el cuerpo de la sumatoria se puede expresar como una constante independiente de los índices multiplicada por una expresión, el valor es el valor de la constante multiplicada por la sumatoria de la expresión: n 1 i= 0 n af(i) = a 1 i= 0 f(i) 4) Suma de los valores de una progresión aritmética: Ej:(1+2+3+4+5),(4+6+8+10),(2+5+8+11+14) = incremento a 0 = primer elemento a n-1 = último elemento n = número de elementos progresión aritmética: a n = a 0 + n n 1 i= 0 a i = ((a i +a n-1 )n)/2 El primer elemento más el último, multiplicado por el número de elementos y dividido por 2

Formulas III ) Suma de los valores de una progresión geométrica: Ej:(1+2+4+8+16), (2+6+18+54) = razón 0 = primer elemento = número de elementos rogresión geométrica: a n = a 0 Π n r-1)(1 + r +... + r n-1 ) = r n - 1 n 1 n 1 n a i = i= 0 a 0 Π i = a 0 1 Π i = a 0 (Π n -1)/( Π-1) i= 0 i= 0 El primer elemento multiplicado por la razón elevada al número de elementos menos 1 y todo dividido or la razón menos 1

Ejemplo Asignación Suma Comparación 3OE { Asignación Suma Comparación 3OE { Comparacion 4 OE 3 OE 4 OE 2 OE aso Mejor :la condición será falsa, no se cuta (4)a (6). el bucle interno (n i) iteraciones Comp Inc 3OE} Comp Inc 3OE} aso Peor :la condición será verdadera, se cuta (4)a (6). el bucle interno (n i) iteraciones

Ejemplo II Asignación Suma Comparación 3OE { Asignación Suma Comparación 3OE { Comparacion 4 OE 3 OE 4 OE 2 OE Comp Inc 3OE} Comp Inc 3OE} aso Medio :la condición será verdadera un % de las veces

Análisis Búsqueda Máximo Busca el máximo en un vector empezando en la posición i hasta la j, por lo que el tamaño de la entrada T(n) = T(j-i) 1 OE Asignación Suma Comparación 3OE { 3 OE + P *1 Comp Inc 3OE} 1 OE

Análisis Búsqueda Máximo II Asignación 1 OE Asignación Suma Comparación 3OE { 3 OE + P *1 Asignación 1 OE Salto 1 OE Comparación Incremento 3OE}

Coste de Intercambio Método que intercambia dos contenidos en el vector dadas sus posiciones. temp:=a[i]; 2 OE a[i]:=a[j]; 3OE 7 OE a[j]:=temp ; 2 OE Utilizaremos este método y el de búsqueda de máximos y mínimos en un vector para facilitar el análisis de algoritmos de ordenación

Selección En cada paso (i=1...n 1) este método busca el mínimo elemento del subvector a[i..n] y lo intercambia con el elemento en la posición i: Asignación Resta Comparación 3OE { Salto 1OE + Intercambia 7 OE Caso peor Salto 1OE + PosMinimo Comparación Incremento 3OE}

Burbuja Asignación Resta Comparación 3OE { Asignación suma Comparación 3OE { comparación 4 OE Salto 1OE + Intercambia 7 OE resta 1OE Comparación Incremento 3OE} Comparación Incremento 3OE} }

Cota Superior O(f) Asignación Resta Comparación 3OE { Asignación suma Comparación 3OE { comparación 4 OE alto 1OE + Intercambia 7 OE resta 1OE Comparación Incremento 3OE} Comparación Incremento 3OE} }

Propiedades de O

Recurrencia T(n) = E(N) donde en E(n) aparece una expresión de T(n) Algoritmos recursivos Se expresa el algoritmo en base a las condiciones iniciales necesarias y una expresión recursiva T(n) = T(n-1) + T(n-2) Para n > 1 T(n) = 1 Para n=1 T(n) =0 Para n= 0

Ecuaciones Homogeneas

Raíces distintas

Raíces distintas II

Raíces Multiplicidad > 1 Ejemplo:

No Homogeneas

Ecuación característica los coeficientes ai y b son números reales, y p(n) es un polinomio en n de grado d Solución Ejemplo: Torres de Hanoi

Ecuación generalizada Solución Ejemplo

Cambio de variable n es una potencia de 2 (n > 3), T(1) = 1, y T(2) = 6. b =2 d = 0