Cammini minimi
Tra le proprietà di un cammino è definita la lunghezza: l'insieme di cammini , che contiene tutti i cammini da a , e la distanza: che diventerebbe se ci fosse un ciclo negativo, perchè allora esisterebbe sempre un minore.
Per esempio, il cammino da a possiede un ciclo negativo e quindi :
Struttura
Gli algoritmi principali, come per quello di Prim, memorizzano due campi per ogni vertice :
- La stima della distanza minima
d[u], che alla fine dovrà essere uguale a - Il predecessore
𝜋[u], da cui è partito l'arco verso che porta al peso finaled[u]
Inoltre, gli algoritmi fanno uso delle funzioni ausiliarie:
-
Init Single Source
init_ss(G, s) for each u in G.V d[u] = +Infinity 𝜋[u] = NIL d[s] = 0 return d, 𝜋con costo .
-
Relax
relax(u, v, w, d, 𝜋) if d[v] > d[u] + w(u, v) d[v] = d[u] + w(u, v) 𝜋[v] = uche diventa per l'assegnamento a
d[v], sedè usato in una coda di priorità.
Proprietà
Sia sui grafi orientati che non orientati valgono le proprietà:
-
Grafo dei predecessori
Il grafo è detto dei predecessori se dipende da , ovvero se è costruito tale che: ovvero un'istanza dello stato dell'algoritmo, che alla fine diventerà l'albero dei cammini minimi.
-
Albero dei cammini minimi
Il sottografo del grafo rappresenta i cammini minimi quando:
- , ovvero l'insieme dei nodi raggiungibili in da
- forma un albero con radice
- Il cammino tra e qualsiasi in è minimo in
-
Proprietà dei sottocammini minimi
Ogni sottocammino del cammino minimo è anch'esso minimo, perchè altrimenti non lo sarebbe.
-
Disuguaglianza triangolare
Dato ed un arco , allora:
Che è dimostrato perchè nel caso di
- allora
- allora è presente il ciclo negativo anche tra e , quindi
- allora, sia che sia il migliore o peggiore tra gli archi entranti di , è verificata
-
Proprietà del limite inferiore
Su qualsiasi algoritmo che usa
init_sse che modifica e solamente conrelaxvale che:Inoltre, se ad un certo punto , ulteriori chiamate a
relaxnon cambieranno più .La dimostrazione si concentra sui principali momenti che coinvolgono :
-
Dopo
init_ss, se:- , allora
- , allora anche in presenza di cicli negativi, i.e.
-
Dopo
relaxsu , supponendo per assurdo che causi per la prima volta :Siccome la
relaxdev'essere entrata nell'ifperchè le ipotesi siano vere, per l'ipotesi e per la disuguaglianza triangolare, ovvero che che è assurdo perchè non sarebbe il primo ad aver infranto la proprietà, ma lo sarebbe .
-
-
Proprietà della convergenza
Dato minimo, se allora dopo la prima
relaxsu :Questo è dimostrabile con il limite inferiore, e perchè dopo la
relaxsi ha che :