Algorithmique Distribuée



Documents pareils
Introduction aux algorithmes répartis

Conception des systèmes répartis

Programmation linéaire

Intégration et probabilités TD1 Espaces mesurés Corrigé

Parallélisme et Répartition

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

La fonction exponentielle

Recherche dans un tableau

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

Cours de Génie Logiciel

1 Recherche en table par balayage

Organigramme / Algorigramme Dossier élève 1 SI

Qualité du logiciel: Méthodes de test

Limites finies en un point

Intégration et probabilités TD1 Espaces mesurés

Les arbres binaires de recherche

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Chapitre 5 : Flot maximal dans un graphe

Résolution de systèmes linéaires par des méthodes directes

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Arbres binaires de recherche

Algorithmique des Systèmes Répartis Protocoles de Communications

Cours 1 : Qu est-ce que la programmation?

Image d un intervalle par une fonction continue

Systèmes de transmission

3 Approximation de solutions d équations

Sommaire. Couverture de zone de surveillance dans les réseaux de capteurs. De quoi parle-t-on ici (1/2)? Objectif. De quoi parle-t-on ici (2/2)?

Eléments constitutifs et synthèse des convertisseurs statiques. Convertisseur statique CVS. K à séquences convenables. Source d'entrée S1

Initiation à LabView : Les exemples d applications :

Modélisation et Simulation

Circuits RL et RC. Chapitre Inductance

Représentation des Nombres

Problèmes de Mathématiques Filtres et ultrafiltres

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

VIII- Circuits séquentiels. Mémoires

Modélisation multi-agents - Agents réactifs

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Cours de Systèmes d Exploitation

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

LE PROBLEME DU PLUS COURT CHEMIN

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Pourquoi l apprentissage?

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

L exclusion mutuelle distribuée

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

LES GRADES PROGRAMME D EXAMEN DE LA CEINTURE JAUNE A LA CEINTURE MARRON

Les structures de données. Rajae El Ouazzani

Temps Réel. Jérôme Pouiller Septembre 2011

Université Paris-Dauphine DUMI2E 1ère année, Applications

Donner les limites de validité de la relation obtenue.

ELEC2753 Electrotechnique examen du 11/06/2012

10 tâches quotidiennes que devrait maîtriser votre système de sauvegarde des données

Window Dressing des comptes consolidés : les écarts de consolidation positifs

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Continuité et dérivabilité d une fonction

Systèmes et algorithmes répartis

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

La mesure de Lebesgue sur la droite réelle

Les puissances La notion de puissance La puissance c est l énergie pendant une seconde CHAPITRE

Continuité en un point

DOCM Solutions officielles = n 2 10.

Voyez la réponse à cette question dans ce chapitre.

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Contradicting Beliefs and Communication. J.-M. Tallon, J.-C. Vergnaud, & S. Zamir CNRS-EUREQua

Gestion des transactions et accès concurrents dans les bases de données relationnelles

V- Manipulations de nombres en binaire

Algorithmes récursifs

Programmation C++ (débutant)/instructions for, while et do...while

Suites numériques 3. 1 Convergence et limite d une suite

Chapitre 1 Régime transitoire dans les systèmes physiques

Plus courts chemins, programmation dynamique

Travaux pratiques Détermination de la capacité de stockage des données

Chp. 4. Minimisation d une fonction d une variable

UML et les Bases de Données

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Définitions. Numéro à préciser. (Durée : )

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Erreur statique. Chapitre Définition

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2

Algorithmique I. Algorithmique I p.1/??

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

T.P. FLUENT. Cours Mécanique des Fluides. 24 février 2006 NAZIH MARZOUQY

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Introduction à la théorie des graphes. Solutions des exercices

GPA770 Microélectronique appliquée Exercices série A

MIS 102 Initiation à l Informatique

ÉPREUVE COMMUNE DE TIPE Partie D

Le calcul du barème d impôt à Genève

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Fonctions de la couche physique

Resolution limit in community detection

Qu est-ce qu une probabilité?

Traitement bas-niveau

Transcription:

Algorithmique Distribuée Problèmes et Algorithmes Fondamentaux Arnaud labourel http://pageperso.lif.univ-mrs.fr/ arnaud.labourel Aix-Marseille Université 15 janvier 2014 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 1 / 48

Problèmes et Algorithmes Fondamentaux Deux types de systèmes : Système parallèle : séparer un gros problème en petits problèmes indépendants Système distribué : interaction et coopération de processus indépendants en vue de réaliser une tâche donnée Dans ce cours, on ne s intéressera qu aux systèmes distribuées. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 2 / 48

Algorithmique "classique" Processus Donnée Un processus qui exécute un algorithme Une donnée Complexité : nombre d opérations/instructions Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 3 / 48

Trois types de modèles pour l algorithmique distribuée Processus Donnée Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 4 / 48

