Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea...

25

Transcript of Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea...

Page 1: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la
Page 2: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

1

Índice

Contenido Resumen. ............................................................................................................................ 2

Introducción. ...................................................................................................................... 3

Marco teórico. ..................................................................................................................... 5

Objetivos. ............................................................................................................................ 9

Problema. .......................................................................................................................... 10

Hipótesis. .......................................................................................................................... 10

Desarrollo. ........................................................................................................................ 10

Resultados. ....................................................................................................................... 17

Análisis e interpretación de resultados. ......................................................................... 20

Conclusiones. ................................................................................................................... 23

Fuentes. ............................................................................................................................ 24

Page 3: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

2

Teoría de grafos: no siempre es en línea recta.

Resumen.

Para el desarrollo de este trabajo se realizó una investigación documental acerca de la teoría

de grafos, rama de las matemáticas presente en muchos de los servicios inteligentes de hoy en

día como Google Maps o Uber, esto con el propósito de diseñar un programa simple usando un

algoritmo de búsqueda para grafos del tipo Breadth First Search (búsqueda en anchura)

aplicable en una adaptación del mapeado de nuestra escuela para encontrar caminos entre dos

lugares de ésta.

Se llevaron a cabo mediciones reales del plantel in-situ para su modelado digital, lo que hizo

posible su análisis. El lenguaje de programación utilizado para el desarrollo de la aplicación fue

Python; el código fue generado por el equipo, parte del proyecto en la cual no se profundizará

pues no es el objetivo principal, la intención es introducir a la teoría matemática y a la lógica de

programación de algoritmos a través de las partes más relevantes y puntuales del código, a

saber: el algoritmo de búsqueda y el entorno de interacción con el usuario.

El alcance de este proyecto es teórico, pero posteriormente se espera llevar a cabo el diseño

de una interfaz para que los usuarios puedan utilizarlo en un dispositivo móvil. No obstante, el

algoritmo de búsqueda nos da la posibilidad de saber cuál es la ruta más lógica a seguir para

llegar a un sitio, entendiéndose por lógica una ruta sin obstáculos.

Nuestro modelado considera la planta baja del plantel con base en los puntos más concurridos

como los auditorios o la cafetería. Este proyecto tiene el potencial para el desarrollo de

sistemas de búsqueda independientes de internet, con lo que, tras una profundización en

algoritmos de búsqueda más eficientes, así como un tratamiento teórico más riguroso de las

matemáticas discretas podría pensarse en, por ejemplo, convertirse un auxiliar enfocado en

personas con discapacidad visual, para entornos cerrados, como un centro comercial, en la

búsqueda de productos.

Page 4: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

3

Figura 1: Problema del puente de Königsberg.

Introducción.

En la actualidad nuestra vida se ve moldeada por la experiencia digital. Encontramos diversas

aplicaciones que facilitan nuestro traslado de un punto a otro en las ciudades o incluso entre

estados; dentro ellas podemos encontrar a Uber, Waze o Cabify, que han sido diseñadas para

teléfonos inteligentes en las cuales las personas introducen datos para moverse en su propio

vehículo, cómo es el caso de Waze, o para solicitar uno, como lo permite Uber; incluso para

andar a pie como con Google Maps.

Tomando en cuenta lo anterior, resulta esencial conocer su funcionamiento para tomar

decisiones más informadas respecto al uso de nuestra información e incluso plantear la

posibilidad de mejorarlas. En esencia, estas aplicaciones utilizan distintas funciones, pero para

fines de la investigación solo destacaremos dos: la teoría de grafos y la geolocalización.

La teoría de grafos es una rama de las matemáticas discretas que se encarga del estudio de

las propiedades de los grafos. Ésta tiene aplicaciones tremendamente diversas. Para su

introducción resulta apropiado tocar uno de sus problemas más difundidos de y con el cual

Leonard Euler dio un inicio formal a esta en 1736. El problema de los puentes de Königsberg

consiste en, de acuerdo con la figura 1, trazar una ruta que, al comenzar en un punto, se pase

