PARTE PRIMA:
RETI CABLATE
1
IL PROBLEMA DELL’INSTRADAMENTO
OVVERO
IL
2
CAMMINO PIÙ CORTO
E IL CAMMINO DI COSTO MINIMO
Prof. Tiziana Calamoneri
Corso di Algoritmi per le reti
A.A. 2011/12
IL PROBLEMA DELL’INSTRADAMENTO (1)
Data una rete di calcolatori:
 Quando dei pacchetti vengono inviati da un
calcolatore ad un altro attraverso una rete, i
singoli calcolatori nella rete devono decidere il
percorso che i dati devono compiere tramite
una serie di calcolatori intermedi. Questo è il
generalissimo problema dell’instradamento.
3
IL PROBLEMA DELL’INSTRADAMENTO (2)
 Caso
1. Instradamento non adattivo. Un algoritmo
di instradamento potrebbe cercare di mandare
pacchetti attraverso la rete in modo che la lunghezza del cammino percorso risulti minimizzato.
La lunghezza può essere misurata in termini di
numero di passaggi tra coppie di calcolatori.
 Se la rete è modellata con un grafo (nodo =
calcolatore e arco = connessione), il problema si
riduce alla ricerca del cammino più corto tra due
nodi.
4
IL PROBLEMA DELL’INSTRADAMENTO (3)
 Caso
2. Instradamento adattivo. Tiene conto delle
condizioni di traffico: per decidere il passo
successivo viene esaminato il traffico per cercare di
indirizzare il pacchetto verso le zone con minor
traffico.
 Se la rete è modellata con un grafo arco-pesato
(nodo = calcolatore, arco = connessione e peso =
valore dinamico proporzionale al traffico sulla
connessione relativa), il problema si riduce alla
ricerca (dinamica) del cammino di costo minimo.
5
IL PROBLEMA DELL’INSTRADAMENTO (4)
 Caso
3. Instradamento con faults. Nel caso in cui la
rete sia modellata con un grafo, il peso di ciascun
arco assume il significato di probabilità di fault
(usato, per esmpio, sulle linee telefoniche, su reti di
interconnessione o su reti di trasporto). Si cerca
l’instradamento che ha la più alta probabilità di
non avere faults.
Più precisamente…
6
IL PROBLEMA DELL’INSTRADAMENTO (5)
Segue caso 3. Instradamento con faults
 Sia
p(e) il complemento della probabilità di fault
sull’arco e. Sotto l’ipotesi, non sempre realistica,
che i faults avvengano in modo indipendente,
p(e1)*p(e2)*…*p(ek) dà la probabilità che il
cammino P=(e1,e2,…,ek) possa essere usato senza
subire faults.
 Vogliamo massimizzare questa probabilità su tutti
i possibili cammini con nodo di partenza a e nodo
di arrivo b…
7
IL PROBLEMA DELL’INSTRADAMENTO (6)
Segue caso 3. Instradamento con faults
 N.B.
Poiché la funzione log è monotona crescente,
il max del prodotto p(e1)*p(e2)*…*p(ek) è raggiunto
sse il suo logaritmo è max, cioè sse:
log p(e1)+log p(e2)+…+ log p(ek) è massimo.
 log p(e) ≤ 0 per ogni e poiché p(e) ≤ 1.
 Ponendo w(e)=-log p(e) si ha w(e)≥0 per tutti gli e;
inoltre dobbiamo trovare il cammino da a a b per
cui
w(e1)+w(e2)+…+w(ek) diventa minimo.
 Quindi il problema si riduce ancora alla ricerca del
8
cammino di costo minimo.
I PROBLEMI
DEL CAMMINO PIÙ CORTO E
DEL CAMMINO DI COSTO MINIMO
9
CAMMINI PIÙ CORTI
 Algoritmo
suggerito da Moore [‘59] per il problema
del cammino minimo da sorgente singola r:
… Breadth First Search (BFS) …
 TH. G è connesso sse alla fine della BFS che parte
dal nodo a, dist(a,b) < ∞ per ogni nodo b, dove dist
rappresenta la distanza in termini di numero di
archi
 N.B. questa affermazione è falsa se G è un digrafo
