Está en la página 1de 17

CAPITULO III

GRAFOS EULERIANOS
3.1 Grafos eulerianos

3.2 Dígrafos eulerianos

3.3 El problema del cartero

INTRODUCCION

La ciudad de Konigsberg, capital de Prusia oriental en el siglo XVIII, era atravesada por
el río Pregel, sobre el cual había siete puentes. Los habitantes de la ciudad se
preguntaban si era posible salir de su casa, dar un paseo y regresar a la casa, habiendo
pasado una y sólo una vez por cada puente. El problema anterior fue resuelto por
Leonard Euler en 1735.
Se puede entonces realizar un grafo donde se representan los puentes como las aristas y
los vértices como los puntos donde se juntan los caminos.

¿Existe un circuito que pase por todas las aristas una sola vez, es decir sin repetirlas?

RECORDANDO ALGUNOS CONCEPTOS SOBRE RECORRIDOS.

DEFINICIONES RELACIONADAS CON RECORRIDOS

 Un recorrido o cadena es una sucesión de vértices, cuya longitud es igual al


número de aristas.
 Un recorrido u-v es abierto si u es diferente de v.
 Un recorrido u-v es cerrado si u es igual a v.

 Un sendero(trail) es un recorrido en el cual no se repite ninguna arista.


 Un circuito es un sendero cerrado.

 Un camino (path) es un recorrido en el cual no se repite ningún vértice,


excepto quizás el primero y el último.
 Un ciclo es un camino (de longitud L >= 3) donde todos los vértices, excepto el
primero y el ultimo, son distintos.
3.1 GRAFOS EULERIANOS
UN SENDERO (CAMINO) EULERIANO:
Es un recorrido (camino) que conecta todas las aristas, apareciendo cada una de ellas
UNA SOLA vez.

CIRCUITO EULERIANO
Es un sendero (camino) que conecta todas las aristas, apareciendo cada una de ellas UNA
SOLA vez y cuyos vértices inicial y final SON IGUALES.

UN GRAFO EULERIANO:
Es aquel grafo conexo que admite un CIRCUITO EULERIANO.

UN DIGRAFO EULERIANO:
Definición 1.
Un grafo orientado o dígrafo, se dice euleriano si tiene un CIRCUITO ORIENTADO que
pasa por cada arco de G una y solo una vez.

Definición 2.
Si el grado de entrada y salida de cada vértice del dígrafo es igual entonces es euleriano.

GRAFO SEMIEULERIANO:
Si el grafo/multígrafo tiene sólo dos vértices de grado impar se llama semi-euleriano. Se
puede convertir en euleriano añadiéndole una arista:
Indique cuales de los siguientes grafos son Eulerianos o Semieulerianos
Informalmente, un grafo (dígrafo) euleriano es aquel en que pueden recorrerse todas sus
las aristas (arcos) de manera consecutiva y sin repetirlas.

¿Puede dibujarse cierta figura de un solo trazo?, ¿puede un cartero efectuar su reparto
sin tener que pasar dos veces por la misma calle? son ejemplos de uso de este tipo de
grafos, así como el problema de los puentes de Konigsberg que, como comentamos en la
introducción, dio inicio a la teoría de grafos.

Muchas de las situaciones de aplicación de estas cuestiones se plantean sobre


multígrafos (multidigrafos) por lo que debemos recordar que en estos pueden existir
varias aristas (arcos) entre los mismos vértices y lazos.

Ejercicio. Determine si los siguientes grafos son eulerianos.


Como saber si un grafo es o no Euleriano? Nos podemos apoyar en los siguientes
teoremas:

TEOREMA 1
Sea G un grafo conexo. G posee un CIRCUITO EULERIANO (G es euleriano) si y sólo si
todos sus vértices tienen grado par y se dice que el grafo es Euleriano.

TEOREMA 2
Sea G un grafo conexo. G posee un SENDERO EULERIANO si y sólo si tiene exactamente
dos vértices de grado impar y se dice que el grafo es SemiEuleriano

Como determinar EN EL COMPUTADOR si un grafo es o no Euleriano?

Si se trata de un grafo simple, se suma las filas de la matriz de adyacencias para cada
vértice y si todos tienen valencia par entonces el grafo es euleriano. En caso contrario el
grafo no es euleriano.

TEOREMA 3
Si el grafo es dirigido, se calcula el grado de entrada sumando la fila y el grado de salida
sumando la columna correspondiente al vértice en la matriz de adyacencias del grafo.
Por lo tanto en un dígrafo, si el grado de entrada y salida de los vértices es igual
entonces el grafo es euleriano.

