thesis

Probabilistic algorithms for data streaming and random generation

Defense date:

Jan. 1, 2012

Edit

Institution:

Paris 6

Disciplines:

Abstract EN:

Cette thèse examine deux types de problèmes: l'analyse de grands flux de données réelles, et le problème complémentaire de la génération de grande quantités de données aléatoires. Pour cela, elle exploite un ensemble d'outils communs que sont la combinatoire analytique (et les fonctions génératrices), l'énumeration, les probabilités, les algorithmes probabilitistes, avec en particulier la méthode Boltzmann pour la génération aléatoire. Tout d'abord, nous étudions des algorithmes de traitement de données: ces algorithmes sont capables d'extraire des informations de grands flux de données en utilisant des ressources très limitées (notamment pour ce qui est de la mémoire et du temps de traitement par élément du flux). Une des nos contributions principales est de livrer l'analyse complète d'un algorithme optimal pour l'estimation du nombre d'éléments distincts dans un flux, un problème qui a suscité de nombreux travaux. Notre seconde contribution, un travail en commun avec des chercheurs de l'UPC à Barcelone, est d'introduire un estimateur novateur du nombre distinct d'éléments sui se base sur des statistiques sur les permutations. La seconde partie se concentre sur la génération aléatoire de lois discrètes, et d'objets combinatoires. Nous introduisons le premier algorithme optimal pour la génération de la loi uniforme discrète, un élément central utilisé pour les simulations par ordinateur. Nous introduisons aussi, dans un travail en commun avec Olivier Bodini, une extension du modèle de Boltzmann pour permettre la génération aléatoire d'une nouvelle sorte d'objets appartenant à la combinatoire dite multiplicative, qui possède des liens étroits avec la théorie analytique des nombres. Enfin, toujours avec Olivier Bodini, nous présentons un travail en cours qui pourraient permettre d'améliorer l'aspect pratique de la méthode de Boltzmann.

Abstract FR:

This thesis examines two types of problems---that of analyzing large quantities of real data, and the complimentary problem of creating large quantities of (random) data---using a set of common tools: analytic combinatorics (and generating functions), enumeration, probabilities, probabilistic algorithms, and in particular the Boltzmann method for random generation. First, we study several data streaming algorithms: algorithms which are able to extract information from large streams of data using very limited ressources (in particular, memory and processing time per element of the stream). One of our main contributions is to provide a full analysis of an optimal algorithm to estimate the number of distinct elements in a stream, a problem which has garnered a lot of research in the past. Our second contribution, a work in common with researchers from UPC in Barcelona, is to introduce a completely novel type of estimator for the number of distinct elements, which uses statistics on permutations. The second part focuses on the random generation both of laws and combinatorial object. We introduce the first optimal algorithm for the random generation of the discrete uniform law, which is one of the most wildly used building blocks in computational simulations. We also, with Olivier Bodini, introduce an extension of the Boltzmann method to randomly generate a new kind of objects belonging to multiplicative combinatorics, which are an underexplored part of combinatorics with ties to analytic number theory. Finally we present ongoing work with Olivier Bodini on improving the practicality of the Boltzmann method