(non esiste la nozione di connessione semplice per i
digrafi: connessione forte o debole)
10
CAMMINI DI COSTO MINIMO (1)
Dato G=(V,E) grafo o digrafo ed una funzione
w:ER:
 (G,w) è detta rete
 w(e) è detta lunghezza (senza così escludere
interpretazioni come costo, durata, capacità, peso,
probabilità, …)
 Per ogni cammino P=(e1, e2, …, ek) (se G è diretto, P
deve essere un cammino orientato), la lunghezza di
P, w(P)=w(e1)+w(e2)+ …+w(ek).
 N.B. Ponendo w(e)=1 per ogni arco, il problema dei
cammini più corti si riduce al problema dei
11
cammini di costo minimo.
CAMMINI DI COSTO MINIMO (2)
Dati due nodi a e b, la distanza d(a,b) è il minimo, su
tutti i cammini P tra a e b, di w(P).
Due problemi:
 PR.1: b potrebbe essere non raggiungibile da a
 SOL.: definiamo d(a,b)=∞ se b non è raggiungibile da a
PR.2: il minimo potrebbe non esistere (cicli negativi)
 SOL: ci restringiamo a reti senza cicli negativi

1
a
1
1
-3
1
b
12
CAMMINI DI COSTO MINIMO (3)
Un’applicazione in cui cicli negativi possono esistere:
 Una nave viaggia da un porto a ad un porto b ed i
porti intermedi possono essere scelti liberamente.
 w(x,y) rappresenta il profitto del viaggio tra x ed y.
 In alcuni percorsi la nave potrebbe viaggiare vuota
e quindi w(e) sarebbe negativo (perdita).
 Trasformando w(e) in –w(e) per tutti gli e, il
problema di trovare il percorso di profitto massimo
per la nave diventa quello di trovare il percorso di
costo minimo nella rete.
13
CAMMINI DI COSTO MINIMO (4)
 In
generale, se cerchiamo cammini di peso
massimo possiamo trasformare w(e) in –w(e), ma
Attenzione: questo potrebbe creare cicli di peso
negativo!
 Esistono buoni algoritmi che trovano il cammino di
costo minimo se G non contiene cicli di peso
negativo
14
CAMMINI DI COSTO MINIMO (5)
OSSERVAZIONI SULLA SOLUZIONE
In una soluzione:
 Non possono esistere cicli di lunghezza negativa
(perché li abbiamo evitati per hp.)
 Non possono esistere cicli di lunghezza positiva
(dim. per assurdo: basta toglierli per avere un costo
minore)
 Non è restrittivo assumere che non esistano cicli di
lunghezza nulla (se c’è, esiste un cammino con lo
stesso peso che non lo contiene)
 Quindi: la soluzione non contiene cicli e perciò la
15
sua lunghezza (non il suo peso!) massima è n-1.
CAMMINI DI COSTO MINIMO (6)
OSSERVAZIONI SULLA SOLUZIONE
 Per
determinare univocamente un cammino da un
nodo a ad un nodo b è sufficiente, per ogni nodo sul
cammino a partire da b, sapere quale nodo sia il
suo predecessore sul cammino.
 Per ogni nodo v del grafo, definiamo un puntatore
p(v), inizializzato a NULL, che, alla fine, punta al
predecessore di v nel cammino trovato.
16
ALCUNI ALGORITMI CLASSICI
17
(e già studiati!)
L’ALGORITMO DI BELLMAN-FORD [‘58]
 G=(V,E)
orientato con pesi degli archi anche negativi
 Algoritmo per il problema del cammino minimo da
sorgente singola
 Se non esistono cicli negativi restituisce le distanze
dalla sorgente
 Usa il rilassamento
 Complessità: O(nm)
18
L’ALGORITMO DI DIJKSTRA [‘59]
 G=(V,E)
orientato con pesi degli archi non negativi
 Algoritmo per il problema del cammino minimo da
sorgente singola
 Usa il rilassamento
 Complessità: O(n2) oppure O(m log n)
 Compl. migliore di Bellman-Ford ma richiede che gli
archi abbiano pesi non negativi
19
L’ALGORITMO DI FLOYD-WARSHALL [‘62]
 G=(V,E)
orientato con pesi degli archi qualunque
 Algoritmo per il problema del cammino minimo
tra tutte le coppie
 Usando gli algoritmi precedenti:


Bellman-Ford: n O(nm)=O(n2m)
Dijkstra: n O(n2) =O(n3) o n O(m log n)=O(mn log n)
 Complessità:
