1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-25 11:34:18 +00:00
appunti-steffo/9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Algoritmi affidabili/two-steps broadcast.md

51 lines
No EOL
1.4 KiB
Markdown

[[algoritmo]] di [[broadcast affidabile su grafo completo]].
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]] aggiuntive
- **[[restrizione di affidabilità|Affidabilità]]**
- numero di [[guasti]] noto
## [[comportamento]]
> [!Summary]
> Il [[leader]] invia il [[messaggio]] ad un numero sufficiente di [[vicini di un'entità|vicini]] per garantire che arrivi ad almeno a uno, poi essi lo inoltrano a tutti i vicini.
## [[algoritmo corretto|Correttezza]]
> [!Success]
> Per la [[edge-broadcast-possibility]], ci sono sempre [[canale di comunicazione|canali]] sufficienti a consegnare il [[messaggio]] a tutte le [[entità]].
## [[costo computazionale distribuito|Costo computazionale]]
| Costo | [[notazione O-grande]] |
|-|-|
| [[comunicazione]] | $O(Entities \cdot Fallible)$ |
| [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo]] | $O(1)$ |
### [[comunicazione]]
Durante il primo step, vengono inviati dal [[leader]]:
$$
Fallible + 1
$$
Durante il secondo step, vengono inviati da ogni [[entità]] ricevitrice a tutti gli altri che non sono lei stessa o il [[leader]]:
$$
\sum_{Entity}^{Fallible + 1} Entities - 2
$$
Ovvero:
$$
(Fallible + 1) \cdot (Entities - 2)
$$
In [[notazione asintotica]]:
$$
\Large O(Entities \cdot Fallible)
$$
### [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo]]
Vengono effettuati sempre $2$ passi, che in [[notazione asintotica]] è:
$$
\Large O(1)
$$