Mémoire partagée Processus Donnée une donnée n processus qui exécutent le même algorithme et peuvent lire/écrire dans la donnée complexité : nombre d écriture/lecture Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 5 / 48

Agents mobiles Donnée Processus n données k processus qui exécutent le même algorithme et peuvent se déplacer dans le réseau complexité : nombre de déplacements Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 6 / 48

Passage de message Processus Donnée n données n processus qui exécutent le même algorithme et peuvent envoyer des messages à leur voisins complexité : nombre de messages Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 7 / 48

Quelques propriétés pour le modèle de communication par passage de message Tout les processus exécutent le même algorithme. (l état initial peut différer.) Chaque processus connait l information locale (pas d information globale). Ils doivent communiquer pour l échange des informations. A chaque étape de l algorithme, un nœud peut : envoyer des messages aux voisins, recevoir des messages de voisins, et faire des calculs locaux. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 8 / 48

Exemples Fondamentaux Les tâches distribuées se ramènent en général à une forme d accord distribué. Exemples (Définition informelle) : Election : un processus, et un seul, doit terminer dans l état ELU (les autres sont non-elu). Consensus : étant données des valeurs initiales pour chaque processus, ceux-ci doivent décider une, et une seule, de ces valeurs.... et de nombreuses variations. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 9 / 48

Problème d Election ELU NON ELU NON ELU NON ELU Pourquoi est-il important? (aider à la coordination) Pourquoi est-il difficile à résoudre? (symétries) Comment effectuer l élection? (utiliser des identifiants uniques, UID) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 10 / 48

Consensus dans un réseau 1 3 4 3 3 3 5 7 3 3 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 11 / 48

Les Algorithmes Pour quel(s) modèle(s) de calcul distribué? Avec quelle complexité? Y-a-t-il toujours une solution? Non = importance de déterminer ce qui est possible/impossible en fonction des caractéristiques du système Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 12 / 48

Les Modèles Différents Aspects Dynamiques : synchrone : tous les processus fonctionnent à la même vitesse asynchrone : les processus ont des vitesses différentes qui peuvent varier dans le temps partiellement synchrone : les processus fonctionnent à la même vitesse mais ne sont pas actifs à chaque ronde types de pannes pannes définitives pannes transitoires pannes byzantines Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 13 / 48

Les Modèles Différents Aspects Statiques information structurelle : n unique = identités connexions orientées ou non connaissance structurelle : famille de graphes (arbres, anneaux, planaires,...) = domaine borne sur la taille borne sur le diamètre Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 14 / 48

Les Modèles Différents Détection de la Terminaison implicite (stabilisation) : chaque processus ne sait pas quand il a décidé mais l algorithme converge faiblement locale : chaque processus sait quand il a décidé et participe encore à l algorithme une fois qu il a décidé locale : chaque processus sait quand il a décidé et ne participe plus à l algorithme une fois qu il a décidé globale : un processus sait quand tous les processus ont décidés NB Quand un processus termine en donnant une valeur, on dit qu il décide. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 15 / 48

Exemples des Problèmes Wakeup (Réveiller tous les processus) Broadcast (Diffusion d information) Gossip (Tous les processus communiquent à tous les autres processus) Construction d arbre couvrant Election Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 16 / 48

La Communication Communication point à point Chaque nœud peut choisir une (ou plusieurs) arête incidente pour envoyer un message. Le receveur sait de quelle arête le message est arrivé. Taille de messages limitée (généralement logarithmique en n) But : Réduire la quantité de communication (le communication coute plus que le calcul local!) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 17 / 48

A Propos de la Complexité Comment comparer les performances? Complexité en espace : nombre de messages Complexité en espace : nombre de bits transmis Complexité en temps synchrone : nombre de rondes asynchrone : parfois nombre de rondes (exécutions optimistes) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 18 / 48

Problème de l Election Spécification Etant donné un réseau de noeud initialement dans l état Inconnu, l algorithme termine avec les conditions suivantes : Election : Un noeud et un seul termine dans l état ELU Variante (terminaison explicite) Tous les autres noeuds savent que l algorithme est terminé (et qu ils sont non-elu) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 19 / 48

Un Anneau de Processus envoi de messages P2 P1 P3 P6 P4 P5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 20 / 48

Systèmes Synchrones Définition Un système est synchrone si il existe une horloge globale partagée par tous les processus du système. Envoi de message simultané, les messages sont reçus durant le même round. Exemples : Mémoire partagée : PRAM automate cellulaire réseaux avec un timeout Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 21 / 48

Processus Anonymes Théorème Dans un anneau de processus synchrones anonymes (états de départ identiques), il est impossible d élire. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 22 / 48