O(n3) ma sono ammessi pesi
negativi
20
IL RILASSAMENTO
 Definiamo
per ogni nodo una funzione d(v), che
rappresenta la stima del peso del cammino minimo
da s a v.
 Inizialmente d(v)=∞ per ogni v
 Un passo di rilassamento:


dato un arco (u,v)
se d(u)+w(u,v)<d(v)
d(v)=d(u)+w(u,w)
p(v)=u
 Complessità
di un passo di rilassamento: O(1)21
L’ALGORITMO DI BELLMAN-FORD (1)
Supponiamo di non avere cicli di lungh. neg.:
 Per ogni v inizializza d(v) e p(v)
O(n)
n-1 volte
 For i=1 to n-1 do
mO(1)
 per ogni arco (u,v) rilassa v risp. ad (u,v)
 Complessità:
O(nm)
22
L’ALGORITMO DI BELLMAN-FORD (2)
5
6
5 2
∞ 3 -2 ∞
1 -4 9 7
8
7
0
10 -3 4
7 6
2
∞ 8
∞
1
5
-2
6
0
6
7
8
7
-4
-3
1
∞
5
-2
∞
0
6
7
-4
8
-3
∞
∞
7
2
i=1
0
6
7
8
7
7
2
1
5
-2
6
-4
-3
∞
2
1
6
0
6
7
∞
∞
7
8
5
-2
8
-4
-3
∞
1
5
-2
6
0
6
7
8
7
-4
-3
∞
7
2
1
0
6
7
-4
8
-3
7
4
8
5
-2
6
∞
7
2
x: ordine archi
: archi visitati
: predecessore
0
6
7
8
7
7
2
1
5
-2
6
-4
-3
∞
∞
4
7
2
1
23
8
L’ALGORITMO DI BELLMAN-FORD (3)
5
6
52
6 3 -2 4
1 -4 9 7
8
7
0
4
10 -3
76
2
7 8
8
1
5
-2
2
0
6
7
8
7
-4
-3
1
8
5
-2
6
0
6
7
4
7
2
i=2
8
-4
-3
7
0
6
7
8
7
7
2
1
5
-2
2
8
5
-2
6
0
6
8
7
7
4
-4
-3
7
2
6
0
7
8
1
2
1
-2
…
0
6
7
8
7
8
-4
-3
7
5
-2
4
7
5
-2
2
2
-4
-3
4
x: ordine archi
: archi visitati
: predecessore
-4
-3
7
2
1
4
7
2
1
4
-2
24
8
L’ALGORITMO DI DIJKSTRA (1)
 G=(V,E)
orientato con pesi degli archi non negativi
 Divide i nodi tra quelli per cui è già stato
determinato il cammino minimo (S) e gli altri (V-S)
 Algoritmo greedy
 Ad
ogni passo, sceglie il nodo v in V-S con minimo
valore di d, lo aggiunge ad S e rilassa tutti gli archi
uscenti da v
 Mantiene V-S in una coda con priorità minima (heap
25
minimo)
L’ALGORITMO DI DIJKSTRA (2)
 per
ogni v inizializza d(v) e p(v)
 S=insieme vuoto
 Q=V
 finché Q è non vuota
• u=EstraiMin(Q)
• S=S U {u}
• per ogni arco uscente da u, (u,v)
rilassa v rispetto ad (u,v)
riaggiusta Q
O(n)
O(1)
O(n)
n volte
O(log n)
O(1)
O(deg u log n)
26
tot.
O(n log n+ m log n)
: archi visitati
: predecessore
L’ALGORITMO DI DIJKSTRA (3)
5
2
∞
0
6
7
8
1
8
∞
0
6
7
8
7
7
2
1
9
2
6
1
8
∞
∞
2
1
6
6
0
7
7
8
2
9
2
6
0
7
8
7
1
8
0
6
7
∞
1
9
2
6
7
7
6
∞
1
8
14
7
9
2
8
7
1
8
15
7
2
1
7
9
2
6
0
6
7
8
7
14
1
8
7
2
7
1
14
7
2
1
7
27
L’ALGORITMO DI DIJKSTRA (4)
 L’algoritmo
