Distancia en grafos. Algoritmo de Moore. Distancia en grafos ponderados. Algoritmo de Dijkstra. Centro y mediana de grafo. Digrafos de Actividad. Algoritmo del camino crtico Fundamentos de la teora de grafos. 3 I.T.I. de Sistemas M Teresa Cceres Sansaloni 2 Definici Definici n: n: Sea G un grafo no trivial y u y v una pareja de vrtices de G, la distancia distancia, d G (u,v) (o d(u,v)) entre u y v es la longitud del u-v camino ms corto en G, si tal camino existe. Si G no contiene un camino u-v, entonces d(u,v)= La funcin distancia en un grafo G es una m m trica trica, es decir, una aplicacin V(G)xV(G) + Que verifica las siguientes propiedades: d(u,v) 0 y d(u,v)=0 u=v d(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 dirigida distancia dirigida d D (u,v) (o d(u,v)) del vrtice u al vrtice v de D es la longitud del camino ms corto dirigido u-v si existe ese camino y en otro caso es 3 Algoritmo de Algoritmo de Moore Moore P1.- [Inicialmente, cada vrtice wu es etiquetado con la etiqueta l(w)= y a u le asignamos la etiqueta l(u)=0. La cola Q contiene los vrtices etiquetados cuyos vrtices adyacentes deben ser todava etiquetados. Inicialmente, Q contiene slo al vrtice u] Para cada vrtice wu, sea l(w) Adems, l(u) 0, Q {u} P2.- Si Q, entonces eliminar un vrtice x de Q; en otro caso, parar, no hay camino u-v. Utiliza un procedimiento de bsqueda en anchura de modo que los vrtices son visitados en igual orden que el algoritmo BFS, pero asigna otras etiquetas. Encuentra la d(u,v) para una pareja de vrtices u y v (distintos) de G as como un camino mnimo u-v, si existe 4 P3.- [Sea PADRE(y), el padre de y en el rbol de bsqueda en anchura. Para cada vrtice y adyacente con x y todava etiquetado con , asignar x a PADRE(y), reemplazar la etiqueta l(y), por el valor finito l(x)+1 y aadir el vrtice y a la cola Q] Para cada vrtice 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 mnimo] 5.1.- k l(v) y u k v 5.2.- Si k0, entonces u k-1 PADRE(u k ) en otro caso ir al paso 5.4. 5.3.- k k-1 e ir al paso 5.2. 5.4.- Retorna u 0 ,u 1 ,,u k =v , un camino mnimo u-v 5 Notas: Este algoritmo no etiqueta todos los vrtices, slo los que estn a menor distancia que d(u,v). Se puede modificar para que nos calcule la distancia de un vrtice u de G a todos los dems (pero no da el camino mnimo). 6 Algoritmo de Algoritmo de Moore Moore (modificado) (modificado) [Encontrar d(u,v) para un vrtice fijo u de G y cualquier vrtice v de G] P1.- Para cada vrtice vu, sea l(v) Sea l(u) 0 y aadir u a la cola, Q {u} P2.- Si Q, entonces eliminar el primer vrtice x de Q e ir al Paso 4. P3.- Si Q=, entonces retornar los pares (v, l(v)) para todos los vrtices v de G. FIN P4.- Para cada vrtice 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 vrtice es la distancia desde el vrtice 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 mximo dos veces (una para cada vrtice), luego el clculo d(u,v) requiere O(q). En P5, como la longitud de un camino cualquiera en G es menor o igual que mn{p-1,q}, el clculo del camino mnimo requiere O(mn{p,q}) La complejidad del algoritmo es O(q). 8 Distancia en grafos ponderados Distancia en grafos ponderados v 1 5 5 5 5 5 5 5 5 5 10 10 10 5 20 20 20 20 20 10 20 20 30 v 2 v 1 v 4 v 3 a h v 5 v 6 v 7 v 8 v 10 v 9 v 11 Para ir de h (Hospital) a a (lugar del accidente) Cul ser el camino ms corto? 9 Distancia en grafos ponderados Distancia en grafos ponderados v 1 5 5 5 5 5 5 5 5 5 10 10 10 5 20 20 20 20 20 10 20 20 30 v 2 v 1 v 4 v 3 a h v 5 v 6 v 7 v 8 v 10 v 9 v 11 Para ir de h (Hospital) a a (lugar del accidente) Cul ser el camino ms corto? 10 Algoritmo de Algoritmo de Dijkstra Dijkstra [Para determinar la distancia desde un vrtice u 0 a cualquier vrtice del grafo G=(V,E) ponderado] P1.- [Inicializar las etiquetas de todos los vrtices (v e G, v u 0 ,l(v)= ; l(u 0 )=0). Inicializar un contador i a 0. El conjunto S contiene solamente a u 0 (vrtices de G cuya distancia desde u 0 ha sido calculada) y el complementario S = V-{u 0 }]. i 0, S {u 0 }, S V-{u 0 } l(u 0 ) 0, l(v) para cada v V-{u 0 } si p=1, entonces FIN; si no, CONTINUAR 11 _ P2.- [En este paso se actualizan, si fuera necesario, las etiquetas de los vrtices de S adyacentes con u i . Adems, para cada vrtice v al que se le cambie la etiqueta l(v) se le asigna u i a PADRE(v)]. _ Para cada v S tal que u i v E(G) se procede como sigue: si l(v)l(u i )+w(u i ,v) entonces CONTINUAR si no, l(v) l(u i )+w(u i ,v) y PADRE(v) u i P3.- [En este paso se determina el nuevo vrtice u i+1 de S, para el que se va a encontrar la distancia desde u 0 , d(u 0 ,u i+1 )] Hallar m=min{l(v)/vS} Seleccionar un vrtice v j S cumpliendo l(v j )=m Retornar m como distancia de u 0 a v j y u i+1 v j _ _ _ 12 P5.- [En este paso se actualiza la variable inicial i y determina si el algoritmo ha finalizado] i i+1 si i=p-1, entonces FIN si no ir al P2 P4.- [En este paso aumenta el conjunto S de vrtices de G cuya distancia a u 0 ya haya sido calculada y, consecuentemente, disminuye S] S S{u i+1 } S S-{u i+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 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 16 v 14 v 15 5 7 8 9 10 12 15 16 17 18 28 1 2 3 4 6 13 14 27 11 19 20 21 22 23 24 25 26 Camino mnimo de v 5 a v 16 14 v 1 v 2 v 4 v 3 v 5 v 6 v 7 v 8 u 0 1 2 3 3 3 5 1 1 2 2 2 4 4 5 6 a) Usar el algoritmo de Dijkstra para determinar d(u 0 ,v) para cada v de G en el grafo ponderado G de la figura y determinar un camino mnimo u 0 -v 3 . b) Repetir para el grafo H obtenido de G borrando los pesos de las aristas. Usar Moore y Dijkstra. Ejercicios Ejercicios 1 15 2 Haciendo uso del algoritmo de Dijkstra calcular d(u 0 ,v i ) para i=1,2,,8 en el grafo G adjunto y determinar un camino mnimo u 0 -v 5 . 1 2 2 3 3 4 4 5 6 7 8 9 v 3 v 2 v 4 v 5 v 1 v 6 v 7 v 8 u 0 16 3 v 2 v 1 v 3 v 4 v 5 v 6 v 7 v 8 1 1 2 2 2 3 3 3 4 5 5 5 6 7 7 El grafo ponderado de la figura modela un barrio o urbanizacin, donde cada arista corresponde a una calle y cada vrtice a una interseccin de calles. Los pesos de las calles corresponden al tiempo (medio) de recorrido de cada seccin de calle (obsrvese que la calle v 8 v 3 pasa bajo la v 5 v 4 por medio de un tnel). Cul es el tiempo medio de recorrido ms corto de v 1 a v i para i=2,,8? Encuntrese la ruta ms rpida desde v 1 a v 3 . 17 Teorema: Teorema: Sea G=(V,E) un (p,q)-grafo ponderado. El algoritmo de Dijkstra calcula la distancia desde un vrtice fijado u 0 a cualquier otro vrtice de G. Es decir, cuando el algoritmo termina l(v)=d(u 0 ,v) vV Adems, si l(v) y vu 0 , entonces u 0 =w 0 ,w 1 ,w 2 ,,w k =v es un camino mnimo u 0 -v, donde w i-1 =PADRE(w i ) para 1 i k Demostracin: Suponemos G conexo. Procederemos por induccin completa sobre i para demostrar que l(v)=d(u 0 ,v) para cualquier vS i ={u 0 ,u 1 ,,u i } 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(u i+1 )=d(u 0 ,u i+1 ) 18 Por Dijkstra, se sabe que u i+1 es un vrtice tal que l(u i+1 )=min{l(v)/ v S i } _ l(u i+1 )=min{l(u)+w(u,v) / u S i , vS i , uv E(G)}= (H.I) min{d(u 0 ,u)+w(u,v) / u S i , vS i , uv E(G)} dicho mnimo se consigue para v=u i+1 por lo que l(u i+1 )=d(u 0 ,u)+w(u,u i+1 )=d(u 0 ,u i+1 ) _ _ La segunda parte, sea vV(G) tal que l(v) y vu 0 , al finalizar se tiene que l(v)=l(v 1 )+w(v 1 ,v) donde PADRE(v)=v 1 luego v 1 es el penltimo vrtice en algn camino mnimo u 0 -v. Continuando de esa forma encontramos una secuencia de vrtices u 0 =v n ,v n-1 ,v 1 ,v donde PADRE(v i )=v i+1 para 1in-1 19 Complejidad: Complejidad: O(p 2 ) El mayor consumo se realiza en los pasos P2 y P3. En P2 cada arista de G se visita como mximo una vez. Como G tiene q aristas, la complejidad de P2 es O(q). En P3, se determina la mnima etiqueta de los elementos de S cada vez, esto puede hacerse con |S|-1 comparaciones. Si G tiene orden p, entonces |S|<p y P3 se realiza como mximo p-1 veces, por lo que este paso es de O(p 2 ). Como qp(p-1)/2. El algoritmo requiere O(p 2 ) _ _ _ 20 La excentricidad excentricidad e(v) de un vrtice v de G es la distancia de v al vrtice ms alejado de l. Es decir, e(v)=max{d(v,u) / u V(G)} Si G es conexo, se definen radio radio y di di metro metro 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 centro centro de G, C(G), es el subgrafo inducido por los vrtices cuya excentricidad sea la mnima del grafo, es decir rad(G). Propiedades Propiedades Sea G un grafo. Entonces, rad(G)diam(G) 2rad(G) Cualquier grafo es el centro de algn grafo conexo. Cualquier grafo ponderado G es el centro de algn grafo ponderado G'. 21 Distancia Distancia, d(v), de un vrtice v en un grafo G, ponderado o no, se define como la suma de sus distancias a todos los vrtices del grafo; es decir, d(v)= d(v,u) d(v) = w i d(v, v i ) 1ip La mediana mediana de G, M(G), es el subgrafo inducido por los vrtices que tienen mnima distancia. uV(G) El centro y la mediana de un grafo no son necesariamente iguales y pueden ser, incluso, disjuntos. Los algoritmos de Moore y Dijkstra pueden modificarse fcilmente para determinar: 22 * La excentricidad de cada vrtice. (Se halla la distancia de un vrtice a cada uno de los dems y se selecciona la mayor. Se puede repetir para cada vrtice). * La distancia de cada vrtice. (Se halla la distancia de un vrtice a cada uno de los dems y se suman todas estas distancias). * El radio y el dimetro. (Una vez calculadas las excentricidades, se seleccionan la menor y la mayor). * El centro. (Conocido el radio, se seleccionan los vrtices cuya excentricidad sea dicho radio y las correspondientes aristas). * La mediana. (Una vez halladas las distancias de cada vrtice, se seleccionan los vrtices 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 vrtices finales. Entonces C(T) = C(T) Algoritmo Algoritmo (Para determinar el centro de un rbol T) P1.- Hacer T T P2.- Si T @K 1 o T @K 2 , entonces retorna C(T) = T y FIN en otro caso, ir al paso P3 P3.- Eliminar los vrtices 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 K 1 o K 2 24 Localizar el mejor emplazamiento para un centro de emergencias centro de emergencias del 061 y uno de tr del 061 y uno de tr fico de la Guardia Civil. fico de la Guardia Civil. Ambos centros, debern dar servicio a toda la provincia de Sevilla. Las poblaciones a considerar sern el listado que aparece en el plan provincial de servicios sociales 2003 editado por el rea de Asuntos Sociales de la Diputacin de Sevilla. Consideramos dos parmetros iniciales: poblacin de cada pueblo* calidad de las vas de comunicacin Autopista/autova: 1 Carretera de 1 orden: 2 Carretera de 2 orden: 3 Carretera de 3 orden: 4 *Datos obtenidos de la Diputacin provincial para poblaciones de menos de 20000 habitantes, el resto de datos de la Web de la Junta de Andaluca. 25 24450 Lebrija 4315 El Saucejo 2409 Caada Rosal 1894 Las Navas de la Co. 3705 El Rubio 9030 Cantillana 15678 Las Cabezas de S.J. 1410 El Ronquillo 25109 Camas 29759 La Rinconada 1791 El Real de la Jara 3585 Burguillos 5446 La Luisiana 2373 El Pedroso 10692 Brenes 3626 La Lantejuela 384 El Madroo 10441 Bormujos 5188 La Campana 7059 El Garrobo 5078 Bollullos de la M. 12967 La Algaba 7704 El Cuervo 5045 Benacazn 786 Lora de Estepa 16303 El Viso del Alcor 25932 Carmona 6062 Isla Mayor 1643 El Castillo de las G. 3175 Badolatosa 2324 Huevar 37900 cija 5859 Aznalcollar 6075 Herrera 103282 Dos Hermanas 3549 Aznalczar 8429 Guillena 24288 Coria del Ro 18468 Arahal 2983 Guadalcanal 7143 Constantina 3244 Almensilla 10511 Gines 5186 Cazalla de la Sierra 1746 Almadn de la Plata 3885 Gilena 630 Castilleja del Campo 1391 Algamitas 5550 Gerena 16408 Castilleja de la Cue. 3423 Alcolea del Ro 6328 Gelves 1741 Castilleja de Guz. 9200 Alcal del Ro 7440 Fuentes de And. 4548 CastilBlanco de los A 58351 Alcal de Guadaira 11889 Estepa 5244 Casariche 2014 Alans de la Sierra 5591 Espartinas 2319 Carrin de los Cs. 1970 Aguadulce 26 7131 Santiponce 6979 Paradas 11070 Sanlcar la Mayor 3973 Palomares del Ro 5377 Villanueva del Ro 704 San Nicols del Puerto 17212 Osuna 1498 Villanueva de San J 20072 San Juan de Aznalf. 27786 Morn de la Fronte. 3792 Villamanrique de la 4208 Roda de Andaluca 2727 Martn de la Jara 6532 Villaverde del Ro 10648 Puebla del Ro 2647 Marinaleda 6828 Valencina de la Co 3394 Puebla de los Infantes 17921 Marchena 45947 Utrera 10646 Puebla de Cazalla 36232 Mairena del Aljaraf. 4989 Umbrete 3234 Pruna 16894 Mairena del Alcor 18538 Tomares 11448 Pilas 33461 Los Palacios y Villaf. 8905 Tocina 3930 Peaflor 4108 Los Corrales 704114 Sevilla 5062 Pedrera 18768 Lora del Ro 27 Modelizaci Modelizaci n n del problema del problema Grafo conexo ponderado y no dirigido. Vrtices: poblaciones del listado anterior. Aristas: Tramos de carreteras que unan poblaciones adyacentes. Ponderacin 1: poblacin media entre los vrtices de las aristas. Ponderacin 2: distancia entre las poblaciones (en kilmetros). Ponderacin 3: tiempo medio en recorrer las aristas. Nota: con la ponderacin 1, como Dijkstra calcula caminos mnimos, de aplicarse directamente evitara las ciudades con mayor poblacin, as, para transformar valores altos en valores ms pequeos, se restan los datos de una constante mayor que todos los ellos. Ejemplo: Lebrija- El Cuervo Poblacin de Lebrija: 24450 Poblacin de El Cuervo: 7704 Valor de la arista: ((800.000-24450)+(800.000-7704))/2=783923 28 Nota: para la ponderacin 3, se usan los datos kms y el tipo de va. Hay que tener en cuenta que no siempre se circula por la misma va, por lo que habr que tener en cuenta los kms que se hacen por cada va. Para calcular el tipovia habr que calcular el porcentaje del trayecto que se realiza por cada tipo de va y sumarlos. Ejemplo: La Campana-La Luisiana Recorrido total: 21 Kms Recorrido va tipo 1: 12 Kms Recorrido va tipo 4: 9 Kms tipovia:=(12/21)*1+(9/21)*4=2.28 La velocidad media de recorrido depender del tipovia, vas tipo 1 -- 120kms/h vas tipo 2 -- 100kms/h vas tipo 3 -- 80kms/h vas tipo 4 -- 70kms/h y se calcula la velocidad media exacta. 29 Centro de trfico de la Guardia Civil, buscamos beneficiar a la mayor cantidad de gente posible, por lo que debe situarse cerca de donde haya ms concentracin de gente posible, por lo que se debe calcular la mediana del grafo. El 061, deseamos primar la velocidad de actuacin, es decir, que pueda desplazarse de forma rpida a cualquier punto de la provincia sin perjudicar ningn punto en particular, lo que buscamos es el centro del grafo. Resultados obtenidos: Pond 1: Vrtices de la mediana Sevilla Vrtices del centro Carmona Pond 2: Vrtices de la mediana Sevilla Vrtices del centro Mairena del Alcor Pond 3: Vrtices de la mediana Sevilla Vrtices del centro El Viso del Alcor 30 Digrafos de actividad. Algoritmo de caminos crticos Problema: Establecer una secuenciacin de las tareas de un proyecto. Modelo del problema: Modelamos la situacin mediante un digrafo acclico, D. Vrtices: vrtice etiquetado por S (vrtice de comienzo) vrtice etiquetado por T (vrtice final) resto vrtices, las actividades a desarrollar 31 Arcos: S est dirigido hacia un vrtice v V(G) si la actividad v puede comenzar antes de que cualquier otra actividad est completada. wV(G) est dirigido hacia Tsi ninguna actividad necesita que w sea completada antes que comience la actividad. un vrtice x est dirigido hacia otro vrtice y, si y slo si no necesita que ninguna actividad est realizada entre la finalizacin 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 el tiempo estimado en terminarlas: 1 R; Cambiar pizarra 5 A; Colocar paredes nuevas 20 P; Pintar paredes 10 I; Instalar nuevos asientos 8 L; Poner nuevas alfombras TIEMPO (h) ACTIVIDAD 33 Digrafo de actividad 20 1 10 5 0 0 8 L S T R I P A Tiempo estimado en realizar el proyecto completo. 25 horas 34 Si v 1 ,v 2 ,v 3 ,, v k es un camino en el digrafo de actividad D, entonces la longitud tiempo del camino es t(v i ) i=1 k En el digrafo anterior, el camino S,A,P,T tiene una longitud-tiempo de 25h 35 Camino crtico Un camino crtico en un digrafo de actividad es un camino ms largo en unidades de tiempo. Teorema: Sea D el digrafo de actividad asociado con un proyecto dado. Entonces, la longitud-tiempo de un camino crtico en D es igual al mnimo tiempo necesario para completar el proyecto. Ejemplo: Supongamos que queremos hacer un trabajo en el jardn de una casa. El proyecto puede ser descrito por las siguientes actividades: 36 3 F: Colocar una valla y una cancela 2 R: Plantar rboles 2 D: Enlosar el camino 2 P: Plantar el csped 1 I: Instalar un sistema de goteo subterrneo 2 L: Abonar el terreno 3 C: Limpiar la tierra TIEMPO (das) ACTIVIDAD 3 S 2 2 2 3 1 0 2 0 C L I D T F P R 37 F R D P I L C 10 9 8 7 6 5 4 3 2 1 Dias Actividades 38 Algoritmo Asignamos una etiqueta l(v) a cada vrtice 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 vrtice v (S) ser etiquetado slo despus de que cada vrtice adyacente hacia v haya sido etiquetado. l(v) = max {l(u) + t(v) / (u,v)E(D)} PADRE(v) es el vrtice w para el que l(v) = l(w) + t(v). w es un vrtice que precede a v en un camino de mxima longitud-tiempo S-v en D. El etiquetado termina cuando el vrtice final T ha sido etiquetado. Las etiquetas Padre permiten construir un camino crtico de D 39 Algoritmo (camino crtico) [Determinar un camino crtico en un digrafo de actividad D con vrtice de inicio S y vrtice 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 vrtice vS de D. La variable n(v) ser usada para contar el nmero de vrtices adyacentes hacia v que an no hayan sido etiquetados.] Para cada vrtice vS, sea n(v) e (v) P2.- [Inicializamos una cola Q] Q 40 P3.- [Etiquetar l(S) y actualiza n(v) para todos los vrtices v adyacentes desde S. Los vrtices v para los que n(v)=0 son aadidos a la cola Q, que contiene a vrtices que estn preparados para ser etiquetados.] P3.1.- l(S) 0 P3.2.- Para los vrtices 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 vrtice w de Q, determina PADRE(w), actualiza n(v) para todos los vrtices v adyacentes desde w y aade a la cola Q aquellos vrtices v para los cuales n(v)=0.] P4.1.- Eliminar el vrtice w de Q; l(w) max {l(u) + t(w) /(u,w) E(D)} P4.2.- Sea u un vrtice tal que l(w) = l(u) + t(w) entonces, PADRE(w) u P4.3- Para cada vrtice 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 crtico en D] P6.1.- P: T = v 0 P6.2.- k 0 P6.3.- [Sea determinado P: v k ,v k-1 ,,v 1 ,v 0 , donde v i = PADRE(v i-1 ) para 1 i k. Entonces este paso determina si P es ya un camino crtico . Si an no se ha encontrado un camino crtico, entonces este paso extiende a P] Si v k =S, entonces retornar P y l(T). FIN en otro caso, v k+1 PARENT(v k ) y P: v k+1 ,v k ,,v 1 ,v 0 P6.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 1 S J B D T E G H A F Aplicar el algoritmo al siguiente grafo - - 2 1 2 1 2 1 2 1 1 ( l(v) , Padre(v) ) v =vrtice etiquetado Q n(T) n(H) n(G) n(F) n(E) n(D) n(J ) n(B) n(A) 43 ( l(v) , Padre(v) ) v =vrtice etiquetado Q n(T) n(H) n(G) n(F) n(E) n(D) n(J ) n(B) n(A) 44 (10,G) T (10, E) G T 0 (8,F) H G 1 (6,J ) E H G 2 0 (3,B) F E H 2 0 1 0 (5,A) J F 2 1 1 1 (4, A) D J F 2 1 1 2 (1,S) B D J F 2 1 2 0 2 0 (2, S) A B D 2 1 2 1 2 0 1 (0,-) S A B 2 1 2 1 2 1 2 0 0 2 1 2 1 2 1 2 1 1 ( l(v) , Padre(v) ) v =vrtice etiquetado Q n(T) n(H) n(G) n(F) n(E) n(D) n(J ) n(B) n(A) De las etiquetas se determina el cam. crtico P: S,A,J,E,G,T