Saltar la navegación

2. Grafos eulerianos

Zonas de reparto

Correos tiene oficinas de atención al cliente, que son las que normalmente vemos en las ciudades y pueblos, y otras oficinas llamadas carterías que son aquellas en las que se tienen almacenadas las cartas y paquetes que hay que repartir. Desde estas oficinas salen los carteros y carteras a realizar sus rutas, ya sea andando o en vehículos motorizados, normalmente furgonetas.

Cartera
Drazen Digic. Cartera (Licencia Freepik)

Para poder analizar las rutas de nuestra oficina de cartería, tendremos que contactar con dicha oficina para que nos indiquen con cuánto personal cuentan y qué partes del callejero tienen asignadas aquellas personas que realizan su trabajo andando y qué partes del callejero tienen asignadas aquellas que se encargan de la recogida de las cartas de los buzones y de la entrega de paquetes en puntos Citypaq, las cuales realizan su ruta usando vehículos motorizados.

¿Cómo saber cuáles son las zonas de reparto de nuestra zona de estudio?

  1. Localiza una oficina de Correos situada en la zona de estudio y solicita las zonas de reparto que corresponden a los carteros y carteras asignadas a dicha oficina.
  2. Pega en GeoGebra un mapa de la zona.
    1. Marca sobre el mapa los polígonos que cubren las zonas asignadas a cada cartero o cartera. Utiliza un color distinto para cada polígono. El resultado puede ser aproximado.
  3. Repartiros por grupos de modo que cada zona esté asignada a un grupo de estudiantes.

¿Necesitas ayuda?

En El Astillero (Cantabria) la sección 2 de reparto cubre:

  • C/ Industria (números: del 50 al 124)
  • C/ La Casona
  • C/ Peña Cabarga
  • Bº Obrero
  • C/ Camino de Orconera
  • C/ Cantábrica

El resultado final será similar al que aparece en la siguiente imagen donde se pueden ver las zonas asignadas a cada cartero y cartera que trabaja en el término municipal de El Astillero (Cantabria).

La imagen muestra un mapa de El Astillero y sobre él los polígonos que se corresponde con las zonas en las que reparte el correo cada cartero o cartera.
Pilar Sabariego. Zonas de reparto de cartas en El Astillero (Cantabria) (CC BY-SA)

¿Qué grafo representa cada zona?

El cartero o cartera tiene que recorrer todas las calles (y las dos aceras de cada calle) de la zona o sección que tiene asignada y, al ir andado, no importa el sentido en el que lo haga. Por tanto, el grafo que representa la situación en cada sección es un grafo no dirigido.

Cada grupo tiene que hacer el grafo de su sección. Para ello, hay que tener en cuenta que hay un nodo que marca el inicio de la ruta y que este es el que quede más cerca de la oficina de cartería.

¿Necesitas ayuda?

  1. Cada grupo pegará el mapa de la sección que le corresponde en GeoGebra.
  2. Sobre el mapa se dibujará el grafo que representa las calles que tiene que recorrer el cartero o la cartera de esa sección. Recordad que el punto de inicio del recorrido vendrá marcado por un nodo, que será el más cercano a la oficina de cartería. En la siguiente imagen el nodo de inicio es el C.
La imagen muestra el mapa de una zona y el grafo que representa las calles que recorre un cartero o cartera.
Pilar Sabariego. Grafo de las calles que corresponden a una sección. (CC BY-SA)

Consejos

Para trabajar más cómodamente, una vez hecho el grafo, se puede quitar el mapa de fondo.

Grafo sección 2
Pilar Sabariego. Grafo de las calles (CC BY-SA)

Ten en cuenta que las calles tienen edificios a los dos lados.

Grafos Eulerianos

Un grafo es euleriano si es conexo y el grado de todos sus vértices es par. En ese caso podemos encontrar un ciclo que recorra todas las aristas pasando por cada una de ellas una sola vez.  

Si el grafo es conexo y sólo hay dos vértices de grado impar, el grafo es semieuleriano y habrá un camino euleriano que recorra todas las aristas comenzando por uno de los vértices de grado impar y terminando en el otro. 

José Luis Muñoz Casado. Grafo euleriano (CC BY-NC)

Cada grupo buscará la ruta óptima. Esto es el camino que pase por todas calles sin repetir ninguna. De este modo ahorrará tiempo y energía.

Algunos teoremas

Teorema de Euler. Un grafo conexo y no dirigido es euleriano si y solo si cada vértice tiene grado par.

Teorema. Un grafo conexo y no dirigido es semieuleriano si y solo si solo tiene dos vértices de grado impar.

Algoritmo de Fleury

El Teorema de Euler es un teorema de los denominado de existencia, es decir, nos dice cuándo existe un camino euleriano pero no dice cómo calcularlo.

Para esos existen diferentes algoritmos, como por ejemplo el algoritmo de Fleury.