di Dijkstra è usato di solito per i
protocolli di instradamento dinamico (in cui,
cioè, i pacchetti e le destinazioni non sono
note a priori) come l’Open Shortest Path First
(OSPF).
 OSPF è usato nelle reti con protocollo
Internet (IP)
28
L’ALGORITMO DI FLOYD-WARSHALL(1)
 G=(V,E)
orientato con pesi degli archi qualunque
 Algoritmo per il problema del cammino minimo tra
tutte le coppie
 Trucco 1: inserisce tutti gli archi. Quelli che non
esistono in G hanno w=∞
 Trucco 2: sfrutta l’idea che per andare da i a j, oltre
che farlo direttamente, posso passare per un nodo
intermedio k
 Algoritmo di programmazione dinamica
29
L’ALGORITMO DI FLOYD-WARSHALL(2)
Algoritmo:
 Per ogni nodo i, inizializza d(i,i)=0
 Per ogni arco (i,j) inizializza d(i,j)=w(i,j)
 Per ogni nodo k
 Per ogni nodo i
 Per ogni nodo j
d(i,j)=min{d(i,j), d(i,k)+d(k,j)}
 Complessità
O(n)
O(m)
n volte
n volte
n volte
O(1)
O(n3)
30
INSTRADAMENTO SULLE
TOPOLOGIE DI
INTERCONNESSIONE
31
INSTRADAMENTO SULLE TOPOLGIE DI
INTERCONNESSIONE (1)
Il problema di instradamento fin qui considerato
assume che la rete rappresentata dal grafo sia
sconosciuta ai nodi e possa anche variare nel
tempo (faults e ripristino di archi, variazione dei
costi in base al traffico, ecc.)
 Tuttavia, quando la rete rappresenta una
topologia di interconnessione (e connette, ad es.
processori), la rete è nota e non cambia nel
tempo. Inoltre, è fondamentale l’efficienza.
 Si cercano soluzioni con più proprietà del
cammino minimo.

32
INSTRADAMENTO SULLE TOPOLGIE DI
INTERCONNESSIONE (2)
Ci sono differenti modelli di instradamento.
 Qui
consideriamo il modello store-andforward (anche noto come modello packetswitching):
ogni pacchetto è mantenuto come una singola
entità che viene passata da un nodo all’altro
 un pacchetto viaggia attraverso un arco della
rete in un singolo passo dell’algoritmo
 a seconda dell’algoritmo, si può permettere o
no di accodare pacchetti in un nodo, ma in ogni
caso questa coda va mantenuta il più corta
possibile

33
INSTRADAMENTO SULLE TOPOLGIE DI
INTERCONNESSIONE (3)
 Non
è permessa la presenza di un “controllore
globale” ma ogni nodo deve prendere una
decisione sulla base del suo controllo locale e
delle informazioni fornite nel pacchetto
 Un problema di instradamento è detto one-toone se al più un pacchetto è destinato a
ciascun nodo e se ogni pacchetto ha
esattamente una destinazione.
 In contrapposizione, one-to-many e many-toone
34
LA BUTTERFLY (1)
Def. Sia N=2n (e quindi n=log N);
una Butterfly n-dimensionale è un
grafo livellato con:
• N(n+1) nodi (n+1 livelli ognuno
con 2n nodi) e
• 2Nn archi.
Nodi:
i nodi sono etichettati con una
coppia (w, i), dove:
• i è il livello del nodo
• w è un numero binario di n bit
che indica la riga del nodo.
…
35
LA BUTTERFLY (2)
segue def. di butterfly n-dimensionale
Archi:
Due nodi (w, i) e (w’, i’) sono
adiacenti se e solo se i’=i+1 e:
 w=w’ (straight edge) o
 w e w’ differiscono esattamente
nell’i-esimo bit (cross edge).
36
LA BUTTERFLY (3)
I
nodi della Butterfly sono crossbar switches, cioè
switches che hanno due ingressi e due uscite e
possono assumere due stati, cross e bar.
 Possiamo quindi vedere la butterfly come una
switching network che connette 2N (N=2n) unità di
input a 2N unità di output tramite una rete di
logN+1 livelli di N nodi ciascuno.
 Gli input e gli output sono di solito dei processori e,
per semplicità, vengono di solito omessi dai disegni
37
LA BUTTERFLY (4)
 La
