Análisis y Diseño de Algoritmos

Slides:



Advertisements
Presentaciones similares
ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
Advertisements

Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diseño de Circuitos Lógicos Secuenciales1
Unidad 8 Métodos de Búsqueda
Procesamiento de cadenas
3.4.- Administración de Memoria Virtual.
Introducción a los Algoritmos
Ordenamiento Interno y Búsqueda Binaria
PROGRAMACION DE ESTRUCTURAS DE DATOS
UNIVERSIDAD LATINA (UNILA) II.- ANALISIS DE ALGORITMOS
Programación 1 Introducción
Algoritmos Aleatorizados
Ajustando el Algoritmo al problema Universidad Nacional Oscar Lozano.
Solución de problemas por búsqueda inteligente
Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
Material de apoyo Unidad 8 Estructura de datos
 La resolución de problemas algorítmicos no solamente implica que los informáticos sepan programar sino necesitan de otras habilidades como tener una.
Análisis y Diseño de Algoritmos
Proceso de información en la computadora
Unidad II Aplicaciones con Arreglos en Java y C++
Sesión 2: Métodos Probabilísticos Básicos
Universidad de los Andes-CODENSA
Análisis de Algoritmos
Clases 4 Pruebas de Hipótesis
1 Planteamiento del problema ¿Tenemos los humanos la capacidad de percibir si nos miran desde atrás? O, más exactamente: ¿Es defendible que existen otras.
DIVISIÓN DE POLINOMIOS 1
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
Introducción al análisis de algoritmos
Algoritmos.

Diseño y análisis de algoritmos
Estructuras de Datos Arreglos.
Algoritmos de búsqueda
Sistemas decimal, binario, octal y hexadecimal
Diseño y análisis de algoritmos
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Sistemas de numeración
Almacenamiento y Recuperacion de Información- Arbol AVL
Aplicación de estructuras de datos
MÉTODO DE PIXELES DE BORDE
Unidad V: Estimación de
Simular: Representar una cosa, fingiendo o imitando lo que no es.
Unidad aritmético-lógica
Parte I. Estructuras de Datos.
Algoritmos de Ordenamiento y Complejidad
Procesamiento Digital de Imágenes
Parte I. Estructuras de Datos.
Un modelo de computación no convencional: La Computación Cuántica
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Oscar F. Bedoya L. Fundamentos de análisis y diseño de algoritmos.
Ordenamiento en lenguaje c
ALGORITMO QUE ES ??.
Elaboración de algoritmos usando lógica de programación
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
METODOS DE BUSQUEDA EN C++ Oscar Michel Ruiz León
Introducción a los TADs
3.2.1 Administración de almacenamiento
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
MIA - Grupo 5 Unidad 2.
ORDENAMIENTO DE DATOS Jorge Méndez Sánchez Eliúh Cuecuecha Hernández
Análisis y Diseño de Algoritmos Programa #1 Samuel Garrido Daniel.

Matemáticas Discretas MISTI
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
NUMEROS ALEATORIOS. La idea es hallar un generador que sea fácil de implementar en la computadora, que sea rápido y que no ocupe mucho espacio memoria,
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Transcripción de la presentación:

Análisis y Diseño de Algoritmos Técnicas de Cotas Inferiores Teoría de la Información Técnica del adversario

Análisis y Diseño de Algoritmos Teoría de la Información Para representar m cosas (alternativas) se necesitan a lo menos log2m bits de decisiones. Aquí podemos representar esto, a través de un árbol de decisiones, donde cada comparación es un bit. Cualquier algoritmo que compara puede representarse con un árbol de decisión

Análisis y Diseño de Algoritmos Caso cuando el árbol es totalmente balanceado Peor caso

Análisis y Diseño de Algoritmos Ejemplo: Ordenar usando comparaciones de n números m=n! Ejemplo: Buscar un número entre n números, m=n+1 No es buena cota inferior si los números están desordenados. Búsqueda secuencias es óptima para buscar en n objetos (sin orden y distintos)

Análisis y Diseño de Algoritmos Si los elementos o eventos no están distribuidos uniformemente, podemos usar la entropía como cota inferior. Si hay n eventos, cada uno con probabilidad pi, entonces el número mínimo de bits (decisiones) para representar los n elementos es : n H(p)= ∑ pi log2 pi i=1 Por ejemplo, si n es igual a 2, y los pi están distribuidos uniformemente, entonces necesitamos 1 bit.

Análisis y Diseño de Algoritmos Técnica del Adversario Está técnica consiste en diseñar un adversario que conteste lo que da menos información a un algoritmo. Luego en base a este diseño, obtenemos un número mínimo de decisiones para cualquier algoritmo. Notar que tanto la teoría de la información como la técnica del adversario son válidos sólo para algoritmos que utilizan decisiones binarias.

Análisis y Diseño de Algoritmos Ejemplo: Buscar un elemento en n números desordenados. Adversario: Si el algoritmo ha preguntado por j posiciones distintas (j<n), el adversario siempre contesta que no está, y es coherente con esta respuesta si se repite la pregunta. Cuando el algoritmo pregunta por la última posición (Pn), si el elemento está en el arreglo lo coloca en esa posición, sino dice que no está.

Análisis y Diseño de Algoritmos En otras palabras, el adversario escoge donde poner el elemento buscado. Hay que hacer al menos n preguntas. Búsqueda secuencial es óptima en este caso Problema: Encontrar el máximo y el mínimo, n-1+ n-2 = 2n-3

Análisis y Diseño de Algoritmos Problema: Encontrar el máximo y el segundo. Algoritmo y Cota Inferior 2n-3 no es óptimo

Análisis y Diseño de Algoritmos Fuerza Bruta: n-1 + n-2 = 2n-3 El algoritmo óptimo es:

Análisis y Diseño de Algoritmos MEDIDAS DE COMPLEJIDAD Tiempo: Lo más importante se abstrae de un cierto conjunto de operaciones. Espacio: Memoria que ocupa el algoritmo, se abstrae en ciertos objetivos. En general, la complejidad del espacio u otros recursos no puede ser mayor que el tiempo ( a menos que la condición inicial sea especial).

Análisis y Diseño de Algoritmos Modelo de Computador Para analizar la complejidad de un algoritmo, se debe establecer un modelo adecuado de la tecnología sobre la que se ejecutará, incluyendo un modelo de los recursos y de sus costos de uso. El modelo que utilizaremos corresponde a una máquina monoprocesador con memoria de acceso aleatorio.

Análisis y Diseño de Algoritmos Técnicas de Diseño Inducción: Simple: Sabemos resolver el problema de tamaño m<n, y a partir de ello resolvemos un problema de tamaño n. Ejemplo: Búsqueda: Resolvemos el problema para n-1 Vemos si es el n-ésimo (si no lo hemos encontrado)

Análisis y Diseño de Algoritmos Ejemplo: Búsqueda: Resolvemos el problema para n-1 Vemos si es el n-ésimo (si no lo hemos encontrado) (implementación ?)

Análisis y Diseño de Algoritmos Ejemplo: Ordenamiento Ordenamos n-1 números Agregamos el n-ésimo al conjunto manteniendo el orden. n=0, no hacemos nada ¿Qué tipo de ordenamiento es este?

Análisis y Diseño de Algoritmos Ejemplo: Ordenamiento Sabemos como resolver el problema de tamaño m1 y m2. Mezclo ambos conjuntos obteniendo uno de tamaño n=m1+m2. n<=1, entonces no hago nada. ¿Qué tipo de ordenamiento es este?

Análisis y Diseño de Algoritmos Corolario: Dividir para reinar, es un caso particular de inducción.