Was ist der Vorteil des Entwurfs deterministisch verteilter Algorithmen?


10

Verteilte Algorithmen, die ausfallsicher sind, können entweder deterministisch oder probabilistisch sein. Nehmen wir zum Beispiel das Konsensproblem.

  • Paxos ist deterministisch in dem Sinne, dass es unter der Annahme, die es macht, immer funktioniert.

  • Im Gegensatz dazu funktioniert der randomisierte Konsens mit einer bestimmten Wahrscheinlichkeit.

Was ist der Vorteil beim Entwerfen und Verwenden eines deterministischen Algorithmus?

Die Annahmen, auf die sich deterministische Algorithmen stützen, haben auch eine Wahrscheinlichkeit, in der Realität zu bleiben (was als ihre Annahmenabdeckung bezeichnet wird ). Daher besteht immer die Wahrscheinlichkeit, dass ein deterministischer Algorithmus in der Realität nicht funktioniert.


Paxos / Wikipedia, Familie von Protokollen
vzn

1
Können Sie mit Ihrem Kommentar etwas genauer sein?
Danyhow

1
Es ist gut zu beachten, dass die Randomisierung typischerweise für Lebendigkeitseigenschaften und nicht für Sicherheitseigenschaften verwendet wird. Die Sicherheitseigenschaften gelten immer, es besteht jedoch die Möglichkeit, dass der Algorithmus nicht beendet wird (was normalerweise mit der Zeit abnimmt).
Kaveh

Antworten:


10

Ich werde dies aus der Perspektive verteilter Graph-Algorithmen beantworten (verteilte Algorithmen, die ein Graph-Problem lösen, das mit der Struktur des Kommunikationsnetzwerks zusammenhängt).

Hier sind einige nicht offensichtliche Gründe für das Entwerfen deterministisch verteilter Algorithmen in dieser Einstellung:

  • Unterprogramme in randomisierten Algorithmen . Auf P. In den 12–13 dieser Folien beschreibt Elkin eine Algorithmus-Entwurfstechnik, bei der Sie einen schnell deterministischen verteilten Algorithmus als Unterprogramm verwenden können, um einen schnell randomisierten verteilten Algorithmus zu erstellen. Interessanterweise ist es nicht möglich, einen typischen randomisierten Algorithmus als Unterprogramm im selben Kontext zu verwenden (die Fehlerwahrscheinlichkeit wäre zu hoch).

  • Fehlertoleranz . Es gibt eine mechanische Übersetzung, mit der Sie einen schnell deterministischen verteilten Algorithmus in einen schnell selbststabilisierenden verteilten Algorithmus umwandeln können (siehe z. B. Abschnitt 2.4 dieser Umfrage ). Eine ähnliche Konvertierung ist für randomisierte Algorithmen nicht bekannt (und ich denke, dass dies im allgemeinen Fall unwahrscheinlich ist).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.