butterfly ha una
struttura ricorsiva :
una butterfly n-dimensionale contiene come
sottografi due butterfly
(n-1)-dimensionali che
si possono ottenere
rimovendo i nodi di
livello n.
38
LA BUTTERFLY (5)
per ogni coppia di righe w e w’,
esiste uno ed un solo cammino di
lunghezza n (detto greedy path)
che collega un nodo di livello 0
sulla riga w e uno di livello n su
una riga w’, questo cammino
attraversa
ogni
livello
esattamente una volta, usando un
cross edge dal livello i al livello i+1
(i=0,…,n) se e solo se w e w’
differiscono nell’ i-esimo bit
000
001
010
w’
011
100
101
w
110
111
39
INSTRADAMENTO SULLA BUTTERFLY (1)
Problema:
 ogni nodo (u,0) al livello 0 della butterfly contiene
un pacchetto destinato al nodo (π(u), n) sul livello
n, dove π:[1, N] [1,N] è una permutazione.
 Instradare un pacchetto è facile se usiamo il
greedy path.
 Un
algoritmo di greedy routing funziona
correttamente se c’è un solo pacchetto da
instradare, ma non garantisce una soluzione
corretta in presenza di più pacchetti da
instradare in parallelo…
40
INSTRADAMENTO SULLA BUTTERFLY (2)
 Alcuni
pacchetti
potrebbero passare per lo
stesso arco.
 E’ necessario far attendere
uno dei due pacchetti
 N.B. la butterfly non è in
grado di instradare tutte
le permutazioni senza
attese, cioè è bloccante
 qui al più 2 pacchetti
possono contendersi un
arco, ma in generale…
41
INSTRADAMENTO SULLA BUTTERFLY (3)
 consideriamo
l’arco
e=((00…0, (n-1)/2), (00…0,(n+1)/2))
 Il nodo (00…0, (n-1)/2) è la radice
di un albero binario completo che
si estende a sinistra e che ha
2(n-1)/2 foglie
 Analogamente avviene a destra
…
42
INSTRADAMENTO SULLA BUTTERFLY (4)
…
 La
permutazione può essere tale che tutti i
cammini che partono da qualche foglia dell’albero
di sinistra arrivino a qualche foglia dell’albero di
destra passando per e
 Il
cammino che aspetta di più attenderà
2(n-1)/2=√N/2 prima di passare. In più impiega
almeno n=log N passi, pari alla lunghezza del
cammino tra un input ed un output.
43
INSTRADAMENTO SULLA BUTTERFLY (5)
Th. Dato un problema di instradamento sulla butterfly
n-dimensionale per cui al più un pacchetto parte da
ogni nodo a livello 0 ed al più un pacchetto è
destinato a ciascun nodo a livello n, l’algoritmo
greedy instrada tutti i pacchetti in O(√N) passi.
Dim. Assumiamo n dispari per semplicità (ma tutto
vale anche per n pari)
 Sia e un arco sul livello i, 0<i≤n, e sia ni il numero di
greedy paths che possono attraversare e
 ni ≤2i-1 (albero sx) e, similmente, ni≤2n-i (albero dx)
 Il pacchetto più sfortunato che passa per e viene
fermato per ni-1 passi.
…
44
INSTRADAMENTO SULLA BUTTERFLY (6)
…
 Poiché tale pacchetto deve passare per tutti i livelli,
la sua attesa nel caso peggiore sarà:

n
(ni 1) 
i1
(n 1)/ 2
(ni 1) 
i1
n
(ni 1) 
i(n 3)/ 2
(n 1)/ 2

i1
n
(2 i1 1) 
n i
(2
 1) 
i(n 3)/ 2
 2(n 1)/ 2  2(n 1)/ 2  n  O( N )  n  O( N )
CVD
45
INSTRADAMENTO SULLA BUTTERFLY (7)
Nonostante l’algoritmo greedy funzioni abbastanza
male nel caso peggiore, esso è molto utile nella
pratica.
 La ragione è che il numero di cammini che passano
per un certo arco dipende fortemente dalla
permutazione che dobbiamo instradare.
 L’algoritmo greedy funziona molto bene in molti casi
 Si può dimostrare che nella maggior parte dei casi
l’instradamento viene eseguito in n+o(n) passi, cioè
ottimo.

