mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-22 18:44:17 +00:00
51 lines
1.3 KiB
Markdown
51 lines
1.3 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)$ |
|
||
|
| [[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)
|
||
|
$$
|
||
|
|
||
|
### [[Tempo]]
|
||
|
|
||
|
Vengono effettuati sempre $2$ passi, che in [[notazione asintotica]] è:
|
||
|
$$
|
||
|
\Large O(1)
|
||
|
$$
|