Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cristian Guillermo Serrano Acevedo Jean Carlos Portilla Mora Pedro Alfonso Jiménez Buenahora
2170127 2171452 2170082
Universidad Industrial de Santander Universidad Industrial de Santander Universidad Industrial de Santander
Bucaramanga, Santander Bucaramanga, Santander Bucaramanga, Santander
Email: crisiangserrano@gmail.com Email: jeancarlosportilla@hotmail.com Email: pedrobuenahora@hotmail.com
Resumen—Observando las necesidades de un usuario prome- grafo como G = (V, A). Cada arista está identificada por un
dio que posee un medio de transporte propio, se desarrolla este par único de vértices del conjunto V . Una arista que va del
proyecto, el cual tiene como objetivo optimizar la manera en que vértice u al vértice v se denota por medio de la expresión
los usuarios encuentran un parqueadero, gracias a la aplicación
del algoritmo de Dijkstra, que se evidencia en el desarrollo a = (u, v). Cada arista puede tener una etiqueta asignada que
del presente documento. Los principales factores que pueden denota el costo de ir de u a v, y viceversa.
afectar a un usuario que está buscando un sitio adecuado donde
estacionarse son la distancia de conducción, poco conocimiento II-A. Teorı́a de grafos: A continuación se presentan algu-
sobre las rutas óptimas hacia los parqueaderos, y la ubicación nos de los conceptos básicos relacionados a la teorı́a de
de estos.
grafos:
Este documento desarrolla un ejemplo situado en el sector
de cabecera, con el cual observaremos si es viable o no la Grado de un vértice. El grado de un vértice v, escrito
implementación del algoritmo de Dijkstra dentro del problema. como grado(v), denota el número de aristas que contienen
a v. Si grado(v) = 0 entonces v es un nodo aislado.
I. PLANTEAMIENTO DEL PROBLEMA Bucle. Un bucle es una arista que conecta a un vértice
consigo mismo, a = (u, u).
Uno de los mayores logros del ser humano ha sido la Camino cerrado. El camino P es cerrado si el primer y
creación de vehı́culos motorizados para transportarse al lugar último vértice son iguales, es decir v0 = vn.
que él quiera o deba destinarse. Sin embargo. como cualquier Camino simple. El camino es simple si todos sus vértices
usuario de un vehı́culo particular, o de servicio público, no son distintos, con excepción del primero y del último, que
es fiable dejarlo en las calles, exponiendo al sujeto a distintos pueden ser iguales. Es decir, P es simple si v0, v1,..., vn-1
riesgos como generar un embotellamiento, recibir algún daño, son distintos.
que sea hurtada alguna de sus partes, o simplemente sea Circuito. Un circuito es un camino cerrado simple de
remolcado a través una grúa por alguna infracción de tránsito longitud 3 o mayor. Un circuito de longitud k se llama
suponiendo costos extras para el usuario. Por eso son tan k-circuito.
importantes los establecimientos de aparcamiento en una Grafo conexo. Un grafo es conexo si existe un camino
ciudad ya que le brindan el servicio de seguridad al vehı́culo simple entres dos de sus nodos cualesquiera.
del usuario, por un precio estipulado por el tiempo en el que Grafo árbol. Un grafo G es de tipo árbol, si G es un
será custodiado el vehı́culo dentro del establecimiento. Sin grafo conexo sin circuitos.
embargo, ocasionalmente encontrar un puesto donde dejar Grafo completo. Se dice que un grafo es completo si
el vehı́culo, supone un problema para el usuario, teniendo cada vértice v de G es adyacente a todos los demás
que recorrer largas distancias para encontrar un puesto vértices de G. Un grafo completo de n vértices tendrá
libre, suponiendo más gasto de combustible, riesgos para n(n - 1)/2 aristas.
vehı́culo, y, a la larga, molestar al usuario. De esta manera
implementando el algoritmo de Dijkstra queremos brindarles II-B. Grafo Dirigido
a los conductores una herramienta fácil para encontrar el
servicio de parqueadero más cercano a su destino ahorrando Un grafo dirigido G, también llamado dı́grafo, se caracteriza
ciertos recursos. porque cada arista a tiene una 7 dirección asignada y se
expresa como a = u → v.
IV. MODELO MATEM ÁTICO Este proyecto fue diseñado y ejecutado en un computador
portátil con las siguientes caracterı́sticas:
Procesador: Intel Core I7 5500U.
Memoria: 8 GB DDR4.
Disco HDD: 500 GB.
Tarjeta Grafica: N vidia GT 840M (2 GB).
VI-A. PROTOTIPO
Inicialmente y para efectos practicos se hace uso de un
prototipo, en el cual representamos un grafo fuertemente
conexo para resolver la problemática. El prototipo fue
realizado en el lenguaje de programación Phyton y
se seleccionó solo la lista de nodos que incluye a los
parqueaderos, siguiendo el siguiente procedimiento.
VI-B. PROYECTO
2. Después procedemos a crear nuestro grafo G sus respecti- 1. Inicialmente, hacemos uso de las librerı́as anteriormente
vos vértices que son nuestros parqueaderos ( ”San Pio”,”Pepe mencionadas, ası́ como de la lista de nodos que contienen
Ganga”,”Iguazu”,”Cafeteria”,”Motos”,”Parquearse” ). los parqueaderos. Adicional a esto incluiremos una lista con
Ahora, prosiguiendo con el código del prototipo, se van a los nodos ”auxiliares” los cuales son resultado del análisis
crear las aristas del grafo (en este ejemplo Cabecera) quienes exhaustivo de las calles y direcciones ubicadas en la Imagen
nos indicaran los caminos de recorrido de un vértice a otro, 1. El cual después de ser analizado, obtenemos alrededor de
si nos fijamos bien cada arista posee su propio peso, y este 33 nodos auxiliares.
va a ser la distancia de un vértice al destino y nos servirá
como guı́a para aplicar el algoritmo de Dijkstra al hallar el 2. Desarrollando el proyecto, decidimos tomar como base
camino más corto. el proceso que realizamos en el prototipo. Con base en dicho
orden de ideas, nuestro siguiente paso es imprimir el grafo
que es resultado de los datos introducidos en los nodos y las
aristas, para esto recurrimos a las funciones implementadas
en NetworkX, mas especı́ficamente la función (draw), en la
cual obtenemos como resultado de una impresión ”random”
el siguiente grafo: