Anar a: Buscar
FIB > Els estudis > Pla 91 > Pàgines de les assignatures > Departament LSI > IEA Castellano | English
A
AD
AED
AIA
AP
BDA
CL1
CL2
DBD
DLP
EA
EDA
ES:D1
ES:D2
ES:E
FBD
FP
FPC
GC
GPI
GSI
IBD
IEA
IIA
IL
IP
LGA
LPO
MAC
MFES
MGC
PC
PD
PGSI
PM
PP
R
RESI
SGBD
SIO
TC
TMIA
VRC



Introducció als Esquemes Algorísmics (IEA)

(http://www.lsi.upc.edu/~iea)



Professors Responsables: FCO. JAVIER LARROSA BONDIA (larrosalsi.upc.edu )
Crèdits: 6.0 (3.0 T 1.5 P 1.5 L)

Departament: LSI

Tipus d'assignatura

Optativa per la EI , ETIG

Requisits de l'assignatura

EDA - Pre-requisit per la EI , ETIG


Objectius docents

Esta asignatura pretende que sus alumnos :


  • conozcan un conjunto de técnicas de diseño de algoritmos (algoritmos
    voraces, divide y vencerás, algoritmos de vuelta atrás, etc. )
  • profundicen en los algoritmos de recorrido exhaustivo de grafos
  • frente a un problema determinado, sepan:

    • caracterizarlo identificando sus aspectos más relevantes
    • elegir la técnica de diseño más adecuada para su resolución
    • producir una versión algorítmica eficiente
    • argumentar la corrección de la solución obtenida


También se pretende que el alumno se familiarice con el uso de las notaciones
asintóticas y las utilice para valorar la eficiencia de los algoritmos
producidos. Deberá ser capaz de seleccionar los tipos de datos ya conocidos que
resulten más adecuados para mejorar la eficiencia temporal de la solución.

Programa

1. Análisis de la Eficiencia de Algoritmos (Durada: 6 h.)
- Repaso de conceptos. Repaso de las notaciones asintóticas.

- Resolución de recurrencias. Teoremas para la resolución de

recurrencias.

2. Recorridos en Grafos (Durada: 8 h.)
- Repaso de conceptos sobre grafos, su especificación e

implementación.

- Repaso de los esquemas de recorrido en profundidad y anchura.

- Ordenación topológica de grafos acíclicos.

- Aplicaciones.

3. Divide y Vencerás (Durada: 4 h.)
- Caracterización del tipo de problemas resolubles mediante el esquema.

- Fundamentos del esquema algorítmico.

- Problemas representativos: producto de enteros largos,

producto de matrices (Strassen), ordenación por fusión

(mergesort), ordenación rápida (quicksort)

y algoritmos de selección.

4. Algoritmos Voraces (Durada: 8 h.)
- Caracterización del tipo de problemas resolubles

mediante el método voraz.

- Esquema algorítmico.

- El principio de optimalidad y la función de selección.

- Algoritmos de Prim y Kruskal para árboles de expansión mínimos.

- Algoritmo de Dijkstra para caminos mínimos.

- Otros ejemplos: códigos de Huffman, planificación de tareas, ...

5. Esquemas de Exploración Exhaustiva (Durada: 8 h.)
- Caracterización del tipo de problemas resolubles mediante el esquema

de vuelta atrás (backtracking) y el esquema de

ramificación y poda (branch & bound).

- Esquema algorítmico recursivo: una solución, todas y la mejor.

- Elección del árbol de búsqueda.

- Marcajes.

- Poda basada en el coste de la mejor solución en curso.

- Ejemplos: Mochila entera, problema del viajante de comercio,

...

- Búsqueda informada: el esquema de ramificación y poda.
6. Programación Dinámica (Durada: 4 h.)
- Caracterización del tipo de problemas resolubles

mediante programación dinámica.

- Esquema algorítmico.

- Formulación recursiva y memoización.

- Ejemplos: algoritmo de Floyd para caminos mínimos,

distancia de edición, mochila entera, árboles

binarios de búsqueda óptimos, ...

Avaluació

La nota FINAL de la asignatura consta de tres componentes:  
* la nota de TEORIA, que aporta un 65% a la nota final. Esta nota es la
calificación del único examen de la asignatura que se realiza al finalizar
el cuatrimestre
* la nota de LABORATORIO,  que aporta un 25% a la nota final. Esta nota es
la calificación de la práctica de la asignatura
* la nota de PROBLEMAS, que aporta un 10% a la nota final. El alumno ha de
entregar, a lo largo del curso 3 ejercicios resueltos, cada uno
perteneciente a un tema distinto. La nota media de estas 3 entregas es la nota
de problemas
No se exige nota mínima para ninguna de las 3 calificaciones.

Càrrega

Los 6 créditos de la asignatura corresponden a 4 horas semanales de clase que
se distribuyen en 2 de teoría, 1 de problemas y 1 de laboratorio.

Bibliografia

Bibliografia bàsica

- Abad, M.T. Apuntes de Introducción a los Esquemas Algorítmicos, Informe Técnico LSI-97-6-T , 1997
- Brassard, G., Bratley, P. Fundamentos de Algoritmia Prentice Hall, 1997
- Ferri, F.J., Albert, J.V., Martín, G. Introducció a l'anàlisi i disseny d'algorismes Universitat de València, 1998
- Horowitz, E., Sahni, S., Rajasekaran, S. Fundamentals of Computer Algorithms Computer Science Press, 1997
- Mehlhorn, K., Naher, S. LEDA: A Platform for Combinatorial and Geometric Computing Cambridge University Press, 1999

Bibliografia complementària

- Cormen, T., Leiserson, C., Rivest, R. Introduction to algorithms The MIT Press, 1990
- Manber, U. Introduction to algorithms: a creative approach Addison-Wesley, 1989
- Pearl, J. Heuristics: Intelligent search strategies for computer problem solving Addison-Wesley, 1984
- Sedgewick, R. Algorithms in C++ (3rd edition) Addison-Wesley, 1999
- Skiena, S.S. The Algorithm Design Manual Springer-Verlag (TELOS), 1998
- Weiss, M.A. Data Structures and Algorithm Analysis in C++ (2nd edition) Addison-Wesley, 1999

Informació complementària


La práctica se hace en grupos de dos personas y consiste en diseñar una solución
correcta y lo más eficiente posible para el problema propuesto.
Para el desarrollo de la práctica se empleará
el lenguaje de programación C++ en combinación con
la librería LEDA para computación combinatoria. Las prácticas se podrán desarrollar
tanto en entornos Unix/Linux como en el entorno W95.



versió per imprimir