Préambule | TP0 | TP1 | TP2 | ||||||||||||||
Principe de résolution du choix distant via un tirage au sort: On va utiliser un service de “Tirage au sort distribué" (voir ci-dessous) pour résoudre de façon symètrique le problème de choix distant. On peut convenir que le gagnant émet tandis que le perdant reçoit. Le fichier cointossing.xta offre un début de solution. Chaque entité dispose d’un processus joueur dont le rôle est d’effectuer le tirage au sort, l'entité participe ensuite au choix distant en suivant les indications de son joueur. Le graphe de communication est représenté ci-contre. La communication est synchrone entre une entité et son joueur (flêche bleue). Les entités (resp les joueurs) communiquent entre-eux de façon asynchrone en partageant les files de communication déjà existantes (cf flêche orange). Le chronogramme ci-contre représente un scenario comprenant : - l'activation par chaque entité de son joueur, - le tirage au sort (i.e. échange de valeurs entre joueurs), - la signification du résultat par un joueur à son entité, la communication correspondante ; Dans ce scenario, gauche gagne le tirage et c'est lui qui émet : la communication entre joueurs a lieu de gauche à droite. Tirage au sort distribué (variante simplifiée pour deux joueurs) On considère le “jeu à deux joueurs” suivant: Chacun des deux joueurs - “left”et “right” - choisit une valeur particulière ∈ {0, 1}. Il mémorise la valeur choisie et l’envoie à son partenaire. Il récupère ensuite la valeur choisie par son partenaire. A l’issue de l’échange chaque joueur dispose de deux valeurs : celle qu’il a choisie et celle choisie par son partenaire. Verdict : Left gagne si les valeurs échangées sont les mêmes, right gagne si les valeurs échangées sont distinctes Algo général de tirage au sort décrit dans le cours Algo Répartie 4IR (pp 90) |
![]() ![]() |