Aplicación de la Teoría de los Grafos para ubicación y trazado de las rutas a través de los edificios del CIMAT Autores: Ramírez Silva Marco Aurelio CECYTE Guanajuato Plantel Valle de Santiago, Tapia Rodríguez Maximino CIMAT RESUMEN El presente artículo propone la utilización de modelos matemáticos, de tal manera que las relaciones entre los vértices de grafo ayuden a localizar la ruta óptima. Para ello es necesaria la utilización de un algoritmo de reducción de grafos a partir de la aplicación del Método Dijsktra. La propuesta constituye un aporte para el análisis de modelos matemáticos de grandes dimensiones, así como para facilitar la automatización del mencionado método. Palabras claves: reducción de grafos, algorito dijkstra, solución de problemas computacionales. Ahora que sabemos que es un grafo. Se explicará cómo podemos expresarlo en términos de programación. Matemáticamente, la representación de un grafo G(V, A) es a través de una matriz M, de n x n con lo cual el valor ponderado de las aristas aij en la entrada (i, j) de la matriz M. Ilustración 1: Representación en términos de grafos de calles y sitios. INTRODUCCIÓN La teoría de grafos ha sido ampliamente estudiada y hoy en día es aplicada para la solución de un sin número de problemas en diferentes ramas de la ciencia y la técnica. Dentro de estas aplicaciones podemos mencionar la solución a problemas de camino óptimo, flujo máximo de costo mínimo, redes sociales, entre otras. Un grafo es un objeto unitario de naturaleza abstracta que abarca a las grafias que componen una letra. La palabra tiene origen griego y significa “imagen” o “dibujo”. Para la ciencia de la computación y la matemática un grafo es una representación gráfica de diversos puntos que se conocen como nodos o vértices, los cuales se encuentran unidos a través de líneas que reciben el nombre de aristas. Al analizar los grafos, los expertos logran conocer cómo se desarrollan las relaciones recíprocas entre aquellas unidades que mantienen algún tipo de interacción (Definicion De, 2008 2015). Vértices Casa Escuela Tienda Tíos Casa 0 1 1 1 Escuela 1 0 0 1 Tienda 1 0 0 1 Tíos 1 1 1 0 Ilustración 2: Matriz que representa el grafo de la ilustración 1. Los grafos pueden representar diferentes problemas y para cada uno de ellos, el grafo tiene ciertas propiedades. Si tenemos un grafo y es posible dibujar todas sus aristas y vértices sin levantar el lápiz, entonces decimos que el grafo es conexo. Por ejemplo en la ilustración 3 lo podemos observar, debido a que siempre existe un camino de aristas para poder llegar de un vértice cualquiera a otro vértice del mismo grafo. Esto no quiere decir que tracemos sin remarcar alguna que otra arista. 8to. Verano Estatal de Investigación CONSEJO DE CIENCIA Y TECNOLOGÍA DEL ESTADO DE GUANAJUATO Aplicación de la Teoría de los Grafos para ubicación y trazado de las rutas a través de los edificios del CIMAT Autores: Ramírez Silva Marco Aurelio CECYTE Guanajuato Plantel Valle de Santiago, Tapia Rodríguez Maximino CIMAT Ilustración 3: Grafo Conexo Un camino en un grafo es una secuencia de aristas de tal forma, que dos aristas consecutivas, en la secuencia, comparten un vértice como extremo. Por lo anterior es posible ver un camino como una secuencia de vértices de tal modo que; para cada par de vértices consecutivos, siempre existe una arista con dichos vértices por extremos. El largo de un camino toma relevancia ya que nos indica que tan cerca están un par de vértices. Esto nos sirve para decir qué camino tomar para llegar de un vértice a otro de la manera más eficiente. Es importante mencionar, que el camino de menor largo no siempre es la mejor opción cuando se trate de un grafo con valores ponderados. (Ramírez, 2008). OBJETIVO Implementar un sistema de señalización y varias opciones tecnológicas de ubicación y navegación en CIMAT, utilizando las capacidades académicas del centro, que permita a visitantes y personal de recién ingreso ubicarse por CIMAT. Crear un grafo, a partir de la identificación de nodos y elementos de las ubicaciones de CIMAT. Diseñar, generar, aprobar por autoridades de CIMAT, y colocar tarjetas en códigos QR en cada cubículo, “Nodo” y/o espacio de CIMAT. Crear una base de datos para contener y administrar la información de los “Nodos” y “Elementos” del grafo de CIMAT. Construir diferentes funciones de costo de distancia entre nodos, que representen diferentes solicitudes de rutas entre nodos, por ejemplo número mínimo de escalones. Crear aplicaciones móviles que lean la señalética y ubiquen y guíen a las personas por CIMAT. MATERIALES Y MÉTODOS Comúnmente, la necesidad por encontrar un camino óptimo entre dos puntos es de suma importancia, en la teoría de grafos se han desarrollado diversos algoritmos de búsqueda. Así pues, analizaremos el algoritmo Dijsktra, este fue el utilizado en la aplicación a desarrollar. Dijsktra: Determina la ruta más corta desde un nodo origen hacia los demás nodos para ello es requerido como entrada un grafo cuyas aristas posean pesos. Lo primero que se debe de hacer es marcar todos los vértices como no utilizados. El algoritmo parte de un vértice origen que será ingresado, a partir de ese vértice se evaluarán los adyacentes, como dijkstra usa una técnica greedy – La técnica greedy utiliza el principio de que para que un camino sea óptimo, todos los caminos que contiene también deben ser óptimos - entre todos los vértices adyacentes, buscamos el que esté más cerca de nuestro punto origen, lo tomamos como punto intermedio y vemos si podemos llegar más rápido a través de este vértice a los demás. Después escogemos al siguiente más cercano (con las 8to. Verano Estatal de Investigación CONSEJO DE CIENCIA Y TECNOLOGÍA DEL ESTADO DE GUANAJUATO Aplicación de la Teoría de los Grafos para ubicación y trazado de las rutas a través de los edificios del CIMAT Autores: Ramírez Silva Marco Aurelio CECYTE Guanajuato Plantel Valle de Santiago, Tapia Rodríguez Maximino CIMAT distancias ya actualizadas) y repetimos el proceso. Esto lo hacemos hasta que el vértice no utilizado más cercano sea nuestro destino. Al proceso de actualizar las distancias tomando como punto intermedio al nuevo vértice se le conoce como relajación (relaxation). La complejidad del algoritmo: O(|V|2+|A|) = O(|V|2) sin utilizar cola de prioridad, O((|A|+|V|) log |V|) = O(|A| log |V|) utilizando cola de prioridad. Si utilizamos un montículo de Fibonacci, sería O(|V| log |V|+|A|). Podemos estimar la complejidad computacional del algoritmo de Dijkstra (en términos de sumas y comparaciones). El algoritmo realiza a lo más n-1 iteraciones, ya que en cada iteración se añade un vértice al conjunto distinguido. Para estimar el número total de operaciones basta estimar el número de operaciones que se llevan a cabo en cada iteración. Podemos identificar el vértice con la menor etiqueta entre los que no están en Sk realizando n-1 comparaciones o menos. Después hacemos una suma y una comparación para actualizar la etiqueta de cada uno de los vértices que no están en Sk. Por tanto, en cada iteración se realizan a lo sumo 2(n-1) operaciones, ya que no puede haber más de n-1 etiquetas por actualizar en cada iteración. Como no se realizan más de n-1 iteraciones, cada una de las cuales supone a lo más 2(n-1) operaciones, llegamos al siguiente teorema. (Wikipedia, 2015) ruta óptima para las diferentes ubicaciones dentro del CIMAT. CONCLUSIONES Y DISCUSIÓN Después de haber realizado las pruebas hemos podido localizar la ruta optima, estamos en desarrollo de rutas óptimas para situaciones específicas del CIMAT que por su construcción es importante considerar, es decir, si la ruta esta al aire libre, la cantidad de escalones, etc., para esto se esta desarrollando una función que considerando estos filtros de un peso (puntuación) a la ruta que nos marcará como óptima. REFERENCIAS BIBLIOGRÁFICAS CONACYT. (2014). CONACYT - CIMAT. Obtenido de http://www.conacyt.mx/index.php/elconacyt/centros-de-investigacionconacyt/directorio-de-centros-deinvestigacion-conacyt/item/cimat Definicion De. (1 de Enero de 2008 - 2015). Definición DE. Obtenido de http://definicion.de/grafos/ Ramírez, M. (30 de Enero de 2008). Olimpiada de Informática del Estado de Guanajuato. Obtenido de http://www.cimat.mx/~amor/Omi/Entr enamiento/index.html Wikipedia. (01 de 06 de 2015). Wikipedia. Obtenido de https://es.wikipedia.org/wiki/Algoritm o_de_Dijkstra TEOREMA: El Algoritmo de Dijkstra realiza O(n2) operaciones (sumas y comparaciones) para determinar la longitud del camino más corto entre dos vértices de un grafo ponderado simple, conexo y no dirigido con n vértices. RESULTADOS Utilizando el algoritmo dijkstra hemos podido obtener en distintos ejemplos la 8to. Verano Estatal de Investigación CONSEJO DE CIENCIA Y TECNOLOGÍA DEL ESTADO DE GUANAJUATO