A continuación veremos unos ejemplos para determinar si el grafo es euleriano o


semieuleriano, aplicando los teoremas.
Grafos simples.
Vértices grado
v1 4
v2 4
v3 4
v4 2
v5 2
v6 2
v7 2

Como todos los vértices son de valencia


par el grafo es euleriano

Ejemplo 1
.
Vértices grado
v1 3
v2 4
v3 4
v4 2
v5 2
v6 1

Como el grafo posee exactamente dos


vértices impares no es euleriano, es
semieuleriano

Ejemplo 2
Ejercicio:Construya un grafo simple que sea euleriano y otro semieuleriano.

Grafos Dirigidos

Vértices Entrada Salida


v1 3 3
v2 2 2
V3 2 2
V4 2 2
V5 3 3
v6 2 2
v7 1 1

Como todos los vértices tienen el


grado de salida igual al grado de
entrada, el grafo es euleriano.

Ejemplo 3

Ejercicio Construya un digrafo que sea euleriano y otro que no lo sea.


ALGORITMOS DE BÚSQUEDA DE TRAYECTORIAS EULERIANAS.
Antes de comenzar a exponer el algoritmo que trata de buscar trayectorias eulerianas en
los grafos, debemos tener claro una serie de conceptos.

Comenzaremos definiendo el concepto de trayectoria como una sucesión de vértices con


la propiedad de que cada vértice es adyacente al siguiente, tal que la correspondiente
sucesión de aristas todas son distintas. Además está permitido que un vértice aparezca
más de una vez. Si dicha trayectoria comienza y termina en el mismo vértice tenemos un
circuito.

Una vez definido el concepto general de trayectoria nos centraremos en las trayectorias
eulerianas la cual recorre todas las aristas de un grafo conexo.

Análogamente si termina y comienza en el mismo vértice se trata de un circuito euleriano

A continuación comentaremos un algoritmo que se encarga de buscar trayectorias


eulerianas.

Para que en un grafo conexo exista una trayectoria euleriana es necesario que el grafo
no posea más de dos vértices de valencia impar, por lo tanto si un grafo conexo tiene
exactamente dos vértices de valencia impar, tiene al menos una trayectoria euleriana.

Cualquier trayectoria de Euler debe comenzar en uno de los vértices de grado impar y
finalizar en el otro. Sin embargo para que exista al menos un circuito euleriano todos los
Vértices deben tener grado par, el circuito puede construirse partiendo desde cualquier
vértice y debe llegar al mismo.

ALGORITMO DE FLEURY
El algoritmo de Fleury trata de buscar una trayectoria euleriana en un grafo conexo y en
el que no existen más de dos vértices de grado impar.

Nos situamos en uno de los vértices impares si existen o en caso contrario uno cualquiera
de grado par.

A continuación de todos los vértices adyacentes respecto al que estamos situados


escogemos el primero según orden existente en la matriz de adyacencias y al ser posible
que no sea una arista puente, salvo que no exista ninguna otra alternativa.
Una vez seleccionada la arista, esta no vuelve a tenerse en cuenta por lo que es como si
la hubiéramos eliminado del grafo. Repetimos este proceso hasta recorrer todas las
aristas del grafo, pudiendo repetir vértices.

Si el grafo es no dirigido la trayectoria se encuentra sin problemas, sin embargo en


grafos dirigidos puede no encontrarse dicha trayectoria si el grafo posee más de un
vértice impar. En este caso lo único que podemos hacer es re-lanzar la búsqueda
partiendo del otro vértice impar.

Veamos algunos ejemplos:


Ejemplo 1.
Encontrar una trayectoria euleriana en el siguiente grafo no dirigido.

Primero verificamos si los vértices son todos pares o hay impares. En este caso hay dos
vértices de grado impar.

Vértices Grado
v1 2
v2 2
v3 3
v4 3
v5 2
v6 2
v7 2

Como posee dos vértices impares y el grafo es no dirigido posee una trayectoria
euleriana abierta (un sendero euleriano)

Los vértices impares son v3 y v4.

Comenzamos por el primer vértice impar v3.


V3-> V1 (eliminamos la arista correspondiente)
V3 -> V1->V2 V3 -> V1->V2->V3
La última arista tomada es puente,
pues no existe ninguna alternativa.

V3 -> V1->V2->V3->V4 V3 -> V1->V2->V3->V4->V5

V3 -> V1->V2->V3->V4->V5->V6 V3 -> V1->V2->V3->V4->V5->V7

V3 -> V1->V2->V3->V4->V5->V7->V4 De esta forma encontramos la trayectoria


