Este curso es una introducción al análisis matemático de algoritmos y a los fundamentos de la Teoría de Complejidad Computacional. Primero discutiremos como se mide la cantidad de recursos necesarios para resolver un problema algorítmico y luego nos concentraremos en dos extremos: por un lado problemas algorítmicos que admiten soluciones muy eficientes (algoritmos de divide and conquer y probabilísticos) y por otro lado problemas que creemos que no pueden resolverse de manera eficiente mediante ningún método, los problemas NP completos. Distinguir entre unos y otros es el objetivo principal de la teoría de complejidad computacional, y el problema abierto más importante de la teoría de la computación, conocido como P vs NP, que introduciremos como tema final del curso.
Textos: La referencia principal seran las notas clase a clase del instructor. Estas se basarán en los siguientes libros de referencia (altamente recomendados y complementarios entre si):
Metodología y Evaluación:
La mayor parte de lo que aprenderán en este curso será el resultado de su propio trabajo en dos aspectos de igual importancia: Reflexión posterior a cada clase sobre los resultados discutidos en ella y trabajo en los talleres Prácticos asignados clase a clase.
Los criterios de evaluación del curso son:
Instructor:
PLAN DEL CURSO:
Semana | Tema | Notas Clase | Prácticos | Evaluaciones (con *) |
1 | Introducción | [pdf] | [P1] | |
2 | Divide y Conquista | [pdf] | [P2] | |
3 | Estimación recursiva | [pdf] | Entrega [P1] (Agosto 23 en clase) | |
4 | Fundamentos de probabilidad | [pdf] | [P3] | Entrega [P2] (Agosto 30 en clase) |
5 | Algoritmos Probabilísticos | [pdf] | ||
6 | Algoritmos en grafos | [pdf],[pdf] | Entrega [P3] (Septiembre 13 en clase) | |
7 | REPASO | |||
8 | EXAMEN | Examen Parcial I (Septiembre 27 en clase) | ||
SEMANA UCU | ||||
9 | Complejidad computacional NP1 | [pdf] | [P4] | |
10 | Complejidad computacional NP2 | [pdf] | ||
11 | Complejidad computacional NP3 | [pdf] | ||
12 | Complejidad computacional NP4 | [pdf][M] | Entrega [P4] (Noviembre 1 en clase) | |
13 | Complejidad computacional NP4 | |||
14 | Qué son las Máquinas de Turing? | [pdf] | [P5] | |
15 | Máquinas de Turing y lenguajes | [pdf] | ||
16 | Máquinas Universales y Problemas indecidibles | Entrega [P5] (Noviembre 22 en clase) | ||
17 | EXAMEN | Examen Parcial II (Noviembre 29 en clase) |