Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid. Java: Complejidad / 1
|
|
- Virginia Giménez Ojeda
- hace 5 años
- Vistas:
Transcripción
1 Complejidad Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid Java: Complejidad / 1 Comparación long fib (int n) {if (n<=1) return n; else return fib(n-1)+fib(n-2); } long fibo (int n,x,y) {if (n<=1) return x+y; else return fibo(n-1,y,x+y); } Los dos métodos calculan la función fib correctamente, pero cuál preferiría? El primero es más claro. El segundo es más eficiente. cdk@it.uc3m.es Java: Complejidad / 2 1
2 Cómo medimos? Midiendo el tiempo de ejecución (en función del tamaño de la entrada) No podemos probar con todas las entradas Es necesario implementar el algoritmo Depende del software y el hardware Busquemos otra medida Más abstracta Más fácil de obtener cdk@it.uc3m.es Java: Complejidad / 3 Cómo medimos? Asociamos a cada algoritmo: f(n) Emplearemos el caso peor para caracterizar el tiempo de ejecución Es más fácil de calcular Interesa la velocidad de crecimiento del tiempo de ejecución en función del tamaño de la entrada Comportamiento asintótico Tamaño de la entrada cdk@it.uc3m.es Java: Complejidad / 4 2
3 Cómo medimos? Asociamos a cada operación primitiva un tiempo de ejecución constante: Asignación Llamada a método Operación aritmética, etc. Indexación en array Seguir una referencia Volver de un método Etc. cdk@it.uc3m.es Java: Complejidad / 5 Ejemplo (en pseudocódigo) Hallar el máximo de un array Entrada: un array A con n enteros Salida: el elemento mayor de A Algoritmo: arraymax(a,n) current=a[0] for i=1 to n-1 do if current<a[i] then current=a[i] return current cdk@it.uc3m.es Java: Complejidad / 6 3
4 Ejemplo (en pseudocódigo) current=a[0] for i=1 to n-1 do if current<a[i] then current=a[i] return current Mínimo núm. de operaciones (si es A[0]): 2+1+n+4(n-1)+1=5n Máximo núm. de operaciones (si A creciente): 2+1+n+6(n-1)+1=7n-3 cdk@it.uc3m.es Java: Complejidad / 7 Notación O c g(n) f(n) n 0 f(n) es O(g(n)) sii f(n) c g(n) para n n 0 cdk@it.uc3m.es Java: Complejidad / 8 4
5 Notación O 7n-3 es O(n) c=7, n 0 =1 7n-3 7n 20n 3 +10n log n+5 es O(n 3 ) 3 log n + log log n es O(log n) es O(1) 5/n es O(1/n) cdk@it.uc3m.es Java: Complejidad / 9 Crecimiento de funciones log n n n n log n n 2 n 3 2 n 1 1, , , , , , ,8 * , ,4 * cdk@it.uc3m.es Java: Complejidad / 10 5
6 Crecimiento de funciones Java: Complejidad / 11 Tamaño máximo de un problema Tiempo de ejecución 1 segundo 1 minuto 1 hora 400n n log n n n n cdk@it.uc3m.es Java: Complejidad / 12 6
7 Ejemplo Dado un array A de n números Calcular otro array B, tal que: i j=0 A[j] B[i]= i+1 cdk@it.uc3m.es Java: Complejidad / 13 Solución 1 for i=0 to n-1 do a=0 for j=0 to i do a=a+a[j] B[i]=a/(i+1) return B cdk@it.uc3m.es Java: Complejidad / 14 7
8 Solución 1: Análisis Partes: Inicializar y devolver array B: O(n) Bucle i: se ejecuta n veces Bucle j: se ejecuta n=n(n+1)/2 veces: O(n 2 ) Total: O(n)+O(n)+O(n 2 )= O(n 2 ) Orden cuadrático cdk@it.uc3m.es Java: Complejidad / 15 Optimización B[i]=(A[0]+...+A[i])/(i+1) B[i+1]=(A[0]+...+A[i]+A[i+1])/(i+2) B[i+1]=(B[i]*(i+1)+A[i+1])/(i+2) cdk@it.uc3m.es Java: Complejidad / 16 8
9 Solución 2 s=0 for i=0 to (n-1) do s=s+a[i] B[i]=s/(i+1) return B cdk@it.uc3m.es Java: Complejidad / 17 Solución 2: Análisis Partes: Inicializar y devolver array B: O(n) Inicializar s: O(1) Bucle i: se ejecuta n veces Total: O(n)+O(1)+O(n)=O(n) Orden lineal cdk@it.uc3m.es Java: Complejidad / 18 9
10 Hay un algoritmo para resolver cualquier problema? Se puede resolver cualquier problema por medio de un algoritmo? Cuál es el límite de la computabilidad? Hilbert pensaba que todos los problemas matemáticos eran computables En los años 1930, Gödel, Turing, Church y otros demostraron que no es así cdk@it.uc3m.es Java: Complejidad / 19 Computabilidad Un problema matemático se llama computable, si puede puede ser resuelto en principio por un dispositivo de computación Hay una clasificación de problemas matemáticos en computables y no computables cdk@it.uc3m.es Java: Complejidad / 20 10
11 Dispositivo de computación Cuál es el dispositivo de computación más sencillo, pero que sin embargo entraña la capacidad de todos los ordenadores? Se definieron varios dispositivos (imaginarios) o formalismos matemáticos cdk@it.uc3m.es Java: Complejidad / 21 Definiciones de computabilidad Andrey Markov ( ) Algoritmos de Markov Alonzo Church ( ) Cálculo Kurt Gödel ( ) Funciones recursivas Stephen Kleene ( ) Sistemas formales Alan Turing ( ) Máquinas de Turing cdk@it.uc3m.es Java: Complejidad / 22 11
12 Máquina de Turing Componentes: Control con un nº finito de estados Cabeza lectora/escritora Cinta infinita Funcionamiento: Cabeza lee símbolo de cinta y en función de él y del estado, escribe un símbolo en la cinta, la mueve y pasa a un nuevo estado cdk@it.uc3m.es Java: Complejidad / 23 Máquinas de Turing MT determinista, si para cada combinación (símbolo leído, estado), hay una única continuación (símbolo a escribir, estado, movimiento) MT no-determinista si hay más cdk@it.uc3m.es Java: Complejidad / 24 12
13 Clases de problemas El conjunto de problemas computables se dividen en varias clases: P (polinomial con MT determinista) NP (polinomial con MT no-determinista) etc. cdk@it.uc3m.es Java: Complejidad / 25 Es P = NP? Resolver un sudoku (NP) vs Comprobar si está bien resuelto (P) El Clay Mathematics Institute ofrece US$ 1 millón para el que resuelva si los dos conjuntos son iguales o no cdk@it.uc3m.es Java: Complejidad / 26 13
Recursión. Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid. Java: Recursión / 1
Recursión Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Recursión / 1 Método recursivo Un método recursivo es aquel que (directa o indirectamente) se llama
Más detallesCarlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid. Java: Recursión / 1
Recursión Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Recursión / 1 Método recursivo Un método recursivo es aquel que (directa o indirectamente) se llama
Más detallesAnálisis asintótico de algoritmos
Algoritmos y problemas Análisis asintótico de algoritmos! Cada algoritmo resuelve a un problema particular! Hay varias maneras de resolver un problema! Algunas maneras son buenas y otras son malas! El
Más detallesEstructuras de Datos y Algoritmos
Ejercicio 1: Estructuras de Datos y Algoritmos Año 2018 Práctico 2: Evaluación de Algoritmos (Finalización: 27/08) Ingeniería en Computación - Ingeniería en Informática - Profesorado en Computación Dados
Más detallesTema 2 Fundamentos de Complejidad Algorítmica
Tema 2 Fundamentos de Complejidad Algorítmica Pablo Sánchez Dpto. Matemáticas, Estadística y Computación Universidad de Cantabria Santander (Cantabria, España) p.sanchez@unican.es Pablo Sánchez (MATESCO)
Más detallesComplejidad de los Algoritmos
Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Práctico 2: Evaluación de Algoritmos (Finalización: 03/09) Ingeniería en Computación - Ingeniería en Informática Año 2015 Ejercicio 1: Dados los siguientes vectores, correspondientes
Más detallesProgramación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2
Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 5. Algoritmos voraces, heurísticos y aproximados
Más detallesIntroducción al Análisis del Coste de Algoritmos
1/11 Introducción al Análisis del Coste de Algoritmos Josefina Sierra Santibáñez 7 de noviembre de 2017 2/11 Eficiencia de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, predecir
Más detallesAlgoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
Más detallesTemas. Objetivo. Que el estudiante logre:
0 Temas Objetivo Que el estudiante logre: 1) Formalizar problemas de decisión. 2) Identificar conceptos constructivos de la Teoría de la Computabilidad. 1 2 TEORÍA DE LA COMPLEJIDAD COMPUTACIONAL TEORÍA
Más detallesCálculos en la Naturaleza viva (I)
Cálculos en la Naturaleza viva (I) Mario de J. Pérez Jiménez Grupo de Investigación en Computación Natural Dpto. Ciencias de la Computación e Inteligencia Artificial ETS Ingeniería Informática, Universidad
Más detallesAnálisis de algoritmos. Recursividad
Análisis de algoritmos Recursividad 1 Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Ésta muñeca, también contiene
Más detallesComplejidad Computacional
Análisis y Complejidad de Algoritmos Complejidad Computacional Arturo Díaz Pérez Lenguajes formales Gramáticas formales Jerarquía de Chomski Teoría de la complejidad Una desigualdad computacional Computabilidad
Más detallesAnálisis de algoritmos
Tema 05: no recursivos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido no recursivos La notación de Landau O La notación O Principio
Más detallesNotación Asintótica. Temas. Introducción Notación O Notación Omega Notación Theta. Análisis de Algoritmos
Notación Asintótica Análisis de Algoritmos Temas Introducción Notación O Notación Omega Notación Theta 1 Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime) Determinar
Más detallesAlgoritmos y Estructuras de Datos Curso 06/07. Ejercicios
6.1.(Clase) Un programa que utiliza la técnica divide y vencerás, divide un problema de tamaño n en a subproblemas de tamaño n/b. El tiempo g(n) de la resolución directa (caso base) se considerará constante.
Más detallesTema 3: Características de la programación funcional. Sesión 5: El paradigma funcional (1)
Tema 3: Características de la programación funcional Sesión 5: El paradigma funcional (1) Referencias Capítulo 1.1.5 SICP: [[http://mitpress.mit.edu/sicp/full-text/book/book-z- H-10.html#%_sec_1.1.5][The
Más detallesAlgoritmos y problemas
Análisis de Algoritmos Algoritmos y problemas Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Algoritmos y problemas p. 1 Problema = un conjunto (posiblemente infinita) de instancias
Más detallesComputabilidad y Lenguajes Formales: Introducción
300CIG007 Computabilidad y Lenguajes Formales: Introducción Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez galvarez@puj.edu.co Introducción 1. De que
Más detallesComplejidad computacional y asintótica
Complejidad computacional y asintótica Complejidad computacional Indica el esfuerzo que hay que realizar para aplicar un algoritmo y lo costoso que éste resulta. La eficiencia suele medirse en términos
Más detallesMaquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez
Maquina de Turing 5. Fundamentos de algoritmos MI Elizabeth Fonseca Chávez matemático inglés Alan Turing Turing Definición de algoritmo: conjunto ordenado de operaciones que permite hallar la solución
Más detallesdit UPM Tema 1: Algoritmos /complejidad /java Análisis y diseño de software José A. Mañas
Análisis y diseño de software dit UPM Tema 1: Algoritmos /complejidad /java José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 21.2.2018 referencias http://www.dit.upm.es/~pepe/doc/adsw/
Más detallesQué es la recursividad?
Recursividad 1 Ejemplo Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Esta muñeca, también contiene otra muñeca dentro.
Más detalles1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación.
0 1 Temas 2 Objetivos 1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación. 2) Definir máquinas de Turing unicinta y multicinta, para reconocer lenguajes y para
Más detallesEstructura de Datos. Complejidad de Algoritmos. Algoritmo. Algoritmo. Mauricio Solar Lorna Figueroa
Estructura de Datos Complejidad de Algoritmos Mauricio Solar Lorna Figueroa 2010 1 Algoritmo Definición: Un algoritmo es un conjunto finito de instrucciones que sirven para resolver un problema si fueron
Más detallesPROGRAMACIÓN II GEB 16:28
GEB 1 Temas Problemas demostrablemente irresolubles Problemas resolubles Clase P, NP, NP completa y CO-NP Objetivo Que el estudiante logre entender la clasificación de problemas y su importancia para la
Más detallesAlgorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (ii)
Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (ii) Eficiencia y notación asintótica. Análisis de algoritmos En la lección anterior el concepto de eficiencia asintótica. En ésta
Más detallesTema 01: Fundamentos del Análisis Asintótico de Algoritmos
Tema 01: Fundamentos del Análisis Asintótico de Algoritmos Noviembre, 2003 CS0218: Algoritmos y Programación II Introducción En Ciencias de la Computación se presenta con frecuencia la situación de analizar
Más detallesMultiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
Más detallesAlgoritmos y Complejidad
Algoritmos y Complejidad Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2017 Introducción Algoritmos y Algoritmia Problemas
Más detalles6. COMPLEJIDAD COMPUTACIONAL
6. COMPLEJIDAD COMPUTACIONAL Esta sección quiere mostrar la importancia de estimar un algoritmo en términos de los recursos físicos que va a utilizar antes que el algoritmo sea codificado en un lenguaje
Más detallesComplejidad Computacional
Complejidad Computacional MLG521 Cristobal Rojas Pamela Alvarez Departamento de Ciencias de de la Ingeniería Departamento de Ingeniería Matemática Universidad Andrés Bello MLG521 Cómo medir la dificultad
Más detallesComplejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2015 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Más detallesComplejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Más detallesProgramación de sistemas Recursión
Programación de sistemas Recursión Departamento de Ingeniería Telemática 1 Contenidos Recursión Tipos de recursión Recursión vs. iteración 2 Recursión Proceso por el cual un método se llama a sí mismo
Más detallesComplejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Más detallesComplejidad de algoritmos recursivos
Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.
Más detallesIntroducción al análisis de algoritmos
Estructura de Datos y Algoritmos Introducción al análisis de algoritmos 1. Eficiencia en tiempo de Ejecución Cuando resolvemos un problema nos vemos frecuentemente enfrentando una elección de programas,
Más detallesAnálisis y Complejidad de Algoritmos. Completitud NP
Análisis y Complejidad de Algoritmos Completitud NP Arturo Díaz Pérez Sección de Computación Departamento de Ingeniería Eléctrica CINVESTAV-IPN Av. Instituto Politécnico Nacional No. 2508 Col. San Pedro
Más detallesEstructuras de Datos. Clase 3 Análisis de algoritmos recursivos
Clase 3 Análisis de algoritmos recursivos http://cs.uns.edu.ar/~sag Bahía Blanca, Argentina Notación asintótica (Big-Oh) Sean f(n) y g(n) : N R f(n) es O(g(n)) ssiexisten c real con c>0 y n 0 natural con
Más detallesProgramación de sistemas
Programación de sistemas Recursión Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, Carlos Alario Hoyos 1 Contenidos Recursión Tipos
Más detallesIntroducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani
Introducción Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Algoritmos y Algoritmia Problemas e instancias Primer Cuatrimestre 2014 Algoritmos
Más detallesIN34A - Optimización
IN34A - Optimización Complejidad Leonardo López H. lelopez@ing.uchile.cl Primavera 2008 1 / 33 Contenidos Problemas y Procedimientos de solución Problemas de optimización v/s problemas de decisión Métodos,
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos IIC1253 IIC1253 Análisis de Algoritmos 1 / 36 Complejidad de un algoritmo Un algoritmo A puede ser pensado como una función A : {0,1} {0,1} Qué tan general es esta representación?
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos IIC1253 IIC1253 Análisis de Algoritmos 1 / 36 Complejidad de un algoritmo Un algoritmo A puede ser pensado como una función A : {0,1} {0,1} Qué tan general es esta representación?
Más detallesProblemas computacionales, intratabilidad y problemas NP completos. Febrero Facultad de Ingeniería. Universidad del Valle
Complejidad Complejidad, in NP completos Facultad de Ingeniería. Universidad del Valle Febrero 2017 Contenido Complejidad 1 2 3 Complejidad computacional Complejidad Introducción En ciencias de la computación
Más detallesTemario. Tipos de recursión. Eficiencia y recursión
RECURSION Temario Tipos de recursión Eficiencia y recursión Tipos de RECURSION Según desde donde se realice el llamado recursivo: Directa: la función se llama a sí misma. Indirecta: la función A llama
Más detalles1. Introducción al análisis de algoritmos
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Brassard y Bratley, 97; capítulos
Más detalles1. 1. Introducción al concepto de algoritmia
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Básica: Aho, Hopcroft y Ullman,
Más detallesALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
ALGORITMOS DIGITALES II Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 OBJETIVOS Conocer los principios básicos de los algoritmos. Establecer paralelos entre los algoritmos, los programas y las
Más detalles1/16. Coste de Algoritmos. 8 de abril de 2018
1/16 Coste de Algoritmos Josefina Sierra Santibáñez 8 de abril de 2018 2/16 Coste de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, estimar los recursos que requiere. Aunque
Más detallesIntroducción a las Ciencias de la Computación
Introducción a las Ciencias de la Computación Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 22 Contenidos 1 Computación e Informática Caracterización Áreas relacionadas 2 Antecedentes Orígenes
Más detallesTeoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016
Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016 I Máquinas de Turing. 1. Qué es un a Máquina de Turing? Cómo se define? Cómo se llaman las teorías que
Más detallesAnálisis de algoritmos
Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional
Más detallesIntroducción: historia de las Ciencias de la Computación. Informática Teórica I: Tema 1
Introducción: historia de las Ciencias de la Computación Informática Teórica I: Tema 1 Ciencias de la Computación:... Teoría de Lenguajes, Gramáticas, Autómatas, Redes de Neuronas, Complejidad... Informática
Más detallesAlgoritmos Iterativos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar
Más detallesComputabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing
300CIG007 Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Máquina
Más detallesAlgorítmica: Análisis de Algoritmos
Algorítmica: Análisis de Algoritmos Conrado Martínez U. Politècnica Catalunya Q1-2011-2012 Eficiencia de un algoritmo = consumo de recursos de cómputo: tiempo de ejecución y espacio de memoria Análisis
Más detallesEnfoques computacionales de la memoria humana: un estado del arte. Renato Garita Figueiredo PROIFED
Enfoques computacionales de la memoria humana: un estado del arte Renato Garita Figueiredo PROIFED Revisión bibliográfica En total se revisaron 35 artículos. Categorización: - Aplicaciones de interacción
Más detalles8. Complejidad Computacional
8. Complejidad Computacional Araceli Sanchis de Miguel Agapito Ledezma Espino José A. Iglesias Mar
Más detallesCiencias de la Computación I
Ciencias de la Computación I Nociones básicas de Computabilidad Problemas y Lenguajes Un problema se describe con un lenguaje Cuanto más formal el lenguaje, más precisa la formulación del problema Los
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos
Más detallesAnálisis de algoritmos
Tema 04: Notación asintótica M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Introducción Asíntota Dominio asintótico Ejemplo
Más detallesProblemas computacionales, intratabilidad y problemas NP completos. 26 de agosto de Facultad de Ingeniería. Universidad del Valle
Complejidad Complejidad, in NP completos Facultad de Ingeniería. Universidad del Valle 26 de agosto de 2014 Contenido Complejidad 1 2 3 Complejidad computacional Complejidad Notación De acuerdo a la complejidad
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Notación Asintótica DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime)
Más detallesTiempo de Ejecución. Midiendo el Tiempo de Ejecución
Tiempo de Ejecución Arturo Díaz Pérez Sección de Computación Departamento de Ingeniería Eléctrica CINVESTAV-IPN Av. Instituto Politécnico Nacional No. 2508 Col. San Pedro Zacatenco México, D. F. CP 07300
Más detallesDiseño y Análisis de Algoritmos
1. Recursividad 2. "Dividir para Reinar" 3. Recursividad y Tabulación (Programación Dinámica) 4. Métodos Matemáticos Funciones discretas Notación O Ecuaciones de recurrencia 5. Casos de Estudio Breve descripción
Más detallesProgramación Análisis de Algoritmos: Tiempo de Ejecución (Introducción)
Programación 2 5 - Análisis de Algoritmos: Tiempo de Ejecución (Introducción) 1 Análisis de Algoritmos: Introducción Qué algoritmos elegir para resolver un problema? Que sean fáciles de entender, codificar
Más detallesTema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesAnálisis de Algoritmos Primer Problemario Prof. Miguel A. Pizaña 22 de Mayo de 2007
Análisis de Algoritmos Primer Problemario Prof. Miguel A. Pizaña 22 de Mayo de 2007 I Tareas 1. Dudar de todo, al menos una vez en la vida. 2. Que dice la paradoja de Zenón de Elea? Qué significa paradoja?
Más detallesTemas. Objetivo 12:00
0 Temas Teoría de la Complejidad Análisis de Algoritmos Complejidad temporal y espacial Funciones Matemáticas Ordenes Notación Asintótica Principios para determinar el orden de un algoritmo Objetivo Que
Más detallesTema I: Introducción. Computación Natural
Tema I: Introducción. Computación Natural Planteamiento y resolución de de problemas. Búsqueda de procedimientos sistemáticos. Resolución mecánica de problemas: Transferencia de conocimiento. Apoyo a la
Más detallesModelos de Informática Teórica Capítulo 2 - Clases de Complejidad
Modelos de Informática TeóricaCapítulo 2 - Clases de Complejidad p. 1/40 Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad Serafín Moral Callejón Departamento de Ciencias de la Computación
Más detallesProgramación 2. Lección 8. Caracterización asintótica de la eficiencia de un algoritmo
Programación 2 Lección 8. Caracterización asintótica de la eficiencia de un algoritmo 1 1. Funciones de coste de un algoritmo 2. Caracterización asintótica del coste Notación O Consecuencias prácticas
Más detallesClases de complejidad computacional: P y NP
1er cuatrimestre 2006 La teoría de Se aplica a problemas de decisión, o sea problemas que tienen como respuesta SI o NO (aunque es sencillo ver que sus implicancias pueden extenderse a problemas de optimización).
Más detallesIndice COMPUTABILIDAD Y COMPLEJIDAD. Introducción. Introducción
COMPUTABILIDAD Y COMPLEJIDAD Belén Pérez Lancho Dpto. Informática y Automática 12-Enero-2006 Computabilidad Introducción Modelos de computación Máquinas de Turing Funciones Recursivas Parciales Conclusiones
Más detalles1. Definiciones previas
Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Matemática MA47A: Optimización Combinatorial Profesor: Roberto Cominetti Auxiliares: Raul Aliaga Diaz, Cristóbal
Más detallesNOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.
NOTACIÓN O GRANDE El análisis de algoritmos estima el consumo de recursos de un algoritmo. Esto nos permite comparar los costos relativos de dos o más algoritmos para resolver el mismo problema. El análisis
Más detallesCapítulo 9. Introducción a los lenguajes formales. Continuar
Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre
Más detallesClases 18 y 19:Máquina de Turing. M. en C. Edgardo Adrián Franco Martínez
Clases 18 y 19:Máquina de Turing M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom edfranco@ipn.mx 1 Contenido Máquinas de Turing Definición formal de la
Más detallesTema 06: Recursividad
Tema 06: Recursividad M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Recursión Recursividad Programación
Más detallesAlgoritmos y Complejidad
IN47B, Ingeniería de Operaciones Contenidos 1 Introducción 2 Analizando Algoritmos 3 Complejidad 4 N P-completitud Qué es un Algoritmo? Qué es un Algoritmo? Definición Un algoritmo es un conjunto de pasos
Más detallesUna (muy) breve introducción a la teoría de la computación
Una (muy) breve introducción a la teoría de la computación Marcelo Arenas M. Arenas Una (muy) breve introducción a la teoría de la computación 1 / 48 Ciencia de la computación Cuál es el objeto de estudio
Más detallesTema 3. Análisis de costes
Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información
Más detallesAlgorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i)
Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (i) Eficiencia y notación asintótica. Introducción Para resolver un problema pueden existir varios algoritmos. Por tanto, es lógico
Más detallesla máquina de Turing (MT) como sustituto formal del concepto de algoritmo 0 0 r 1
la máquina de Turing (MT) como sustituto formal del concepto de algoritmo 0 0 r 1 0 1 1 0 l h 0 1 1 1 0 0 índice de materias fundamentos matemáticos introducción histórica modelos de cálculo lenguajes
Más detallesAnálisis de Algoritmos
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Análisis de Algoritmos Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias
Más detallesProblemas fáciles, difíciles e imposibles
Problemas fáciles, difíciles e imposibles La computadora lo resuelve todo? Santiago Figueira Departamento de Computación FCEyN, UBA Semana de la Computación 2015 1 Qué son los métodos efectivos? Intuitivamente
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detalles13.3. MT para reconocer lenguajes
13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática
Más detallesPLANIFICACIÓN SEMANAL DE LA ASIGNATURA
DENOMINACIÓN ASIGNATURA: TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES CURSO 15-16 GRADO: INGENIERÍA INFORMÁTICA CURSO: 2 La asignatura tiene 29 sesiones que se distribuyen a lo largo de 14 semanas. Los laboratorios
Más detallescomo les va con las practicas?
como les va con las practicas? Problemas NP-completos y Estructuras de datos básicas (representación de datos) mat-151 1 Una maquina de Turing Aceptation state Una maquina de Turing Maquina de Turing Determinística,
Más detallesArreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas
Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,
Más detallesMáquinas de Turing, programas y tesis de Turing-Church
Máquinas de Turing, programas y tesis de Turing-Church Elvira Mayordomo, Universidad de Zaragoza Ilustraciones: Costas Busch, Rensselaer Polytechnic Institute 1 Máquinas de Turing 2 La jerarquía de lenguajes
Más detallesFundamentos de Ciencias de la Computación
Fundamentos de Ciencias de la Computación Lenguajes APND Clase 13: Introducción Maquinas de Turing Lenguajes regulares Lenguajes Libres de Contexto Primer Cuatrimestre de 2005 Departamento de Cs. e Ing.
Más detallesEstrategias de Diseño de Algoritmos
Estrategias de Diseño de Algoritmos Introducción A través de los años, los científicos de la computación han identificado diversas técnicas generales que a menudo producen algorit mos eficientes para la
Más detallesRECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres
ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS RECURSIVIDAD Definición. Estado base. Estado general. Ejemplos. Ejercicios. DEFINICIÓN Es una técnica de programación muy potente que permite
Más detallesRecursividad. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Recursividad Dept. Ciencias de la Computación e I.A. Universidad de Granada Índice Introducción a la recursión Recursividad frente a iteración Eficiencia de los algoritmos recursivos Ejemplos y ejercicios
Más detalles