euleriana en el grafo.
Observe: ¿en qué vértice inicio y en que
vértice termino la trayectoria?
Ejemplo 2.
Encontrar una trayectoria euleriana en el siguiente grafo dirigido.

Primero debemos identificar los grados de entrada y de salida del dígrafo.


Vértices Entrada Salida
v1 2 2
v2 2 2
v3 1 1
v4 2 2
v5 2 1
v6 0 1

El grafo es euleriano?
Si o No y porque?
No, porque existen vértices con grado de entrada y salida distintos, concretamente v5 y
v6. En este caso podemos intentar encontrar la trayectoria partiendo de algunos de los
vértices anteriores.
Vértices con grado de entrada distinto del grado de salida son v5 y v6.
Comenzamos por el primer vértice impar v5.

Realice los gráficos correspondientes en cada paso


1. V5 ->V4
2. V5 ->V4->V1
3. V5 ->V4->V1->V2
4. V5 ->V4->V1->V2->V3
5. V5 ->V4->V1->V2->V3->V4
6 .V5 ->V4->V1->V2->V3->V4->V2
7. V5 ->V4->V1->V2->V3->V4->V2->V5

En el siguiente paso nos damos cuenta que el vértice v5 no posee ningún vértice
adyacente por lo que no se ha encontrado la trayectoria buscada pues no se han
recorrido todas las aristas. En este caso lo único que podemos hacer es comenzar a
construir la trayectoria desde el otro vértice impar.

Comenzamos de nuevo por el siguiente vértice impar v6.


Realice los gráficos correspondientes en cada paso.

1. V6->V1
2. V6 ->V1->V2
3. V6 ->V1->V2->V3
4. V6 ->V1->V2->V3 ->V4
5. V6 ->V1->V2->V3 ->V4 ->V1
6. V6 ->V1->V2->V3 ->V4 ->V1 ->V5
7. V6 ->V1->V2->V3 ->V4 ->V1 ->V5 ->V4
8. V6 ->V1->V2->V3 ->V4 ->V1 ->V5 ->V4 ->V2
9. V6 ->V1->V2->V3 ->V4 ->V1 ->V5 ->V4 ->V2 ->V5

En este caso partiendo desde el otro vértice impar es posible encontrar la trayectoria
euleriana abierta pero puede ocurrir que dicha trayectoria no exista.

Veamos un ejemplo de grafo dirigido en el que existen vértices de grado impar pero no
existe una trayectoria euleriana

V E S
v1 0 2
v2 3 1
v3 1 1
v4 1 1
v5 1 1

En este caso no existe trayectoria euleriana pues es imposible visitar las aristas v1, v2 y
v1, v5 si partimos del vértice v2. Si por el contrario partiéramos del vértice v1 no
podríamos recorrer todas las que salen de dicho vértice pues el grado de entrada es cero.
Como conclusión podemos decir que en grafos dirigidos existe una trayectoria euleriana
si el grado de entrada y salida de cada vértice son iguales, en otro caso la trayectoria
puede no existir.
EL PROBLEMA DEL CARTERO EN GRAFOS PONDERADOS.
Este problema modeliza numerosas situaciones de la vida real como es la recogida de
basura de una ciudad, repartos de mercancías, en definitiva situaciones donde se sale de
punto y es necesario llegar o pasar por un conjunto de zonas y regresar a dicho punto
minimizando el coste del trayecto.

Tradicionalmente se conoce como problema del cartero debido al trabajo que esta
persona realizan, puesto que un cartero debe salir de la oficina,repartir todas las cartas a
todas las casas y volver a la oficina minimizando el coste del recorrido.

El objetivo es encontrar un recorrido cerrado de coste óptimo que pase por todas las
aristas del grafo, pudiendo duplicar las que sean necesarias.
El algoritmo podemos dividirlo en cinco pasos bien diferenciados que detallaremos a
continuación.

PASO 1
Obtener los vértices impares del grafo.
PASO 2
Formar el grafo completo kn con los vértices impares.
La ponderación de las aristas del grafo anterior viene determinada por la distancia del
camino mínimo en el grafo original entre cada par de vértice del grafo completo formado
por los vértices impares. Para obtener el camino de peso mínimo de las aristas se ha
empleado el algoritmo de Dijkstra.
PASO 3
Buscar un emparejamiento perfecto de peso mínimo en el grafo completo formado por
los vértices impares. (*Ver definiciones de Emparejamiento)
PASO 4
Duplicar las aristas del camino mínimo anteriormente calculado según el
emparejamiento obtenido, es decir, si se obtuvo la siguiente pareja (v1, v2) se
duplican las aristas del camino mínimo que une v1 con v2 en el grafo original.
PASO 5
Encontrar el recorrido cerrado de menor coste(CIRCUITO EULERIANO). Para ello se ha
utilizado el algoritmo de Fleury.

