Quel est l'avantage de concevoir des algorithmes distribués déterministes?

10

Les algorithmes distribués qui résistent aux défaillances peuvent être déterministes ou probabilistes. Prenons par exemple le problème du consensus.

  • Paxos est déterministe dans le sens où, étant donné l'hypothèse qu'il fait, il fonctionne toujours .

  • En revanche, le consensus randomisé fonctionne avec une probabilité donnée.

Quel est l'avantage de concevoir et d'utiliser un algorithme déterministe?

Les hypothèses sur lesquelles s'appuient les algorithmes déterministes ont également une probabilité de tenir dans la réalité (ce qu'on appelle leur couverture d'hypothèses ). Par conséquent, il y a toujours une probabilité qu'un algorithme déterministe ne fonctionne pas dans la réalité.

danyhow
la source
Paxos / Wikipédia, famille de protocoles
vzn
1
Pouvez-vous être un peu plus précis avec votre commentaire?
danyhow
1
Il est bon de noter que la randomisation est généralement utilisée pour les propriétés de vivacité et non les propriétés de sécurité. Les propriétés de sécurité tiennent toujours, mais il y a une chance que l'algorithme ne se termine pas (ce qui diminue généralement avec le temps).
Kaveh

Réponses:

10

Je répondrai à cela du point de vue des algorithmes de graphe distribué ( algorithmes distribués qui résolvent un problème de graphe lié à la structure du réseau de communication).

Voici quelques raisons non évidentes pour concevoir des algorithmes distribués déterministes dans ce paramètre:

  • Sous-programmes dans des algorithmes randomisés . Dans. 12 à 13 de ces diapositives , Elkin décrit une technique de conception d'algorithmes dans laquelle vous pouvez utiliser un algorithme distribué déterministe rapide comme sous-programme afin de construire un algorithme distribué randomisé rapide. Fait intéressant, il n'est pas possible d'utiliser un algorithme randomisé typique comme sous-programme dans le même contexte (la probabilité d'erreur serait trop élevée).

  • Tolérance aux pannes . Il existe une traduction mécanique qui vous permet de convertir un algorithme distribué déterministe rapide en un algorithme distribué auto-stabilisant rapide (voir par exemple la section 2.4 de cette enquête ). Une conversion similaire n'est pas connue pour les algorithmes randomisés (et je pense qu'il est peu probable qu'elle existe dans le cas général).

Jukka Suomela
la source