por los siete puentes sin repetir ninguno y volver al punto de partida.

Euler demostró que la solución a dicho problema no existe; es imposible trazar tal ruta. Tal

situación a la postre llevó a la formalización de la teoría y la creación de objetos como

algoritmos que están en nuestra vida cotidiana y nos ayudan a realizar diversas tareas.

Page 5: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

4

Algunos de estos son los siguientes:

● Algoritmo de Dijkstra.

● Algoritmo de Floyd - Warshall.

● Algoritmo de Búsqueda BFS.

● Algoritmo de Búsqueda DFS.

● Algoritmo de Kruskal.

● Algoritmo de Ford Fulkerson.

De los anteriores, los sistemas como Uber usan el algoritmo de Dijkstra, obviamente con

adaptaciones llevadas a cabo con el propósito de mejorar y distinguirse de la competencia.

Además, se valen de herramientas como la geolocalización. Este concepto, muy utilizado en el

ámbito tecnológico, se define como la capacidad de conocer la posición geográfica o ubicación

de un dispositivo que se encuentre conectado a internet o por algún otro método. En ese

sentido, existen diversos tipos de geolocalización:

● GPS: Red integrada por al menos 30 satélites alrededor de la Tierra.

● GSM: Sistema que utiliza la telefonía móvil para mantener a los dispositivos

conectados y que estos cuenten con el servicio de llamadas.

● Wifi (WPS): Localización a través de las señales identificativas provistas por las

redes Wifi.

De lo anterior cabe destacar que las aplicaciones tienen como principal función trazar rutas a lo

largo de un mapa de alguna ciudad, por lo que la utilización de un grafo para analizar la ruta

más corta, en coordinación con la geolocalización para observar cuál es la menos concurrida

respecto a los dispositivos que se encuentran conectados en el trayecto determinado, ha

facilitado la mejora de fluidez en las calles, beneficiando a las personas en el uso de su tiempo.

Page 6: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

5

Figura 3: Representación de un grafo.

Figura 2: Ejemplos de grafos en la vida cotidiana.

Marco teórico.

Para el estudio de la Teoría de grafos es conveniente una presentación intuitiva del concepto

de grafo, por lo que antes de llevar a cabo una formalización de las definiciones utilizadas en

este proyecto presentaremos algunos ejemplos prácticos que podemos hallar en la vida diaria:

● Las conexiones físicas de un grupo de computadoras,

● Las estaciones del metro de la Ciudad de México y sus conexiones.

● Las relaciones sociales que puede haber entre los alumnos dentro de un salón de

clases.

Definiciones:

1. Grafo: Conjunto de Nodos N y conjunto de aristas A donde una arista es una pareja

ordenada o no ordenada de elementos de N, tales que hay un mapeo del conjunto A al

conjunto de pares ordenados o no ordenados de elementos de N.

Conjunto de nodos N(G) = {1, 2, 3, 4}

Conjunto de aristas1 A(G) = {e1, e2, e3, e4}

2. 2. Conexión entre nodos: Si una arista

e ∈ A se asocia con un par ordenado (u,

v) o con un par no ordenado (u, v) donde

u, v ∈ N, entonces se dice que se conecta

1 Por convencionalismo de notación las aristas se nombran como e debido a que en idioma inglés

arista es traducido como edge.

Page 7: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

6

o une a los nodos u y v. A esta condición se le llama incidencia. En la siguiente figura se

muestran las conexiones de cada nodo N(Gi) = {Gf}

N(1) = {3}, N(2) = {3}, N(3) = {1, 2, 4}, N(4) = {3, 5}, N(5) = {4}

3. Nodos adyacentes: Par de nodos conectados por medio de una arista. En la figura 4 hay

adyacencia para todos los nodos.

4. Nodo aislado: Nodo de un grafo que no es adyacente a ningún otro nodo. En la siguiente

figura el nodo rojo se encuentra aislado. N(G) = {}

5. Nodo de apoyo: Dentro de este proyecto, es un nodo en un grafo que no representa un