*EMPAREJAMIENTO:
Definición 1: Dado un grafo  G=(V,A), un emparejamiento M en G, es un conjunto de
aristas no adyacentes entre sí.

Definición 2: Un emparejamiento de un grafo G es cualquier subgrafo 1-regular de G.

Decimos que un vértice está emparejado (o acoplado saturado) si es incidente con una
arista en el emparejamiento. En otro caso, el vértice está libre.

Un emparejamiento perfecto es un emparejamiento que cubre todos los vértices del


grafo. Esto es, cada vértice está saturado bajo el apareamiento (cada vértice tiene una
arista que incide en él).
Un emparejamiento perfecto en un grafo G es un emparejamiento de tamaño p/2
(donde p es el grado del grafo, luego p ha de ser par)
Un emparejamiento máximo: es un emparejamiento que contiene el número máximo
posible de aristas. Puede haber muchos emparejamientos máximos.
Un emparejamiento maximal: es un emparejamiento M de un grafo G con la propiedad de
que si alguna arista que no pertenece a M es añadido a M, no será ya un emparejamiento.
Nótese que todos los emparejamientos máximos deben ser maximales, pero no todos los
emparejamientos maximales deben de ser máximos.

Ejemplo 1

Ejemplo 2

Ejemplo.
Sea G el siguiente grafo.
Vértices Grado
v1 4
v2 4
v3 3
v4 4
v5 3
v6 1
v7 1

PASO 1
Los vértices impares son v3, v5, v6 y v7.

PASO 2
Construimos el grafo completo formado por los vértices impares: v3, v5, v6 y v7.

Ahora calcularemos las ponderaciones de las aristas. Para ello obtendremos la distancia
del camino mínimo en G entre cada par de vértices del grafo completo formado por los
vértices impares.

dG (v3, v5) = 2.
dG (v3, v6) = 7.
dG (v3, v7) = 2.
dG (v5, v7) = 4.
dG (v6, v5) = 6.
dG (v6, v7) =9

Por lo que las ponderaciones de las aristas del grafo formado por los vértices impares nos
queda.
PASO 3
Buscamos un emparejamiento perfecto (4 vértices, 2 emparejamientos) de peso mínimo
en el grafo formado por los vértices impares.

El emparejamiento obtenido está formado por las aristas v3, v7 y v5, v6.

Se toman las aristas v3, v7 y v5, v6 porque son las dos de menor peso, (2+6=8)

PASO 4
Ahora debemos duplicar en G las aristas del camino mínimo existente entre los vértices
emparejados.

Obtenemos las aristas que forman parte del camino mínimo entre v3 y v7.

Obtenemos las aristas que forman parte del camino mínimo entre v5 y v6.
Las aristas coloreadas de azul se duplican en G.

Por lo que nuestro grafo quedaría así:

PASO 5
Finalmente encontramos el recorrido cerrado de coste mínimo aplicando el algoritmo de
Fleury teniendo en cuenta las aristas duplicadas es decir, podemos pasar por ellas dos
veces.
El recorrido es v6->v1->v2->v1->-v4->v2->v3->v7->v3->v4->v5->v2->v5->v1->v6.

Orden en el que se recorren las aristas y peso:


Arista (v6, v1,-> 2).
Arista (v1, v2, -> 3).
Arista (v2, v1, -> 3).
Arista (v1, v4, -> 4).
Arista (v4, v2, -> 6).
Arista (v2, v3, -> 3).
Arista (v3, v7, -> 2).
Arista (v7, v3, -> 2).
Arista (v3, v4, -> 1).
Arista (v4, v5, -> 1).
Arista (v5, v2, -> 1).
Arista (v2, v5, -> 1).
Arista (v5, v1, -> 5).
Arista (v1, v6, -> 2).
El peso total del recorrido es 36 unidades.

Ejercicio:
Use el algoritmo de Fleury para encontrar otra trayectoria desde el vértice:
a) 3 b)5 c)7
Que peso se obtiene en cada una de las otras trayectorias?, es igual o diferente y
porque?
Ejercicios.
Encontrar (si es posible) un recorrido cerrado de costo óptimo que pase por todas las
aristas del grafo G, usando el algoritmo del cartero.

1. 2.

También podría gustarte