1
Tema 3: Caminos y distanciasCaminos y distancias
• Distancia en grafos.
• Algoritmo de Moore.
• Distancia en grafos ponderados.
Algoritmo de Dijkstra.
• Centro y mediana de grafo.
• Digrafos de Actividad.
• Algoritmo del camino crítico
Fundamentos de la teoría de grafos.3º I.T.I. de Sistemas
Mª Teresa Cáceres Sansaloni
2
DefiniciDefinicióón:n: Sea G un grafo no trivial y u y v una pareja de vértices de G, la distanciadistancia, dG(u,v) (o d(u,v)) entre u y v es la longitud del u-v camino más corto en G, si tal camino existe. Si G no contiene un camino u-v, entonces d(u,v)=∞
La función distancia en un grafo G es una mméétricatrica, es decir, una aplicación
V(G)xV(G) ö Ù+
Que verifica las siguientes propiedades:
d(u,v)≥ 0 y d(u,v)=0 ⇔ u=vd(u,v) = d(v,u) ∀u,v ∈V(G)d(u,v) ≤ d(u,w) + d(w,v) ∀u,v,w ∈V(G)
Sea D un digrafo, la distancia dirigidadistancia dirigida dD(u,v) (o d(u,v)) del vértice u al vértice v de D es la longitud del camino más corto dirigido u-v si existe ese camino y en otro caso es ∞
3
Algoritmo de Algoritmo de MooreMoore
P1.- [Inicialmente, cada vértice w≠u es etiquetado con la etiqueta l(w)=∞ y a u le asignamos la etiqueta l(u)=0. La cola Q contiene los vértices etiquetados cuyos vértices adyacentes deben ser todavía etiquetados. Inicialmente, Q contiene sólo al vértice u]
Para cada vértice w≠u, sea l(w) ô ∞
Además, l(u) ô 0, Q ô {u}
P2.- Si Q≠∆, entonces eliminar un vértice x de Q;
en otro caso, parar, no hay camino u-v.
Utiliza un procedimiento de búsqueda en anchura de modo que los vértices son visitados en igual orden que el algoritmo BFS, pero asigna otras etiquetas.Encuentra la d(u,v) para una pareja de vértices u y v (distintos) de G asícomo un camino mínimo u-v, si existe
4
P3.- [Sea PADRE(y), el padre de y en el árbol de búsqueda en anchura. Para cada vértice y adyacente con x y todavía etiquetado con ∞, asignar x a PADRE(y), reemplazar la etiqueta l(y), por el valor finito l(x)+1 y añadir el vértice y a la cola Q]
Para cada vértice y adyacente a x / l(y)=∞,
PADRE(y) ≠ x, l(y) ≠ l(x)+1
QôQ+{y}
P4.- Si l(v)=∞, entonces volver al paso P2; en otro caso, ir al P5.
P5.- [Este paso encuentra un u-v camino mínimo]
5.1.- k ≠ l(v) y uk ≠ v5.2.- Si k≠0, entonces uk-1 ≠ PADRE(uk)
en otro caso ir al paso 5.4.5.3.- k ≠ k-1 e ir al paso 5.2.5.4.- Retorna u0,u1,…,uk=v , un camino mínimo u-v
5
Notas:Este algoritmo no etiqueta todos los vértices, sólo los que están a menor distancia que d(u,v).
Se puede modificar para que nos calcule la distancia de un vértice u de G a todos los demás (pero no da el camino mínimo).
6
Algoritmo de Algoritmo de MooreMoore (modificado)(modificado)[Encontrar d(u,v) para un vértice fijo u de G y cualquier vértice v de G]
P1.- Para cada vértice v≠u, sea l(v) ≠ ∞Sea l(u) ≠ 0 y añadir u a la cola, Q ≠ {u}
P2.- Si Q≠∆, entonces eliminar el primer vértice x de Q e ir al Paso 4.
P3.- Si Q=∆, entonces retornar los pares (v, l(v)) para todos los vértices v de G. FIN
P4.- Para cada vértice y adyacente a x, tal que l(y) = ∞l(y) ≠ l(x)+1, Q ≠ Q + {y} y volver al paso 2.
Cuando el algoritmo termina la etiqueta de cada vértice es la distancia desde el vértice fijo u
7
Para digrafos, basta cambiar las palabras “adyacente con” por“adyacente desde”.
Complejidad:Complejidad: O(q)
Del P1 al P4 cada arista se visita como máximo dos veces (una para cada vértice), luego el cálculo d(u,v) requiere O(q).
En P5, como la longitud de un camino cualquiera en G es menor o igual que mín{p-1,q}, el cálculo del camino mínimo requiere O(mín{p,q})
La complejidad del algoritmo es O(q).
8
Distancia en grafos ponderadosDistancia en grafos ponderados
v1
5
5 5 5
5
5
5
5
5
10
1010
5
20
20
202020
10 20
20
30
v2v1 v4v3
ah v5 v6
v7 v8
v10
v9
v11
Para ir de h (Hospital)a a (lugar del accidente)¿Cuál será el camino más corto?
9
Distancia en grafos ponderadosDistancia en grafos ponderados
v1
5
5 5 5
5
5
5
5
5
10
1010
5
20
20
202020
10 20
20
30
v2v1 v4v3
ah v5 v6
v7 v8
v10
v9
v11
Para ir de h (Hospital)a a (lugar del accidente)¿Cuál será el camino más corto?
10
Algoritmo de Algoritmo de DijkstraDijkstra[Para determinar la distancia desde un vértice u0 a cualquier vértice del grafo G=(V,E) ponderado]
P1.- [Inicializar las etiquetas de todos los vértices (v e G, v ≠ u0 ,l(v)=∞ ;l(u0)=0). Inicializar un contador i a 0. El conjunto S contiene solamente au0 (vértices de G cuya distancia desde u0 ha sido calculada) y elcomplementario S = V-{u0}].
i ≠ 0, S ≠ {u0}, S ≠ V-{u0}
l(u0) ≠ 0, l(v) ≠ ∞ para cada v ∈ V-{u0}si p=1, entonces FIN; si no, CONTINUAR
11
_P2.- [En este paso se actualizan, si fuera necesario, las etiquetas de los vértices de S adyacentes con ui. Además, para cada vértice v al que se le cambie la etiqueta l(v) se le asigna ui a PADRE(v)].
_Para cada v∈ S tal que uiv ∈E(G) se procede como sigue:
si l(v)≤l(ui)+w(ui,v) entonces CONTINUARsi no, l(v) ≠ l(ui)+w(ui,v) y PADRE(v) ≠ ui
P3.- [En este paso se determina el nuevo vértice ui+1 de S, para el que se va a encontrar la distancia desde u0, d(u0,ui+1)]
Hallar m=min{l(v)/v∈S}Seleccionar un vértice vj ∈ S cumpliendo l(vj)=mRetornar m como distancia de u0 a vj y ui+1 ≠ vj
_
__
12
P5.- [En este paso se actualiza la variable inicial i y determina si el algoritmo ha finalizado]
i ô i+1si i=p-1, entonces FINsi no ir al P2
P4.- [En este paso aumenta el conjunto S de vértices de G cuya distancia a u0 ya haya sido calculada y, consecuentemente, disminuye S]
S ≠ S∪{ui+1} S ≠ S-{ui+1}_
_
_
http://profesores.elo.utfsm.cl/~agv/elo320/animation/dijkstra/dijkstra_applet.html
http://neo.lcc.uma.es/evirtual/cdd/applets/distancia%20corta/Example2.html
http://www.dma.fi.upm.es/gregorio/grafos/CamMin/inicio/Inicio.htm
13
v1 v2 v3 v4
v5v6
v7 v8
v9v10 v11 v12
v13 v16v14 v15
5
7
8
910
12
15 16 17
18
28
1
2
34 6
13 14
27
11 19 20
2122
23 24 2526
Camino mínimo de v5 a v16
14
v1 v2
v4
v3
v5
v6 v7 v8
u0
1
2 3
3
3 5
11
2
2 2
4
4
56
a) Usar el algoritmo de Dijkstra para determinar d(u0,v) para cada v de G en el grafo ponderado G de la figura y determinar uncamino mínimo u0-v3.
b) Repetir para el grafo H obtenido de G borrando los pesos de las aristas. Usar Moore y Dijkstra.
EjerciciosEjercicios
1
15
2
Haciendo uso del algoritmo de Dijkstra calcular d(u0,vi) para i=1,2,…,8 en el grafo G adjunto y determinar un camino mínimou0-v5.
12
2
33
4
4
5 6
7
8
9
v3
v2
v4
v5
v1
v6
v7
v8
u0
16
3
v2v1
v3
v4
v5v6
v7 v8
11
2
2
2
3
3
3
4
5
5
5
6
7
7
El grafo ponderado de la figura modela un barrio o urbanización, donde cada arista corresponde a una calle y cada vértice a una intersección de calles. Los pesos de las calles corresponden al tiempo (medio) de recorrido de cada sección de calle (obsérvese que la calle v8v3 pasa bajo la v5v4por medio de un túnel). ¿Cuál es el tiempo medio de recorrido más corto de v1 a vi para i=2,…,8? Encuéntrese la ruta más rápida desde v1 a v3.
17
Teorema:Teorema:Sea G=(V,E) un (p,q)-grafo ponderado. El algoritmo de Dijkstracalcula la distancia desde un vértice fijado u0 a cualquier otro vértice de G. Es decir, cuando el algoritmo termina
l(v)=d(u0,v) ∀v∈VAdemás, si l(v)≠∞ y v≠u0, entonces
u0=w0,w1,w2,…,wk=ves un camino mínimo u0-v, donde wi-1=PADRE(wi) para 1≤ i ≤ k
Demostración:Suponemos G conexo. Procederemos por inducción completa sobre i para demostrar
que l(v)=d(u0,v) para cualquier v∈Si={u0,u1,…,ui}
para i=0 es evidente
Suponemos que es cierto para cualquier i (0§ i § p-1)
Y lo demostraremos para i+1; veremos que l(ui+1)=d(u0,ui+1)
18
Por Dijkstra, se sabe que ui+1 es un vértice tal que l(ui+1)=min{l(v)/ v∈ Si}
_
l(ui+1)=min{l(u)+w(u,v) / u∈ Si, v∈Si, uv ∈ E(G)}= (H.I)min{d(u0,u)+w(u,v) / u∈ Si, v∈Si, uv ∈ E(G)}
dicho mínimo se consigue para v=ui+1 por lo que l(ui+1)=d(u0,u)+w(u,ui+1)=d(u0,ui+1)
__
La segunda parte, sea v∈V(G) tal que l(v)≠∞ y v≠u0, al finalizar se tiene que
l(v)=l(v1)+w(v1,v) donde PADRE(v)=v1
luego v1 es el penúltimo vértice en algún camino mínimo u0-v.Continuando de esa forma encontramos una secuencia de vértices
u0=vn,vn-1,…v1,v donde PADRE(vi)=vi+1 para 1≤i≤n-1
19
Complejidad:Complejidad: O(p2)
El mayor consumo se realiza en los pasos P2 y P3.
En P2 cada arista de G se visita como máximo una vez. ComoG tiene q aristas, la complejidad de P2 es O(q).
En P3, se determina la mínima etiqueta de los elementos de Scada vez, esto puede hacerse con |S|-1 comparaciones. Si Gtiene orden p, entonces |S|<p y P3 se realiza como máximo p-1 veces, por lo que este paso es de O(p2).
Como q≤p(p-1)/2. El algoritmo requiere O(p2)
_
__
20
La excentricidadexcentricidad e(v) de un vértice v de G es la distancia de v al vértice más alejado de él. Es decir,
e(v)=max{d(v,u) / u∈ V(G)}
Si G es conexo, se definen radioradio y didiáámetrometro de G como la menor y la mayor de sus excentricidades, respectivamente. Es decir,
rad(G)=min{e(v) / v∈ V(G)}diam(G)=max{e(v) / v∈ V(G)}
El centrocentro de G, C(G), es el subgrafo inducido por los vértices cuya excentricidad sea la mínima del grafo, es decir rad(G).
PropiedadesPropiedadesSea G un grafo. Entonces,
rad(G)≤diam(G)≤ 2rad(G)
Cualquier grafo es el centro de algún grafo conexo.
Cualquier grafo ponderado G es el centro de algún grafo ponderado G'.
21
DistanciaDistancia, d(v), de un vértice v en un grafo G, ponderado o no, se define como la suma de sus distancias a todos los vértices del grafo; es decir,
d(v)=∑ d(v,u) d(v) = ∑ wi d(v, vi)1£i£p
La medianamediana de G, M(G), es el subgrafo inducido por los vértices que tienen mínima distancia.
u∈V(G)
El centro y la mediana de un grafo no son necesariamente igualesy pueden ser, incluso, disjuntos.
Los algoritmos de Moore y Dijkstra pueden modificarse fácilmente para determinar:
22
* La excentricidad de cada vértice.(Se halla la distancia de un vértice a cada uno de los demás y se selecciona la mayor. Se puede repetir para cada vértice).
* La distancia de cada vértice.(Se halla la distancia de un vértice a cada uno de los demás y se suman todas estas distancias).
* El radio y el diámetro.(Una vez calculadas las excentricidades, se seleccionan la menor y la mayor).
* El centro.(Conocido el radio, se seleccionan los vértices cuya excentricidad sea dicho radio y las correspondientes aristas).
* La mediana.(Una vez halladas las distancias de cada vértice, se seleccionan los vértices que tengan menor distancia y las correspondientes aristas).
23
Teorema:Teorema: Sea T un árbol de orden p ≥ 3, y sea T’ el árbol que resulta de eliminar de T los vértices finales.Entonces C(T) = C(T’)
AlgoritmoAlgoritmo(Para determinar el centro de un árbol T)
P1.- Hacer T’ ≠ T
P2.- Si T’ @ K1 o T’ @ K2 , entonces retorna C(T) = T’ y FINen otro caso, ir al paso P3
P3.- Eliminar los vértices de grado 1 en T’ para obtener T’’Hacer T’ ≠ T’’ y volver al paso P2
Teorema:Teorema: El centro de cualquier árbol es isomorfo a K1 o K2
24
Localizar el mejor emplazamiento para un centro de emergenciascentro de emergenciasdel 061 y uno de trdel 061 y uno de trááfico de la Guardia Civil.fico de la Guardia Civil.
Ambos centros, deberán dar servicio a toda la provincia de Sevilla. Las poblaciones a considerar serán el listado que aparece en el “plan provincial de servicios sociales 2003” editado por el Área de Asuntos Sociales de la Diputación de Sevilla.
Consideramos dos parámetros iniciales:población de cada pueblo* calidad de las vías de comunicación
Autopista/autovía: 1Carretera de 1 orden: 2Carretera de 2 orden: 3Carretera de 3 orden: 4
*Datos obtenidos de la Diputación provincial para poblaciones de menos de 20000 habitantes, el resto dedatos de la Web de la Junta de Andalucía.
25
24450Lebrija4315El Saucejo2409Cañada Rosal
1894Las Navas de la Co.3705El Rubio9030Cantillana
15678Las Cabezas de S.J.1410El Ronquillo25109Camas
29759La Rinconada1791El Real de la Jara3585Burguillos
5446La Luisiana2373El Pedroso10692Brenes
3626La Lantejuela384El Madroño10441Bormujos
5188La Campana7059El Garrobo5078Bollullos de la M.
12967La Algaba7704El Cuervo5045Benacazón
786Lora de Estepa16303El Viso del Alcor25932Carmona
6062Isla Mayor1643El Castillo de las G.3175Badolatosa
2324Huevar37900Écija5859Aznalcollar
6075Herrera103282Dos Hermanas3549Aznalcázar
8429Guillena24288Coria del Río18468Arahal
2983Guadalcanal7143Constantina3244Almensilla
10511Gines5186Cazalla de la Sierra1746Almadén de la Plata
3885Gilena630Castilleja del Campo1391Algamitas
5550Gerena16408Castilleja de la Cue.3423Alcolea del Río
6328Gelves1741Castilleja de Guz.9200Alcalá del Río
7440Fuentes de And.4548CastilBlanco de los A58351Alcalá de Guadaira
11889Estepa5244Casariche2014Alanís de la Sierra
5591Espartinas2319Carrión de los Cés.1970Aguadulce
26
7131Santiponce6979Paradas
11070Sanlúcar la Mayor3973Palomares del Río
5377Villanueva del Río704San Nicolás del Puerto17212Osuna
1498Villanueva de San J20072San Juan de Aznalf.27786Morón de la Fronte.
3792Villamanrique de la4208Roda de Andalucía2727Martín de la Jara
6532Villaverde del Río10648Puebla del Río2647Marinaleda
6828Valencina de la Co3394Puebla de los Infantes17921Marchena
45947Utrera10646Puebla de Cazalla36232Mairena del Aljaraf.
4989Umbrete3234Pruna16894Mairena del Alcor
18538Tomares11448Pilas33461Los Palacios y Villaf.
8905Tocina3930Peñaflor4108Los Corrales
704114Sevilla5062Pedrera18768Lora del Río
27
ModelizaciModelizacióónn del problemadel problema
Grafo conexo ponderado y no dirigido.Vértices: poblaciones del listado anterior.Aristas: Tramos de carreteras que unan poblaciones
adyacentes.
Ponderación 1: población media entre los vértices de las aristas.Ponderación 2: distancia entre las poblaciones (en kilómetros).Ponderación 3: tiempo medio en recorrer las aristas.
Nota: con la ponderación 1, como Dijkstra calcula caminos mínimos, de aplicarse directamente evitaría las ciudades con mayor población, así, para transformar valores altos en valores más pequeños, se restan los datos de una constante mayor que todos los ellos.
Ejemplo: Lebrija- El CuervoPoblación de Lebrija: 24450Población de El Cuervo: 7704
Valor de la arista: ((800.000-24450)+(800.000-7704))/2=783923
28
Nota: para la ponderación 3, se usan los datos kms y el tipo de vía. Hay que tener en cuenta que no siempre se circula por la misma vía, por lo que habrá que tener en cuenta los kms que se hacen por cada vía. Para calcular el tipovia habrá que calcular el porcentaje del trayecto que se realiza por cada tipo de vía y sumarlos.
Ejemplo: La Campana-La LuisianaRecorrido total: 21 KmsRecorrido vía tipo 1: 12 KmsRecorrido vía tipo 4: 9 Kms
tipovia:=(12/21)*1+(9/21)*4=2.28
La velocidad media de recorrido dependerá del tipovia, vías tipo 1 -- 120kms/hvías tipo 2 -- 100kms/hvías tipo 3 -- 80kms/hvías tipo 4 -- 70kms/h
y se calcula la velocidad media exacta.
29
Centro de tráfico de la Guardia Civil, buscamos beneficiar a la mayor cantidad de gente posible, por lo que debe situarse cerca de donde haya más concentración de gente posible, por lo que se debe calcular la mediana del grafo.
El 061, deseamos primar la velocidad de actuación, es decir, que pueda desplazarse de forma rápida a cualquier punto de la provincia sin perjudicar ningún punto en particular, lo que buscamos es el centro del grafo.
Resultados obtenidos:Pond 1:
Vértices de la mediana SevillaVértices del centro Carmona
Pond 2: Vértices de la mediana SevillaVértices del centro Mairena del Alcor
Pond 3: Vértices de la mediana SevillaVértices del centro El Viso del Alcor
30
Digrafos de actividad. Algoritmo de caminos críticos
Problema: Establecer una secuenciación de las tareas de un proyecto.
Modelo del problema:
Modelamos la situación mediante un digrafo acíclico, D.
Vértices:vértice etiquetado por S (vértice de comienzo)vértice etiquetado por T (vértice final)resto vértices, las actividades a desarrollar
31
Arcos:S está dirigido hacia un vértice v ∈V(G) si la actividad v
puede comenzar antes de que cualquier otra actividad estécompletada.
w∈V(G) está dirigido hacia Tsi ninguna actividad necesita que w sea completada antes que comience la actividad.
un vértice x está dirigido hacia otro vértice y, si y sólo si no necesita que ninguna actividad esté realizada entre la finalización de x y el comienzo de y.
t(w), indica el tiempo requerido para completar la actividad w.Se establece t(S) = t(T) = 0.
Al digrafo construido se le llama digrafo de actividad del proyecto
32
Ejemplo:
Supongamos que queremos renovar un aula magna. La sala necesita nuevas alfombras, asientos, paredes nuevas, pizarra y pintar las paredes.
En la tabla siguiente, junto con las actividades damos eltiempo estimado en terminarlas:
1R; Cambiar pizarra
5A; Colocar paredes nuevas
20P; Pintar paredes
10I; Instalar nuevos asientos
8L; Poner nuevas alfombras
TIEMPO (h)ACTIVIDAD
33
Digrafo de actividad
20
1
10
500
8
L
ST
R
I
P
A
Tiempo estimado en realizar el proyecto completo. 25 horas
34
Si v1,v2,v3,…, vk es un camino en el digrafo de actividad D, entonces la longitud tiempo del camino es
∑t(vi)i=1
k
En el digrafo anterior, el camino S,A,P,T tiene una longitud-tiempo de 25h
35
Camino crítico
Un camino crítico en un digrafo de actividad es un camino más largo en unidades de tiempo.
Teorema:Sea D el digrafo de actividad asociado con un proyecto
dado. Entonces, la longitud-tiempo de un camino crítico en D es igual al mínimo tiempo necesario para completar el proyecto.
Ejemplo:Supongamos que queremos hacer un trabajo en el
jardín de una casa.El proyecto puede ser descrito por las siguientes
actividades:
36
3F: Colocar una valla y una cancela
2R: Plantar árboles
2D: Enlosar el camino
2P: Plantar el césped
1I: Instalar un sistema de goteo subterráneo
2L: Abonar el terreno
3C: Limpiar la tierra
TIEMPO (días)ACTIVIDAD
3S
2
2 2
3
1
020
C L
I
D
T
F
P R
38
Algoritmo
Asignamos una etiqueta l(v) a cada vértice v del digrafo D. Al final del algoritmo, l(v) es la mayor longitud-tiempo de un camino S-v.
Inicialmente, solo a S se le asigna la etiqueta 0. Cualquier otro vértice v (≠S) será etiquetado sólo después de que cada vértice adyacente hacia v haya sido etiquetado.
l(v) = max {l(u) + t(v) / (u,v)∈E(D)}
PADRE(v) es el vértice w para el que l(v) = l(w) + t(v).
w es un vértice que precede a v en un camino de máxima longitud-tiempo S-v en D.
El etiquetado termina cuando el vértice final T ha sido etiquetado. Las etiquetas Padre permiten construir un camino crítico de D
39
Algoritmo (camino crítico)[Determinar un camino crítico en un digrafo de actividad D con vértice de inicio S y vértice final T. La variable t(v) es el tiempo empleado en completar la tarea v.]
P1.- [Este paso inicializa una variable n(v) para δe(v) para cada vértice v≠S de D. La variable n(v) será usada para contar el número de vértices adyacentes hacia v que aún no hayan sido etiquetados.]
Para cada vértice v≠S, sea n(v) ôδe(v)
P2.- [Inicializamos una cola Q]
QôØ
40
P3.- [Etiquetar l(S) y actualiza n(v) para todos los vértices v adyacentes desdeS. Los vértices v para los que n(v)=0 son añadidos a la cola Q, que contiene a vértices que están preparados para ser etiquetados.]
P3.1.- l(S) ≠ 0P3.2.- Para los vértices v de D tal que (S,v) ∈ E(D)
hacer n(v) ≠ n(v) - 1 ; PADRE(v) ≠ S ;Q ≠ Q » {v}
P4.- [Este paso elimina un vértice w de Q, determina PADRE(w), actualiza n(v) para todos los vértices v adyacentes desde w y añade a la cola Q aquellosvértices v para los cuales n(v)=0.]
P4.1.- Eliminar el vértice w de Q;l(w) ≠ max {l(u) + t(w) /(u,w) ∈ E(D)}
P4.2.- Sea u’ un vértice tal que l(w) = l(u’) + t(w)entonces, PADRE(w) ≠ u’
P4.3- Para cada vértice v tal que (w,v) ∈ E(D)n(v) ≠ n(v) - 1,Si n(v) = 0, entonces Q ≠ Q » {v}
41
P5.- [Este paso determina si T ha sido etiquetado]Si T ha sido etiquetado, entonces continuar;en caso contrario volver al paso P4
P6.- [Este paso encuentra un camino crítico en D]
P6.1.- P: T = v0P6.2.- k ≠ 0P6.3.- [Sea determinado P: vk,vk-1,…,v1,v0, donde vi = PADRE(vi-1) para 1 ≤ i ≤ k. Entonces este paso determina si P es ya un camino crítico . Si aún no se ha encontrado un camino crítico, entonces este paso extiende a P]
Si vk=S, entonces retornar P y l(T). FINen otro caso, vk+1 ô PARENT(vk) y
P: vk+1,vk,…,v1,v0P6.4.- k ≠ k+1 y volver al paso P6.3
Complejidad del algoritmo O(q)
42
3
2
2 5
4
1
0
2
0 1S
J
B
D
TE
G
H
A
F
Aplicar el algoritmo al siguiente grafo
--212121211
( l(v) , Padre(v) )v = vérticeetiquetadoQn(T)n(H)n(G)n(F)n(E)n(D)n(J)n(B)n(A)