2023-11-01 21:23:31 +00:00
---
aliases:
- broadcast
---
Problema per un [[sistema distribuito]].
## Definizione
Una [[entità]] vuole comunicare un'informazione a tutto il resto del [[sistema distribuito]].
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- **[[restrizione di comunicazione|Comunicazione]]**
2023-11-11 18:41:34 +00:00
- [[dimensione dei messaggi illimitata]]
2023-11-08 18:28:09 +00:00
- [[half-duplex]]
2023-11-01 21:23:31 +00:00
- **[[restrizione di affidabilità|Affidabilità]]**
- [[affidabilità totale]]
- **[[restrizione di topologia|Topologia]]**
- [[grafo connesso]]
- **[[restrizione di tempo|Tempo]]**
2023-11-05 04:15:02 +00:00
- [[ritardo di comunicazione illimitato]]
2023-11-08 18:28:09 +00:00
- [[risveglio singolo]]
2023-11-05 04:15:02 +00:00
- [[terminazione locale]]
2023-11-01 21:23:31 +00:00
## [[algoritmo|Algoritmi]]
- **Flooding**
- [[flooding v1]] (non [[algoritmo corretto|corretto]]...)
- [[flooding v2]] ([[algoritmo corretto|corretto]].)
- [[flooding v3]] (ottimizzato!)
2023-11-08 18:28:09 +00:00
## [[costo computazionale|Costo computazionale]]
2023-11-01 21:23:31 +00:00
2023-12-19 01:19:27 +00:00
### [[comunicazione]]
2023-11-01 21:23:31 +00:00
#### In un [[grafo]] qualsiasi
Ogni [[entità]] deve ricevere per forza il messaggio, quindi sicuramente:
$$
\Omega(Entities)
$$
In più, non è possibile togliere nessun [[canale di comunicazione|canale]] senza rischiare che un'[[entità]] non venga raggiunta, in quanto non si hanno informazioni sulla [[rete di comunicazione]] sottostante:
$$
\Large 2 \cdot Channels - (Entities - 1)
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[albero]] con [[leader]] alla [[radice di un albero|radice]]
In un [[albero]], è impossibile che due [[entità]] vicine vengano scoperte contemporaneamente, pertanto il [[notazione Ω-grande|lower bound]] diminuisce a:
$$
2023-11-07 00:45:57 +00:00
\Large Channels
2023-11-01 21:23:31 +00:00
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[grafo completo]]
In un [[grafo completo]] il [[leader]] può inviare il [[messaggio]] direttamente ai suoi vicini:
$$
2023-11-07 00:45:57 +00:00
\Large Nodes
2023-11-01 21:23:31 +00:00
$$
2023-12-19 01:19:27 +00:00
### [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo]]
2023-11-01 21:23:31 +00:00
#### In un [[grafo]] qualsiasi
2023-12-19 01:19:27 +00:00
Il [[grafo]] potrebbe essere un [[cammino di un grafo]], che richiederebbe che ogni arco venisse attraversato, quindi sicuramente:
2023-11-01 21:23:31 +00:00
$$
2023-11-07 00:45:57 +00:00
\Large Channels
2023-11-01 21:23:31 +00:00
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[albero]] con [[leader]] alla [[radice di un albero|radice]]
2023-12-19 01:19:27 +00:00
Anche un [[albero]] potrebbe essere un [[cammino di un grafo]] come un [[grafo]] qualsiasi:
2023-11-01 21:23:31 +00:00
$$
2023-11-07 00:45:57 +00:00
\Large Channels
2023-11-01 21:23:31 +00:00
$$
#### [[restrizioni al modello dei sistemi distribuiti|Restringendo]] a un [[grafo completo]]
In un [[grafo completo]], tutte le [[entità]] sono vicine del [[leader]], quindi ricevono tutte il [[messaggio]] contemporaneamente:
$$
\Large 1
$$