Problèmes et Algorithmes Fondamentaux III Algorithme distribué probabiliste Arnaud Labourel Université de Provence 12 avril 2012 Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 1 / 17
Introduction Algorithme probabiliste Définition un algorithme probabiliste, parfois dit aussi randomisé, est un algorithme dont le déroulement fait appel à des données tirées au hasard. Un algorithme distribué probabiliste est donc un algorithme dans un système distribué utilisant des données tirées au hasard. On considérera ici qu un processus peut accéder à des bits aléatoire (1 chance sur deux d être égal à 1). Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 2 / 17
Introduction Avantages et inconvénients Avantages : Certains problèmes impossibles dans le modèle déterministe deviennent possible avec un modèle probabiliste. Inconvénients : L issue de l algorithme dépends des tirages aléatoires. Difficile d obtenir des vraies bits aléatoires sur une machine (pseudo-random). Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 3 / 17
Introduction 2 types d algorithmes probabilistes Il existe deux type d algorithme probabiliste : Monte-Carlo Las Vegas Mesure de complexité : Temps : nombre de rondes/étapes Espace : messages/mémoire des agents Ressource aléatoire : nombre de bits aléatoires utilisés Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 4 / 17
Introduction Algorithme Monte Carlo Définition Un algorithme de Monte Carlo est un algorithme probabiliste pour lequel : la complexité est déterministe (le nombre de rondes est toujours le même) le résultat peut être incorrect avec une certaine probabilité (généralement faible). Exemple : algorithme d élection en n rondes avec 7/8 de réussir (un unique processus élu). Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 5 / 17
Introduction Algorithme Las Vegas Définition Un algorithme de Las Vegas est un algorithme probabiliste pour lequel : la complexité est aléatoire (le temps de calcul varie en fonction des tirages) le résultat est toujours correct. Exemple : algorithme d élection pour deux processus dans lequel les deux processus tirent des bits aléatoires tant qu ils tirent le même. Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 6 / 17
Introduction Lien entre Las Vegas et Monte Carlo Monte Carlo Las Vegas Un algorithme de Monte Carlo peut être converti en algorithme de Las Vegas s il existe une procédure permettant de savoir si une exécution de Monte Carlo est correcte. Idée : répéter l algorithme de Monte Carlo tant qu il est incorrect. Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 7 / 17
L aléatoire ne rends pas toutes les taches possibles Impossibilité de l élection de leader Il n existe pas d algorithme d élection pour des processus anonymes en anneaux si on ne connait pas la taille de l anneau: Monte Carlo avec une probabilité de réussite p pour tout 0 < p 1. Las Vegas avec une espérance de nombre de rondes finies. Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 8 / 17
Impossibilité de l election Idée de la preuve Monte Carlo : L algorithme doit fonctionner pour un anneau d une taille donnée : ELU Couleur d un sommet : tirage aléatoire du sommet Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 9 / 17
Impossibilité de l élection Idée de la preuve Monte Carlo : Il existe des configuration dans un anneau plus grand qui sont vues par le processus comme identique à celle de l anneau plus petit. ELU un processus est élu Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 10 / 17
Impossibilité de l election Idée de la preuve Monte Carlo : En prenant un très grand anneau la probabilité que la configuration arrive 2 fois tend vers 1. ELU ELU Deux processus sont élus Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 11 / 17
Election possible si la taille de l anneau est connue Algorithme Monte Carlo 1 Tirer un mot binaire id aléatoire de taille r >> n 2 Appliquer un algorithme déterministe avec pour identifiant id. Si r >> n, alors la probabilité que les id des processus soient différents est proche de 1. L algorithme fonctionne donc correctement avec un probabilité proche de 1. Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 12 / 17
Election possible si la taille de l anneau est connue Algorithme Las Vegas 1 Tirer un mot binaire id aléatoire de taille r >> n 2 Envoyer un message (id, n) à son voisin de droite 3 Si on reçoit un message (i, j) ou RECOMMENCER si i id et j > 0 alors, on transmet (i, j 1) à son voisin de droite si i = id et j 0 alors on envoie un message RECOMMENCER à son voisin de droite. si RECOMMENCER alors on envoie un message RECOMMENCER à son voisin de droite. 4 Si on ne reçoit pas de message RECOMMENCER avant la ronde 2n, on commence l élection déterministe avec id. Sinon on recommence le tirage. Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 13 / 17
Rendez-vous probabiliste dans l anneau Idée : tirer au hasard un identifiant. Algorithme Monte Carlo de rendez-vous 1 Tirer un identifiant id de taille r au hasard. 2 Appliquer un algorithme déterministe avec comme identifiant id. Résultat : algorithme Monte Carlo avec probabilité de réussite 1 2 r et complexité égale à la complexité de l algorithme déterministe avec r taille de l identifiant. Exemple pour l anneau r = 16 : algorithme avec probabilité 15/16 et complexité O(n) Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 14 / 17
Rendez-vous probabiliste dans l anneau Algorithme Las Vegas de rendez-vous Pour i de 1 à l infini par pas de 1 faire Chaque agent répète la stratégie suivante en tirant un nombre entre 1 et 3 : tirer un nombre entre 1 et 3 Si un 1 est tiré, se déplacer à droite sur une distance 3 i et revenir Si un 2 est tiré, se déplacer à gauche sur une distance 3 i et revenir Si un 3 est tiré, se déplacer attendre pendant 3 i étapes Remarque Si 3 i est plus grand que d alors les agents se rencontre avec une probabilité 1/9. Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 15 / 17
Rendez-vous probabiliste dans les graphes Marche aléatoire Tant qu on a pas rencontré l autre agent Tirer un nombre entre 1 et le degré du sommet Se déplacer par ce port Théorème Deux agents synchrones qui effectue une marche aléatoire vont se rencontrer avec une espérance (moyenne) de O(n 3 ) mouvements. Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 16 / 17
Conclusion Algorithme distribué probabiliste Pour conclure L aléatoire rends certaines taches possibles mais pas toutes L aléatoire rends souvent les algorithmes plus simple mais leur analyse est plus complexe. Différence entre résultat toujours correct (Las Vegas) et complexité en temps toujours borné (Monte Carlo). Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux III Algorithme distribué 12 avril probabiliste 2012 17 / 17