Algorítmica (A)

1. Repaso y Conceptos Algorítmicos Básicos Sobre Grafos

  • Análisis de caso peor
  • Notación asintótica
  • Grafos:
    • Recorridos en anchura (BFS) y en profundidad (DFS)
    • Ordenación topológica
    • Caminos más cortos: Algoritmo de Dijkstra
    • Caminos más cortos en grafos con pesos negativos
    • Algoritmo de Bellman-Ford

2. Algoritmos Voraces

  • Esquema de los algoritmos voraces
  • Planificación de tareas
  • Mochila fraccional
  • Algoritmos de Prim y de Kruskal para árboles de expansión mínimos
  • Particiones (Union-find)
  • Códigos de Huffman

3. Programación Dinámica

  • Principio de optimalidad
  • Memoización
  • Producto iterado de matrices
  • Algoritmo de Floyd-Warshall para caminos mínimos
  • Problema del viajante de comercio
  • Problema de la mochila
  • Árboles binarios de búsqueda óptimos

4. Flujos sobre Redes y Programación Lineal

  • Conceptos básicos
  • Teorema del maxflow-mincut
  • Algoritmo de Ford-Fulkerson
  • Algoritmo de Edmonds-Karp
  • Programas lineales (LPs)
  • Programa lineal primal y dual
  • Formulación LP de flujos sobre redes

5. Aleatorización

  • Análisis probabilístico
  • Algoritmos Monte-Carlo y Las Vegas
  • Paseos aleatorios en grafos
  • Page Rank y otros algoritmos para la Web
  • Otros ejemplos

6. Estructuras de Datos Avanzadas

  • Montículos de Fibonacci
  • Filtros de Bloom
  • Map Reduce
  • Estructuras de Árboles
  • Colas binomiales
  • Tries. Árboles de sufijos. Árboles ternarios de búsqueda
  • Estructuras de datos métricas