Caminos m´ınimos en grafos (tarea adicional)
1 Definici´on (grafo ponderado). Un grafo ponderado es un par (V, p), donde V es un conjunto finito y p es una funci´on V × V → [0, +∞] tal que p(v, v) = 0 para cada v en V y p(v, w) = p(w, v) para cualesquiera v, w en V . Los elementos de V se llaman v´ertices y el n´umero p(v, w) se llama el peso de la arista (v, w).
2 Definici´on (camino en un grafo). Sea (V, p) un grafo ponderado. Un camino en V es una lista de v´ertices de V . Se dice que (v1, . . . , vm) une los v´ertices v1 y vm. Se dice que la longitud del camino es m − 1.
3 Definici´on (longitud del camino). Sea (V, p) un grafo ponderado y sea v1, . . . , vm un camino en V . Entonces
`(v1, . . . , vm) :=
m
X
j=1
p(vj, vj+1).
4 Proposici´on (sobre caminos con repeticiones y ciclos). Sea (V, p) un grafo ponderado.
Dado un camino en V , existe un camino en V que une los mismos puntos, no tiene repeticiones y tiene longitud menor o igual que la longitud del camino original.
Demostraci´on. Sea v1, . . . , vm un camino en V . Si r, s ∈ {1, . . . , m}, 1 ≤ r < s ≤ m y vr = vs, entonces
`(v1, . . . , vr, vs+1, . . . , vm) ≤ `(v1, . . . , vm).
5 Definici´on (distancia entre dos v´ertices). Sea (V, p) un grafo ponderado y sean v, w elementos de V . Denotemos por d(v, w) al m´ınimo entre las longitudes de todos los caminos que unen v y w.
6 Proposici´on. (V, d) es un espacio m´etrico.
Algoritmo de Floyd y Warshall
7 Definici´on. Sea (V, p) un grafo ponderado y sean v, w elementos de V . Dado r en N, denotemos por dr(v, w) al m´ınimo entre las longitudes de todos los caminos de longitud
≤ r que unen v y w.
Caminos m´ınimos en grafos, p´agina 1 de 2
8 Proposici´on. Sea (V, p) un grafo ponderado y sean v, w elementos de V . Denotemos por n al n´umero de los elementos de V . Entonces d(v, w) = dn(v, w).
9 Proposici´on. Sean (V, p) un grafo ponderado, v, w ∈ V y r ∈ N0. Entonces dr+1(v, w) = m´ın
u∈V dr(v, u) + p(u, w).
10 Problema. Demostrar las dos proposiciones anteriores.
11 Problema. En alg´un lenguaje de programaci´on escribir un programa que calcula d(v, w) para cada par v, w en V usando las ideas anteriores. Se recomienda identificar V con {1, . . . , n} y guardar el graf ponderado como una matriz de tama˜no n × n cuya entrada (j, k) es p(j, k).
Caminos m´ınimos en grafos, p´agina 2 de 2