Créditos
6
Tipos
- MIRI: Obligatoria de especialidad (Computación Avanzada)
- MEI: Optativa
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
CS
Mail
conrado@cs.upc.edu
Un algoritmo aleatorizado es un algoritmo que toma decisiones aleatorias como parte de su lógica. El análisis probabilístico de algoritmos estima la complejidad computacional de algoritmos o problemas asumiendo alguna distribución probabilística del conjunto de todas las entradas posibles.
El curso tiene dos temas principales. El primer tema presenta las herramientas y técnicas básicas de la teoría de la probabilidad y el análisis probabilístico que son recurrentes en las aplicaciones algorítmicas. El segundo tema trata sobre áreas específicas de aplicación. Las herramientas y las técnicas se intercalarán con aplicaciones que las ilustrarán en entornos concretos.
Profesorado
Responsable
- Conrado Martínez Parra ( conrado@cs.upc.edu )
Horas semanales
Teoría
2
Problemas
2
Laboratorio
0
Aprendizaje dirigido
0.32
Aprendizaje autónomo
9.325
Competencias
Advanced computing
Genéricas
Razonamiento
Básicas
Objetivos
-
Conocer las principales técnicas y problemas de la aleatorización.
Competencias relacionadas: CG1, CEE3.1, CEE3.2, CTR6, -
Examinar las condiciones bajo las cuales se pueden usar algoritmos aleatorios. Realizar un análisis y extraer las propiedades fundamentales, de diferentes dominios, para evaluar la idoneidad y aplicabilidad de los métodos aleatorios.
Competencias relacionadas: CG3, CB6, CTR6, CG5,
Contenidos
-
Introducción
Ejemplos motivadores; algoritmos aleatorios; análisis probabilístico; Algoritmos de Monte Carlo, algoritmos de Las Vegas. -
Herramientas y técnicas probabilísticas
Eventos y probabilidades; variables aleatorias y esperanzas; momentos y desviaciones; desigualdades de cola; bolas y contenedores; grafos aleatorios; Cadenas de Markov y paseos aleatorios. -
Ordenación y búsqueda
Randomized quick sort; randomized quick select; randomized selection by sampling. -
Estructuras de datos
Hashing; universal hashing, cuckoo hashing, Bloom filters. -
Técnicas algebraicas
Fingerprinting; database consistency; pattern matching; primality testing. -
Optimización, aproximación, muestreo y contaje
Actividades
Actividad Acto evaluativo
Desarrollo de los temas del temario (II)
Teoría
10h
Problemas
10h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
25h
Tarea de laboratori
Diseño, implementación y documentación de un trabajo práctic sobre un de los temas presentados en la asignatura
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
20h
Presentaciones orales (I)
Presentación oral de un artículo o tema relacionado con la asignaturaSemana: 14 (Fuera de horario lectivo)
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Presetaciones orales (II)
Semana: 15 (Fuera de horario lectivo)
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Metodología docente
Habrá dos tipos de clases: sesiones teóricas y sesiones prácticas. En promedio, dos horas a la semana se dedica a la teoría y dos horas a la semana a los ejercicios. El profesorado asignará las horas de acuerdo con el tema.Las clases de teoría toman la forma de conferencias en las cuales el maestro establece nuevos conceptos o técnicas y ejemplos que los ilustran.
Las clases prácticas se utilizan para llevar a cabo ejercicios en los que los estudiantes toman parte activa.El profesorado propondrá ejercicios con antelación. Los estudiantes deben presentar los ejercicios y luego discutir las diversas soluciones / alternativas en clase.
Método de evaluación
Nota = 0.7 E + 0.3 OPP = Examen parcial (calificado entre 0 y 10)
F = Examen final (calificado entre 0 y 10)
E = max(0.4 P + 0.6 F, F)
OP = Presentación oral de un artículo o tema concreto relacionado con la asignatura, junto con un resumen escrito y el material audiovisual de la presentación (calificado entre 0 y 10); los artículos y / o temas será escogido por el estudiante de entre las propuestas realizadas por el profesor
Bibliografía
Básico
-
Probability and computing: randomization and probabilistic techniques in algorithms and data analysis
- Mitzenmacher, M.; Upfal, E,
Cambridge University Press,
2017.
ISBN: 9781107154889
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004118909706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Randomized algorithms
- Motwani, R.; Raghavan, P,
Cambridge University Press,
1995.
ISBN: 0521474655
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001320239706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementario
-
Probability models for computer science
- Ross, Sheldon M,
Harcourt : Academic Press,
cop. 2002.
ISBN: 9780125980517
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003271789706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithms and Data Structures for Massive Datasets
- Medjedovic, Dzejla; Tahirovic, Emin; Dedovic, Ines,
Manning,
2022.
ISBN: 9781638356561
https://web-p-ebscohost-com.recursos.biblioteca.upc.edu/ehost/ebookviewer/ebook?sid=bddc5e1c-9751-4594-94a5-527efabc667d%40redis&vid=0&format=EK -
Mining of massive datasets
- Leskovec, Jurij; Rajaraman, Anand; Ullman, Jeffrey D,
Cambridge University Press,
2020.
ISBN: 9781108476348
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004193679706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Capacidades previas
- Conocimientos básicos de algoritmos y estructuras de datos: algoritmos de ordenación, algoritmos sobre grafos, árboles binarios de búsqueda, tablas de hash, coste de algoritmos, nociones de complejidad, esquemas algorítmicos, ...- Conocimiento de, al menos, un lenguaje de programación, preferentemente C++ o Python