Algoritmo de Fleury

Caso 1:

  1. Verificar que el grafo es conexo y todos los vértices tienen grado par. En este caso el grafo tiene un ciclo euleriano
  2. Creamos una cadena donde almacenar el ciclo \(C=\{\}\)
  3. Seleccionar un vértice arbitrario V
  4. Seleccionar una arista incidente en V y que no desconecte al grafo. Se añade esa arista al camino, \(C=\{a_1\}\). Se elimina la arista del grafo.
  5. Se considera el otro vértice incidente en dicha arista, V
  6. Se repite el paso 4

Caso 2:

  1. Verificar que el grafo es conexo y sólo hay dos nodos de grado impar. En este caso el grafo tiene un camino euleriano
  2. Creamos una cadena donde almacenar el camino \(C=\{\}\)
  3. Seleccionar uno de los vértices de grado impar, V
  4. Seleccionar una arista incidente en V y que no desconecte al grafo. Se añade esa arista al camino, \(C=\{a_1\}\). Se elimina la arista del grafo.
  5. Se considera el otro vértice incidente en dicha arista, V
  6. Se repite el paso 4

Veamos un ejemplo con el siguiente grafo.

Grafo
José Luis Muñoz Casado. Grafo

Paso 1

Se comprueba que cumple el Teorema de Euler, es decir, todos los vértices tienen grado par.

Elegimos el vértice \( V_1 \) y creamos la cadena \( C = \{ \} \)

Paso 2

Elegimos la arista \( V_1V_2 \). Se comprueba que no desconecta al grafo y por tanto, podemos eliminarla. \( C = \{ V_1V_2\} \).

Redefinimos el grafo.

Algoritmo de Fleury
José Luis Muñoz Casado. Algoritmo de Fleury (CC BY-SA)



Paso 3

Elegimos la arista \( V_2V_5 \). Se comprueba que no desconecta al grafo y por tanto, podemos eliminarla. \( C = \{ V_1V_2, V_2V_5\} \).

Redefinimos el grafo.

Algoritmo de Fleury
José Luis Muñoz Casado. Algoritmo de Fleury (CC BY-SA)



Paso 4

Elegimos la arista \( V_5V_3 \). Se comprueba que desconecta al grafo, sin embargo, no existe otra opción. \( C = \{ V_1V_2, V_2V_5, V_5V_3\} \).

Redefinimos el grafo.

Algoritmo de Fleury
José Luis Muñoz Casado. Algoritmo de Fleury (CC BY-SA)



Paso 5

Elegimos la arista \( V_3V_2 \). Se comprueba que no desconecta al grafo. \( C = \{ V_1V_2, V_2V_5, V_5V_3, V_3V_2\} \).

Redefinimos el grafo.

Algoritmo de Fleury
José Luis Muñoz Casado. Algoritmo de Fleury (CC BY-SA)



Paso 6

En este punto, es claro que las aristas a elegir son \( V_2V_4, V_4V_3,V_3V_1 \). Por tanto el camino a recorrer es:

\( C = \{ V_1V_2, V_2V_5, V_5V_3, V_3V_2, V_2V_4, V_4V_3, V_3V_1\} \).

José Luis Muñoz Casado. Camino euleriano (CC BY-NC)

Algoritmo de Hierholzer

Otro algoritmo que nos ayuda a encontrar caminos eulerianos es el algoritmo de Hierhozel.

Algoritmo de Hierhozel

Caso 1:

  1. Verificar que el grafo es conexo y todos los vértices tienen grado par. En este caso el grafo posee un ciclo euleriano
  2. Creamos una cadena donde almacenar la sucesión ordenada de vértices que forman el ciclo \(C=\{\}\)
  3. Elegimos un vértice cualquiera, V
  4. Elegimos un ciclo que comience y acabe en V
  5. Eliminamos del grafo inicial todas las aristas que forman el ciclo y añadimos la sucesión ordenada de vértices a la cadena
  6. Del grafo que nos queda elegimos un vértice que no haya quedado aislado y que pertenezca a la sucesión de vértices del ciclo que hay almacenado en la cadena, V
  7. Elegimos un ciclo que comience y termine en V e insertamos la sucesión ordenada de vértices que lo forman en el lugar que le corresponde dentro de la cadena 
  8. Borramos del grafo las aristas del ciclo cuyos vértices hemos insertado en la cadena
  9. Repetimos el paso 6 hasta que hayamos eliminado todas las aristas

