Diseño de Algoritmos I 
CI-5651
 

Programa detallado de CI-5651 (Diseño de Algoritmos I)

Los objetivos del curso son:

1) Diseño y análisis de buenos algoritmos para resolver problemas importantes y fundamentales en varias áreas de la computación.
2) Estudio de las técnicas de diseño de estos algoritmos, las cuales permiten resolver otros problemas.
3) Introducción a la teoría de complejidad computacional, la cual permite clasificar los problemas de acuerdo al grado de dificultad (en tiempo de ejecución) que resulta al resolverlos algorítmicamente.

Programa:

-Notación Asintótica.
-Análisis de algoritmos. Análisis del peor caso, caso promedio y análisis amortizado. Ejemplos prácticos de cálculo de la complejidad en tiempo. Verificación de la correctitud de algoritmos.
-Estructuras de datos avanzadas.
-Algoritmos Voraces (Greedy). Arbol mínimo cobertor. Implementación con componentes conexas. El concepto de Matroide y su relación con algoritmos greedy. Caminos mínimos, el problema de la mochila, Secuenciación de procesos.
-Divide and Conquer:
Multiplicación de enteros grandes. Búsqueda Binaria. Merge Sort.
Quicksort. Búsqueda de la mediana en orden lineal. Multiplicación de
matrices.
-Programación Dinámica: Coeficiente binomial. Campeonato
mundial. El problema de la mochila. Caminos mínimos. Multiplicación
encadenada de matrices. Funciones con memoria.
-Recorridos en grafos:
DFS, BFS. Técnicas de enumeración implícita: Backtraking y Branch and
Bound.
-Teoría de la complejidad computacional de problemas.: Máquinas de Turing. Tesis de Churh-Turing. Clases de problemas P, NP, NP-completos.

Material opcional:
-Flujo máximo en Redes.
-Apareamiento Máximo en Grafos Bipartitos.
-String Matching.
-Algoritmos Geométricos.
-Algoritmos Probabilísticos Numéricos.
-Heurísticas y Algoritmos Aproximados.


Bibliografía :
 

Referencias principales:

(B): Guilles Brassard y P. Bratley. Fundamentos de Algoritmia. Prentice Hall. 1997. cota: QA9.58 B73
(C): Thomas Cormen, Charles Leirserson and Ronald Rivest. Introduction to Algorithms. McGraw Hill. 1998 (última edición). QA76.6 C662
(G): Garey & Johnson. Computers and Intractability: A Guide to the Theory of NP-completeness. W.H. Freeman&Co., 1979. cota: QA76.6 G35

Referencias adicionales:

(S): Robert Sedgewick. Algorithms in C++. Addison-Wesley. 1992 QA76.73
(L): Eugene Lawler. Combinatorial Optimization, Networks and Matroids. Holt, Rinehart and Winston. 1976.
(M): Michael Sipser. Introduction to the Theory of Computation. PWS Publishing Company. 1997. QA267

Material:

    Simulador en C++ de la Máquina de Turing (Microsoft-Windows)

Actividades en los trimestres :

Ir al comienzo