Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grafos
Grafos
-clase 4
Grafos Eulerianos
Y
Grafos Hamiltonianos
El problema de los puentes de Konigsberg
A D
u1– u2–u8-u9-u2-u3-u4-u2-u7-u4-u5-u6-u7-u1
u9 u8
u1 u2 u8 u9 u2 u3 u4
u2
u3 u1
u4 u7
u7 u6 u5 u4 u7 u2
u5 u6
Otra posibilidad:
u1-u2-u7-u4-u2-u8-u9-u2-u3-u4-u5-u6-u7-u1
Definición: Un recorrido es una cadena sin aristas repetidas (se pueden
repetir vértices).
Un recorrido euleriano de un multi - grafo conexo G es un recorrido que
contiene todas las aristas de G.
v1
v2
v6 v3 v1–v2-v4-v3-v2-v6-v5-v4
Otra opción:
v1-v2-v3-v4-v2-v6-v5-v4
v5 v4
Teorema: Un multigrafo conexo G es euleriano si y solo si el grado de cada vértice
es par.
Si no se han usado todas las aristas y como G es conexo, existe algún vértice v de T
que tiene aristas que no han sido usadas. (Si no el resto de los vértices no usados no
estarían conectados a los de T)
v1 v2
v5 v3 -Es conexo.
-Todos los vértices tienen grado par.
v6 Entonces existe un circuito euleriano.
v4
Ejemplo1:
v1 v2
v1-v2
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3-v4
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3-v4-v5
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3-v4-v5-v6
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3-v4-v5-v6
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3-v4-v5-v6
v3-v5
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3-v4-v5-v6
v3-v5-v6
v5 v3
v6
v4
Ejemplo1:
v1 v2
v1-v2-v3-v4-v5-v6
v3-v5-v6-v3
v5 v3
v6
v1-v2-v3-v5-v6-v3-v4-v5-v6
v4
Ejemplo2:
-Es conexo.
-Todos los vértices tienen grado par.
Entonces existe un circuito euleriano.
v2 v6 v4
v3
v7
v5 v1
Ejemplo2:
v1-v4-v6-v2-v5-v1
v2 v6 v4
v3
v7
v5 v1
Ejemplo2:
v1-v4-v6-v2-v5-v1
v2 v6 v4
v3
v7
v5 v1
Ejemplo2:
v1-v4-v6-v2-v5-v1
v2 v6 v4
v2-v7-v6-v5-v7-v3-v4-v2
v3
v7
v5 v1
v1-v4-v6-v2-v7-v6-v5-v7-v3-v4-v2- v5-v1
Teorema: Sea G un multigrafo conexo no trivial. Entonces G contiene un recorrido
euleriano si y solo si tiene dos vértices de grado impar. Además, el recorrido
empieza en uno de ellos y acaba en el otro.
u1 u2 u3 u z v un-1 un
Entonces:
u1 u2 u3 u v un-1 un
Es un recorrido euleriano.
Teorema: Un grafo conexo G es euleriano si y solo si toda arista de G se encuentra
en un número impar de ciclos de G.
Objetivo: Encontrar la cadena cerrada mas corta posible que recorre todas las aristas.
Esta cadena se denomina cadena euleriana.
El camino euleriano se obtendría duplicando únicamente las aristas de los caminos que
van de ui1 a ui2.
El teorema anterior es muy costoso ya que necesita evaluar todas las particiones.
Una forma mas eficiente consiste en:
u2
u8
u3
u7
u4
u6
u5
Ejemplo1:
u1 (1)
u1 1 u2
u2 (3)
4 2
(1) u8 3
3
u3 (2)
3
(2) u7 u4 u8
u5 (2)
Ejemplo2:
B 9 C
7 7
6
A 4
D
G
8
2 1 5
12 E
F
Ejemplo2:
B 9 C
B 6 G
7 7
6 7 8
1
A 4 9
D
G
8 9
2 1 5 F E
12 E
F d {BG}{FE}=6+9=15
d {BE}{GF}=7+8=15
d {BF}{GE}=9+1=10
Grafos Hamiltonianos
El Grafo de Petersen.
v1 v2 v3 v4 Vn-2 vn-1 vn
Si esto no fuera así, como todos los vecinos de v1 han sido usados y el anterior no
es adyacente a vn, existirían p/2 vértices distintos de vn que no son adyacentes. Pero
grado ( vn ) ≤ (p-1)-p/2 < p/2 que contradeciría la hipótesis de grado(vn) ≥ p/2.
3.- Hemos visto que existe un ciclo C. Veamos que este ciclo contiene todos los vértices.
u
Consecuencia: Sea G un grafo de orden p. Si grado v es mayor que (p-1)/2 para todo v.
Entonces G contiene un camino Hamiltoniano
Sea v un vértice que no pertenece a G. Sea H el grafo que se obtiene a unir v con todos
los vértices de G.
Entonces H tiene orden p +1 y v tiene grado p.
Además el grado de los vértices u de G
grado u + grado v ≥ p
Entonces G es Hamiltoniano si y solo si G+uv es Hamiltoniano
Definición: Se define la clausura c(G) de un grafo G de orden p como el grafo
obtenido de G uniendo recursivamente pares de vértices no adyacentes cuya suma
es al menos p hasta que no queden mas pares con esta propiedad.
La clausura es única.
Teorema: Sea G un grafo de orden p. Sean G1 y G2 son grafos obtenidos de G
uniendo pares de vértices cuya suma de sus grados es al menos p. Entonces G1=G2.
Sean e1, e2,…, em y f1, f2, …, fn las aristas añadidas para obtener G1 y G2.
Sea H el subgrafo formado por las aristas comunes hasta llegar a ek+1. Es decir
H= G+{e1, e2, …, ek}.
Algoritmo que encuentra una solución de bajo coste (no necesariamente la mínima)
1.- n=1
2.- Selecciona cualquier vértice v de G. C1=v v
Mientras n< p
- Encuentra un vértice vn que no este en Cn y que unvn sea mínimo
siendo un pertenece a Cn
-n=n+1
Ejemplo:
0 3 3 2 7 3 v1 v3 v4 v2 v6 v1
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
Ejemplo:
0 3 3 2 7 3 v1
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
Ejemplo:
0 3 3 2 7 3 v1 v4 v1
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
Ejemplo:
0 3 3 2 7 3 v1 v3 v4 v1
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
Ejemplo:
0 3 3 2 7 3 v1 v3 v4 v2 v1
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
Ejemplo:
0 3 3 2 7 3 v1 v3 v4 v2 v6 v1
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
Ejemplo:
0 3 3 2 7 3 v1 v5 v3 v4 v2 v6 v1
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5 Coste 26
7 5 4 5 0 4 (El mínimo que se podía encontrar inicializando
3 5 4 5 4 0 con otro vértice seria 21)