punto de interés en el mismo como un salón o un auditorio, sino que se encuentra como

auxiliar en los pasillos o en un sitio para establecer una conexión entre aristas.

6. Grafo dirigido: Si en un grafo G = (N, A) cada arista e ∈ A se asocia con un par ordenado

de vértices. Obsérvese en la figura la existencia de flechas en cada arista.

Figura 4: Grafo con aristas para cada uno de sus nodos.

Figura 5: Grafo con un nodo aislado.

Page 8: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

7

7. Grafo no dirigido: Si cada arista se asocia con un par no ordenado de vértices.

8. Representación gráfica: El conjunto de nodos es representado como un conjunto de

puntos en el plano y una arista se indica por medio de un segmento de línea o arco que no

es necesariamente recto (véase la figura 3). La orientación de las líneas, longitud, curvidad o

rectitud no modifican al grafo; lo relevante son las conexiones entre los nodos.

9. Lazo: Arista que une a un nodo consigo mismo (véase la figura 8)

10. Paralelismo: Unión de pares de nodos por medio de una arista en una gráfica dirigida o no

dirigida (véase la figura 9).

Figura 6: Grafo dirigido.

Figura 7: Grafo no dirigido.

Page 9: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

8

11. Gráfica simple: Grafo en el cual hay una única arista entre un par de nodos (Véase la figura

7).

12. Multigrafo: Grafo con al menos una arista paralela.

13. Grado: En una gráfica no dirigida es el número de aristas incidentes en un nodo

exceptuando su lazo.

En la figura 10, el grado del nodo 4 se denota como sigue: dg(4) = 2 puesto que se encuentra

conectado con el nodo 3 y el nodo 2 independientemente del número de aristas, aún las

paralelas.

14. Trayectoria: Secuencia alternada finita de nodos y aristas, empezando y terminando con

nodos, tales que cada arista es incidente sobre los nodos que la preceden y la siguen. Si

todos los nodos son distintos se le considera, además, simple.

Figura 8: Nodo con un lazo. Figura 9: Grafo con paralelismo.

Figura 10: Multigrafo.

Page 10: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

9

Se sigue una trayectoria en el grafo tocando los nodos n y las aristas e. En el siguiente

ejemplo no se considera simple:

n1 e1 n2 e2 n3 e5 n1 e4 n4

15. Conectividad: Una gráfica está conectada si existe una trayectoria entre cada par de nodos

distintos de la gráfica.

16. Algoritmo de búsqueda: Algoritmo cuyo propósito es encontrar todos los nodos en un grafo

G que satisfacen una propiedad particular.

Objetivos.

● Objetivo general:

Aplicar un algoritmo de búsqueda del tipo BFS (Breadth First Search) en un grafo diseñado con

base en el plantel de estudio de los participantes para encontrar una ruta entre dos puntos.

● Objetivos específicos:

1. Aplicar la teoría de grafos en un código de elaboración propia.

2. Utilizar el algoritmo de búsqueda para determinar la distancia más corta entre dos

puntos de la escuela de acuerdo con el algoritmo.

3. Explicar la relación que tiene la teoría de grafos con los sistemas de geolocalización

(GPS) y el trazado de rutas en sistemas de transporte como UBER o Google Maps.

Figura 11: Grafo para la ejemplificación de trayectoria.

Page 11: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

10

Problema.

Las personas con discapacidad visual tienen dificultades para hallar lugares puntuales en un

entorno nuevo; al diseñar un sistema de búsqueda para ubicaciones cerradas se da la

posibilidad de su adaptación para facilitarles la tarea y aumentar su independencia.

Hipótesis.

A partir de la implementación de un algoritmo de búsqueda del tipo BFS en un diseño en forma

de grafo del plantel de los estudiantes es posible hallar la ruta más corta entre dos puntos de

éste.

Desarrollo.

Para el inicio del proyecto se comenzó con la toma de medidas de distintos puntos de la

primera planta del plantel que se considerarían como nodos del grafo a estudiar. Se definieron

