Credits
6
Types
- MIRI: Specialization compulsory (Advanced Computing)
- MEI: Elective
Requirements
This subject has not requirements
, but it has got previous capacities
Department
CS
Web
http://www.cs.upc.edu/~conrado/docencia/ra-miri.html
Mail
conrado@cs.upc.edu
A randomized algorithm is an algorithm that makes random choices as part of its logic. Probabilistic analysis of algorithms estimates the computational complexity of algorithms or problem assuming some probabilistic distribution of the set of all possible inputs.
The course has two main themes. The first theme presents basic tools and techniques from probability theory and probabilistic analysis that are recurrent in algorithmic applications. The second theme deals with specific areas of application. Tools and techniques will be interleaved with applications that illustrate them in concrete settings.
Teachers
Person in charge
- Conrado Martínez Parra ( conrado@cs.upc.edu )
Weekly hours
Theory
2
Problems
2
Laboratory
0
Guided learning
0.32
Autonomous learning
9.325
Competences
Advanced computing
Generic
Reasoning
Basic
Objectives
-
Become acquainted with the main techniques and problems of randomization
Related competences: CG1, CEE3.1, CEE3.2, CTR6, -
Examine conditions under which randomized algorithms can be used. Perform an analysis and extract the fundamental properties, from different domains, to assess the suitability and applicability of randomized methods.
Related competences: CG3, CB6, CTR6, CG5,
Contents
-
Introduction
Motivating examples; random algorithms; probabilistic analysis; Monte Carlo algorithms, Las Vegas algorithms. -
Probabilistic tools and techniques
Events and probabilities; random variables and expectations; moments and deviations; tail inequalities; balls and bins and random graphs; Markov chains and random walks. -
Sorting and searching
Randomized quick sort; randomized quick select; randomized selection by sampling. -
Data structures
Hashing; universal hashing, cuckoo hashing, Bloom filters. -
Algebraic techniques
Fingerprinting; database consistency; pattern matching; primality testing. -
Optimization, approximation, sampling and counting
Activities
Activity Evaluation act
Theory and exercises of the syllabus (II)
Theory
10h
Problems
10h
Laboratory
0h
Guided learning
0h
Autonomous learning
25h
Lab assignment
Design, implementation and documentation of a practical work on one of the topics developed in the subject
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
20h
Oral presentations (I)
Oral presentation of an academic paper or some specific topic related to the courseWeek: 14 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
Oral presentations (II)
Week: 15 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
Teaching methodology
There will be two kinds of classes: theoretical sessions and practical sessions. On average, two hours per week is dedicated to theory and two hours per week to exercises. The teacher will allocate the hours in accordance with the subject matter.The theory classes take the form of lectures in which the teacher sets out new concepts or techniques and examples illustrating them.
The practical classes are used to carry out exercises in which students take an active part. Teachers will propose exercises in advance. Students are required to submit the exercises and then discuss the various solutions/alternatives in class.
Evaluation methodology
Grade = 0.7 E + 0.3 OPP = Mid-term exam (graded between 0 and 10)
F = Final exam (graded between 0 and 10)
E = max(0.4 P + 0.6 F, F)
OP = Oral presentation of a specific article or topic related to the course, together with a written summary and the audiovisual material of the presentation (rated between 0 and 10); the articles and / or topics will be chosen by the student from among the proposals made by the teacher
Bibliography
Basic
-
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
Complementary
-
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
Previous capacities
- Basic knowledge of algorithms and data structures: sorting algorithms, graph algorithms, binary search trees, hash tables, analysis of algorithm, notions of complexity, algorithmic schemes, ...Knowledge of at least one programming language, preferably C++ or Python.