Grafo III Euler
Grafo III Euler
Grafo III Euler
Unidad 5: 1
CONTENEDORES no LINEALES
Tema: GRAFO
CicloEuler(G)
Ciclo de Euler:
Es un camino cuyo recorrido empieza y termina en el mismo nodo y
todas las aristas del Grafo aparecen una y solo una vez.
Consideraciones:
1) Vamos a partir de un nodo, recorremos todas las aristas del grafo exactamente
una sola vez y volvemos al nodo de partida.
2) Vamos a seleccionar las aristas de modo tal que el Grafo resultante no quede
disconexo.
3) Definimos arista puente:
Una arista (u, v) es un puente en un grafo conexo G,
si al eliminar esa arista se genera un grafo resultante disconexo.
Por ejemplo:
La arista b = (w, x) es una
arista puente en este grafo:
Su eliminación crea el siguiente
grafo disconexo:
Grafos: Ciclo de Euler
6
Lema de Euler:
Dado un ciclo de G cada nodo de su recorrido tiene grado par.
Grad(w) = 4
Grad(x) = 4
Grad(v) = 2
Grad(y) = 4
Grad(z) = 2
Teorema de Euler:
Un grafo sin nodos aislados tiene ciclo de Euler es conexo y
todos sus nodos tienen grado par.
Demostración:
)
Un grafo G sin nodos aislados tiene ciclo de Euler es conexo y todos sus nodos
tienen grado par.
)
Si G es conexo y todos sus nodos tienen grado par G tiene Ciclo de Euler.
Grafos:
Ciclo de Euler (Teorema)
9
3. Dados dos nodos cualesquiera de G, digamos u y v, la parte del ciclo que comienza en u y
termina en v es un camino que une a u con v G es conexo y el teorema está demostrado.
Grafos:
Ciclo de Euler…
10
) Si G es conexo y todos sus nodos tienen grado par G tiene Ciclo de Euler.
H) G =(N, A, P), G es conexo y todos sus nodos tienen grado par
T) G tiene ciclo de Euler (al que llamaremos ‘c’)
D) Por inducción en el n° de nodos.
Sea |N| = n° nodos de G y G que cumple con la Hipótesis:
Si |N| = 1: u Grad(u) = 0, 0 es par c= , había 0 aristas, se usó 0 aristas,
o sea todas y c es un ciclo
a ciclo de Euler
u Grad(u) = 2, 2 es par c=(a) ó el recorrido {u, u}, c es un ciclo,
se usó la única arista a
se usaron todas las aristas de G
Si |N| = 2 ciclo de Euler
a
u v Grad(u) = 2
c=(a, b) ó el recorrido {u,v,u}, que es un ciclo
Grad(v) = 2
b se usaron todas las aristas de G
ciclo de Euler
Grafos:
Ciclo de Euler
11
… ) Si G es conexo y todos sus nodos tienen grado par G tiene Ciclo de Euler.
Si |N| > 2
d1 = (P1.., u, v, …,P1)
Sea G’, el grafo que resulta al eliminar de G las aristas que están en d1, G’ = (N’, A’, P’)
donde N’ = N,
A’ = A – {aristas d1}
G’ tiene todos sus nodos de grado par, ya que en d1 cada nodo habrá aportado 2 aristas y en G todos sus
nodos eran de grado par
…) Si G es conexo y todos sus nodos tienen grado par G tiene Ciclo de Euler.
Sea G’’, el grafo que resulta al eliminar de G’ las aristas que están en d2, G’’ = (N’’, A’’, P’’)
donde N’’ = N’= N,
A’’ = A’ – {aristas de d2}
- G’’ tiene todos sus nodos de grado par, ya que en d2 cada nodo habrá aportado 2 aristas y en G’ todos sus
nodos eran de grado par
Si A’’ = (se han usado todas las aristas) insertamos d2 en d1: (P1.., u, v,…, u’, v’,…,P2,..,u’,…P1)
c’ = (P1.., u, v,…, u’, v’,…,P2,..,u’,…P1)
Sino … es el ciclo de Euler que buscamos
Grafos:
Ciclo de Euler
13
…) Si G es conexo y todos sus nodos tienen grado par G tiene Ciclo de Euler.
Sino Si A’’ : insertamos d2 en d1, obteniendo c’ = (P1.., u, v,…, u’, v’,…,P2,..,u’,…P1) y continuamos el
proceso porque quedan aristas sin recorrer en G’’.
Como existe un n° finito de aristas, en algún momento se usarán todas (Ak’ = ):
Insertamos dk en c’, obteniendo c’ = (P1.., u, v,…, u’, v’,…,P2,…, u’’, v’’, …,P3.., u’’,.,u’,…P1)
Se va aumentando el n° de aristas del ciclo así construído, siendo este el ciclo de Euler que buscamos.
Esta demostración, nos dá una idea del algoritmo de cicloEuler c’ que presentamos a continuación:
Al inicio, el cicloEuler sobre el que vamos a ir insertando subciclos, está vacío.
Luego, ciclamos sobre el nodo w, encontrando a d1 = (a, b) subciclo.
Insertamos d1 en el cicloEuler vacío (c´), dando como resultado c´ = (a, b)
Luego ciclamos sobre el nodo w encontrando a d2 = (e, f, g, h, d, c) subciclo.
Insertamos d2 en el cicloEuler c’, dando (a, b, (e, f, g, h, d, c)), luego de la arista b.
Como ya no quedan aristas por recorrer, cicloEuler c’ formado = (a, b, e, f, g, h, d, c).
Grafos:
Ciclo de Euler : Algoritmo.
14
Donde:
extender(c, A) = Si (A = ) luego c
sino sea r = recorrido del camino c
u = un nodo del recorrido del camino c
i = la posición de u en el recorrido del camino c
v = un nodo adyacente a u / v al recorrido r
a A, P(a) = {u,v} (arista no puente)
(d, A’) = ciclo({a}, u, v, A - {a})
c’ = insertar(d, c, i) {insertar: inserta el subciclo d en ciclo c, en la posición i}
extender(c’ , A’)
(d, A’) = ciclo({e}, w, y, {c,d,f,g,h}) = (4) = ({e, f, g, h, d, c}, { } ) resultado diapo anterior
19
.
Unidad 5: 20
CONTENEDORES no LINEALES
Tema: GRAFO
Camino de Euler
Es un camino (no necesariamente un ciclo) que pasa por todos los nodos de G, recorriendo todas las
aristas exactamente una vez.
b Observar este G:
4
a Los nodos de grado impar son: 1, 3
1 3
d Si parto del nodo 1 ¿el camino de Euler es? (a,b,d,c)
c Si parto del nodo 3 ¿el camino de Euler es: ? (b,d,c,a)
2
Si parto del nodo 2 ó del nodo 4 ¿existe camino de Euler
que comience en cualquiera de esos dos nodos? Por qué?
O sea que G tiene camino de Euler y para recorrerlo, comienzo por el nodo 1 o 3, que son de grado impar!!!
4 Observar este G:
a b
1 3 Los nodos de grado impar: Ninguno
d
c Si parto del nodo 1 ¿el camino de Euler es? (a,b,d,c,e)
e 2
Si parto del nodo 4 ¿el camino de Euler es ? (d,c,e,a,b)
Estos caminos son ciclos de Euler ?
Conclusión 1:
Conclusión:
Si, si G tiene 0 nodos de grado impar, tiene camino de Euler
Grafos: Camino de Euler
23
3 4
Conclusión:
Si, si G tiene 2 nodos de grado impar, tiene camino de Euler
Grafos: Camino de Euler
25
3 4
3 4
3 4
Conclusión:
Se usarán todas las aristas pero por lo menos una se atravesará 2 veces, entonces
si G tiene 4 nodos de grado impar, NO tiene camino de Euler
Camino de Euler:
27
ni = 0
ni = 2
Grafos:
Camino de Euler
28
Teorema:
En G, un grafo conexo,
el N° de nodos de grado impar es 2 o 0 existe Camino de Euler
Demostración:
) En G, un grafo conexo,
Si el N° de nodos de grado impar es 2 ó 0 Camino de Euler
) En G, un grafo conexo,
Si el N° de nodos de grado impar es 2 ó 0 Camino de Euler
H) G es conexo, ni = 2 ó ni = 0 (ni = n° de nodos de grado impar)
T) Camino de Euler
D)
Si ni = 0 Por Teorema de Euler, G tiene ciclo de Euler, ya que todos los nodos
tienen grado par.
Ese ciclo será el Camino de Euler. ⧫
Si ni = 2 Sean N1 y N2 esos nodos de grado impar.
H) Camino de Euler
T) El N° de nodos impares, ni = 0 ó ni = 2
D)
Si G tiene camino de Euler Sea r su recorrido , r ={ N1, i, j, … , N2}
Si N1 = N2 r ={ N1, i, j, … , N1}, es un ciclo de Euler
Si r es un ciclo de Euler tiene todos sus nodos de grado par
Tiene 0 nodos de grado impar ni = 0 ⧫
Si N1 N2 r ={ N1, i, j,…, N2}, sea a’ ,arista que une N1 con N2, formando un ciclo
Todos los nodos tendrían grado par, o sea que antes de a’,
N1 y N2 tenían grado impar
Tiene 2 nodos de grado impar ni = 2 ⧫
Hasta aquí vimos:
31
1) Ciclo de Euler:
Es un camino cuyo recorrido empieza y termina en el mismo nodo y
todas las aristas del Grafo aparecen en el ciclo una y solo una vez.
2) Lema de Euler:
Dado un ciclo de G cada nodo de su recorrido tiene grado par.
3) Teorema de Euler:
Un grafo sin nodos aislados tiene ciclo de Euler
es conexo y todos sus nodos tienen grado par.
4) Camino de Euler:
Es un camino que pasa por todos los nodos de G, recorriendo todas las
aristas exactamente una vez.
5) Teorema existencia de camino de Euler:
En G, un grafo conexo, el N° de nodos de grado impar es 2 o 0
existe Camino de Euler
6) Algoritmo: Ciclo de Euler