departamento informática aplicada - alejandro...
TRANSCRIPT
![Page 1: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/1.jpg)
DepartamentoInformáticaInformáticaAplicada
Algorítmica y Complejidad
Tema 3 – Algoritmos sobre GrafosTema 3 Algoritmos sobre Grafos
Curso 2012-13
![Page 2: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/2.jpg)
Grafos
1 Conceptos Definiciones y Representación1. Conceptos, Definiciones y Representación
2 Conectividad y recorrido2. Conectividad y recorrido
3 Árboles de expansión3. Árboles de expansión
4 Caminos mínimos4. Caminos mínimos
2
![Page 3: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/3.jpg)
Grafos
11.
2 Conectividad y recorrido2. Conectividad y recorrido
3 Árboles de expansión3. Árboles de expansión
4 Caminos mínimos4. Caminos mínimos
3
![Page 4: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/4.jpg)
Conceptos, Definiciones y RepresentaciónEl origen de la teoría de grafos ...
El problema de los puentes de Königsberg (1736)¿es posible dar un paseo comenzando desde cualquiera de estas
i d t d l t i d ólregiones, pasando por todos los puentes, recorriendo sólo una vez cada uno, y regresando al mismo punto de partida?
Resuelto por EulerllNo hay solución•Se puede comprobar utilizando “fuerza bruta”D t ió d E l
Grafos 4
•Demostración de Euler
![Page 5: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/5.jpg)
Conceptos, Definiciones y RepresentaciónEjemplos
– Redes de transporte (carreteras, rutas aéreas, ...)– Redes de comunicación (Internet)
R d d i f ió (WWW)– Redes de información (WWW)– Redes sociales (Facebook, Twitter, FourSquare, ...)
– Dependencias (asignaturas pre-requisito, diagramas de flujo, ...)
D fi i ió f l d fDefinición formal de grafo– Par de conjuntos G=(V, E)
• V nodos y E aristas• V nodos y E aristas• Cada arista es un par (u,v) con u,v V• Si el par está ordenado es un grafo dirigidop g g• Si no está ordenado es un grafo no dirigido
Grafos 5
![Page 6: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/6.jpg)
Conceptos, Definiciones y Representación
• Grado del grafo (grado G )g (g )– Número de nodos / vértices |V|
• Nodos adyacentes– Si están unidos por una arista
• Grado de un nodo (grado u )– Número de aristas que inciden en un nodo ó número de nodos
adyacentesHandshaking Lemma–
– En grafo dirigido: grado de entrada y grado de salida
C ( )
Handshaking Lemma
• Camino entre dos nodos (path u,v )– Secuencia de nodos, tal que dos nodos consecutivos son
adyacentes (uxi xixi 1 xi 1xi 2 xi v)adyacentes (uxi, xixi+1, xi+1xi+2, ...., xi+nv)– Es simple cuando no hay nodos repetidos en el camino– Ciclo es un camino simple pero con u = v
6Grafos
![Page 7: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/7.jpg)
• Grafo conexo
Conceptos, Definiciones y Representación
Grafo conexoCada par de nodos está conectadopor un camino
• Grafo no conexoNo existe un camino que una unnodo con los demásNo existe un camino entre a y ey
• Bosque–Grafo sin ciclos
• Árbol libre–Bosque conexo
–Con un nodo en el papel de raíz
7Grafos
![Page 8: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/8.jpg)
Conceptos, Definiciones y Representación
• Siempre se cumple que:
a.b.Si G es conexo, |E| |V|-1
Si G á b l |E| |V| 1c.Si G es árbol, |E| = |V|-1d.Si G es bosque |E| |V|-1
• Describir este grafo (grid)
1 Di i id di i id1. ¿Dirigido o no dirigido2. ¿Conexo?3. ¿Bosque?4 Grado de los nodos4. Grado de los nodos
Grafos 8
![Page 9: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/9.jpg)
Conceptos, Definiciones y Representación
Representación de grafosRepresentación de grafos• Listas de adyacencia
1
5
2
4
3 G=(V,E)
5 4 Las aristas pueden tener pesos asociados.
• Grafos poco densos |E| << |V|21 2 5 |E| |V| Espacio (|V|+|E|)
• Si el grafo es dirigido
1
2
3
2
1
2
5
5
4
3 4
• Si el grafo es dirigido list[i].length = |E|
Si l f NO di i id
3
4
5
2
2
4
4
5
1
3
2 • Si el grafo es NO dirigido list[i].length = 2*|E|
5 4 1 2
Grafos 9
• Longitud total de la lista (|E|)
![Page 10: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/10.jpg)
Conceptos, Definiciones y Representación
Representación de grafosRepresentación de grafos• Matriz de adyacencia
1
5
2
4
3 G=(V,E)
5 4 Las aristas pueden tener pesos asociados.
1 2 3 4 51 2 3 4 51 0 1 0 0 12 1 0 1 1 1
• Grafos densos |E| ≈ |V|2 Un solo bit por arista
3 0 1 0 1 04 0 1 1 0 1
Un solo bit por arista Espacio (|V|2)
C lt b i t5 1 1 0 1 0 • Consultas sobre aristas
Grafos 10
![Page 11: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/11.jpg)
Grafos
1 Conceptos Definiciones y Representación1. Conceptos, Definiciones y Representación
22.
3 Árboles de expansión3. Árboles de expansión
4 Caminos mínimos4. Caminos mínimos
11
![Page 12: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/12.jpg)
Conectividad y RecorridoDado un grafo G=(V,E) y dos nodos s y t
– Problemas: ¿Existe un camino para llegar de s a t?¿A qué distancia están?
– Concepto de distancia entre dos nodos s y t como (s, t)• Mínimo número de aristas entre s y t.
– Breadth-First Search (BFS)• Recorrido en amplitud. Dado un nodo s, primero visita todos los
nodos a distancia 1 (L1) de s, luego a distancia 2 (L2), y así sucesivamente.
• Li(s) Conjunto de nodos a distancia i de s
– Depth-First Search (DFS)• Recorrido en profundidad. Dado un nodo s, visita el primer nodo
conectado a s y después el primer nodo conectado al últimoconectado a s y después el primer nodo conectado al último visitado
Grafos 12
![Page 13: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/13.jpg)
Conectividad y Recorrido
Breadth-First SearchBreadth First Search 1
2 3
7
84 5
6BFS (G, s = 1)
1 1 1
( , )
L2
L12 3 2 3
4 5 7 8
2 3
4 5 7 8
L3
L2 4 5 7 8 4 5 7 8
6
Grafos 13
![Page 14: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/14.jpg)
Conectividad y Recorrido• BFS (G, s) - Implementación
– s y u están conectados si u Lj con j ≥ 1– Visitados Lista con los nodos visitados
BFS G, s :Visitados s true, u s Visitados s falseL 0 L 0 s , i 0, T Ø T: Árbol generado por BFS (lista while L i Ø doL i 1 Ø foreach u in L i do No hay orden al procesar L
de aristas de los nodos accesibles desde el nodo s)
foreach v in G doif G.Matriz u,v 0 & Visitados v false then
Visitados v true
¿Existe la arista (u, v) y v no ha sido visitado todavía?
Añadir la arista en el árbol TT T u, vL i 1 L i 1 v
endif
Añadir la arista en el árbol T
Incluir el nodo encontrado
endforendfori i 1
Complejidad O(|V|2)
Con listas de adyacencia O (|V|+|E|)
Grafos 14
endwhiley (| | | |)
![Page 15: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/15.jpg)
Conectividad y Recorrido• Complejidad de BFS
– Un nodo sólo puede aparecer en una lista (Li)– Por lo tanto el bucle foreach se ejecuta n |V| veces– Cada iteración del bucle se ejecuta n veces, se
consideran todos los nodos– Un cota es O n2
– Una cota mejor:• Utilizando listas de adyacencias en lugar de matriz• El procesamiento de cada nodo u puede optimizarse si tiene
pocos vecinos• La longitud de la lista de adyacencia es 2*m, m |E|La longitud de la lista de adyacencia es 2 m, m |E|• El bucle foreach se ejecutará m veces• Para manejar Li y Visitados se emplea O n• Una cota mejor es O m n
Grafos 15
![Page 16: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/16.jpg)
Conectividad y Recorrido
Depth-First Search 1 7Depth First Search2 3
84 5
Procesamiento de izda a dcha Procesamiento de dcha a izda6
Procesamiento de izda. a dcha.
1
Procesamiento de dcha. a izda.
1
2
43
35
67 5
68 48 6
Grafos 16
7 2
![Page 17: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/17.jpg)
Conectividad y Recorrido
• DFS (G, s) – Implementación (no recursiva)( , ) p ( )– Utilizando una pila (S) para procesar los nodos– Visitados: Lista con los nodos visitados
DFS G, s : i V, Visitados i false
h S C l jid dpush S, swhile S Ø dou pop S
Complejidad•Añadir y borrar un nodo de S, O 1El ú d i Su pop S
if Visitados u false thenVisitados u true
•El número de operaciones en Sacotado por el grado de G, O |E|•Operaciones en la lista acotadas
foreach v in G.Adyacencia u dopush S, vdf
Operaciones en la lista acotadas por |V|
•O |E| |V| utilizando listas de endforendif
endwhile
| | | |Adyacencia
Grafos 17
endwhile
![Page 18: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/18.jpg)
Conectividad y Recorrido• DFS (G, s) – Implementación (recursiva)
– Visitados Lista con los nodos visitados– R Lista de elementos conectados desde un nodo dado– T Árbol DFS– T Árbol DFS
1
2 3
7
DFS G, u :Visitados u trueR R
84 5R R uforeach v in G.Adyacencia u doif Visitados v false then
6Li t d Ad iif Visitados v false then
T T u,vDFS G, v
Lista de Adyacencias1. 2, 32. 1, 3, 5, 43. 5, 7, 8, 1, 2
endifendfor
3. 5, 7, 8, 1, 24. 2, 55. 4, 6, 2, 36. 57 8 3
Grafos 18
7. 8, 38. 7, 3
![Page 19: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/19.jpg)
Conectividad y RecorridoGrafos Dirigidos
– Con BFS y DFS comprobamos la existencia de un camino entre dos nodos s y tAunque exista el camino puede que no exista entre t y s– Aunque exista el camino, puede que no exista entre t y s
– Un grafo está fuertemente conectado si:• s, t V, existe un camino entre s y t y entre t y sy y y
A BA B
DC
Fuertemente conectado DC E
• Algoritmo:
Fuertemente conectado
NO fuertemente conectadog1.BFS (G, s) ó DFS (G, s)2.Calcular Grev (Invertiendo el sentido de las artistas)3.BFS (Grev, s) ó DFS (Grev, s)
Grafos 19
3.BFS (G , s) ó DFS (G , s) 4.Si BFS ó DFS fallan y no alcanzan todos los nodos, el grafo NO está fuertemente conectado
![Page 20: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/20.jpg)
Conectividad y Recorrido
Grafos DirigidosGrafos Dirigidos– Sin ciclos es un DAG (Directed Acyclic Graph)– Los DAG aparecen con bastante frecuencia– Los DAG aparecen con bastante frecuencia
• Relaciones de precedencia o dependencia– Si se puede establecer un orden entre los nodos, de tal forma queSi se puede establecer un orden entre los nodos, de tal forma que
(u, v) E y u < v (orden), entonces G tiene orden topológico.– Si G es un DAG, entonces tiene orden topológico
MD
ALGFP SD ALG SDFPED MD SOPOOC
ED SO POOC
Posible precedencia de las
Orden topológico de las asignaturas
Grafos 20
Posible precedencia de las asignaturas de Grado
![Page 21: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/21.jpg)
Conectividad y RecorridoAlgoritmo de ordenación topológica 2 3
– R Lista con la ordenación (resultado)– Complejidad O n2 56 4
ORDENACION_TOPOLÓGICA G :Encontrar un nodo u / v V, v, u ER R
7 1
R u RG.V G.V uif G.V Ø then
5
2
6
3
4if G.V Ø thenORDENACION_TOPOLÓGICA G
endif 7
R 1
3 56 4
66 7
56
7
4 7
R 1, 2, 3
56
77
R 1 2 3 4 5
R 1, 2, 3, 4, 5, 6
R 1, 2, 3, 4, 5, 6, 7
Grafos 21
R 1, 2 R 1, 2, 3, 4R 1, 2, 3, 4, 5
![Page 22: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/22.jpg)
Grafos
1 Conceptos Definiciones y Representación1. Conceptos, Definiciones y Representación
2 Conectividad y recorrido2. Conectividad y recorrido
3 Árboles de expansión3. Árboles de expansión
4 Caminos mínimos4. Caminos mínimos
22
![Page 23: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/23.jpg)
Árboles de Expansión¿Cómo conectar todos los nodos con el mínimo coste?
B C D8 7
4 9w(T) w(u,v), T E
A I E
4
8
117
2
4 14
9
106
(u,v)T
w : E
H G F10
21
B C D8 7
Aplicaciones
A I E
4 2
4
9Aplicaciones•Logística•Conexionado
Ciudades
C t 37
H G F21
Ciudades, Componentes eléctricos, Personas, etc.
•Enrutamiento en redesCoste 37Algoritmos de construcción (Voraces)
•Genérico•Kruskal
Se puede sustituir (B,C) por (A,H) con igual coste
Grafos 23
•Prim
![Page 24: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/24.jpg)
Árboles de ExpansiónPropiedades de los arboles de expansión:
– Tienen |V|-1 arcos– No tienen ciclos
P d ú i– Pueden no ser únicos
MST_GENERICO G, w : // Minimum Spanning TreeA Ø # Conjunto de arcos que forman el MSTA Ø # Conjunto de arcos que forman el MSTwhile A no forme Minimum Spanning Tree do Encontrar un arco e E, f E, / w e w f && A e sea acíclico /A A eE E ‐ e
donereturn A
Añ d d l á b l d ió (A)– Añade un arco cada vez al árbol de expansión (A)– Finaliza cuando todos los nodos están conectados– El problema es comprobar que no se añaden ciclos
Grafos 24
El problema es comprobar que no se añaden ciclos
![Page 25: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/25.jpg)
Árboles de ExpansiónAlgoritmo de Kruskal• Descripción
– Algoritmo voraz, en cada iteración añade un arco de peso mínimo– Utiliza dos conjuntos:
• Un bosque F, que inicialmente contiene un árbol por cada vértice V• Un conjunto S con los arcos del grafo G (inicialmente S = G.E)Un conjunto S con los arcos del grafo G (inicialmente S G.E)
– Mientras S contenga arcos y F no sea un árbol de expansión• Extraer de S el arco de peso mínimo (u,v)
Si ( ) d b l dif t ñ di l F bi l• Si (u,v) une dos arboles diferentes, añadir el arco a F y combinar los dos arboles en uno
– Al final del proceso F contiene un único componente que forma un árbol de expansión
– El coste de ordenar S es O (m log m), siendo m = |E|– Al existir al menos un arco entre cada par de nodos p
• m n2 m n* n‐1 /2 Grafo no dirigido conexo• lg m O lg n lg n2, 2*lg n O lg n • La cota es O m log n• La cota es O m log n
Grafos 25
![Page 26: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/26.jpg)
Árboles de Expansión
Algoritmo de Kruskal• Ejemplo (1/2)
g
2 311
2 31
2 31
5
2
6
3
4
4 53
19
15
2
6
3
4
4 53
19
15
2
6
3
4
4 53
19
1
7 12
6
37 1
2
6
37 1
2
6
3
2 34 5
3 1
2 34 5
3 1
2 34 5
3 1
1 1 1
56
7
4
12 3
1956
7
4
12 3
1956
7
4
12 3
19
6 6 6
¡CICLO! Los nodos 2 y 5 pertenecen al
mismo árbol
Grafos 26
mismo árbol
![Page 27: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/27.jpg)
Árboles de Expansión
Algoritmo de Kruskal• Ejemplo (2/2)
g
2 3 2 3 2 31 1 1
5
2
6
3
4
4 53
19
15
2
6
3
4
4 53
19
15
2
6
3
4
4 53
19
1
7 12
6
37 1
2
6
37 1
2
6
3
Coste 12Coste 12
• ImplementaciónMediante conjuntos para representar los diferentes arboles– Mediante conjuntos para representar los diferentes arboles
– Estructura de datos para manejar conjuntos disjuntos (Union‐Find)– Operaciones sobre conjuntos:p j
• Make‐Set u• Union u, v• Find u
Grafos 27
• Find u
![Page 28: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/28.jpg)
Árboles de ExpansiónEstructura de datos Union‐Find
– Find u devuelve el conjunto al que pertence el nodo u– Para comprobar si un arco (u,v) genera un ciclo:
if Fi d Fi d th• if Find u Find v then ......– Para combinar dos arboles mediante el arco (u,v):
• Union u, vUnion u, v
cab
S1
cab
S2
a bcab
cola c dcab
cola e
Arcos Conjunto BAArcos Conjunto(a,b) {a, b}(c,d) (d,e) {c, d, e}
BA
DC E
Grafos 28
![Page 29: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/29.jpg)
Árboles de Expansión
Estructura de datos Union FindEstructura de datos Union‐Find– Union b, c
cab
S1
a bcola c d e
BA C
Arcos Conjunto(a,b) {a, b}
BA
D
C
Dos arboles(c,d) (d,e) {c, d, e}(a,b) (b,c) (c,d) (d,e) {a, b, c, d, e } E
Dos arboles
Un único árbol
Grafos 29
![Page 30: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/30.jpg)
Árboles de ExpansiónAlgoritmo de Kruskal
Utilizando la estructura Union Find– Utilizando la estructura Union‐Find– A: conjunto con los arcos que forman el MST– W: lista ordenada de arcos por peso
MST‐KRUSKAL G, w :A Øf h i G V d // d dforeach v in G.V do // cada nodo un conjuntoMake‐Set v
endforendforW Ordenar Ascendente, G.E, wwhile A MST do
Para comprobar A MST•Un único conjunto Union‐Find
u,v ExtraerPrimerArco Wif Find u Find vA A
j•Todos los nodos V conectados
A A u, vUnion u, v
endif
Grafos 30
endifendwhile
![Page 31: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/31.jpg)
Árboles de ExpansiónAlgoritmo de Prim• Descripción
– Variante del algoritmo genérico– Algoritmo voraz, en cada iteración añade un arco de peso mínimo– Mantiene un único árbol (en cambio, Kruskal un bosque)– Utiliza dos conjuntosUtiliza dos conjuntos
• A para almacenar los arcos que forman el MST• S nodos que forman parte del MST
Mi t G V S Ø– Mientras G.V − S Ø• Escoger el arco de peso mínimo u, v tal que u S y v G.V − S• Añadir (u, v) al conjunto A• Añadir a S el extremo de (u, v) que no pertenece a S
– Cotas• Con matrices de adyacencia es O V2• Con matrices de adyacencia es O V2
• Con colas y listas de adyacencia para implementar S es O V E lg V• Con montículos de Fibonacci y listas de adyacencia es O E V lg V
Grafos 31
![Page 32: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/32.jpg)
Árboles de Expansión
Ej lAlgoritmo de Prim• Ejemplo
2 34 5
3 1
2 34 5
3 1
2 34 5
3 1
1 1 1
56
7
4
12 3
3
19
156
7
4
12 3
3
19
156
7
4
12 3
3
19
1
7 16
7 16
7 16
2 34 5
1 2 34 5
1 2 34 5
1
56 4
4 5
2 3
3
19
156 4
4 5
2 3
3
19
156 4
4 5
2 3
3
19
1
7 12
6
37 1
2
6
37 1
2
6
3
2 34 5
1
56 4
4 5
2 3
3
19
1
Grafos 32
7 12
6
3
![Page 33: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/33.jpg)
Árboles de Expansión
Algoritmo de PrimAlgoritmo de Prim
– El tiempo de ejecución del algoritmo depende de la búsqueda del arco de peso mínimo
– Para cada nodo se añaden las informaciones:• key Para mantener ordenados los nodos• parent Nodo padre en el árbol de expansión
– Q mantiene ordenados los nodos de acuerdo a key Q a t e e o de ados os odos de acue do a ey– A guarda el MST A v, v.parent : u V – r – Q
Grafos 33
![Page 34: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/34.jpg)
Árboles de ExpansiónAlgoritmo de Prim
MST‐PRIM G, w, r :foreach u in G V do
while Q Ø dou EXTRACT MIN Q ¡¡ Crítico !!foreach u in G.V do
u.key u parent NIL
u EXTRACT‐MIN Qforeach v in G.Adyacencia uif v Q && w u v v key
Inicialización
¡¡ Crítico !!
u.parent NILendfork 0 # N d í
if v Q && w u, v v.keyv.parent ukr.key 0 # Nodo raíz
Q G.Vv.key w u, vA A v, v.parentdifendif
endfor d h lendwhile
Grafos 34
![Page 35: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/35.jpg)
Árboles de ExpansiónAlgoritmo de Prim A
– Seguimiento (1/2)A B
2
3
Nodo Adyac. Key ParentA B C 0 NIL
V ‐ A
C D
1 3
4
A B, C 0 NILB A, D NILC A, D NIL
Q = {A, B, C ,D}
D B, C NIL
Nodo Adyac. Key ParentA B C 0 NIL
Q = {B, C ,D} A B2
A B, C 0 NILB A, D 2 AC A, D 1 A
u = A, v = B, v = C
C D
1 3
4D B, C NIL
Nodo Adyac. Key ParentA B C 0 NIL
Q = {B, D}C A D
A B
4
2
A B, C 0 NILB A, D 2 AC A, D 1 A
u = C, v = A, v = D
C D
1 3
4
Grafos 35
D B, C 4 C4
![Page 36: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/36.jpg)
Árboles de ExpansiónAlgoritmo de Prim Seguimiento (1/2) A
Nodo Adyac. Key ParentA B, C 0 NIL
Q = {B, D}u = C v = A v = D
2
V \ A
A B2
B A, D 2 A
C A, D 1 AD B C 4 C
u C, v A, v D
C D
1 3
D B, C 4 C
Nodo Adyac. Key ParentA B, C 0 NIL Q = {D}
B A D
4
A B2
C D4
B A, D 2 A
C A, D 1 AD B C 4 3 C B
u = B, v = A, v = D A B
1 3
D B, C 4 3 C B
Nodo Adyac. Key ParentQ {Ø}
C D4
A B2
A B, C 0 NILB A, D 2 AC A D 1 A
Q = {Ø}u = D, v = B, v = C
C D
1 3
Grafos 36
C A, D 1 AD B, C 3 B
C D4
![Page 37: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/37.jpg)
Árboles de ExpansiónAnálisis del algoritmo de Prim
MST‐PRIM G, w, r :foreach u in G.V do
u keyu.key u.parent NIL
endforr key 0 # Nodo raíz
V
r.key 0 # Nodo raízQ G.V
while Q Ø dowhile Q Ø dou EXTRACT‐MIN Qforeach v in G.Adyacencia u
if Q && k Decrementar / Eif v Q && w u, v v.keyv.parent uv.key w u, vA A
|V| veces Grado(u) veces
Decrementar / ET cte
A A u, u.parentendif
endfor
vecesImplícito
Grafos 37
endwhile
![Page 38: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/38.jpg)
Árboles de ExpansiónMST‐PRIM G, w, r :
foreach u in G V doforeach u in G.V dou.key u.parent NIL
endfor V endforr.key 0 # Nodo raízQ G.V
while Q Ø dou EXTRACT‐MIN Qf h i G Ad iforeach v in G.Adyacencia u
if v Q && w u, v v.keyv.parent uk
|V| veces Grado(u)
Decrementar / ET cte
v.key w u, vA A u, u.parent
endif
| | Grado(u) veces
Implícito
endforendwhile
Tiempo = V * T E * T
Grafos 38
Tiempo = V * TEXTRACT_MIN E * TDECREMENTAR_KEY
![Page 39: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/39.jpg)
Árboles de Expansión
• Análisis del algoritmo de PrimAnálisis del algoritmo de Prim– TEXTRACT_MIN y TDECREMENTAR_KEY depende de la estructura de datos
utilizada para implementar el conjunto Q– TTOTAL = V * TEXTRACT_MIN E * TDECREMENTAR_KEY
Q TEXTRACT MIN TDECREMENTAR KEY TTOTALQ TEXTRACT_MIN TDECREMENTAR_KEY TTOTAL
array O(V) O(1) O(V2)Binary heap O(lg V) O(lg V) O(E lg V)Fibonacci
HeapO(lg V)
amortizadoO(1)
amortizadoO(E + V lg V)
Peor caso
Grafos 39
![Page 40: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/40.jpg)
Grafos
1 Conceptos Definiciones y Representación1. Conceptos, Definiciones y Representación
2 Conectividad y recorrido2. Conectividad y recorrido
3 Árboles de expansión3. Árboles de expansión
4 Caminos mínimos4. Caminos mínimos
40
![Page 41: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/41.jpg)
Caminos mínimos
El problema: ¿Cuál es la forma más rápida de ir .... ?p ¿ p– Camino mínimo
También
¿Cuál es la más barata?¿
¿Cuál es la de menor distancia recorrida?distancia recorrida?
A B1
C
D
51
22
4F
E
D
3
4
1
Grafos 41
2 caminos mínimos
![Page 42: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/42.jpg)
Caminos mínimos
Variantes del problemaVariantes del problema
•BFS caminos mínimos en grafos no ponderados– Todos los enlaces con el mismo peso
•Caminos mínimos a un destino desde el resto de nodos•Caminos mínimos para todos los pares de nodos
Una posible solución: calcular el camino mínimo para– Una posible solución: calcular el camino mínimo para cada nodo
Grafos 42
![Page 43: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/43.jpg)
Caminos mínimos
DefinicionesDefiniciones•Se parte de un grafo dirigido y ponderado
G V E ER– G V,E y w: ER
w p es el peso del camino p v v v•w p es el peso del camino p v0, v1, ... vk
w(p) w(vi1,vi )k
• u, v es el peso del camino mínimo entre u y v
i1
p y
(u, v) min {w(p) : u P v} Si existe un camino entre u y v(u, v)
No hay camino
Grafos 43
![Page 44: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/44.jpg)
Caminos mínimos
Técnica de la relajación de arcosj•Asignar peso y predecesor a cada vértice/nodo
– Peso al origen (v.d), inicialmente a infinito– Predecesor (v.p), nodo previo en el camino
•Técnica de “Relajamiento”
Ad=5
Bd=9
2
f d A d A hRELAX
if B.d A.d w A, B thenB.d A.d w A,BB p A
Ad=5
Bd=7
2B.p A
Grafos 44
![Page 45: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/45.jpg)
Caminos mínimosAlgoritmo de Bellman-Ford
– Camino mínimo a todos los nodos desde una fuente s– Permite pesos negativos
Devuelve los caminos mínimos y sus pesos asociados– Devuelve los caminos mínimos y sus pesos asociados– Complejidad O (|V|*|E|) (2 bucles anidados)
BELLMAN FORD G w sBELLMAN‐FORD G, w, s :INIT‐SINGLE‐SOURCE G, sforeach n in 1 to |G.V‐1| dof h i G E d
INIT‐SINGLE‐SOURCE G, sforeach v in G.V dov d∞foreach u, v in G.E do
RELAX u, v, wendfordf
v.d ∞v.p NIL
endfors d 0
Relaja todas las aristas |V-1| veces
endforforeach u, v in G.E doif v.d u.d w u, v
s.d 0
Evitar ciclos RELAX u, v, wif v.d u.d w u, v
return FALSEendif
endfor
negativos,
v.d u.d w u, vv.p u
endif
Grafos 45
return TRUE
![Page 46: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/46.jpg)
Caminos mínimos
Algoritmo de Bellman-Fordg
D=∞A
D=∞3 D=∞B
D=∞-1
D=3A
D=33 D=∞B
D=∞-1
relaxD=0
SD=0
C D2
2-1 4
D=0S
D=0C D2
2-1 4
relax
relaxD=∞D=∞ D=∞D=∞1 D=2D=2 D=∞D=∞1
D=3A
D=3
S
3 D=2B
D=2-1
2 4
D=3A
D=3
S
3 D=2B
D=2-1
21 4
D=0S
D=0
D=2C
D=2 D=6D
D=62
1
2-1 4
D=0D=0
D=2C
D=2 D=3D
D=32
1
-1 4
1
“Relaja (C,D)”δ(S, A) = 3 δ(S,C) = 2
Grafos 46
δ(S, B) = 2 δ(S,D) = 3
![Page 47: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/47.jpg)
Caminos mínimos
Algoritmo de Bellman-Ford (Con arcos de peso Negativo)Algoritmo de Bellman Ford (Con arcos de peso Negativo)– Problema: No encontrar el camino mínimo en presencia de ciclos
D=3A
D=3-4
D= 1B
D=-1 δ (S,A) = w(S,A) = 3
C6
DS G
3
5 8
4 δ (S,B) = -1
Para (S,C) hay infinitos caminos( ) ( d )d=5 d=11d=11
-3D=0D=0 d= ∞d=-∞
27
(s,c), (s,c,d,c) .....pero sólo uno de peso mínimoδ (S,C) = w(S,C) = 5
d= ∞E
d=-∞
3
d= ∞F
d=-∞-6
Para (S,E) hay infinitos caminos(s,e), (s,e,f,e), (s,e,f,e,f,e) ....NO existe un camino mínimoNO existe un camino mínimoδ (S,E) = -∞Ídem para (S,F) y (S,G)Cuantas más vueltas menor peso
Grafos 47
![Page 48: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/48.jpg)
Caminos mínimos
Al it d Dijk tAlgoritmo de Dijkstra
– Grafos dirigidos con pesos no negativos– Explorar todos los caminos más cortos desde la fuente– Estrategia voraz– S conjunto de nodos cuyo camino ya ha sido obtenido– Q Montículo Min ordenado por v.d– Más rápido que el algoritmo de Bellman-Fordp q g
• Con Montículo Min, O ( (|V|+|E|) log |V|)• Sin utilizar Montículo, O (|V|2) , (| | )
Grafos 48
![Page 49: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/49.jpg)
Caminos mínimos
DIJKSTRA G w s :DIJKSTRA G, w, s :INIT‐SINGLE‐SOURCE G, sS ØS ØQ G.Vhil Q Ø d
u tiene d (distancia) menor a la fuente (s)while Q Ø do
u EXTRACT‐MIN QS S
menor a la fuente (s),en el conjunto V − S
S S uforeach v in G.Adyacencia u do
RELAXRELAX u, v, wendford h lendwhile
Grafos 49
![Page 50: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/50.jpg)
Caminos mínimosAlgoritmo de Dijkstra Nodos en S
31
P=
AD=∞P= P=
BD=∞P=
S
31
2P=S
AD=3P=S P=
BD=∞P=
relax
P=
SD=0P=
2
21 4
CD=∞
DD=∞
P=
SD=0P=
2 1
21 4
CD=2P=S
DD=∞
relax2 1P=P= P=
DP=
1P=SP=S P=P=
1AD=3
BD=∞ 3
1AD=3
BD=4relax
SD=0P
3
21 4
P=SD 3P=S P=
DP=
C
SD=0P=
3
21 4
P=SP=S P=AP=A
C D
relax
P=P=
2 1P=S
CD=2P=S P=C
DD=3P=C
P=P=
2 1P=S
CD=2P=S P=C
DD=3P=C
31A
D=3P=S
BD=4P=A
relax
P=
SD=0P=
21 4
P=SP=S P=AP=A
CD 2
D¿Existe algún
camino alternativo?
Grafos 50
2 1P=SD=2P=S P=C
D=3P=C
camino alternativo?
![Page 51: Departamento Informática Aplicada - Alejandro Moránalejandromoran.com/wp-content/uploads/2012/11/3-Grafos.pdf · Grafos 20 Posible precedencia de las asignaturas de Grado. Conectividad](https://reader031.vdocuments.site/reader031/viewer/2022022103/5bc20e4809d3f2ae4c8b84c4/html5/thumbnails/51.jpg)
Caminos mínimosAlgoritmo de Dijkstra Nodos en S
31A
D=3P=S
BD=∞P=
31A
D=3P=S
BD=4P=D
P=
SD=0P=
21 4
P=SP=S P=P=
C DP=
SD=0P=
21 4
P SP S P DP D
CD 2
Drelax
relax
2 1P=SD=2P=S P=C
DD=3P=C
2 1P=SD=2P=S P=C
D=3P=C
relax
31A
D=3P S
BD=4P D
P=
SD=0P=
3
21 4
P=SP=S P=DP=D
C D
relax
2 1P=SD=2P=S P=C
DD=3P=C
Grafos 51