los nodos de interés y nodos auxiliares en tablas para su modelado usando la vista satelital de

Google maps.

En las siguientes figuras se observan las secciones tomadas en cuenta para el modelado del

grafo. Cada color en el mapa representa una zona en particular y comparte color con las tablas

que muestran el nombre del nodo, su abreviación, el tipo de nodo (real o de apoyo) y el número

de incidencias que posee. También se presenta la tabla con las mediciones de separación

entre nodo y nodo en el plantel.

Figura 12: Medición del plantel.

Se utilizó una cinta especializada.

Figura 13: Medición del plantel.

Toma de medidas.

Page 12: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

11

Tabla 2: Nodos de la zona del recibidor.

Tabla 3: Nodos de la zona del gimnasio.

Tabla 4: Nodos de conexión (artificiales). No corresponden a zona

o punto de interés en particular.

Tabla 5: Nodos de la zona de edificios.

Zonas consideradas para el grafo.

El color de las tablas coincide con el color de la zona en la figura 14.

Tabla 6: Conteo total de nodos por zona.

Figura 14: Zonas consideradas para el modelado del grafo. Figura 15: Puntos seleccionados para los nodos.

Nombre Abreviación TIPO ENLACES

Nodo Pista1 NP1 REAL 2

Nodo Pista2 NP2 REAL 2

Nodo Pista3 NP3 REAL 2

Nodo Pista4 NP4 REAL 3

Nodo PistaSalida2 NPS2 ARTIFICIAL 3

Nombre Abreviación TIPO ENLACES

Nodo Recibidor Entrada NRE REAL 1

Nodo Recibidor Auditorio

NRA REAL 1

Nodo Recibidor Cafetería

NRC REAL 1

Nodo Recibidor Auditorio Soporte

NRAS ARTIFICIAL 3

Nodo Recibidor Cafetería Soporte

NRCS ARTIFICIAL 3

Nombre Abreviación TIPO ENLACES

Nodo Edificio B 1 NEB1 ARTIFICIAL 3

Nodo Edificio B C NEBC REAL 2

Nodo Edificio B D NEBD REAL 3

Nodo Edificio B E NEBE REAL 2

Nodo Edificio C F NECF REAL 2

Nodo Edificio C L NECL REAL 3

Nodo Edificio L NEL REAL 1

Nodo Edificio D NED REAL 2

Nodo Edificio E T NEET REAL 3

Nodo Edificio E NEE REAL 3

Nodo Edificio T NET REAL 1

Nombre Abreviación TIPO ENLACES

Nodo de Conexión 1 NC1 ARTIFICIAL 3

Nodo de Conexión 2 NC2 ARTIFICIAL 3

Nodo de Conexión 3 NC3 ARTIFICIAL 3

Nodo de Conexión 5 NC5 ARTIFICIAL 2

Nombre Abreviación TIPO ENLACES

Nodo Pasillo Final NPF ARTIFICIAL 1

Nodo Pasillo Inicio NPI ARTIFICIAL 2

Nodo Pasillo Cruce NPC REAL 3

Nodo Pasillo Arquitectura

NPA REAL 1

Tabla 1: Nodos de la zona de canchas.

Page 13: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

12

Para acabar el modelado del grafo del plantel se llevó a cabo una representación abstracta de

las conexiones y una limpieza de la estructura sobrepuesta en Google maps usando AutoCAD

para más comodidad durante la realización del algoritmo.

Con base en los conceptos presentados en el

marco teórico se dice que el grafo con el cual

se está trabajando no tienen nodos aislados y

posee nodos de apoyo.

Es de tipo no dirigido; no posee aristas

paralelas para ningún nodo y por tanto es

simple. El grado máximo de incidencia para

los nodos es 3, como en el nodo NEBD, o

NEB1. Además, tiene la propiedad de

conectividad, lo cual nos permitirá aplicar un

algoritmo de búsqueda en él.

Antes de la presentación del algoritmo usado en Python presentamos un diagrama de flujo que

