Análisis de Algoritmos II

Anuncio
UNIVERSIDAD NACIONAL AUTÓNOMA
DE MÉXICO
LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN
Programa de la asignatura: Análisis de algoritmos II
Clave:
Semestre:
Campo de conocimiento:
Área de Formación:
0801
Sexto
Linea terminal:
Horas
Horas por Total de horas
semana
Créditos:
Teorı́a
Práctica
10
5
0
5
112
Tipo:
Modalidad:
Carácter:
Curso
Obligatoria
Seriación indicativa antecedente: Análisis de algoritmos I.
Seriación indicativa subsecuente: .
Objetivo General: El alumno profundizará en las técnicas de análisis y diseño de algoritmos. También
conocerá algoritmos de aproximación y algoritmos aleatorios.
Contenido Temático
Unidad
1
Algoritmos voraces
2
Divide y vencerás
3
Programación dinámica
4
Análisis amortizado
5
Algoritmos de aproximación
6
Algoritmos aleatorios
Tema
Total de Semanas
Semanas
3.0
2.5
3.5
2.0
2.5
2.5
16.0
Desarrollo temático
1. Algoritmos voraces
Se introduce la técnica de diseño de algoritmos voraces. Se ilustra con varios algoritmos
que la utilizan.
1.1. Estrategia; calendarización de intervalos; cacheo óptimo off-line; algoritmo de Dijkstra; árbol generador mı́nimo; agrupamiento (clustering).
2. Divide y vencerás.
Se introduce la técnica de diseño de algoritmos divide y vencerás. Se ilustra con varios
algoritmos que la utilizan.
2.1. Estrategia.
2.2. mergesort.
2.3. Conteo de inversiones en una permutación.
2.4. La pareja de puntos más cercanos.
1
2.5. Convoluciones y FFT.
3. Programación dinámica.
Se introduce la programación dinámica como técnica de diseño de algoritmos. Se ilustra
con varios algoritmos que la utilizan.
3.1. Estrategia.
3.2. Calendarización de intervalos con pesos.
3.3. Cadena poligonal de mı́nimos cuadrados.
3.4. Estructura secundaria de RNA.
3.5. Alineación de cadenas.
3.6. Multiplicación de matrices.
3.7. Distancias entre todas las parejas de vértices.
4. Análisis amortizado.
Se introducen la técnicas de análisis amortizado para el análisis de la complejidad de
un algoritmo.
4.1. Análisis global.
4.2. Método contable.
4.3. Método del potencial.
5. Algoritmos de aproximación.
Se introducen los algoritmos de aproximación como alternativa a la solución exacta
de problemas NP-Duros.
5.1. Algoritmos voraces como algoritmos de aproximación.
5.2. Cubierta de conjuntos (set cover ).
5.3. Cubierta de vértices (vertex cover ).
5.4. El problema del viajero.
6. Algoritmos aleatorios.
Se introduce la aleatoriedad como un recurso, y se analizan algunos algoritmos aleatorios. Se contrasta su complejidad esperada con la complejidad de los algoritmos deterministas correspondientes.
6.1. Probabilidad básica.
6.2. Solución a conflictos de acceso.
6.3. Corte mı́nimo; búsqueda de mediana y quicksort.
6.4. Pareja de puntos más cercana.
6.5. Cacheo aleatorio.
6.6. Balanceo de carga.
BIBLIOGRAFÍA BÁSICA:
1. Jon Kleinberg y Eva Tardös, “Algorithm design”, Addison Wesley, 2005.
2. Thomas H. Cormen, Charles E. Leiserson, Ronald. L. Rivest y Clifford Stein,
“Introduction to algorithms”,
MIT press, Third Edition, 2009.
2
BIBLIOGRAFÍA COMPLEMENTARIA:
1. Steven S. Skiena,
“The Algorithm Design Manual”,
Springer, 2nd Edition, 2008.
2. Sanjoy Dasgupta, Christos Papadimitriou y Umesh Vazirani
“Algorithms”,
McGraw-Hill, 2006.
Sugerencias didácticas:
Exposición oral
Exposición audiovisual
Ejercicios dentro de clase
Ejercicios fuera del aula
Seminarios
Lecturas obligatorias
Trabajo de investigación
Prácticas de taller o laboratorio
√
(√)
(√)
(√)
( )
(√)
( )
( )
( )
Otras:
( )
Mecanismos de evaluación del aprendizaje:
√
Exámenes parciales
(√)
Examen final escrito
(√)
Trabajos y tareas fuera del aula
( )
Prácticas de laboratorio
( )
Exposición de seminarios por los
( )
alumnos
Partcicipación en clase
( )
Asistencia
( )
Proyectos de programación
( )
Otras:
( )
PERFIL PROFESIOGRÁFICO: Egresado preferentemente de la Licenciatura en Ciencias de la Computación o Matemático con especialidad en Computación. Es conveniente que posea un posgrado en la
disciplina.
3
Descargar