Université Paris 7 École Normale Supérieure de Cachan École Normale Supérieure École Polytechnique
Université Paris 6 Université Paris 11 École Nationale Supérieure des Télécommunications
Centre National de la Recherche Scientifique Commissariat à l'Energie Atomique Institut National de Recherche en Informatique et en Automatique

Parisian Master of Research in Computer Science

Master Parisien de Recherche en Informatique (MPRI)

[Home page] [The MPRI course] [Administrative organisation] [Practical information]


Streaming and Online algorithms (24h, 3 ECTS)

Person in charge: Frédéric Magniez

Possible lecturers

F. Magniez CR CNRS LRI
A. Rosen DR CNRS LRI
M. de Rougemont PU Paris 2 LRI
M. Santha DR CNRS LRI

Outline of the course and teachers for the year 2007-2008

Languages of the course:

The part of the course given by F. Magniez will be a priori in French.
However, if some non french-speaking students attend the course, and with the approval of all other students, this part might be given in English.
The part of the course given by A. Rosen will be given mostly in English. Conversations and questions/answers can be conducted in French.
The exam will be available both in French and in English, and can be written by the students in either language.

Lecture notes:

There are no lecture notes. The lectures will be give on the board.
Some optional exercises and additional reading will be suggested during the course.

Goals

Streaming algorithms and online algorithms are two types of algorithms which are restricted in the way they can access and process their input. Online algorithms receive their input piece by piece, and have to take an irrevesible action upon receipt of each piece. Streaming algorithms read their input piece by piece, are further restricted in the amount of memory at their disposal, and have to compute a function (or an approximation of a fuction) of the whole input. This course is aimed at giving an introduction to these two types of algorithms and to their analysis.

Streaming algorithms

The area of streaming algorithms has experienced a tremendous growth over the last decade; computing over continuous streams of data using only a limited amount of memory has become of key importance in many applications. The design of streaming algorithms is motivated by the recent considerable growth of the size of the data that algorithms are called upon to process in everyday real-time applications, for example in bioinformatics for genome decoding, in Web databases for the search of documents, or in network monitoring.

In this context, inputs are too large to be loaded in memory in their entirety due to the limitation on the amoung of memory. Moreover, there is an additional restriction of one-time sequential scan of the input (and not e.g., random access to the input).

The goal of this course is to provide an introduction to some of the key issues in streaming algorithm, with the emphasis on theoretical tools for designing and analyzing efficient data stream algorithms.

Online algorithms

The area of online algorithms has become an established field in theoretical computer science. It deals with the design and analysis of algorithms that operate in a state of incomplete information. Typically, an online algorithm receives its input piece by piece, and must take an irreversible action upon the receipt of each piece of input without knowledge of future input. Such scenarios are predominant and occur, e.g., in the management of (limited space) cache, in admission and routing in communication networks, in scheduling, etc.

When no prediction of the pattern of the input sequence is available, an accepted method to analyze the performance of online algorithms is "competitive analysis". In competitive analysis one compares the performance (e.g., overall system cost) of an online algorithm, to the performance of an utopian, clairvoyant, algorithm, that knows the entire input in advance. This type of analysis allows one to obtain robust results that do not depend on specific input patterns.

In this course we will try to present the basic concepts of online algorithms and competitive analysis, to cover a number of "classical" results (e.g., k-server problems, metrical task systems), as well as some recent research directions and open problems.

Course program

The topics discussed will come from the following list (subject to some changes; probably not all topics will be covered).

Prerequisites

General knowledge in algorithms and complexity theory.

Internships

Internships and PhD proposals of research team Algorithms and Complexity of LRI

Bibliography