explica de forma concisa el funcionamiento del algoritmo de búsqueda BFS:

Figura 16: Representación abstracta del grafo del plantel.

Figura 17: Representación simple del grafo usando AutoCAD.

Las líneas blancas representan la orientación en X y en Y.

Page 14: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

13

Figura 18: Diagrama de flujo del algoritmo de búsqueda BFS implementado en Python.

Tras el diagramado del programa se procedió a la programación del algoritmo y a la creación

del grafo. La primera parte se explica a detalle en las siguientes líneas, mientras que el resto

del código y los pormenores que permiten la interacción con el usuario se dejan fuera de este

documento ya que no son de relevancia para explicar el funcionamiento del algoritmo.

Código en Python (BFS).

#Se define la función de búsqueda BFS con tres parámetros: el grafo donde se realizará la

búsqueda, el vértice inicial y el lugar donde se quiere llegar.

def bfs(grafo, vertice_inicial, lugar_objetivo):

#Se crean dos listas temporales, una con camino donde se almacenarán la ruta y una que

servirá para las iteraciones.

Page 15: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

14

camino = [vertice_inicial]

vertice_y_camino = [vertice_inicial, camino]

#Se crea una lista donde se añadirán los vértices visitados por el algoritmo BFS y un conjunto

vacío donde se añadirán los vértices visitados.

bfs_cola = [vertice_y_camino]

visitados = set()

#Mientras haya elementos en la lista bfs_cola se iterará en el código.

while bfs_cola:

#Se establece al elemento actual de la cola como el vértice actual por el cuál se iterará y se le

añade a la lista camino.

vertice_actual, camino = bfs_cola.pop(0)

#A la lista de vértices visitados se le añade el vértice actual.

visitados.add(vertice_actual)

#Para cada vecino del vértice actual en el diccionario grafo se realiza lo siguiente.

for vecino in grafo[vertice_actual]:

#Si el vértice vecino no está en la lista de visitados y se cumple la siguiente condición:

if vecino not in visitados:

#Si el vecino es el lugar objetivo.

if vecino == lugar_objetivo:

#Se regresa la lista camino junto con el vértice vecino.

return camino + [vecino]

#Caso contrario se añade a la cola una lista compuesta por el vértice vecino y la lista camino

con el vértice vecino ya añadido y se repite el ciclo.

else:

BFS_cola.append([vecino, camino + [vecino]])

Código en Python aplicando el algoritmo BFS:

#Se define la función “obtener_ruta” para dos puntos

def obtener_ruta(punto_de_origen = None, punto_de_fin = None):

#Se establecen dos listas provisionales para los vértices de origen y de fin en el grafo por las

cuales se iterará.

vertices_de_origen = grafo[vertice_de_origen]

vertices_de_fin =grafo[vertice_de_fin]

#Se crea una lista donde se almacenarán las rutas posibles.

rutas = []

Page 16: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

15

Figura 19: Ejecución del programa. Aparece el diseño del grafo modelado y

adaptado al lenguaje de programación para ser interpretado por el programa.

#Se itera en la lista con los vértices de origen para cada vértice de origen y vértice de fin

for vertice_de_origen in vertices_de_origen:

for vertice_de_fin in vertices_de_fin:

#La ruta se genera con llamando la función BFS con el vértice de origen y de fin de cada

iteración.

ruta = BFS(adaptacion, lugar_de_origen, lugar_de_fin)

#Si la ruta existe se añade a la lista rutas

if ruta is not None:

rutas.append(ruta)

#Se define la ruta más corta como la ruta con el menor número de vértices en la lista rutas a

partir de la función “min” cuyo parámetro key es el número de elementos de la lista.

ruta_mas_corta = min(rutas, key = len)

#Se regresa la lista de la ruta con menos vértices.

return ruta_mas_corta

Page 17: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

16

Figura 20: Ejecución del programa. Se muestran las

conexiones del grafo.

Figura 21: Ejecución del programa. Aparecen los nodos asociados con un número

para ser registrados por el programa y trazar una ruta en el grafo.

Page 18: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