Preuve d impossibilité P i : les agents ont tous le même état au début de la ronde i. P 1 est vrai car les agents sont anonymes. Supposons que P i est vraie. Dans ce cas tous les agents vont effectuer les mêmes actions car il sont dans le même état. Il vont donc tous envoyer les mêmes messages à leur voisins de gauche et de droite. Par conséquent ils vont tous recevoir les mêmes messages des deux cotés et ils vont tous passer au même état. P i+1 est donc vraie. Par récurrence, à chaque ronde, tous les processus sont dans le même état (symétrie des processus). Supposons qu un algorithme d élection existe. Si l un des processus est ELU alors tous les autres le sont aussi. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 23 / 48

Processus Avec Identités On suppose désormais que chaque processus possède un identifiant unique (UID). Algorithme d élection LCR Pour un anneau unidirectionnel avec UID, sans connaissance de la taille. Unidirectionnel : envoi de message possible que sur un seul voisin (circuit) LCR pour Le Lann, Chang et Roberts Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 24 / 48

Algorithme LCR e t a t = inconnu ; u = u i d ; do { send ( u ) ; v = r e c e i v e ( ) ; i f ( v > u i d ) u = v ; i f ( v < u i d ) u = n u l l ; i f ( v = = u i d ) e t a t = e l u ; } w h i l e ( e t a t = = inconnu ) ; Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 25 / 48

Execution de LCR u=1 1 u=4 4 2 u=2 3 u=3 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=1 1 4 1 u=4 4 2 u=2 3 2 3 u=3 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=4 1 u=null 4 2 u=null 3 u=null Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=4 1 null 4 u=null 4 2 u=null null null 3 u=null Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=null 1 u=null 4 2 u=4 3 u=null Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=null 1 null null u=null 4 2 u=4 null 4 3 u=null Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=null 1 u=null 4 2 u=null 3 u=4 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=null 1 null null u=null 4 2 u=null 4 null 3 u=4 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Execution de LCR u=null 1 u=null 4 ELU 2 u=null 3 u=null Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

Preuve de Correction de LCR Propriété Le processus d UID maximal est dans l état ELU à la n-ième ronde et c est le seul. Preuve On note i max l indice du processus d UID maximal. Pour toute ronde r avec 0 r n 1, u imax +r mod n = UID imax Après n rondes, etat imax =ELU, Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 27 / 48

Terminaison de LCR Ainsi présenté, l algorithme ne se termine pas pour les processus non-elus. = ils sont bloqués dans une boucle infinie d envoi et de réception de message vide. Chaque processus qui voit passer un UID plus grand que le sien peut se mettre dans l etat non-elu (mais ne sait pas mieux quand s arrêter) Le processus ELU peut envoyer un message CestFini pour indiquer à chaque autre noeud la terminaison Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 28 / 48

Complexité de LCR sans détection de la terminaison : en temps : n rondes en espace : O(n 2 ) avec détection de la terminaison locale : en temps : 2n rondes en espace : O(n 2 ) Pire des cas quand les UIDs sont en ordre décroissant. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 29 / 48

Élection en n log n messages Un algorithme plus efficace existe. On considère l anneau bidirectionnel. On définit le voisinage de taille d d un processus noté V d (u) comme étant tous les processus à distance d de u (d processus à droites et d à gauche) u V 2 (u) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 30 / 48

Élection en n log n messages : principe Principe A la phase k, le processus se compare à ses voisins actifs à distance 2 k : V 2 k(u). S il a le plus grand identifiant, il reste actif. Sinon il devient passif et ne compte plus pour les comparaisons suivantes Phase 0 : on se compare aux voisins à distance 1 Phase 1 : on se compare aux voisins à distance 2 Phase 2 : on se compare aux voisins à distance 4 Phase 3 : on se compare aux voisins à distance 8 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 31 / 48

Élection en n log n messages : code To initiate an election (phase 0) : send(election< my_id, 0, 0 >) to left and right ; Upon receiving a message ELECTION< j, k, d > from left (right) : if ((j > my_id) (d 2k)) then send(election< j, k, d + 1 >) to right (left) ; if ((j > my_id) (d = 2k)) then send(reply< j, k >) to left (right) ; if (my_id = j) then announce itself as leader ; Upon receiving a message REPLY< j, k > from left (right) : if (my_id j) then send(reply< j, k >) to right (left) ; else if (already received REPLY< j, k >) send(election< j, k + 1, 1 >) to left and right ; Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 32 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Exemple d exécution 6 1 8 est élu 4 3 7 2 5 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

Élection en n log n messages : analyse Lemme A la phase k au plus 4.2 k messages sont envoyés pour un candidat actif. Lemme Pour chaque k 1, le nombre de processeurs actifs est au n 2 +1. k 1 Preuve : La distance minimum entre deux processus actifs à la fin de la phase k 1 est 2 k 1 + 1. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 34 / 48

Élection en n log n messages : analyse Le nombre total de phases avant élection est log n + 1. Le nombre total de messages est : 4n.2 } {{ } 0 + phase 0 log n +1 n (4.2 k ) 2 k 1 + 1 k=1 } {{ } Phase 1 à log n + 1 = log n +1 k=1 O(n) = O(n log n) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 35 / 48

Dans un Réseau Quelconque Comment élire dans un réseau quelconque avec UIDs et connaissance d une borne sur le diamètre? = Algorithme d Inondation Chaque noeud commence par diffuser son UID, puis le maximum des UIDs reçus. L algorithme dure rondes. Si l UID maximal est celui du processus alors il se met dans l état ELU Sinon, le processus se met dans l état non-elu Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 36 / 48

Correction de l Algorithme d Inondation La correction repose sur l invariant suivant : Après r rondes, si d(i, i max ) r alors max{uid reçu en i} = UID imax. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 37 / 48

Terminaison de l Algorithme d Inondation Tous les processus ont terminé au bout de rondes. (et sont soit dans l état ELU, soit dans l état non-elu) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 38 / 48

Complexité de l Algorithme d Inondation En temps : rondes En espace : nb d arêtes Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 39 / 48

Pour Conclure Provisoirement Il nous a fallu la connaissance d une borne sur le diamètre pour élire dans un réseau quelconque Avec LCR, il est possible d élire dans un anneau orienté sans aucune connaissance structurelle Est-il possible d élire dans un réseau synchrone quelconque avec UID, sans autre connaissance ou information structurelles? Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 40 / 48

Problème du Consensus Spécification Etant donnés des processus avec une valeur initiale quelconque, Accord Tous les processus qui décident une valeur décident la même valeur. Validité Si tous les processus ont w comme valeur initiale, alors c est la valeur décidée. Terminaison Tous les processus (non défaillants) décident. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 41 / 48

Pas de Défaillances Il suffit d échanger les valeurs initiales et d en choisir une par une méthode déterministe (maximum par exemple). = défaillances de liens de processus byzantines Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 42 / 48

L histoire des deux généraux Deux armées rouges surplombent une armée bleue de part et d autre d une vallée. Les forces en présence sont telles que si une seule armée rouge attaque, elle perdra la bataille. Par contre, si les deux attaquent simultanément, alors c est l armée bleue qui perd. Les armées rouges communiquent en envoyant des messagers qui doivent traverser la vallée et peuvent donc être capturés par l armée bleue. Comment les généraux rouges peuvent-ils se mettre d accord pour lancer éventuellement l attaque ou renoncer? Il n y a pas de solution (déterministe) Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 43 / 48

Les deux généraux de manière plus formelle Le problème On considère deux processus A et B. Le processus A a un registre d entrée I A égal à 0 (pas d attaque) ou 1 (attaque). Les deux processus A et B ont chacun un registre de sortie O A et O B initialisé à. Le but des deux processus est d écrire la valeur I A dans leur registre de sortie (O A ou O B ). Il n ont le droit qu à une écriture (une fois décidé il est impossible de changer d avis). Le système est synchrone mais des messages peuvent se perdre. Théorème Le problème des deux généraux n a aucune solution déterministe. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 44 / 48

Preuve d mpossibilité I Preuve : On peut observer que dans une exécution ou les généraux décident 1 (cas I A = 1), au moins un message doit être reçu. En effet, dans le cas contraire, B ne peut pas distinguer le cas où I A = 1 de celui où I A = 0. Le lien doit donc laisser passer au moins un message avant de tomber en panne. Supposons par contradiction qu il existe un algorithme résolvant le problème. Parmi toutes les exécutions dans lesquelles les deux processus décident 1, prenons l exécution E la plus plus courte (en nombre de messages reçus) qui est de longueur k 1. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 45 / 48

Preuve d mpossibilité II Sans perte de généralité, on peut supposer que le dernier (k-ième) message reçu est de A vers B. On note t le numéro de ronde pour lequel A et B ont décidé 1. On considère maintenant une execution E qui est identique à E sauf que le k-ième message est perdu. A Exécution E B A Exécution E B Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 46 / 48

Preuve d mpossibilité III Le général A ne peut différencier E de E. Puisque A attaque dans E il doit aussi attaquer dans E. La valeur O A est donc fixée à la ronde t dans E. Puisque A attaque dans E, B doit aussi attaquer dans E. Si k 1 > 0 alors l exécution E est plus courte que E et contient au moins un message. Cela contredit le fait que E est l exécution la plus courte qui décide 1. Si k 1 = 0 alors il n y a pas de message reçu dans E et malgré cela A et B décident 1. Contradiction avec notre remarque initiale. Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 47 / 48

Modèles différents Question Et si on ne peut perdre qu un seul message à la fois, ou bien si un seul des deux processus peut perdre ses messages? Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 48 / 48