PBO: Optimización Avanzada
Primer Bloque: Otoño
Optimización Avanzada
Proporcionar fundamentos de teoría de convexidad, cómputo en paralelo y en la nube para resolución de problemas de optimización a gran escala.
Reproducibilidad de cálculos con ambientes dockerizados.
Combinación de los lenguajes de Python y R con C para alto rendimiento en la implementación de algoritmos.
Uso de git y github para trabajo colaborativo en equipos de desarrollo.
Uso de ambientes dockerizados y con cómputo en paralelo y en la nube para resolver problemas en áreas de conocimiento como matemáticas, ingeniería, física, biología, actuaría, economía
Temario:
1. Álgebra lineal numérica.
1.1 Algoritmos para operaciones básicas en el álgebra lineal numérica: operaciones entre vectores, matriz -vector y multiplicación de matrices (BLAS nivel 1, 2 y 3).
1.2 Solución a sistemas de ecuaciones lineales por métodos directos e iterativos.
2. Optimización Convexa.
2.1 Algoritmos para problemas de optimización sin restricciones.
2.2 Métodos de descenso y gradient conjugado.
2.3 Método de región de confianza exacto.
2.4 Dualidad, lema de Farkas y condiciones de Karush-Kuhn-Tucker.
2.5 Algoritmos para problemas de optimización con restricciones.
2.6 Métodos de puntos interiores y barrera logarítmica.
2.7 Métodos Cuasi Newton.
3. Optimización y machine learning.
3.1 Métodos basados en componentes estocásticas.
3.2 Métodos de memoria limitada.
3.3 Aproximaciones de rango bajo.
3.4 Descenso por coordenadas.
3.5 Máquina de Soporte Vectorial distribuida.
4. Cómputo en la nube.
4.1 Uso de contenedores de docker en la nube. Kubernetes.
5. Compilación a C
5.1 Cython y Rcpp.
6.Cómputo en paralelo.
6.1 Multiprocessing, Dask, parallel, MPI, OpenMP, CUDA.