17

Figura 22: Ruta del Edificio ET a la Entrada Figura 23: Ruta del Edificio L a la Cafetería.

Figura 24: Ruta del Pasillo final al Auditorio. Figura 25: Ruta de la Entrada al Pasillo de Arquitectura.

Figura 26: Ruta del nodo Pista 2 al Edificio BE.

Tras la programación del algoritmo y la interfaz de usuario y la ejecución de varias

simulaciones de prueba obtuvimos las siguientes rutas:

Resultados.

Tras la obtención de las rutas generadas por el programa se llevó a cabo su representación

gráfica en el modelado por AutoCAD, así como la medición de distancias con base en los

cuadros de longitud entre nodos. En las siguientes figuras todas las cotas se encuentran en

metros y se presenta la distancia total a recorrer tras su suma. Los triángulos rellenos de rojo

son los nodos de salida y los triángulos con relleno blanco son los nodos de llegada:

Page 19: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

18

Figura 28.

Figura 27.

Recibidor entrada a salón de

Arquitectura.

Page 20: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

19

Figura 29.

Figura 30.

Page 21: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

20

Figura 31.

Tabla 7: Datos de las rutas generadas por el algoritmo.

Ruta Número de nodos

visitados Distancia total (m)

Recibidor entrada a Pasillo de

Arquitectura 11 192.3

Edificio ET a Recibidor Entrada

7 123.8

Pasillo final a Recibidor Auditorio

11 193.2

Edificio L a Cafetería.

6 122.6

Pista 2 a Edificio BE

7 205.0

Análisis e interpretación de resultados.

De acuerdo con las rutas obtenidas, su representación obtenida de manera gráfica y las

distancias totales a recorrer propuestas por el programa obtuvimos la siguiente tabla para

organizar los datos.

Revisitando las figuras 24 a 27 se puede notar que las rutas propuestas por el algoritmo evitan

el recorrido de nodos innecesariamente lejanos o procuran llevar a cabo el menor número de

giros. En la figura 28 se observa un único giro de 90° y en las demás rutas el trazado se

concentra, si lo permite el grafo, en ocupar una zona lo más pequeña posible, como en la figura

Page 22: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

21

Figura 32. La ruta fue trazada sin algoritmo alguno.

Figura 33. La ruta fue trazada sin algoritmo alguno.

27. Estos datos son más útiles si se comparan con otras rutas; en este caso fueron trazadas sin

algoritmo alguno, obteniendo también la distancia a recorrer:

Figura 34. La ruta fue trazada sin algoritmo alguno.

Page 23: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

22

Figura 35. La ruta fue trazada sin algoritmo alguno.

Figura 36. La ruta fue trazada sin algoritmo alguno.

Figura 36. La ruta fue trazada sin algoritmo alguno.

Estas rutas, trazadas de una forma lógica por una persona cualquiera ignorando las propuestas

por el algoritmo nos dan los siguientes datos de distancias, que comparamos con los

proporcionados por el programa:

Ruta Número de

nodos visitados

Distancia total (m)

Distancia sin algoritmo (m)

Recibidor entrada a Pasillo de

Arquitectura

11 192.3 200.5

Edificio ET a Recibidor Entrada

7 123.8 151.2

Pasillo final a Recibidor Auditorio

11 193.2

201.4

Edificio L a Cafetería.

6 122.6 122.6

Pista 2 a Edificio BE

7 205.0 205

Page 24: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

23

Como puede observarse, las rutas trazadas sin algoritmo tienen una diferencia en la distancia

desde 0, pasando por 10 y hasta 30 metros. Si bien en rutas alternativas como la presentada

en la figura 35 muestran la misma distancia que la que se recorrería tomando la ruta propuesta

por el algoritmo BFS y no se logra encontrar una ruta mejor, con menos nodos o con menos

distancia a recorrer. Considerando el caso de la figura 34 se nota que no existe una ruta

alternativa; esta limitación en el algoritmo a la vez da la ventaja de que no se trazaran rutas

ineficientes.

