You are on page 1of 7

DIJKSTRA

S V-S w
T T T T T
1 100 V
10 1 2 3 4 5
30 5 1 2,3,4,5 2
D 0 10 50 30 60
2 60 1,2 3,4,5 4
50 10
1,2,4 D[5] =90
4 3,5 3
3 20
1,2,4,3 5 5
D[5]=min
D[3]+C(3,5) =50+10
1 2 3 4 5
10
1,2,4,3,5 =60
1 0 999 30 100

2 999 0 50 999 999


D[3] =999
999 0 999 10
3 999
999 20 0 60 Di-1[j] W=2 D[3]= min
4 999
D[2]+C(2,3)
5 999 999 999 999 0
Di[j] =min Di-1[w]+C(w,j)
10+50=60
W=4 D[3]= min (D[3], D[4]+C(4,3))
60 ,30+20
1 j
D[5]=min (D[5],D[4]+C(4,5))
100, 30+60
w
1 Dijkstra (Grafo G, nodo_fuente s)
2 para todo u en V[G] hacer
3 distancia[u] = INFINITO
4 padre[u] = NULL
5 visitado[u] = false
6
7 distancia[s] = 0
8 adicionar (cola, (s, distancia[s] ) )
9
10 mientras que cola no sea vacia hacer
11 u = extraer_minimo(cola)
12 visitado[u] = true
13 para todo v en adyacencia[u] hacer
14 si no visitado[v] y distancia[v] > distancia[u] + peso (u, v)
hacer
15 distancia[v] = distancia[u] + peso (u, v)
16 padre[v] = u
17 adicionar(cola, (v, distancia[v] ) )
n-1*n

n*n-1/2
DIJKSTRA
S V-S w 1 2 3 4 5

10
1 100
2 D 0 10 50 30 60
30 5 4
2 60
V T T T T T
50 10 3
4 1 4 3
3 20 5 P 1 1

1 2 3 4 5 n*n1
1 0 10 999 30 100
N^2

2 999 0 50 999 999

3 999 999 0 999 10 5341


60
O(n^2) O(a logn)
4 999 999 20 0
5 999 999 999 999 0

1 j

w
Floyd
Fk-1 [i,j]

8 2 Fk[j,j] min Fk-1 [i,k]+Fk-1[k,j]


1 2 3
3 Fo[1,2]
F1[1,2]=min
Fo[1,1]+Fo[1,2]
5
1 2 3 1 3
K=0 2
K=1 1 3
1 0 8 5 1 0 8 5 2
K=2 1 0 8 5
Fo 2 3 0 999 F1 2 3 0 8
F2 2 3 0 8
3 999 2 0 3 999 2 0
3 5 2 0
Fo[2,3] =999
F1[2,3]=min F1[1,3] =5
Fo[2,1]+Fo[1,3] =3+5=8 F2[1,3]=min
F1[1,2]+F1[2,3] =8+8
Fo[3,2] =2
F1[3,2]=min F1[3,1] =999
Fo[3,1]+F[1,2] =999+8=999
F2[3,1]=min F1[3,2]+F1[2,1] =2+3=5
1 2 Ak[i,j] =Ak-1[i,j] V (Ak-1[i,K]^Ak-1[K,j])
3

A1[2,3]=Ao[2,3] V ( Ao[2,1] ^Ao[1,3])


1 3 0V 1 ^ 1
2
1 2 3
1 0 1 1 1
K=1 1
Ao 1 1 0 1
2 0 0 1
A1 1 2 3
2 0 1
3 1 0 K=2 1
0 1 0 1
3 0 1 0
A2 1 0
2 1
A2[3,1]= A1[3,1] V A1[3,2]^A1[2,1] 3 1 1 0
0v 1

1 2 3
K=3 1
1 0 1 O(n ^3)
A3 1 0
2 1
3 1 1 0
1 3
2
K=2 1 0 8 5 1 3
2
F2 2 3 0 8 K=3
K= 1 0 7 5
3 5 2 0 F3 2 3
F 0 8
3 5 2 0
F2[1,2] =8
F3[1,2]=min
F2[1,3]+F2[3,2] =5+2=7

F2[2,1] =3
F3[2,1]=min F2[2,3]+F2[3,1] =8+5=13

You might also like