46
LA BENEŠ (1)
Un’alternativa all’algoritmo di instradamento con
le attese è la produzione di una topologia non
bloccante.
 La rete di Beneš ha questa proprietà
 E’ costituita da due Butterfly fondendo gli output
della prima con gli input della seconda

47
LA BENEŠ (2)
La Beneš n-dimensionale ha 2n+1 livelli,
ciascuno con 2n nodi
 I primi e gli ultimi n+1 livelli formano due
Butterfly n-dimensionali
 Non è sorprendente che la Beneš sia simile alla
Butterfly sia in termini di potenza computazionale che di struttura

48
LA BENEŠ (3)
Def. Una topologia con N input ed N output si
dice riarrangiabile se per ogni π one-to-one (cioè
per ogni permutazione) degli input negli output, è
possibile costruire dei cammini arco-disgiunti
che congiungono l’i-esimo input con il π(i)-esimo
output, per tutti gli 1≤i≤N.
 Nel caso della Beneš n-dim. possiamo addirittura
avere 2 input per ogni nodi a livello 0 e due
output per ogni nodo a livello 2n.
 Quindi, in questo caso, N=2n+1

49
LA BENEŠ (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3
9
8
12
15
13
7
5
4
10
1
2
16
7
11
14
50
LA BENEŠ (5)
Th. Data una permutazione π di 2n+1 input in
2n+1 output su una Beneš n-dimensionale,
esiste un insieme di cammini arco-disgiunti
che collegano l’input con l’output π(i), per ogni
1≤i≤2n+1.
Dim. per induzione su n.
 Se n=1 la rete è un singolo nodo (uno switch
2x2) e la tesi è ovvia.
 Hp induttiva: Th. vero per una Beneš (n-1)dimensionale
…
51
LA BENEŠ (6)
segue dim. della riarrangiabilità della Beneš
 Chiave:
i 2n-1 livelli centrali della Beneš ndim. formano due Beneš (n-1)-dim.
52
LA BENEŠ (7)
segue dim. della riarrangiabilità della Beneš

Per ogni input, è sufficiente decidere se il suo
cammino sarà instradato sulla Beneš superiore o
inferiore
53
LA BENEŠ (8)
segue dim. della riarrangiabilità della Beneš
Unico vincolo (dettato dagli switch al primo e
ultimo livello): gli input (output) 2i-1 e 2i vadano
verso Beneš diverse
 …facile…

54
LA BENEŠ (9)
segue dim. della riarrangiabilità della Beneš
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3
9
8
12
15
13
7
5
4
10
1
2
16
7
11
14 55
LA BENEŠ (10)
segue dim. della riarrangiabilità della Beneš
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3
9
8
12
15
13
7
5
4
10
1
2
16
7
11
1456
e così via…
LA BENEŠ (11)
segue dim. della riarrangiabilità della Beneš
Questo algoritmo è detto looping algorithm
 Rimane da dim. che è possibile assegnare i cammini
alla Beneš sup. o inf. non introduce conflitti
 Questo è vero per costruzione, perché se partiamo con
un input verso la Beneš sup., arriveremo all’output
corrispondente dalla Beneš sup. e lo lasceremo
andando verso laBeneš inf. e così via.
 Quando si chiude il ciclo dovremo necessariamente
tornare al punto di partenza dalla Beneš inferiore per
una questione di parità.
57
 Quindi i vincoli sono sempre rispettati.
 Il resto del cammino viene risolto dall’induzione. CVD

LA BENEŠ (12)
Nel caso in cui i nodi a livello 0 abbiano un solo
input possiamo dire qualcosa di più:
 Th. Data una permutazione π di 2n input in 2n
output su una Beneš n-dimensionale, esiste un
insieme di cammini nodo-disgiunti che collegano
l’input con l’output π(i), per ogni 1≤i≤2n.
 Dim. identica alla precedente salvo che devono
usare Beneš differenti non 2i-1 e 2i ma i ed i+2n-1,
1≤i≤2n-1.

2n-1
58
LA BENEŠ (13)

Esempio: n=2, quindi 2n-1=2
1
2
2
4
3
1
4
3
59
LA BENEŠ (14)
Problema di questi teoremi: non è possibile
settare gli switch on-line. Cioè, c’è bisogno di un
controllo globale che abbia la conoscenza della
permutazione per settare ogni switch.
 E’ tuttavia possibile dare algoritmi che risolvano
questo problema

60