DEMAT

 

 DEMAT

Análisis de algoritmos e introducción a matemáticas discretas

Contenido sugerido

1. Introducción.


2. Complejidad de los problemas y de los algoritmos.
2.1. Clases de complejidad de los algoritmos.
2.2. Clases de crecimiento asintótico y propiedades.


3. Algoritmos recursivos.
3.1. Recurrencias y algoritmos recursivos.
3.2. Recurrencias: casos de aplicación.
3.3. Teorema Master.


4. Estructuras de datos avanzadas.
4.1. Conjuntos disjuntos.
4.2. Árboles avanzados: B-trees.
4.3. Árboles avanzados: Montículos de Fibonacci.


5. Algoritmos de gráficas.
5.1. Definiciones.
5.2. Recorridos: DFS, BFS, Topological Sort.
5.3. Minimum spanning tres.
5.4. Algoritmo de Boruvka.
5.5. Algoritmos de Kruskal y Prim.
5.6. Caminos más cortos: Ford Bellmann/Dijkstra.
5.7. Caminos más cortos: A*.
5.8. Caminos más cortos: Floyd Marshall.
5.9. Redes de flujo.

5.10. Algoritmos sobre flujos min-cut/max-flow (Ford Fulkerson).


6. Algoritmos con componentes aleatorios.
6.1. Análisis probabilístico de complejidad.
6.2. Algoritmos con componente aleatorio: fingerprinting, bucket sort.
6.3. Algoritmos con componente aleatorio: cálculo de mediana.
6.4. Algoritmos con componente aleatorio: min-cut.


7. Temas selectos de algoritmos.
(Los siguientes son ejemplos de temas selectos).
a) Algoritmos y teoría de números.
i) GCD, Euclides, Euclides extendido.
ii) Aritmética de módulos, ecuaciones lineales de módulos.
iii) Potencias.
iv) El cifrado RSA.
v) Tests de primalidad.
vi) Factorización en factores primos.
b) Introducción a la geometría computacional.
i) Introducción a Geometría Computacional y Slow Convex Hull.
ii) Convex Hull: Un algoritmo iterativo.
iii) Intersección de Segmentos de Recta.
iv) Triangulación de Polígonos: Problema de la Galería de Arte.
v) Partición en Polígonos Monótonos.
vi) Diagrama de Voronoi: Un algoritmo incremental

 

 

Sugerencias de Bibliografia

 

  1. Cormen, Thomas H.; Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford (2009) [1990]. Introduction to Algorithms (3rd ed.). MIT Press and McGraw-Hill.
  2. Kleinberg, J.; Tardos E. (2005). Algorithm Design. 
  3. Ericksson, J. (2015). Course notes. http://jeffe.cs.illinois.edu/teaching/algorithms/
  4. Sedgewick R. and Flajolet. Introduction to the Analysis of Algorithms. 2013. Addison-Wesley Professional.
  5. Halim, S. Competitive Programming. 3rd Edition. 2013. http://cpbook.net/