Caso 2:

  1. Verificar que el grafo es conexo y sólo tiene dos vértices tienen grado impar. En este caso el grafo posee un camino euleriano
  2. Trazamos una arista que una los dos vértices de grado impar, aunque ya hubiera una. Con esto conseguimos que todos los vértices de nuestro grafo tengan grado par, por lo que podemos encontrar un ciclo euleriano usando el algoritmo escrito en el caso 1
  3. Cuando tengamos la sucesión ordenada de vértices del ciclo solución, buscamos el lugar que ocupa la arista que añadimos y cortamos la sucesión ordenada por ese sitio
  4. Ponemos detrás del último vértice de la sucesión ordenada de vértices del ciclo la sucesión ordenada de vértices que estaba delante del lugar donde hemos realizado el corte. Lo que nos queda es un camino euleriano que parte de uno de los vértices de grado impar y termina en el otro

Veamos un ejemplo con el siguiente grafo.

Grafo
José Luis Muñoz Casado. Grafo

Paso 1

Se comprueba que todos los vértices tienen grado par y por tanto existe un camino euleriano.

Paso 2

Creamos una cadena donde almacenar el ciclo \(C=\{\}\)

Paso 3

Se elige un vértice.  \( V_1 \)

Paso 4

Se busca un ciclo que comience y acabe en \( V_1 \).  \( \{V_1, V_2, V_5, V_3, V_1\} \)

Ciclo que empieza y termina en v1
José Luis Muñoz Casado. Ciclo en \( V_1 \) (CC BY-SA)

Paso 5

Se elimina del grafo inicial el ciclo anterior.

Se añaden a la cadena \(C=\{ V_1, V_2, V_5, V_3, V_1\}\)

Grafo eliminado ciclo V1
José Luis Muñoz Casado. Grafo eliminado ciclo \( V_1 \) (CC BY-SA)

Paso 6

Del grafo que nos queda elegimos un vértice que no haya quedado aislado y que pertenezca al ciclo que hay almacenado en la cadena. Por ejemplo, \(V_3 \)

Paso 7

Se elige un ciclo que comience y termine en \( V_3 \) y lo insertamos en el lugar que le corresponde dentro de la cadena. \( \{ V_3, V_4, V_2, V_3 \}\)

Paso 8

Borramos las aristas del ciclo que hemos insertado

Paso 9

Como no hay más aristas el algoritmo ha terminado. 

El algoritmo ha generado dos ciclos \[ C_1 = \{ V_1, V_2, V_5, V_3, V_1 \} \] y  \[ C_2 = \{ V_3, V_4, V_2, V_3\} \] 

Sustituimos en en el ciclo \( C_1 \) el vértice \( V_3 \) por el ciclo \(C_2 \) que comienza y termina en \(V_3\). De esta forma \[ C= \{ V_1, V_2, V_5, V_3, V_2, V_4, V_3, V_1 \} \]

José Luis Muñoz Casado. Camino euleriano (CC BY-NC)

Camino euleriano del cartero

Aplica el algoritmo de Fleury o el algoritmo de Heirholzer al grafo del cartero o cartera y encuentra un camino o ciclo euleriano.

Biografías

Pierre-Henri Fleury

Pierre-Henri Fleury es un matemático francés del que se conoce muy poco. En 1883 publicó en la revista Journal de Mathematiques Élémentaires un artículo titulado Deux Problèmes de Géométrie de Situación, en el cual presentó “une règle sùre et très simple pour décrire une figure d’un trail continu, et sans repasser sur les lignes déjà tracées” (una regla segura y muy simple para describir una figura en un camino continuo y sin volver a pasar por las líneas ya trazadas). Es decir, publicó por primera vez el algoritmo que lleva su nombre.

Carl Hierholzer

Carl Hierholzer es un matemático alemán que vivió entre 1840 y 1871. Estudió matemáticas en la Universidad de Karlsruhe y obtuvo su doctorado en la Universidad de Hidelberg en 1865.

Hierholzer demostró que un grafo tiene un ciclo euleriano si y sólo si es conexo y cada nodo tiene grado par. Anteriormente, Euler había caracterizado formalmente los caminos eulerianos, pero la caracterización formal de los ciclos eulerianos es debida a Hierholzer. Este realizó la demostración justo antes de su prematura muerte por lo que la publicación del resultado, junto con su algoritmo, fue realiza póstumamente por un amigo en el artículo titulado Über die Möglichkeit, einen Linienzug ohne Wiederholung und ohne Unterbrechung zu umfahren (1873).

El algoritmo de Hierholzer es más utilizado que el de Fleury por ser más eficiente.

Recursos y evaluación de los aprendizajes

Recursos

Algoritmo de Fleury:

Algoritmo de Heirholzer:

Productos evaluables

  • Comprensión del concepto de grafo euleriano.
  • Comprensión de los algoritmos de Fleury y Hierholzer.
  • Resolución el camino euleriano de la sección correspondiente.

Instrumentos y técnicas de evaluación

Instrumentos

Técnica de evaluación

Creado con eXeLearning (Ventana nueva)

Financiado por la Unión Europea — Ministerio de Educación y Formación Profesional (Gobierno de España) — Plan de Recuperación, Transformación y Resiliencia