Siguiendo los objetivos del proyecto, el añadir un sistema de geolocalización para el dispositivo

en el cual se ejecutara el programa daría pie a un sistema de búsqueda más eficiente, pues el

trazado de la ruta desde el punto inicial no dependería del juicio del usuario, sino de una

medición real y bastante precisa. Considerando el trazado de rutas propuestas por el programa

podemos ver que la más corta no siempre es en línea recta.

Conclusiones.

A través de este proyecto se llevó a cabo la implementación de un algoritmo de tipo BFS en un

diseño en forma de grafo del plantel. Se comprobó la hipótesis del proyecto: hallar la distancia

más corta entre dos puntos. De forma puntual se tiene que

● El algoritmo de búsqueda proporciona rutas tan buenas como las que podría

trazar una persona.

● El algoritmo de búsqueda dará una ruta con el menor recorrido de nodos a

recorrer.

● El algoritmo no es capaz de dar rutas alternativas, sino que proporcionará la

que considera más corta.

La comprobación de la hipótesis lleva a otras preguntas: cómo sería aplicar un algoritmo como

el de Dijkstra en el cual se consideran las distancias entre nodos para el trazado de rutas.

Asimismo, abre la posibilidad de su ampliación, mejora e implementación para la solución del

problema planteado en este proyecto: proporcionar un sistema de posicionamiento y trazado de

rutas en entornos cerrados para personas con discapacidad visual.

Como comentario final cabe destacar que en el proceso de este proyecto se encontró una

aplicación directa de una rama de las matemáticas en la vida real para la solución de un

problema, así como la valoración del trabajo de un equipo multidisciplinario.

Page 25: Teoría de grafos: no siempre es en línea recta. · Teoría de grafos: no siempre es en línea recta. 5 Figura 3: Representación de un grafo. Figura 2: Ejemplos de grafos en la

Teoría de grafos: no siempre es en línea recta.

24

Fuentes.

▪ Espinosa, A. (2010) Matemáticas discretas. México: Alfaomega. P.P 378-410

▪ GDA (2016) “Los algoritmos que mueven a Uber y Cabify” por El Universal. Consultado

el día 12 de febrero de 2019, en:

https://www.eluniversal.com.mx/articulo/techbit/2016/04/8/los-algoritmos-que-mueven-

cabify-y-uber

▪ Godsil, C., & Royle, G. (2001). Algebraic Graph Theory. Graduate Texts in Mathematics.

doi:10.1007/978-1-4613-0163-9

▪ KZgunea (2017) Geolocalización, qué es y cómo funciona de KZBLOG, [En línea]

Consultado el día 14 de febrero de 2019, en:

▪ http://kzgunea.blog.euskadi.eus/blog/2017/03/31/geolocalizacion-que-es/

▪ Morales, M. (2008) Los puentes de Königsberg: el comienzo de la teoría de grafos. [En

línea] Consultado el día 18 de febrero de 2019, en: https://www.gaussianos.com/los-

puentes-de-konigsberg-el-comienzo-de-la-teoria-de-grafos/

▪ Veerajan, T. (2008) Matemáticas discretas. Con teoría de gráficas y combinatoria.

México: McGraw Hill. P.P 366-394

Recursos gráficos:

Los siguientes créditos corresponden a los recursos usados para la Figura 2. Todos los demás

gráficos fueron elaborados totalmente por el equipo, fotografías y diagramas.

Íconos de personas:

"Young Avatar Collection" de Freepik disponible en:

https://www.flaticon.com/packs/young-avatar-collection Bajo licencia Flaticon Basic

Licence.

Computadora:

“Laptop free icon” de Freepik disponible en:

https://www.flaticon.com/free-icon/laptop_123400#term=computer&page=1&position=9

Bajo licencia Flaticon Basic Licence.

Gobierno de la Ciudad de México. Sistema de Transporte Colectivo.

“Mapa de la red del sistema de transporte colectivo.” Disponible en:

https://www.metro.cdmx.gob.mx/la-red/mapa-de-la-red.