GMOR: Google Maps para la Optimización de Rutas

Tamaño: px
Comenzar la demostración a partir de la página:

Download "GMOR: Google Maps para la Optimización de Rutas"

Transcripción

1 Universidad de La Laguna Junio 2008 Proyecto Ingeniería Informática Ayoze Nicolás Fumero Alfonso Director: Juan José Salazar González

2 2

3 Agradecimientos Agradezco a Juan José Salazar González su apoyo e interés por el proyecto desde el primer día, así como sus consejos y aportaciones a lo largo del desarrollo del mismo. También quiero agradecer a mis padres (Nicolás y Maria) su apoyo incondicional, y su intento continuo por darme todas las facilidades posibles para la realización de la ingeniería informática. 3

4 Índice Prólogo Introducción Sistemas de Información Geográfica (SIG) Definición Historia Google Maps Definición Historia Google Maps API Nuestro caso práctico: Transporte escolar Introducción al VRP Características de los problemas Los clientes Los depósitos Los vehículos Formulación matemática El problema del viajante de comercio (TSP) El problema de los m viajantes de comercio (m-tsp) El problema con capacidades (CVRP) Descripción de nuestro problema Método de resolución Algoritmo de Ahorros (Clark & Wright) Ejemplo para el algoritmo de ahorros Datos de entrada Consideraciones a tener en cuenta Traza del ejemplo Datos de salida Mejoras mediante búsquedas locales Optimización 2-Opt Optimización 3-Opt Optimización factorial Manual de la aplicación Formatos de archivos XML Pantalla principal Interfaz del mapa digital Mapa digital (Parte Superior) Editor XML (Parte Inferior) Rutas Requisitos de la aplicación Futuro Ampliaciones del problema El problema con flota heterogénea (FSMVRP) El problema con ventanas de tiempo (VRPTW) Otras heurísticas clásicas Algoritmo de ahorros basado en matching

5 5.3. Búsquedas locales multi-ruta Transferencias cíclicas Conclusiones...70 Bibliografía

6 Prólogo Actualmente los mapas digitales son un elemento cada vez más habitual, y que puede llegar a englobar muchas funciones, como puede ser desde un uso profesional como la cartografía, un uso más personal como podría ser en viajes turísticos, o incluso hasta un uso empresarial como podría ser el insertar publicidad en ellos. Un mapa digital no es más que un almacenamiento de información espacial como dibujos electrónicos hechos a base de elementos gráficos sencillos (líneas, puntos, círculos, etc.) organizados en capas, con el objetivo de ofrecer una salida impresa o por pantalla. Con los avances que se han ido realizando en las tecnologías, estos mapas son cada vez más sofisticados, llegando a lograr una interacción cada vez mayor con ellos. No se limitan a mostrar sólo representaciones de lugares, sino que son capaces de llegar a localizar lugares específicos, trazar rutas,... También cabe destacar que la manera en que muestran la información ha mejorado notablemente ya que pueden llegar a mostrar desde mapas tradicionales con mucha información contenida, hasta mapas con imágenes totalmente reales tomadas desde el aire, o incluso una versión híbrida de éstas dos. La motivación de este proyecto precisamente está enfocada hacia el aprovechamiento de esta mayor interacción actual para lograr una serie de funcionalidades que puedan ser un indicio del potencial que esconden este tipo de software, todo esto a través de una interfaz lo más sencilla e intuitiva posible para que cualquier persona con unos conocimientos básicos pueda sacar provecho. Se pretende aprovechar alguno de los mapas digitales disponibles en internet, en nuestro caso Google Maps, para crear un entorno que, por una parte, convierta en una tarea fácil el interactuar con un mapa digital, como puede ser buscar lugares, localizar puntos, almacenar la información, trazar rutas entre un determinado conjunto de puntos,... por otra parte, que sea capaz de obtener una solución bastante buena al planteamiento de un problema en el que se tenga que hallar rutas entre un conjunto de puntos. 6

7 Para tal fin se propone GMOR, una herramienta informática basada en Google Maps para el diseño de rutas de vehículos. Esta herramienta está compuesta de dos partes. Por un lado contiene una interfaz capaz de interactuar con un mapa digital de forma fácil e intuitiva, de llevar a cabo una serie de operaciones básicas, y capaz de exportar los datos resultantes de las operaciones en el mapa digital mediante estructuras XML. Y por otra, un segundo módulo en el que resolver problemas de diseños de rutas entre un conjunto de puntos, ya sean importados desde el mapa digital o generados de forma aleatoria. Por último, con esta aplicación se intenta realizar una simulación de un problema real de rutas como puede ser el transporte escolar aunque de manera algo simplificada, así como gracias a la tecnología XML dar la posibilidad de integración con otros proyectos. Nuestro deseo es el de llegar a mostrar las amplias posibilidades que pueden llegar a tener el uso de los mapas digitales en problemas reales, y que el prototipo implementado sirva como inspiración para un futuro proyecto más complejo que aborde los problemas de manera más real, y que cubran completamente las necesidades de los demandantes. 7

8 1. Introducción 1.1. Sistemas de Información Geográfica (SIG) Definición Un Sistema de Información Geográfica (SIG o GIS, en su acrónimo inglés) es una integración organizada de hardware, software, datos geográficos y personal, diseñado para capturar, almacenar, manipular, analizar y desplegar en todas sus formas la información geográficamente referenciada con el fin de resolver problemas complejos de planificación y gestión. También puede definirse como un modelo de una parte de la realidad referido a un sistema de coordenadas terrestre y construido para satisfacer unas necesidades concretas de información. El SIG funciona como una base de datos con información geográfica (datos alfanuméricos) que se encuentra asociada por un identificador común a los objetos gráficos de un mapa digital. De esta forma, señalando un objeto se conocen sus atributos e, inversamente, preguntando por un registro de la base de datos se puede saber su localización en la cartografía. La razón fundamental para utilizar un SIG es la gestión de información espacial. El sistema permite separar la información en diferentes capas temáticas y las almacena independientemente, permitiendo trabajar con ellas de manera rápida y sencilla, y facilitando al profesional la posibilidad de relacionar la información existente a través de la topología de los objetos, con el fin de generar otra nueva que difícilmente podríamos obtener de otra forma Historia Para la geografía, la geología, la topografía, la biología y demás ciencias que hacen uso de la información geográfica los SIG han constituido una verdadera revolución para el conocimiento de los elementos y fenómenos que tienen lugar en la superficie terrestre. En su evolución histórica está mayoritariamente aceptada la existencia de unos periodos más o menos claros y definidos que engloban las distintas fases por las que ha transcurrido la evolución de los SIG desde su aparición hace casi cuarenta años. Primera etapa La primera etapa se extendería desde las primeras aproximaciones de los años cincuenta hasta 8

9 mediados de los setenta y se caracteriza por los esfuerzos individuales en el desarrollo y la aplicación de los sistemas. El nacimiento de los SIG va ligado al desarrollo de otros sistemas, de los cuales ellos son claros herederos por su similitud, los sistemas de Cartografía Asistida por Ordenador. Una característica importante de estos primeros pasos es que en todos los casos analizados las personas que iniciaron el desarrollo de estas tecnologías, desconocían realmente que lo que estaban creando eran Sistemas de Información Geográfica. Por un lado encontramos instituciones y otras instancias gubernamentales que ponen en marcha sus iniciativas de manera particular para resolver los problemas derivados de sus actividades relacionadas con el tratamiento de la información geográfica. Por otro lado está el grupo que engloba a las universidades. En ellas también se intentan encontrar nuevos método para el tratamiento de la información espacial. Este grupo busca el desarrollo de sistemas automáticos con los que realizar análisis de datos geográficos y no tanto la producción de cartografía. Lo que ambos grupos buscan es conseguir unas aplicaciones que de forma automática resuelvan cuestiones que hasta la fecha se habían solventado de manera manual. Las iniciativas pioneras se llevaron a cabo en los Canadá, Estados Unidos, y Gran Bretaña. El segundo de ellos es el más significativo en la evolución de los SIG, y no puede compararse con ningún otro lugar, tanto en el ámbito propio de los Sistemas de Información Geográfica como en el de las tecnologías relacionadas. Ese protagonismo estadounidense se prolonga desde los años cincuenta del siglo XX hasta la actualidad. Canadá Canadá es referente mundial en la historia de los SIG debido al Canadian Geographic Information System (CGIS), concebido y desarrollado desde 1966 lo que le convierte en el decano de los Sistemas de Información Geográfica y también el primero que utiliza ese nombre. Estados Unidos Los hitos más importantes de los SIG en los Estados Unidos son: Laboratory of Computer Graphics and Spatial Analysis (LCG). Creado en 1966 fue la primera iniciativa cuyo objetivo principal era el diseño y desarrollo de software específico para aplicaciones cartográficas. Su principal logro fue el Symap. Trabajos de la administración. Es un claro ejemplo de dualidad ya que en la mayoría de los 9

10 casos se usaban programas propios y específicos en base a las necesidades de cada departamento, pero algunas veces también se requirió software de terceros como el mencionado Symap del LCG. Los SIG más significativos son los del United Status Census Bureau (USCB) y el del United Status Geological Survey (USGS). Enviromental Systems Research Institute (ESRI): No es el único caso que se puede encontrar dentro del grupo de aportaciones comerciales. Lo que caracteriza a ESRI es su buen olfato comercial, sintetizado en su capacidad de previsión, de visión de futuro, de antelación. Su principal aportación al mundo de los SIG es la creación del estándar mundial en esta tecnología, ArcInfo. Gran Bretaña Gran Bretaña sigue un modelo muy similar al estadounidense por presentar tanto iniciativas a nivel universitario como de la administración pero sin embargo no tiene ejemplos en el sector privado tan significativos como ESRI en los Estados Unidos. Segunda etapa Siguiendo con las fases de evolución de los SIG, la segunda etapa se solaparía en sus primeros momentos con la primera, iniciándose hacia mediados de los años setenta y extendiéndose hasta principios de los años ochenta. Esta etapa de desarrollo está caracterizada, en general, por la disminución de la importancia de las iniciativas individuales y un aumento de los intereses a nivel corporativo, especialmente por parte de las instancias gubernamentales y de la administración. Tercera etapa o fase comercial Inmediatamente después, también a inicios de los años ochenta, se da lo que se ha venido a conocer como fase comercial. Es en este periodo cuando el interés de distintas grandes industrias relacionadas directa o indirectamente con los SIG crece sobremanera, debido a la gran avalancha de productos en el mercado informático internacional que hicieron generalizarse a esta tecnología. Cuarta etapa El paso siguiente a la etapa comercial para profesionales, se corresponde con la década de los noventa, donde los SIG empezaron a difundirse al nivel del usuario doméstico debido a la 10

11 generalización de los ordenadores personales o microordenadores. Quinta etapa En los primeros años del siglo XXI la mejora del rendimiento de los ordenadores debido a los avances tecnológicos, por una parte, y la consolidación, por otra parte, de la necesidad de paquetes informáticos de información geográfica conforman una nueva etapa en la evolución de los SIG, sobre todo con la generalización del uso de Internet, que permite la distribución a nivel mundial de cartografía Google Maps Definición Google Maps (conocido al principio como Google Local) es el nombre de un servicio gratuito de Google. Es un servidor de aplicaciones de mapas en Web. Ofrece imágenes de mapas desplazables, así como fotos de satélite del mundo entero e incluso la ruta entre diferentes ubicaciones Historia Fue anunciado por primera vez en Google Blog el 8 de febrero del Originalmente soportaría sólo a los usuarios de Internet Explorer y Mozilla Firefox, el soporte para Opera y Safari fue agregado el 25 de febrero del El software estuvo en su fase beta durante 6 meses antes de convertirse en parte de Google Local, el 6 de octubre del Como en otras aplicaciones Web de Google, se usa un gran número de archivos de Javascript para crear Google Maps. Como el usuario puede mover el mapa, la visualización del mismo se baja desde el servidor. Cuando un usuario busca un negocio, la ubicación es marcada por un indicador en forma de pin, el cual es una imagen PNG transparente sobre el mapa. Para lograr la conectividad sin sincronía con el servidor, Google aplicó el uso de AJAX dentro de esta aplicación. En abril del 2005, Google añadió un Ride Finder (en español, Ubicador de Vehículo), en el cual una persona puede ubicar un taxi o un transporte público en una gran ciudad en tiempo real. La persona debe hacer click en la barra de Update Position (en español, Actualizar Posición) para encontrar la 11

12 nueva ubicación del vehículo en cada momento. En junio del 2005, los mapas de carreteras de los Estados Unidos, Puerto Rico, Canadá y el Reino Unido fueron integrados a Google Maps. A mediados de julio del 2005, Google comienza la versión japonesa de Google Maps y Google Local. En abril del 2005, se crea una vista alternativa a la que se mostraba por el satélite. El mayor responsable de que Google Maps sea una realidad es el QuickBird, un satélite comercial de teledetección. En junio del 2005, las imágenes de alta resolución (o a la máxima ampliación), ya estaban disponible para la mayoría de Canadá y Estados Unidos (incluyendo los estados de Hawaii y Alaska). Además se tienen de otros países en forma parcial como Francia, Irlanda, Italia, Irak, Japón, Bahamas, Kuwait, México, Holanda, etc. Sin embargo, algunas áreas fueron oscurecidas por motivos de seguridad nacional, como el Capitolio, la Casa Blanca y el área 51. Para el resto del planeta las imágenes se encuentran disponible en baja resolución, excepto para los polos. No todas las fotos mostradas son de satélites, algunas son de ciudades tomadas por aviones que vuelan a bastante altura (sobre los metros). Este es el caso de Canarias, donde las fotos que se muestran son propiedad de GrafCan. La información contenida en los mapas mostrados es proveída principalmente por la empresa Navteq, que es considerada en estos momentos la mejor del sector debido a la veracidad de sus datos, y la frecuencia con la que son actualizados sus datos. En el caso de Canarias los datos actuales provienen de la empresa TeleAtlas. El 22 de julio del 2005, Google lanza una vista dual de su Google Maps. Esta vista combina la vista de satélite con mapas ilustrados y los nombres de calles en las imágenes del mundo real. Esto hace más fácil encontrar rutas entre dos puntos Google Maps API Debido a la popularidad que estaba alcanzando Google Maps y a los intentos de personalizar los mapas por parte de los usuarios mediante la ingeniería inversa, Google optó por desarrollar un API para Google Maps, de forma que facilitara a los usuarios el integrar Google Maps en sus webs personales y con sus propios datos. 12

13 Mediante el uso de la API de Google Maps se puede lograr insertar un completo Google Maps en páginas web externas a Google. Para comenzar, basta con generar una clave personalizada para la página web y el directorio donde se desea insertar el mapa. Se le da a un usuario la posibilidad de crear su propia interfaz para el mapa simplemente introduciendo el código Javascript proporcionado por Google a su página web, y una vez hecho esto, utilizando las funciones Javascript suministradas por la API para interactuar con el mapa. La primera versión de la API, no tenía la habilidad para hallar direcciones, por lo que era necesario especificar manualmente la latitud y la longitud del punto requerido, aunque esto fue implementado en versiones posteriores. Aproximadamente por la misma época Yahoo lanzó su propio API para su mapa, que aunque no tenía soporte internacional ya contaba con una herramienta para determinar la geopocisión de un objeto. También cabe destacar que la API de Google Maps es capaz de funcionar ejecutándola localmente, para de este modo facilitar las tareas de debug o depuración durante la implementación de páginas personalizadas. Dentro de esta API podemos escoger entre dos versiones. Por un lado tenemos la gratuita y por otro la destinada a empresas. Básicamente la diferencia entre estas dos versiones viene a ser que si se cuenta con una licencia de empresa, Google proporciona una asistencia total al cliente y la posibilidad de desarrollar aplicaciones de intranet que utilicen la API de Google Maps. Además no se cuenta con las limitaciones en las peticiones a los servidores de Google Maps que si se tienen en la versión gratuita del mismo, las cuales son unas peticiones a sus servidores al día en intervalos de 8,64 segundos aproximadamente. En cuanto a la información mostrada en los mapas, cabe destacar que en lugar de usar los mapas de Navteq, al igual que la página de Google Maps, esta API usa los mapas proporcionados por TeleAtlas, empresa de origen europeo, que ofrece una opción más económica y que está en pleno auge, de hecho cada día sus resultados se acercan más a los proporcionados por Navteq. 13

14 Como caso particular podemos destacar el ocurrido en las Islas Canarias, ya que aunque el callejero mostrado sigue perteneciendo a la empresa TeleAtlas, las imágenes mostradas pertenecen la empresa GrafCan, la cual tiene su propio callejero que llega a ser en algunos aspectos incluso más detallado que el proporcionado por TeleAtlas. De hecho, en lo que se refiere al cálculo de direcciones postales, mientras que TeleAtlas hace una aproximación de la localización de dichas direcciones, GrafCan tiene totalmente localizadas las direcciones en su callejero. Como desventaja, y posible razón de que no se use el callejero de GrafCan, cabe decir que aún dichos callejeros no poseen el sentido de todas las calles, y esto puede ser considerado un elemento indispensable por los responsables de Google ya que es un elemento primordial en sus mapas. 14

15 2. Nuestro caso práctico: Transporte escolar 2.1. Introducción al VRP El problema de distribuir productos desde ciertos depósitos a sus usuarios finales juega un papel central en la gestión de algunos sistemas logísticos y su adecuada planificación puede significar considerables ahorros. Esos potenciales ahorros justifican en gran medida la utilización de técnicas de Investigación Operativa como facilitadoras de la planificación, dado que se estima que los costos del transporte representan entre el 10% y el 20% del costo final de los bienes [1]. En ese sentido, las últimas cuatro décadas han visto un enorme esfuerzo por resolver estos problemas. En 1959, Dantzig y Ramser [2] realizaron por primera vez una formulación del problema para una aplicación de distribución de combustible. Cinco años más tarde, Clarke y Wright [3] propusieron el primer algoritmo que resultó efectivo para su resolución: el popular Algoritmo de Ahorros (Saving Algorithm), y del que hablamos en la sección 3.1. A partir de estos trabajos, el área de enrutamiento de vehículos ha crecido de manera explosiva. Por un lado, hacia modelos que incorporan cada vez más características de la realidad, y, por otro lado, en la búsqueda de algoritmos que permitan resolver los problemas de manera más eficiente. Estos modelos y algoritmos deben su éxito, en buena parte, a la evolución de los sistemas informáticos y de los SIGs. El crecimiento en el poder de cómputo y la baja en sus costos, ha permitido disminuir los tiempos de ejecución de los algoritmos. Y el desarrollo de los Sistemas de Información Geográfica resulta fundamental para lograr una adecuada interacción de los modelos y algoritmos con los encargados de realizar la planificación. Pero el interés que reviste el área no es exclusivamente práctico. Los problemas de enrutamiento de vehículos son problemas de optimización combinatoria y pertenecen, en su mayoría, a la clase NPHard. La motivación académica por resolverlos radica en que no es posible construir algoritmos que en tiempo polinomial resuelvan cualquier instancia del problema (a no ser que P = NP) Características de los problemas A grandes rasgos un problema de enrutamiento de vehículos consiste en, dado un conjunto de clientes y depósitos dispersos geográficamente y una flota de vehículos, determinar un conjunto de rutas de costo mínimo que comiencen y terminen en los depósitos, para que los vehículos visiten a los clientes mientras se respeten sus capacidades y quizás otras restricciones adicionales. 15

16 Las características de los clientes, depósitos y vehículos, así como diferentes restricciones operativas sobre las rutas, dan lugar a diferentes variantes del problema. En las próximas secciones mostramos algunas; véase [1] para encontrar otras Los clientes Cada cliente tiene una cierta demanda que debería ser satisfecha por algún vehículo. En muchos casos, la demanda es un bien que ocupa espacio en los vehículos y es usual que un mismo vehículo no pueda satisfacer la demanda de todos los clientes en una misma ruta. Un caso equivalente al anterior ocurre cuando los clientes son proveedores y lo que se desea es recoger una mercancía y transportarla hacia el depósito. También podría ocurrir que la mercancía deba ser transportada a los clientes pero que no esté inicialmente en el depósito, sino distribuida en ciertos sitios proveedores. En este caso, los proveedores deben ser visitados antes que los clientes, y el problema es del tipo recogidas y entregas. En otros casos la demanda puede verse no como un bien sino un servicio: el cliente simplemente debe ser visitado por el vehículo. Un mismo vehículo podría, potencialmente, visitar a todos los clientes. En otra variante del problema, cada cliente tiene una ubicación y desea ser transportado hacia otro sitio. Aquí la capacidad del vehículo impone una cota sobre la cantidad de clientes que puede transportar simultáneamente. Es usual que cada cliente deba ser visitado exactamente una vez. Sin embargo, en ciertos casos se acepta que la demanda de un cliente sea satisfecha en momentos diferentes y por vehículos diferentes. Los clientes podrían tener restricciones relativas a su horario de servicio. Usualmente estas restricciones se expresan en forma de intervalos de tiempo (llamados ventanas de tiempo) en los que se puede visitar al cliente. En problemas con varios vehículos diferentes podrían existir restricciones de compatibilidad entre éstos y los clientes. En estos casos, cada cliente sólo puede ser visitado por algunos de los vehículos (por ejemplo, algunos vehículos muy pesados no pueden visitar ciertas localizaciones). 16

17 También resulta de interés el estudio de problemas donde la demanda de cada cliente no es un número conocido sino una variable aleatoria. Son los llamados problemas con demandas estocásticas Los depósitos Tanto los vehículos como las mercancías a distribuir (si las hubiera) suelen estar ubicadas en depósitos. Usualmente se exige que cada ruta comience y finalice en un mismo depósito, aunque éste podría no ser el caso en algunas aplicaciones (por ejemplo, podría ser que el viaje debiera finalizar en el domicilio del conductor del vehículo y que fuesen dos conductores diferentes los que usan ese vehículo, con lo que el domicilio donde termina dependerá de a qué conductor le toca usarlo ese día). En los problemas con múltiples depósitos cada uno de éstos tiene diferentes características, por ejemplo, su ubicación y capacidad máxima de producción. Podría ocurrir que cada depósito tenga una flota de vehículos asignada a priori o que dicha asignación sea parte de lo que se desea determinar. Los depósitos, al igual que los clientes, podrían tener ventanas de tiempo asociadas. En algunos casos debe considerarse el tiempo necesario para cargar o preparar un vehículo antes de que comience su ruta, o el tiempo invertido en su limpieza al regresar. Incluso, por limitaciones de los propios depósitos, podría querer evitarse que demasiados vehículos estén operando en un mismo depósito a la vez (es decir, la congestión del depósito) Los vehículos La capacidad de un vehículo podría tener varias dimensiones, como por ejemplo peso y volumen. Cuando en un mismo problema existen diferentes mercancías a transportar, los vehículos podrían tener varios compartimentos, de modo que la capacidad del vehículo dependa de la mercancía de la que se trate. En general, cada vehículo tiene asociado un costo fijo en el que se incurre al utilizarlo y un costo variable proporcional a la distancia que recorra. Los problemas en que los atributos (capacidad, costo, etc.) son los mismos para todos los vehículos se denominan de flota homogénea, y, si hay diferencias, de flota heterogénea. La cantidad de vehículos disponibles podría ser un dato de entrada o una variable de decisión. El objetivo más usual suele ser utilizar la menor cantidad de vehículos y minimizar la distancia recorrida ocupa un segundo lugar. Regulaciones legales podrían imponer restricciones sobre el tiempo máximo que un vehículo puede estar en circulación e incluso prohibir el pasaje de ciertos vehículos por ciertas zonas. En algunos casos se desea que la cantidad de trabajo realizado por los vehículos (usualmente el tiempo de viaje) no sea muy dispar. En general se asume que cada vehículo recorre una sola ruta en el período de planificación, pero últimamente se han estudiado modelos en los que un mismo vehículo puede recorrer más de una ruta Formulación matemática En esta sección se formulan algunos de los problemas clásicos y sus extensiones como problemas de Programación Entera. Dichas formulaciones se dan por completitud y para evitar ambigüedad 17

18 en la definición. La red de transporte por la que circulan los vehículos se modela mediante un grafo ponderado G = (V,A). Los nodos del grafo representan a los clientes y depósitos. En problemas con un depósito y n clientes, el nodo 0 representa al depósito y los nodos 1,..., n a los clientes. En algunos casos se agrega una copia del depósito etiquetada con n +1 para simplificar la formulación, siendo en este caso 0 el origen de las rutas y n + 1 es el destino final. Cada arco (i, j) A representa el mejor camino para ir desde el nodo i hacia el nodo j en la red de transporte y tiene asociado un costo c ij y un tiempo de viaje t ij. Según la estructura de los costos y los tiempos y las características de la red, el grafo puede ser simétrico o asimétrico. Puede suponerse que G es completo, pues entre todo par de lugares de una red de transporte razonable, debería existir algún camino. Denotaremos por N + i y N i al conjunto de nodos adyacentes e incidentes al nodo i, es decir, N + i = {j V (i, j) A} y N i = {j V (j, i) A} El problema del viajante de comercio (TSP) En el Problema del Agente Viajero (o TSP por Travelling Salesman Problem ) se dispone de un solo vehículo que debe visitar a todos los clientes en una sola ruta y a costo mínimo. No suele haber un depósito (y si lo hubiera no se distingue de los clientes), no hay demanda asociada a los clientes y tampoco hay restricciones temporales. El problema puede formularse como: min i, j A s. a. cij x ij (1.1) x ij =1 i V (1.2) x ij =1 j V (1.3) S V (1.4) + j N i - i N j + xij 1 i S, j N i \S x ij {0, 1} i, j A. Esta formulación fue propuesta por Dantzig, Fulkerson y Johnson [4]. Las variables binarias x ij indican si el arco (i, j) es utilizado en la solución, es decir, en la ruta que debe seguir el vehículo. La función objetivo (1.1) establece que el costo total de la solución es la suma de los costos de los arcos utilizados. Las restricciones (1.2) y (1.3) indican que la ruta debe llegar y abandonar cada nodo exactamente una vez. Finalmente, las restricciones (1.4) son llamadas restricciones de eliminación de subrutas e indican que todo subconjunto de nodos S debe ser abandonado al menos una vez. Nótese que si no se impusieran estas restricciones la solución podría constar de más de un ciclo, como se muestra en la figura 1.1. Esta solución viola la restricción (1.4) para S = {0, 1, 2}. Existen diferentes tipos de escritura para las restricciones de eliminación de subrutas. Asumiendo que A =O n2, esta formulación tiene una cantidad polinomial de variables binarias y O 2n restricciones. 18

19 Figura 1.1: Una solución formada por 2 subrutas. El problema puede alternativamente formularse con una cantidad polinomial de restricciones, agregando variables reales u i para i = 1,..., n y sustituyendo las restricciones (1.4) por u i u j nx ij n 1 i, j E, i 0, j 0. (1.6) Este modelo alternativo fue propuesto por Miller, Tucker y Zemlin [5] y fuerzan a que las variables reales u i que determinen una cantidad estrictamente creciente a lo largo de la ruta (es decir, u j u i 1 si j es visitado inmediatamente después que i ). En esta nueva formulación hay O n2 variables binarias, O n variables positivas y O n2 restricciones. Sin embargo, esta formulación no resulta apta para la resolución de problemas de tamaño considerable mediante métodos exactos, pues si bien se disminuye la cantidad de restricciones, la cota que se obtiene resolviendo su relajación lineal resulta en general muy débil. La mayor parte de los problemas de enrutamiento de vehículos son generalizaciones del TSP. En ese sentido, éste puede considerarse el problema de enrutamiento de vehículos más simple. No obstante, pertenece a la clase de problemas NP-Hard [6] y es uno de los Problemas de Optimización Combinatoria más clásico y difundido El problema de los m viajantes de comercio (m-tsp) El problema de los m agentes viajeros (o m-tsp) es una generalización del TSP en la cual se tiene un depósito y m vehículos. El objetivo es construir exactamente m rutas, una para cada vehículo, de modo que cada cliente sea visitado una vez por uno de los vehículos. Cada ruta debe comenzar y finalizar en el depósito. Una formulación, dada por Miller et al. [5] es la siguiente: min i, j A s.a. cij x ij x i0 = x ij = - i N 0 x 0j m x ij =1 + (1.7) j N 0 i V \{0} (1.8) u i u j nx ij n 1 i, j A, i 0, j 0 (1.9) x ij {0, 1} i, j A - i N j u i 0 + j N i i V \{0}. 19

20 El modelo es similar al segundo modelo presentado para el TSP. La restricción (1.7) indica que exactamente m vehículos salen del depósito y las (1.8) asegura que cada cliente es un nodo intermedio en exactamente una ruta. Finalmente, con (1.9) se eliminan las subrutas. Modificando (1.9) es fácil incorporar en el problema una limitación sobre el número máximo Q de clientes que pueden estar en una misma ruta. La nueva restricción es: u i u j Qxij Q 1 Y el nuevo problema pasa a ser el CVRP (que describimos con detalle en la siguiente sección) con demandas unitarias El problema con capacidades (CVRP) El CVRP es una extensión del m-tsp en la cual cada cliente i V \ {0} tiene asociada una demanda d i y cada vehículo tiene una capacidad Q (la flota es homogénea). En este problema la cantidad de rutas no está fijada de antemano como en el TSP y en el m-tsp, aunque suele haber un número m máximo de vehículos en la flota. Para un conjunto de clientes S, d S = d i es su demanda total y r(s) indica la mínima i S cantidad de vehículos necesarios para servirlos a todos. En la formulación conocida con el nombre de dos índices, se utilizan las variables binarias x ij para determinar si el arco (i, j) se utiliza o no en la solución. El problema se formula de la siguiente manera: min i, j A s. a. cij x ij x i0 = x ij = - i N 0 - (1.10) x 0j m x ij =1 + (1.11) j N 0 i N j + i V \{0} (1.12) S V \{0} (1.13) j N i + xij r S i S, j N i \S x ij {0, 1} i, j A La función objetivo (1.10) es el costo total de la solución. Las restricciones (1.11) indica que m es la cantidad de vehículos utilizados en la solución y que todos los vehículos que parten del depósito deben regresar. La restricción (1.12) aseguran que todo cliente es un nodo intermedio de alguna ruta. Finalmente, la restricción (1.13) actúa como restricción de eliminación de subrutas y a la vez impone que la demanda total de los clientes visitados por un vehículo no puede superar la capacidad Q. 20

21 Determinar el valor de r(s) requiere la resolución del siguiente problema: r S =min y k k K s. a. d i x ik C yk k K xik =1 i S x ik {0, 1} i S, k K y k {0,1} k K, i S k K donde K es un conjunto con suficientes vehículos para satisfacer la demanda (por ejemplo, n). Este problema es conocido como Bin Packing Problem (BPP) [7]. Una cota inferior para la cantidad de vehículos está dada por el valor óptimo de la relajación lineal del BPP, que es el entero superior de d S /Q. La formulación es válida incluso cuando se sustituye r(s) por la cota inferior mencionada anteriormente, entero superior de d S /Q, aunque su relajación lineal es más débil que cuando se usa la solución exacta del BPP. En algunos casos se agrega a este problema la restricción de que ninguna ruta puede tener un largo mayor que cierta cota L. Dicha restricción no puede incorporarse a esta formulación, pues las rutas no están individualizadas. Para incorporar esta restricción adicional (u otras como ventanas temporales, etc.) es necesario usar variables con tres índices del tipo x kij Descripción de nuestro problema En primer lugar mencionar que a pesar de poder hacer un planteamiento generalizado, nos centraremos en un caso en particular con el objetivo de ser lo más claro posible: el transporte escolar. Se dispone de un conjunto de puntos localizados sobre un mapa, y necesitamos hallar la/s posible/s ruta/s que nos permitan visitar todos los puntos del problema. Estos puntos pueden ser de tres tipos: Salida: será el punto desde donde comiencen todas las rutas. En nuestro problema particular diremos que es el depósito donde se encuentran los vehículos que recogerán a los alumnos. Cada uno de estos vehículos cuenta con una capacidad máxima de alumnos que pueda transportar y que no será posible sobrepasar. Paradas: serán los puntos por donde las rutas deben pasar y que tendrán una cierta demanda a cumplir. En nuestro problema, en esas paradas se encontrarán los alumnos y la demanda a cumplir indicará el número de alumnos a recoger en dicho punto. Llegada: será el punto donde finalicen todas las rutas. En nuestro problema, representará el colegio donde deben ser entregados los alumnos. Con lo expuesto anteriormente podemos decir entonces que el problema consiste en hallar el número de rutas necesarias para recoger a todos los alumnos utilizando para ello unos vehículos con capacidad limitada mediante una solución buena. 21

22 Por tanto, el problema que más se ajusta a nuestro caso es el problema de enrutamiento de vehículos con restricciones (CVRP). Hay que destacar que este planteamiento está simplificado, ya que en el caso de querer abordarlo de manera totalmente realista, la complejidad del problema sería mucho mayor debido al gran número de otros factores que habría que tener en cuenta, ver figura a continuación. El objetivo de este proyecto no es el de resolver un problema totalmente real sino mostrar el potencial que pueden ofrecer los SIGs a la resolución de problemas de rutas de vehículos en el mundo real (es decir, en logística). Figura 1.2: Complejidad de los problemas. 22

23 3. Método de resolución 3.1. Algoritmo de Ahorros (Clark & Wright) Uno de los algoritmos más difundidos para el CVRP es el Algoritmo de Ahorros de Clarke y Wright [3]. Si en una solución dos rutas diferentes (0,..., i, 0) y (0, j,..., 0) pueden ser combinadas formando una nueva ruta (0,..., i, j,..., 0) como se muestra en la figura 2.1, el ahorro (en distancia) obtenido por dicha unión es sij =c i0 c 0j cij (2.1) Figura 2.1: Dos rutas antes y después de ser unidas En la nueva solución los arcos (i, 0) y (0, j) no serán utilizados y se agregará el arco (i, j). En este algoritmo se parte de una solución inicial y se realizan las uniones que den mayores ahorros siempre que no violen las restricciones del problema. Existe una versión paralela en la que se trabaja sobre todas las rutas simultáneamente, y otra secuencial que construye las rutas de una en una. Algoritmo de Ahorros (Versión paralela) Paso 1 (inicialización). Para cada cliente i construir la ruta (0, i, 0). Paso 2 (cálculo de ahorros). Calcular sij para cada par de clientes i y j. Paso 3 (mejor unión). Sea si j =max s ij, donde el máximo se toma entre los ahorros que no han sido considerados aún. Sean r i y r j las rutas que contienen a los clientes i y j respectivamente. Si i es el último cliente de r i y j * es el primer cliente de r j y la combinación de r i y r j es factible, combinarlas. Eliminar si j de futuras consideraciones. Si quedan ahorros por examinar ir al paso 3, si no terminar. Algoritmo de Ahorros (Versión secuencial) Paso 1 (inicialización). Para cada cliente i construir la ruta (0, i, 0). Paso 2 (cálculo de ahorros). Calcular sij para cada par de clientes i y j. Paso 3 (selección). Si todas las rutas fueron consideradas, terminar. Si no, seleccionar una ruta que aún no haya sido considerada. 23

24 Paso 4 (extensión). Sea (0, i,..., j, 0) la ruta actual. Si no existe ningún ahorro conteniendo a i o a j, ir al paso 3. Sea s k i o s jl el máximo ahorro conteniendo a i (o a j). Si k * o l es el último (o primer) cliente de su ruta y la combinación de dicha ruta con la actual es factible, realizar dicha combinación. Eliminar s k i o s jl de futuras consideraciones. Ir al paso 4. Dado que en la definición de sij solamente interviene la ubicación de los clientes i y j, todos los ahorros pueden calcularse una sola vez al comienzo de la ejecución del algoritmo. En la versión secuencial podría calcularse los ahorros a medida que son necesarios. Si el máximo ahorro es negativo, la combinación de las rutas aumentará la distancia recorrida pero disminuirá la cantidad de rutas de la solución (y por lo tanto la cantidad de vehículos utilizados). Dependiendo de las particularidades de cada problema, debe decidirse si realizar o no ese tipo de combinaciones. Se ha observado que utilizando la definición original de ahorro se suele generar algunas rutas circulares (ver figura 2.2) lo cual puede ser negativo. Para solucionar este problema algunos autores [13, 14, 15] proponen redefinir el ahorro como: sij =c i0 c 0j λcij (2.2) donde λ es un parámetro que penaliza la unión de rutas con clientes lejanos (llamado parámetro de forma o shape parameter ). Dicho parámetro puede utilizarse también para generar un conjunto de soluciones diferentes mediante la ejecución repetida del algoritmo con diferentes valores de λ. En general ocurre que al comienzo de la ejecución del algoritmo dos alternativas pueden parecer equivalentes y, sin embargo, la elección tiene un gran impacto en la solución final. Las soluciones obtenidas con el Algoritmo de Ahorros pueden, en general, ser mejoradas mediante operadores de búsqueda local como el algoritmo 3-opt [16], esto lo tratamos en la sección 3.3. Figura 2.2: Un ejemplo de rutas circulares y radiales Ejemplo para el algoritmo de ahorros A continuación, se ilustra cómo funciona el algoritmo implementado sobre un pequeño ejemplo Datos de entrada Los datos inicialmente disponibles son: n = 4 clientes {1, 2, 3, 4} El depósito será el punto 0 24

25 Las demandas para cada uno de los clientes son: d i = 0,5, 13,12, 8 La matriz de distancias o costes es: La capacidad de los vehículos es c ij = Figura 3.1: Situación inicial Consideraciones a tener en cuenta Estado inicial El primer paso que se realiza es el calcular el conjunto de rutas iniciales, que no es más que asignar cada uno de los puntos a una ruta diferente, tal y como se muestra en la figura 3.2. Figura 3.2: Estado inicial. 25

26 Sobrecarga de vehículos Una vez tenemos el estado inicial, el siguiente paso es empezar a realizar las fusiones de las diferentes rutas, ya que se trata de realizar conexiones entre diferentes rutas para obtener una mejor solución que la inicial. Para esto calculamos el ahorro que obtendríamos al fusionar las diferentes rutas que tenemos actualmente, mediante la fórmula (2.1). Figura 3.3: Ejemplo para la fusión i = 1 y j = 2. En el caso de que sij 0 dicha fusión debe ser tenida en cuenta. Pero en estas posibles fusiones hay que tener en cuenta la restricción que se nos impone con la capacidad limitada de los vehículos. Por ejemplo, en el caso de intentar la unión entre los puntos 2 y 3 obligamos a que el vehículo cargue d 2 d 3=25 unidades, y esto es imposible por que Q = 20. Figura 3.4: Fusión entre los puntos 2 y 3. dado que en los datos iniciales hemos dicho que la capacidad de los vehículos es 20, esta ruta no es factible y por lo tanto no se debe considerar. 26

27 Puntos Internos Un punto, el cual no es el primero ni el último en una de las rutas actuales, no puede ser considerado para realizar posibles fusiones. Por ejemplo, como se puede ver en la figura 3.5, el punto 2 no cuenta con un arco desde o hasta el depósito. Por tanto si2 o s 2j no deben ser consideradas a la hora de fusionar rutas. Figura 3.5: Puntos internos. Puntos que se encuentren en la misma ruta Si los puntos sugeridos por la fórmula del ahorro son extremos de la misma ruta, la operación de fusión no puede llevarse a cabo, ya que en ese caso se formarían subrutas y esto no debe estar permitido. Por ejemplo, en la figura 3.6 se muestra que si llegásemos a unir los puntos 1 y 3, se da como resultado una subruta, por tanto el ahorro de fusionar estos puntos nunca debería tenerse en cuenta. Figura 3.6: Formación de subrutas. 27

28 Traza del ejemplo Inicialización Paso 1: Calculamos el estado inicial anteriormente descrito. Paso 2: Calculamos los valores de ahorro para cada par de puntos del problema. Paso 3: Se construye una lista con todos los valores de ahorros ordenados de mayor a menor, cuanto mayor es el valor de ahorro, más conveniente es la ruta. En nuestro ejemplo los valores iniciales se pueden ver en la figura 3.7. Figura 3.7: Valores de ahorros iniciales. Iteración 1 Tomamos el primer valor de la lista de ahorros, ya que es el más prometedor. 28

29 Comprobando las consideraciones antes mencionadas vemos que: d 12=d 1 d 2=18 20=Q Ambos puntos son extremos en sus rutas. Ambos puntos no pertenecen a la misma ruta. Por tanto, ya que cumplen esas tres condiciones, la fusión de ambas rutas puede llevarse a cabo. La solución que obtenemos tiene un coste de 11, y en ella quedan unidos los puntos 1 y 2 tal y como se puede ver en la figura 3.9. Figura 3.9: Iteración 1. Iteración 2 Continuamos tomando el resto de valores de la lista de ahorros en los que no se encontraban los puntos ya fusionados. Y nuevamente hacemos las mismas comparaciones: d 34=d 3 d 4=20 Q Ambos puntos son extremos en sus rutas. Ambos puntos no pertenecen a la misma ruta. Por tanto, ya que cumplen esas tres condiciones, la fusión de ambas rutas puede llevarse a cabo. La solución que obtenemos tiene un coste de 10, y en ella quedan unidos los puntos 3 y 4 tal y como se puede ver en la figura

30 Figura 3.10: Iteración 2. Tras esta iteración, ya no nos quedan más posibles fusiones debido a que todos los puntos están contenidos en alguna ruta. Iteración 3 En esta iteración trabajamos con las dos rutas anteriormente calculadas. Por tanto la única fusión posible es entre 2 y 3. En esta ocasión, al hacer las comprobaciones pertinentes obtenemos que: d 23=d 2 d 3=38 Q Ambos puntos son extremos en sus rutas. Ambos puntos no pertenecen a la misma ruta. Por tanto, al no cumplirse la restricción de la capacidad limitada de los vehículos, dicha fusión no puede llevarse a cabo, y dado que ya no tenemos más posibles fusiones, la ejecución termina aquí Datos de salida La solución que obtenemos es entonces la mostrada en la figura

31 Figura 3.11: Solución final. Ruta 1: Coste:11 Demanda: 18 Secuencia: Ruta 2: Coste: 10 Demanda: 20 Secuencia: Mejoras mediante búsquedas locales En este punto hablamos sobre las mejoras implementadas en la aplicación, y que pueden ser usadas conjuntamente o por separado, para mejorar las soluciones proporcionados por el algoritmo de Ahorros de Clarke & Wright. Una vez que se tiene una solución para el problema, se puede intentar mejorarla mediante algún procedimiento de búsqueda local. Para cada solución s se define un conjunto de soluciones vecinas N(s). Un procedimiento de Búsqueda Local parte de una solución s, la reemplaza por una solución s* N s de menor costo y repite el procedimiento hasta que la solución no pueda ser mejorada. Al terminar, se obtiene una solución localmente óptima respecto a la definición de la vecindad. Para obtener s puede buscarse la mejor solución de N(s) (estrategia best improvement) o simplemente tomar la primera solución de N(s) que mejore el costo (estrategia first improvement). Usualmente se define N(s) como las soluciones que pueden obtenerse aplicando a s alguna regla o procedimiento sencillo que consiste en intercambiar los arcos de la solución. Estos intercambios para el CVRP pueden clasificarse en intercambios de una ruta e intercambios multi-ruta. En los intercambios de una ruta los clientes que se visitan no cambian después de la aplicación del operador, lo que varía es el orden en que se realizan las visitas. En los intercambios multi-ruta, además de cambios en el orden de las visitas suele modificarse el conjunto de clientes visitados en cada ruta. 31

32 Optimización 2-Opt Este método intenta obtener una mejor solución para una ruta dada. Básicamente, lo que se pretende lograr con este algoritmo de optimización es la eliminación de cruces entro los arcos que unen los puntos de una ruta. Para ello, elimina dos arcos de la ruta e intenta reconectarlos de la mejor manera posible, tal y como se muestra en la siguiente figura Figura 3.12: 2-Opt. En la parte izquierda de la figura 3.12, tenemos la ruta original con los dos arcos, que intentan ser optimizados, marcados. En la parte derecha tenemos una solución alternativa, que podría resultar mejor. Para ser más concretos, este algoritmo funciona de la siguiente manera. Sean dos arcos de una misma ruta, cuyos puntos son (i, i + 1) y (j, j + 1), tal que i < j, con unos costes asociados c i, i 1 y c j, j 1 y con un conjunto de arcos entre ambos arcos llamado P, tal y como se muestra en la figura

33 Figura 3.13: Estado inicial. Si se da la condición de que el coste del camino desde i hasta j + 1 es mayor que el coste desde i a j, más el coste del conjunto de arcos P en dirección contraria, y más el coste desde i + 1 hasta j + P c i,i 1 c j, j 1 c ij c j 1,i 1 P en dirección contraria, entonces hemos 1, o lo que es lo mismo, encontrado un camino más óptimo que el que teníamos en la solución actual,. Por tanto deberemos eliminar los arcos (i, i + 1) y (j, j + 1) y sustituirlos por los arcos (i, j) e (i + 1, j + 1) teniendo en cuenta que debemos invertir el sentido en el conjunto de arcos que van desde i + 1 hasta j, (es decir, P ), tal y como se muestra en la figura Figura 3.14: Después de optimizar. Esta operación se debe repetir para cada par de arcos que contenga la ruta, teniendo en cuenta que i debe ser menor que j, hasta que no se puedan realizar más intercambios en la solución en estudio. Este algoritmo se ejecuta tras cada iteración del algoritmo de Ahorros de Clarke & Wright, con lo que logramos que cada vez que se fusionan dos rutas, consigamos un mejor camino entre los puntos, en el caso de que sea posible. La complejidad de este algoritmo es O n2. 33

34 Optimización 3-Opt Este algoritmo, al igual que el anterior, intenta encontrar una mejor ruta entre un conjunto de puntos dados. Su objetivo es similar también al algoritmo 2-Opt, aunque en este caso se trata de un algoritmo un poco más complejo, ya que las operaciones en lugar de hacerlas con dos arcos, se llevan a cabo con tres arcos simultáneamente. Por tanto, lo que hace este algoritmo es eliminar tres arcos e intentar buscar un camino más óptimo reconectándolos de manera alternativa, tal y como podemos ver en la figura Figura 3.15: 3-Opt. El dibujo en la izquierda de la figura 3.15 sería la ruta hallada por el algoritmo de Ahorros, ruta actual, mientras que los dos siguientes dibujos vendrían a ser posibles alternativas al camino obtenido, y que podrían resultar mejor que el primero. Por tanto, la operación a realizar para encontrar caminos alternativos es la siguiente. Dados tres arcos cuyos puntos son (i,i +1), (j, j +1) y (k, k + 1), tal que i < j < k, con unos costes asociados c i, i 1, c j, j 1 y c k, k 1, tal y como se puede ver en la figura

35 Figura 3.16: Estado inicial. Si se da la condición de que la suma de los costes de los tres arcos que estamos tratando de optimizar es mayor que la suma del coste del arco que va de i a j + 1, más el coste del arco que va de j a k + 1, y más el coste del arco que va de k a i + 1, o lo que es lo mismo, c i, i 1 c j, j 1 c k,k 1 c i, j 1 c j,k 1 c k,i 1 entonces hemos encontrado un camino mejor que el que teníamos en la solución actual. Por tanto deberemos eliminar los arcos (i, i + 1), (j, j + 1) y (k, k + 1), y sustituirlos por los arcos (i, j + 1), (j, k + 1) y (k, i + 1) teniendo en cuenta que en este algoritmo no tenemos que cambiar el sentido a ningún camino entre estos arcos, tal y como pasaba en el algoritmo anterior, ver figura

36 Figura 3.17: Después de la optimización. Esta operación se debe repetir para todos los arcos del camino en estudio, teniendo en cuenta que i debe ser menor que j y j debe ser menor que k, y hasta que no se puedan realizar más intercambios en el camino en estudio. Al igual que el algoritmo anterior (2-Opt), éste se ejecuta también tras cada iteración del algoritmo de Ahorros de Clarke & Wright, con lo que logramos que cada vez que se fusionan dos rutas, consigamos un mejor camino entre los puntos, en el caso de que sea posible. En este caso el algoritmo tiene una complejidad O n Optimización factorial Este algoritmo, a diferencia de los dos anteriores, no trata de encontrar una mejor ruta sino que encuentra la ruta más óptima para un conjunto de puntos dados. Su objetivo es el de encontrar la mejor ruta que une todos los puntos pertenecientes a la ruta pasada. Para ello, lo que el algoritmo hace es comprobar una por una cada una de las posibles soluciones al problema, es decir, comprueba cada uno de los posibles caminos que unen todos los puntos. 36

37 Figura 3.18: Optimización Factorial. En la figura 3.18 vemos un ejemplo de esta optimización. El primer dibujo sería la ruta que se le ha facilitado al algoritmo, mientras que el resto de dibujos son el resto de posibles rutas, y que este algoritmo calcula para encontrar la de menor coste. La operación para encontrar caminos alternativos en este algoritmo es la siguiente. Al algoritmo se le pasa la lista de puntos que forman la ruta que se quiere optimizar, y éste mediante llamadas recursivas construye todas las posibilidades pero de manera que no se puedan repetir puntos en la solución actual, es decir, la primera solución que hallará será en el orden que se le suministre la lista de puntos. Una vez tiene todos los puntos en una posible solución, comprueba si es la mejor solución alcanzada y si es así entonces la almacena por si llega a ser la más óptima. En estos cálculos los puntos de salida y llegada sólo se tienen en cuenta al calcular el coste de la ruta, ya que estos puntos tienen un papel que es permanente y de ahí que no entren en las posibles permutaciones. La complejidad de este algoritmo es por tanto O n!. Dada la carga computacional que esto supone, en un principio optamos por que esta optimización sólo se ejecutase con conjuntos de puntos de poco tamaño (n < 8 puntos), pero finalmente se dejó la elección de ese parámetro al propio usuario, el cual puede modificarla en cualquier momento. Este tipo de optimización se engloba dentro de los denominados métodos exactos. En este tipo de metodologías, suele resolverse alguna relajación del problema y utilizarse un esquema de ramificación y acotamiento al estilo del método Branch and Bound [10]. También se han propuesto algoritmos basados en Programación Dinámica que aceleran los cálculos mediante una relajación del espacio de estados. Por otro lado, hay diversas implementaciones del método de Generación de Columnas, que han resultado especialmente efectivas para problemas con ventanas de tiempo muy ajustados. Para un completo compendio de métodos exactos para problemas de enrutamiento de vehículos, puede consultarse los trabajos de Laporte y Norbert [11] y de Laporte [12]. 37

38 4. Manual de la aplicación 4.1. Formatos de archivos XML Esta aplicación utiliza varios formatos de archivos según la opción escogida. Estos formatos se diferencian entre sí en que se les va añadiendo información adicional según se va tratando el problema. A continuación se describen estos formatos en el orden natural en el que se va añadiendo dicha información adicional. Formato 1 Este formato es el que se carga en la interfaz de mapa digital para que ésta muestre una serie de puntos en dicho mapa. La estructura viene a ser la mostrada a continuación: <markers> <marker lat=" " lng=" " postal="camino del Medio, Spain" com="" list="" type="salida" label="0" /> <marker lat=" " lng=" " postal="av Astrofisico Francisco Sanchez, San Cristóbal de la Laguna, Spain" com="" list="3-5" type="parada" label="1" /> <marker lat=" " lng=" " postal="calle Leocadio Machado, San Cristóbal de la Laguna, Spain" com="" list="3-7" type="parada" label="2" /> <marker lat=" " lng=" " postal="av de la República de Venezuela, San Cristóbal de la Laguna, Spain" com="" list="" type="llegada" label="3" /> </markers> En este formato cada uno de los elementos marker representan un punto en el mapa, y el significado de sus campos es el siguiente: lat: Indica la latitud del punto en cuestión. lng: Indica la longitud del punto en cuestión. postal: Indica la dirección postal asignada al punto. com: Contiene un comentario aclaratorio para el punto en cuestión. list: Contiene una lista de cero o más elementos que representa según el tipo de nodo lo siguiente: Salida: no se tiene en cuenta, ya que en la salida no se recogen alumnos. 38

39 Parada: contiene una lista donde cada elemento consta de dos valores separados por un guión, el primer valor es la etiqueta de uno de los puntos de llegada, y el segundo valor la cantidad de alumnos que se dirigen a ese destino (destino-alumnos). Llegada: no se tiene en cuenta, ya que en la llegada se descargan los vehículos. type: Indica el tipo del punto en cuestión. Los diferentes tipos son: Salida: cuando queremos indicar que este punto es el inicio de la ruta. Parada: cuando queremos indicar que este es uno de los puntos por donde debemos pasar. Llegada: cuando queremos indicar que este punto es el final de la ruta. label: Indica el número identificador de referencia (código) asociado al punto. Es un número irrepetible (único) dentro de este archivo XML, y será usado para definir rutas. Formato 2 Este formato es el que obtenemos una vez hemos calculado la matriz de distancias para los puntos del problema. La estructura viene a ser la misma que la del formato 1 pero añadiendo la información referente a la matriz de distancias, y es como sigue: <markers> <!-- Tabla generada el 23/1/2008 a las 16:55 horas --> <distances length="4"> <row label= 0 elements="0,520,1011,568"/> <row label= 1 elements="491,0,809,685"/> <row label= 2 elements="1496,812,0,637"/> <row label= 3 elements="859,685,637,0"/> </distances> <marker lat=" " lng=" " postal="camino del Medio, Spain" com="" list="" type="salida" label="0" /> <marker lat=" " lng=" " postal="av Astrofisico Francisco Sanchez, San Cristóbal de la Laguna, Spain" com="" list="3-5" type="parada" label="1" /> <marker lat=" " lng=" " postal="calle Leocadio Machado, San Cristóbal de la Laguna, Spain" com="" list="3-7" type="parada" label="2" /> <marker lat=" " lng=" " postal="av de la República de Venezuela, San Cristóbal de la Laguna, Spain" com="" list="" type="llegada" label="3" /> </markers> 39

40 A este nuevo formato se le añade lo que viene comprendido entre las etiquetas distances, y donde cada elemento row representa una fila en la matriz de distancias de un problema, siendo label una referencia al punto al que pertenecen esas distancias y elements dichas distancias. Esta matriz no tiene que ser simétrica, ya que hay calles con sentido de circulación único. Nota: Éste es el fichero de entrada para el botón Abrir del programa principal. Formato 3 Este formato es el que obtenemos una vez hemos calculado una solución al problema planteado, es decir, la estructura es similar a la anterior pero añadiendo unos nuevos elementos que nos indican la o las rutas resultantes de los problemas, quedándonos por tanto: <markers> <routes> <route problem= 0 points="0,4,2,1,3"/> </routes> <distances length="5"> <row label= 0 elements="0,429,762,1176,656"/> <row label= 1 elements="282,0,333,771,680"/> <row label= 2 elements="615,333,0,438,1014"/> <row label= 3 elements="874,771,438,0,938"/> <row label= 4 elements="658,680,1014,683,0"/> </distances> <marker lat=" " lng=" " postal="calle Marcelino Perdomo Reyes, San Cristóbal de la Laguna, Spain" com="" list="" type="salida" label="0"/> <marker lat=" " lng=" " postal="av de la República de Venezuela, San Cristóbal de la Laguna, Spain" com="" list="3-5" type="parada" label="1"/> <marker lat=" " lng=" " postal="av de Bartolomé Cairasco, San Cristóbal de la Laguna, Spain" com="" list="3-7" type="parada" label="2"/> <marker lat=" " lng=" " postal="av Astrofisico Francisco Sanchez, San Cristóbal de la Laguna, Spain" com="" list="" type="llegada" label="3"/> <marker lat=" " lng=" " postal="calle Leocadio Machado, San Cristóbal de la Laguna, Spain" com="" list="3-4" type="parada" label="4"/> </markers> 40

41 En este nuevo formato se añade, con respecto a los anteriores, lo que está comprendido entre las etiquetas routes, y donde cada uno de sus elementos route nos indica la ruta mediante una secuencia de puntos a seguir. Contiene un atributo problem que indica a que problema pertenece de los que tenemos en el archivo XML, y un atributo points que indica los puntos que pertenecen a la ruta en cuestión mediante la etiqueta label que se encuentra dentro de este archivo XML. Nota: Éste es el fichero que se obtiene al usar el botón Guardar de la parte de la aplicación que calcula las rutas Pantalla principal La pantalla principal de la aplicación consta de tres partes bien diferenciadas, ver figura 4.1. Figura 4.1: Pantalla principal. La primera de las partes corresponde a la toolbar. En ella encontramos opciones generales y de navegación por la aplicación, como pueden ser las optimizaciones que queremos utilizar, un acceso directo a la ayuda,... Esto se explicará a continuación. La segunda parte contiene las dos funciones principales de la aplicación. Por un lado el acceso a la parte que nos muestra la interfaz del mapa digital, y por otra el acceso que nos lleva a la pantalla de resolución de problemas de cálculo de rutas. Estas dos partes se describen más adelante. La tercera parte viene a ser una pequeña ayuda que nos va indicando en cada momento las opciones que tenemos disponibles para realizar, y lograr de esta forma que la interfaz (además de ser sencilla) sea también clara. ToolBar Tal y como se dijo anteriormente, en esta zona se encuentran las opciones que se pueden considerar más generales de la aplicación. Las opciones que tenemos disponibles de izquierda a derecha son las siguientes: 41

42 Pantalla Principal: Nos permite volver a la pantalla principal. En el caso de haber abierto un archivo XML, nos dará la posibilidad de resolver otro problema de ese mismo archivo o volver a la pantalla principal. Opciones: Esta opción nos permite especificar las optimizaciones que queremos utilizar en el algoritmo de Ahorros de Clark & Wright. Las posibles optimizaciones que tenemos son: la 2-Opt, la 3-Opt y la optimización factorial, a la cual se le puede especificar el número máximo del conjunto de puntos al que se le debe ejecutar dicha optimización. Es recomendable que dicho parámetro no sea excesivamente grande ya que esto implicaría un número mayor de operaciones a realizar con la consecuente ralentización de la ejecución del algoritmo. Por defecto, están todas las optimizaciones habilitadas y el valor para la optimización factorial es de 8, como se puede ver en la siguiente figura. También nos permite especificar una semilla para el generador aleatorio de problemas (por defecto se usa la hora del ordenador, lo que no permite repetir la generación consecutiva de un mismo problema). Ayuda: Nos permite acceder a la ayuda del programa. En ella se explican todas las opciones básicas de la aplicación de manera más simplificada que en este capítulo. También contiene una breve descripción de los formatos de archivos XML utilizados por la aplicación. En concreto, el contenido de esta ayuda es: Acerca de: Contiene información básica de la aplicación, como puede ser el autor o la versión actual. 42

43 4.3. Interfaz del mapa digital Esta interfaz se encuentra a su vez dividida en dos partes. En la parte superior tenemos el mapa digital junto con todas las operaciones o informaciones relacionadas con éste. En la parte inferior disponemos de un sencillo editor XML, que nos permite interactuar con el mapa digital en modo texto, es decir, nos permite modificar la información que está mostrando el mapa actualmente. Estas dos partes se pueden observar en las figuras 4.3 y 4.4. Figura 4.3: Parte del Mapa Digital. Figura 4.4: Parte del Editor XML. También se dispone de un menú superior, en el que se engloban algunas opciones dependiendo de si afectan al mapa digital o al editor XML. 43

44 Mapa digital (Parte Superior) Esta sección esta dividida a su vez en dos zonas. A la izquierda tenemos un panel donde en su parte superior se nos muestran datos correspondientes a las opciones elegidas en el apartado del menú superior que engloba las operaciones a realizar sobre el mapa, como pueden ser campos a rellenar, acciones a realizar,... A la derecha tenemos el propio mapa digital. Menú general Las opciones que podemos encontrar en este menú son las que están relacionadas con la información que tenemos cargada en el mapa digital en un momento dado. Estas opciones son las que se muestran en la figura 4.5. Figura 4.5: Opciones del menú superior para el mapa digital. A continuación, pasamos a describir cada una de ellas. Copiar a XML La finalidad de esta opción es pasar todos los puntos que actualmente tenemos creados en el mapa digital a formato XML, para a continuación mostrarlos a través del editor XML situado en la parte inferior de la pantalla. Hay que tener en cuenta que con esta opción, los datos que tengamos en el editor XML en ese momento serán borrados para añadir los datos procedentes del mapa digital. Añadir a XML El objetivo de esta opción es muy similar a la explicada en el apartado anterior, es decir, pasa todos los puntos que actualmente tenemos creados en el mapa digital a formato XML, para a continuación mostrarlos a través del editor XML situado en la parte inferior de la pantalla. En este caso los datos que puede haber en ese momento en el editor XML no serán borrados, sino que los nuevos datos procedentes del mapa digital se añadirán a los ya existentes en el editor XML. Como consecuencia puede suceder que una misma localización aparezca dos veces en el XML cuando se trate de un punto en el mapa que ya estaba en el XML. La herramienta controla esto internamente para evitar duplicidades, pero pequeñísimas discrepancias pueden ser clasificadas como puntos diferentes cuando son un mismo punto, o a un mismo punto cuando son dos, y en estos casos se visualiza un mensaje. 44

45 Fijar Punto La finalidad de esta opción es la de crear un punto en el mapa por medio de su dirección postal. Para ello, una vez que seleccionamos la opción, en el panel Opciones se mostrarán una serie de campos, tal y como se puede ver en la figura 4.6. Figura 4.6: Fijar Punto. Los campos a rellenar para realizar la operación son: Municipio: Se especifica el municipio de la localización donde se quiere fijar el punto. Por ejemplo: San Cristóbal de La Laguna. Calle: Se especifica la calle de la localización donde se quiere fijar el punto. Por ejemplo: Heraclio Sánchez. Número: Se especifica el número de la localización donde se quiere fijar el punto. Por ejemplo: 5. Hay que tener en cuenta que cuanto más completa sea la información con la que se rellenan los campos, se tendrá una mayor probabilidad de encontrar la dirección deseada. Por ejemplo, no es lo mismo simplemente poner como municipio La Laguna que poner San Cristóbal de La Laguna. Se debe tener precaución con la información suministrada si no se quiere obtener un resultado erróneo. Ruta entre dos puntos Esta opción nos permite visualizar un posible camino entre dos puntos de los que tenemos fijados en el mapa. 45

46 Su modo de empleo es como sigue. Una vez hemos elegido esta opción, se nos mostrará en el panel Opciones la figura 4.7. Figura 4.7: Ruta entre dos puntos. El primer paso tras ver estas indicaciones es escoger un color de entre los posibles. Este color será el de la ruta dibujada entre los dos puntos que se escogerán. El segundo paso es escoger los puntos entre los que queremos que se visualice la ruta. Para ello, basta con simplemente hacer click en el primer punto, con lo que en el panel Opciones veremos el contenido de la figura 4.8, y una vez hecho esto hacer nuevamente click sobre el punto que queremos que sea el final de la ruta. Figura 4.8: Ruta entre dos puntos (2). Una vez realizados estos pasos deberemos obtener un resultado en el mapa digital similar al de la figura 4.9. Figura 4.9: Ruta entre dos puntos (3). En el panel Opciones tendremos la posibilidad de borrar las rutas que tenemos dibujadas en el mapa, ver figura

47 Figura 4.10: Ruta entre dos puntos (4). Otra posibilidad para borrar las rutas pero de manera individual es haciendo click sobre ellas. Si lo hacemos se nos mostrará un botón en el panel Info que nos permite borrar dicha ruta. Matriz de distancias Esta opción nos permite calcular la matriz de distancias entre todos los puntos que pertenecen a un problema determinado. Para ello, una vez hemos escogido esta opción se nos solicita escoger, en el panel Opciones, uno o más pares de puntos salida-llegada para calcular una o más matrices. Mediante el botón Añadir Matriz introducimos las matrices de distancias que queremos hallar. Y una vez tenemos introducida alguna se habilita el botón Iniciar Cálculo de Matrices, el cual una vez se ejecuta nos muestra en el panel Opciones un mensaje de espera y una barra de progreso en la cual se nos indica el tanto por ciento de la operación a realizar, y el tiempo estimado para su finalización en cada una de las matrices que se quieren calcular, como en la figura

48 Figura 4.11: Matriz de distancias. Durante el proceso de la obtención de las diferentes distancias no se debe hacer ninguna otra operación. Se debe esperar hasta que éste finalice. El proceso puede tardar hasta horas dependiendo del número de localizaciones y de la velocidad de la conexión a internet. Importante: Una vez haya acabado de calcular la matriz de distancias, se cargará en el editor XML una estructura XML con la que crearemos un fichero para guardar a disco, y de este modo nos servirá como entrada para la parte de la aplicación donde se resuelven los problemas de cálculo de ruta, ver figura Figura 4.12: Fichero XML con matriz de distancias. Debido a la limitación impuesta que supone el uso de la API de Google Maps de forma gratuita, no se puede realizar un número excesivamente rápido de peticiones a sus servidores. En concreto, Google permite a los usuarios de su API para Google Maps gratuita una petición a sus servidores cada 8,64 segundos, lo que nos permite realizar unas peticiones a sus servidores al día. Para intentar clarificar esto, supongamos que tenemos un problema que contiene 100 puntos. Si queremos calcular la matriz de distancias, tendremos que calcular 100 x 100 distancias, o lo que es lo mismo, deberemos realizar peticiones a los servidores de Google Maps. Si tenemos en cuenta que el tiempo necesario para petición es de 8,64 segundos, entonces el tiempo que nos tomará calcular la matriz de distancias es de x 8,46 = segundos, y si lo pasamos a horas 23 horas y media. Por lo que este proceso implica prácticamente 1 día. 48

49 Dibujar Ruta Esta opción nos permite que una vez obtenida una solución, mediante el calculador de rutas de la aplicación, a uno o varios problemas de rutas planteados dibujarlo en el mapa digital. Para ello, una vez hemos ejecutado la opción se nos invita a escoger el fichero XML en el cual hemos almacenado la solución del problema en cuestión, ver figura Figura 4.13: Escoger fichero con rutas. Tras escoger el archivo donde tenemos una o más soluciones y presionar el botón Aceptar, en el caso de tener información previamente cargada en el mapa, se nos preguntará si queremos conservarla o eliminarla antes de cargar la solución. Una vez hemos respondido la pregunta anterior, se nos permitirá elegir en el panel de Opciones que soluciones de las que contiene el archivo XML queremos dibujar en el mapa. Para ello, debemos añadir una o más soluciones mediante el botón Añadir Ruta, y una vez hecho esto se habilitará el botón Dibujar Rutas, que tal y como su nombre indica dibujará las soluciones escogidas en el mapa. Una vez hecho lo anterior deberemos esperar a que se terminen de dibujar todas las rutas que componen la solución, por lo que tenemos que esperar a que la aplicación así lo indique mediante un mensaje que se mostrará al usuario. A continuación, se nos mostrará en el panel de Opciones la posibilidad de limpiar completamente el mapa de las rutas dibujadas, aunque tal y como ya se mencionó en la opción de rutas entre dos puntos, estas rutas pueden ser borradas manualmente haciendo click sobre ellas. 49

50 El resultado que se debe obtener una vez acabado el proceso debe ser similar al de la figura Figura 4.14: Rutas dibujadas sobre mapa digital. Panel izquierdo (Opciones e Info) Este panel situado a la izquierda del mapa digital tiene la función de apoyar las operaciones a realizar sobre éste, aunque también algunas relacionadas con el editor XML, y que serán descritas más adelante. Está dividido en dos subpaneles. En la parte superior tenemos el panel Opciones, que ya ha sido ampliamente descrito en punto anterior, y su función principal es la de indicar las instrucciones para realizar las operaciones del menú sobre el mapa digital o sobre el editor XML. En la parte inferior, nos encontramos con el subpanel Info cuya funcional principal, tal y como su nombre indica, es la de proporcionar información. En concreto, la información que muestra este panel esta relacionada con los puntos fijados en el mapa de la siguiente manera: 50

51 Cuando hacemos click en un punto que tenemos fijado en el mapa digital, se abre una ventana sobre ese punto como la mostrada en la figura Figura 4.15: Ventana de los puntos. En esa ventana podemos observar que tenemos varios campos bien diferenciados. En la parte superior, tenemos lo que vendría a ser la dirección postal donde tenemos fijado el punto. Justo debajo, las geocoordenadas del punto y su identificador. Luego tenemos un cuadro llamado Comentario cuya función es la de tener textos que sirvan de información adicional para el punto (por ejemplo en la figura 4.15 estamos indicando el número de la parada que se le asignó a ese punto). Y por último, tenemos otro cuadro llamado Demandas en el cual podemos tener una lista de pares de números (por ejemplo para nuestro problema podría tratarse del numero de alumnos a recoger en dicho punto, y podrían ser 12 alumnos a la parada 2 y 14 alumnos a la parada 3 como podemos ver también en la figura 4.15). Independientemente de los campos antes descritos, contamos con un botón Borrar, el cual permite borrar el punto del mapa digital. Una vez explicada la información que tiene asociada cada punto, podemos pasar a explicar en profundidad la función que tiene el panel Info. 51

52 Cada vez que se hace click sobre un punto, a parte de mostrarse la ventana anteriormente descrita, en el panel Info se cargan todos los datos referentes a ese punto, como se muestra en la figura Figura 4.16: Panel Info. Este panel se encarga de leer la información que se puede ver en la ventana del punto junto con alguna adicional, y nos da la posibilidad de modificarla como queramos, es decir, añadir datos a la dirección o modificarla, añadir comentarios, cantidades a la lista de demandas,... En concreto los campos que contiene este panel Info son los siguientes: Dirección: Contiene la dirección donde ha sido fijado el punto. Comentario: Contiene comentarios aclaratorios sobre el punto. Añadir Demandas: Da la posibilidad de añadir o modificar elementos de la lista de demandas. Si se desea añadir un elemento, bastará con seleccionar el campo nuevo, escoger el destino de la ruta, escribir una cantidad en el recuadro alumnos y presionar el botón Guardar. En el caso de querer modificar, la operación a realizar es similar, salvo que en lugar de nuevo, deberemos especificar la posición de la lista que queremos modificar. 52

53 Eliminar Demandas: En el caso de querer eliminar una demanda, deberemos seleccionar la posición a eliminar y presionar el botón Borrar. Tipo: En este campo podemos modificar el tipo asignado al punto, estos tipos pueden ser Salida, Parada y Llegada, por defecto al crear un punto el tipo asignado es el de Parada. Para cambiar entre los distintos tipo basta con seleccionar uno en la lista y presionar el botón Cambiar. Hay que tener en cuenta que para que los cambios realizados sean permanentes, se debe utilizar el botón Guardar de cada una de las secciones del panel Info, de otro modo algunos campos de la información del punto no serán actualizados. Nótese que cada localización tiene además una referencia interna label que no es modificable por que es un contador interno. Tampoco se muestran los campos de las geocoordenadas en este panel pero pueden ser modificados moviendo el punto arrastrándolo con el cursor del ratón, explicado más adelante. Mapa digital El mapa digital cuenta con varios controles que nos permiten realizar operaciones sobre él de forma directa. Zoom y movimientos El primero de ellos se encuentra en la parte izquierda del mismo, y no permite movernos por el mapa en cualquier dirección o realizar zoom sobre la zona centrada actualmente, ver figura Figura 4.17: Control para el movimiento y el zoom. 53

54 Tipos de mapas También se dispone en la parte superior derecha del mapa de otro control, el cual nos permite visualizar los distintos tipos de mapas facilitados por Google Maps. Los diferentes tipos de mapas son tres. El primero de ellos es un mapa como los que habitualmente se tienen, mediante dibujos, ver figura En este tipo de mapas se dispone de gran cantidad de información. Figura 4.18: Mapa normal. La segunda opción disponible es la de visualizar imágenes que provienen directamente de las tomadas por un satélite, o en ocasiones por un avión que vuela a grandes alturas, ver figura En este otro tipo, no se dispone de tanta información escrita como en el anterior pero al tratarse de imágenes reales, la información visual es mucho mayor. Figura 4.19: Mapa por satélite. Por último, tenemos lo que sería una versión híbrida de los dos mapas anteriores, en la que podemos ver toda la información que era mostrada en el primer tipo de mapa situada encima de las imágenes proporcionadas por los satélites. Por tanto podemos decir que este último tipo contiene las ventajas de los dos anteriores: por un lado contiene mucha información escrita, y por otro también cuenta con la información visual gracias a las imágenes reales, ver figura

55 Figura 4.20: Mapa híbrido. Menú popup También está disponible un menú que se muestra utilizando el botón derecho del ratón, ver figura Figura 4.21: Menú Popup. Las operaciones que se pueden realizar desde este menú son las siguientes: Acercarse: nos permite aumentar el zoom en el mapa. Alejarse: nos permite disminuir el zoom en el mapa. Centrar mapa aquí: nos permite centrar el mapa en el punto donde se haya hecho click para mostrar este menú. Poner marca aquí: nos permite fijar un punto donde se haya hecho click para mostrar este menú. Con esta opción, si el punto se fija en un lugar conocido se le añade la dirección por defecto del lugar, que puede ser modificada luego, tal y como se mencionó en el apartado del panel Info. 55

56 Cabe destacar, que aunque estas opciones se parezcan al primer control descrito en este punto, no es así, ya que mientras que los controles anteriores están orientados al punto donde se encuentra centrado el mapa, estas opciones están orientadas al punto donde se encuentra el cursor. Con este control logramos simplificar algunas operaciones al usuario de la aplicación. Puntos Aunque ya se han mencionado prácticamente todas las características de ellos en los anteriores puntos, falta una característica por describir. Esta característica es la que nos da la posibilidad de mover los puntos por el mapa. Para ello, basta con mantener el botón del ratón pulsado sobre uno de los puntos que tenemos fijados en el mapa, y sin soltar el botón de ratón moverlo hacia la posición que deseamos. Conviene tener presente que cuando cambiamos la localización de un punto, si llega a modificarse la dirección que actualmente contiene por otra, la aplicación nos mostrará un mensaje de advertencia y nos permitirá decidir si conservar la dirección postal que tenía o cambiarla por la nueva dirección. Ver figura Figura 4.22: Mensaje de advertencia Editor XML (Parte Inferior) En esta segunda zona, tal y como comentamos anteriormente, contamos con un sencillo editor para los archivos XML de la aplicación, para lo cual se cuenta con algunas opciones básicas como pueden ser: cortar, copiar, pegar,... También se cuenta con unas cuantas opciones que se pueden realizar desde el menú general, en la parte superior de la interfaz. Menú general Las opciones que podemos encontrar en este menú son las que están relacionadas con la información que tenemos cargada en el editor XML en un momento dado. Estas opciones son las que se muestran en la figura

57 Figura 4.23: Menú Archivo XML. A continuación pasamos a describir cada una de ellas. Copiar a mapa La finalidad de esta opción es pasar todos los puntos que actualmente tenemos cargados en el editor XML al mapa digital. Para ello, se deberá leer el contenido del editor XML y a continuación crear los puntos con los atributos que tienen cada uno de los elementos de la estructura XML en el mapa digital situado en la parte superior de la pantalla. Hay que tener en cuenta que con esta opción los datos que tengamos en el mapa digital en ese momento serán borrados para añadir los datos procedentes del editor XML. Añadir a mapa El objetivo de esta opción es muy similar a la explicada en el apartado anterior, es decir, lee todos los puntos que actualmente tenemos cargados en el editor XML, para a continuación crear por cada uno de los elementos de la estructura XML un punto en el mapa digital, teniendo en cuenta los atributos de dicho elemento del XML. Aunque en este caso tenemos la particularidad de que los puntos que puede haber en ese momento en el mapa digital no serán borrados, sino que los nuevos puntos procedentes del editor XML se añadirán a los ya existentes en el mapa digital. Abrir archivo Esta opción del menú nos permite cargar el contenido de archivos XML de nuestra aplicación que tenemos almacenados en nuestro disco duro. Para ello, una vez escogida la opción se nos muestra en el panel Opciones un diálogo para escoger el archivo que queremos cargar en el editor XML. Ver figura Figura 4.24: Abrir archivo. Una vez escogido el archivo XML que queremos cargar bastará con presionar el botón Aceptar, y tendremos la información del archivo cargada en el editor XML. 57

58 Hay que destacar que con esta opción si no se dispone de ningún punto creado en el mapa digital, se cargan los datos simultáneamente en el editor XML y en el mapa digital. Esto se indica en el panel Opciones una vez se ha terminado la operación con éxito. Ver figura Figura 4.25: Cargado (1). Si se da el caso de que ya hay puntos creados en el mapa digital, entonces la aplicación sólo cargará el contenido de dicho archivo XML en el editor XML, indicándolo con el siguiente mensaje en el panel Opciones, ver figura Figura 4.26: Cargado (2). Nota: En el caso de que se esté usando el Microsoft Internet Explorar 6 o superior se mostrará un mensaje de advertencia (ver figura 4.27) debido al hecho de que por defecto, este navegador no es capaz de cargar los archivos XML desde el disco duro como consecuencia de las políticas de seguridad que tiene. Por lo que para resolver este problema hay que dirigirse al menú Herramientas, luego a Opciones de internet, pestaña de Opciones avanzadas, y en la parte de seguridad deshabilitar la opción Habilitar compatibilidad con XMLHTTP nativo. Figura 4.27: Mensaje advertencia. Editor de texto Tal y como se ha dicho anteriormente, la aplicación posee un sencillo editor de texto que nos permite realizar cambios en los datos actualmente cargados y reflejar dichos cambios en el propio mapa digital. Este editor podemos dividirlo en dos partes. En la parte superior tenemos un pequeño menú que contiene algunas opciones básicas, mientras que en la parte inferior tenemos el área de texto donde será cargado el contenido de los archivos XML. 58

Resumen de la Tesina. Autor: Adrià Batet López. Tutor: Víctor Pascual Ayats

Resumen de la Tesina. Autor: Adrià Batet López. Tutor: Víctor Pascual Ayats Inventario y geolocalización de las actividades comerciales en las plantas bajas de los edificios de L Hospitalet de Llobregat. Aplicación web de recursos para el ciudadano. Resumen de la Tesina. Autor:

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

Sistemas de Información Geográficos (SIG o GIS)

Sistemas de Información Geográficos (SIG o GIS) Sistemas de Información Geográficos (SIG o GIS) 1) Qué es un SIG GIS? 2) Para qué sirven? 3) Tipos de datos 4) Cómo trabaja? 5) Modelos de datos, Diseño Conceptual 6) GeoDataase (GD) 7) Cómo evaluamos

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

La Tecnología líder en Simulación

La Tecnología líder en Simulación La Tecnología líder en Simulación El software de simulación Arena, es un "seguro de vida" para las empresa: le ayuda a predecir el impacto en las organizaciones de nuevas ideas, estrategias y políticas

Más detalles

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas 1 INTRODUCCIÓN. Una visión global del proceso de creación de empresas Cuando se analiza desde una perspectiva integral el proceso de

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19

Más detalles

Microsoft Access proporciona dos métodos para crear una Base de datos.

Microsoft Access proporciona dos métodos para crear una Base de datos. Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

Prototipo de un sistema. interactivo de soporte y ayuda a los compradores de un centro. comercial de equipamiento del hogar

Prototipo de un sistema. interactivo de soporte y ayuda a los compradores de un centro. comercial de equipamiento del hogar Prototipo de un sistema interactivo de soporte y ayuda a los compradores de un centro comercial de equipamiento del hogar Chema Lizano Lacasa. Miguel Ancho Morlans. IPO1-5 INDICE 1.- Descripción general....3

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4

Más detalles

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ ELECTRÓNICA DIGITAL DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ IES TRINIDAD ARROYO DPTO. DE ELECTRÓNICA ÍNDICE ÍNDICE... 1 1. LIMITACIONES DE LOS CONTADORES ASÍNCRONOS... 2 2. CONTADORES SÍNCRONOS...

Más detalles

Creación y administración de grupos locales

Creación y administración de grupos locales Creación y administración de grupos locales Contenido Descripción general 1 Introducción a los grupos de Windows 2000 2 Grupos locales 5 Grupos locales integrados 7 Estrategia para utilizar grupos locales

Más detalles

Bases de datos en Excel

Bases de datos en Excel Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo Índice completo de la Guía Índice completo de la Guía 1. Quién debe leer esta guía? 3 2. Qué es un ERP? 7 2.2. Qué es un ERP?... 9 2.3. Cuál es el origen del ERP?... 10 2.4. ERP a medida o paquetizado?...

Más detalles

Capítulo VI. Diagramas de Entidad Relación

Capítulo VI. Diagramas de Entidad Relación Diagramas de Entidad Relación Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad... 91 1.1.- Entidad del negocio... 91 1.2.- Atributos y datos... 91 2.- Asociación de entidades...

Más detalles

Bechtle Solutions Servicios Profesionales

Bechtle Solutions Servicios Profesionales Soluciones Tecnología Bechtle Solutions Servicios Profesionales Fin del servicio de soporte técnico de Windows Server 2003 No hacer nada puede ser un riesgo BECHTLE Su especialista en informática Ahora

Más detalles

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un INSTRODUCCION Toda organización puede mejorar su manera de trabajar, lo cual significa un incremento de sus clientes y gestionar el riesgo de la mejor manera posible, reduciendo costes y mejorando la calidad

Más detalles

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables Capítulo 8 PROGRAMACIÓN LINEAL 8.1. Introducción La programación lineal es una técnica matemática relativamente reciente (siglo XX), que consiste en una serie de métodos y procedimientos que permiten resolver

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

18. Camino de datos y unidad de control

18. Camino de datos y unidad de control Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 18. Camino de datos y unidad de control Un La versatilidad una característica deseable los Los

Más detalles

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 -

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 - Graballo+ Agosto de 2007-1 - Índice Índice...2 Introducción...3 Características...4 DESCRIPCIÓN GENERAL...4 COMPONENTES Y CARACTERÍSTICAS DE LA SOLUCIÓN...5 Recepción de requerimientos...5 Atención de

Más detalles

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario 14 CORREO SEGURO. Hay aplicaciones de correo que permiten enviar y recibir correos cifrados y firmados digitalmente utilizando criptografía. Estas operaciones garantizan el intercambio seguro de información,

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

QUERCUS PRESUPUESTOS MANUAL DEL USO

QUERCUS PRESUPUESTOS MANUAL DEL USO QUERCUS PRESUPUESTOS MANUAL DEL USO 2 Tabla de Contenido 1 Introducción 1 1.1 General 1 1.1.1 Que es Quercus Presupuestos? 1 1.1.2 Interfaz 1 1.1.3 Árbol de Navegación 2 1.1.4 Estructura de Datos de un

Más detalles

AHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina 25. 28108 Alcobendas, Madrid. www.ahorracom.com

AHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina 25. 28108 Alcobendas, Madrid. www.ahorracom.com PAGTE Plan de Ahorro y Gestión de Telecomunicaciones para Empresas En Ahorracom nos ponemos de su parte. Por eso nos interesa que usted, nuestro cliente, esté al tanto de todos los procesos que llevamos

Más detalles

1.1 EL ESTUDIO TÉCNICO

1.1 EL ESTUDIO TÉCNICO 1.1 EL ESTUDIO TÉCNICO 1.1.1 Definición Un estudio técnico permite proponer y analizar las diferentes opciones tecnológicas para producir los bienes o servicios que se requieren, lo que además admite verificar

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

Más detalles

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA

Más detalles

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...

Más detalles

MANUAL COPIAS DE SEGURIDAD

MANUAL COPIAS DE SEGURIDAD MANUAL COPIAS DE SEGURIDAD Índice de contenido Ventajas del nuevo sistema de copia de seguridad...2 Actualización de la configuración...2 Pantalla de configuración...3 Configuración de las rutas...4 Carpeta

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Actividades con GeoGebra

Actividades con GeoGebra Conectar Igualdad - "Netbooks Uno a Uno" Actividades con GeoGebra Nociones básicas, rectas Silvina Ponce Dawson Introducción. El GeoGeobra es un programa que permite explorar nociones matemáticas desde

Más detalles

Planificación en Team Foundation Server 2010

Planificación en Team Foundation Server 2010 Planificación en Team Foundation Server 2010 Planificación y Seguimientos en Proyectos Agile con Microsoft Visual Studio Team Foundation Server 2010 Dirigido a: Todos los roles implicados en un proyecto

Más detalles

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS Una situación que se nos plantea algunas veces es la de resolver un problema hacia atrás, esto es, encontrar

Más detalles

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores Martha Alicia Alles Es contadora pública nacional, doctora por la Universidad de Buenos Aires en la especialidad

Más detalles

DIAGRAMA DE GANTT. Este gráfico consiste simplemente en un sistema de coordenadas en que se indica:

DIAGRAMA DE GANTT. Este gráfico consiste simplemente en un sistema de coordenadas en que se indica: INTRODUCCION DIAGRAMA DE GANTT Diagrama de Gantt: Los cronogramas de barras o gráficos de Gantt fueron concebidos por el ingeniero norteamericano Henry L. Gantt, uno de los precursores de la ingeniería

Más detalles

Parámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE)

Parámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE) QUÉ SON CONCEPTOS PARAMÉTRICOS? Los conceptos paramétricos de Presto permiten definir de una sola vez una colección de conceptos similares a partir de los cuales se generan variantes o conceptos derivados

Más detalles

Módulo 7: Los activos de Seguridad de la Información

Módulo 7: Los activos de Seguridad de la Información Módulo 7: Los activos de Seguridad de la Información Se explica en este tema cómo deben abordarse la elaboración de un inventario de activos que recoja los principales activos de información de la organización,

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín TEMA 4: EMPEZANDO A ESCUELA UNIVERSITARIA DE INFORMÁTICA NAVEGAR Raúl Martín Martín SERVICIOS DE INTERNET SERVICIOS DE INTERNET Las posibilidades que ofrece Internet se denominan servicios. Hoy en día,

Más detalles

Novedades en Q-flow 3.02

Novedades en Q-flow 3.02 Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye

Más detalles

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica Base de Datos I Maestra: Martha E. Evangelista Salazar Introducción a los conceptos de Bases de Datos a).- Definiciones básicas sobre bases

Más detalles

Mantenimiento de Sistemas de Información

Mantenimiento de Sistemas de Información de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD

Más detalles

1.- INTRODUCCIÓN 2.- PARÁMETROS

1.- INTRODUCCIÓN 2.- PARÁMETROS 1.- INTRODUCCIÓN Hemos diseñado una aplicación que facilite el envío a las entidades bancarias de las de cobro por domiciliación. La entrada de esta aplicación pueden ser, tanto ficheros cuyos formatos

Más detalles

Introducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

Ingeniería en Informática

Ingeniería en Informática Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se

Más detalles

Internet como herramientas de comunicación: El correo electrónico

Internet como herramientas de comunicación: El correo electrónico Internet como herramientas de comunicación: El correo electrónico 1. El correo electrónico Objetivo del tema: Aprender a manejar el correo electrónico y los medios de comunicación existentes en Internet.

Más detalles

7. Conclusiones. 7.1 Resultados

7. Conclusiones. 7.1 Resultados 7. Conclusiones Una de las preguntas iniciales de este proyecto fue : Cuál es la importancia de resolver problemas NP-Completos?. Puede concluirse que el PAV como problema NP- Completo permite comprobar

Más detalles

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. DEFINICIÓN Un grafo consta de un conjunto de nodos(o vértices) y un conjunto de arcos (o aristas). Cada arco de un grafo se especifica mediante un par de nodos. Denotemos

Más detalles

5.4. Manual de usuario

5.4. Manual de usuario 5.4. Manual de usuario En esta sección se procederá a explicar cada una de las posibles acciones que puede realizar un usuario, de forma que pueda utilizar todas las funcionalidades del simulador, sin

Más detalles

ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE

ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE MARZO 2007 Este documento contesta las preguntas más frecuentes que se plantean las organizaciones que quieren

Más detalles

Guía de instalación de la carpeta Datos de IslaWin

Guía de instalación de la carpeta Datos de IslaWin Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW): INFORMÁTICA IE MÓDULO INTERNET Términos a conocer y conceptos básicos World Wide Web (WWW): Digamos, simplemente, que es un sistema de información, el sistema de información propio de Internet. Sus características

Más detalles

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama. Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

Control del Stock, aprovisionamiento y distribución a tiendas.

Control del Stock, aprovisionamiento y distribución a tiendas. Control del Stock, aprovisionamiento y distribución a tiendas. Tan importante como el volumen de ventas y su rentabilidad, el control del stock supone uno de los pilares fundamentales en el éxito de una

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

Capítulo I. Planteamiento del problema

Capítulo I. Planteamiento del problema Capítulo I. Planteamiento del problema Actualmente, cientos de instituciones educativas utilizan Sistemas gestores del aprendizaje (LMS Learning Management Systems), sin embargo, estos no fomentan el trabajo

Más detalles

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic http://geeks.ms/blogs/jorge/archive/2007/05/09/explicando-scrum-a-mi-abuela.aspx Por

Más detalles

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico Acceso al correo electrónico Pasamos ahora a lo que sería usar la cuenta de correo que nos hicimos en la clase anterior. Lo primero que hacemos es entrar en la página web de Yahoo y localizar el icono

Más detalles

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO En base a las variables mencionadas anteriormente se describirán las relaciones que existen entre cada una de ellas, y como se afectan. Dichas variables

Más detalles

Ejercicios de Programación Lineal

Ejercicios de Programación Lineal Ejercicios de Programación Lineal Investigación Operativa Ingeniería Informática, UCM Curso 8/9 Una compañía de transporte dispone de camiones con capacidad de 4 libras y de 5 camiones con capacidad de

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

APOLO GESTION INTEGRAL.

APOLO GESTION INTEGRAL. APOLO GESTION INTEGRAL. APOLO Gestión es una aplicación realizada en Visual Studio, y apoyada en una potente base de datos SQL, que le proporciona grandes ventajas a la hora de trabajar tanto sobre redes

Más detalles

Aplicación informática de Optimización de Facturas Eléctricas (O.F.E)

Aplicación informática de Optimización de Facturas Eléctricas (O.F.E) Aplicación informática de Optimización de Facturas Eléctricas (O.F.E) Contenido 1. Aspecto de la aplicación informática OFE... 3 1.1 Menú Principal.... 3 1.2 Botones de la aplicación.... 3 2. Como introducir

Más detalles

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo

Más detalles

Covarianza y coeficiente de correlación

Covarianza y coeficiente de correlación Covarianza y coeficiente de correlación Cuando analizábamos las variables unidimensionales considerábamos, entre otras medidas importantes, la media y la varianza. Ahora hemos visto que estas medidas también

Más detalles

Operación Microsoft Windows

Operación Microsoft Windows Entornos de red Concepto de red En el nivel más elemental, una red consiste en dos equipos conectados entre sí mediante un cable de forma tal que puedan compartir datos. Todas las redes, no importa lo

Más detalles

Manual de usuario para Facturación Electrónica 2011

Manual de usuario para Facturación Electrónica 2011 Contenido Manual de usuario Facturación Electrónica.... 2 Requisitos... 2 Registro de usuario.... 2 Inicio de sesión.... 4 Cerrar Sesión.... 4 Mi cuenta.... 5 Datos Personales.... 5 Información Fiscal...

Más detalles

ANEXO 26-A COMITÉ PERMANENTE DE INTERPRETACIÓN SIC N 32 ACTIVOS INTANGIBLES COSTOS DE SITIOS WEB. (Modificada en 2008) (IV Difusión)

ANEXO 26-A COMITÉ PERMANENTE DE INTERPRETACIÓN SIC N 32 ACTIVOS INTANGIBLES COSTOS DE SITIOS WEB. (Modificada en 2008) (IV Difusión) ANEXO 26-A COMITÉ PERMANENTE DE INTERPRETACIÓN SIC N 32 ACTIVOS INTANGIBLES COSTOS DE SITIOS WEB (Modificada en 2008) (IV Difusión) Interpretación SIC-32 Activos Intangibles - Costos de Sitios Web Referencias

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos: UNIDAD 8 Presentaciones Reunión. (ITE. Banco de imágenes) as presentaciones son documentos formados por una sucesión de páginas, llamadas diapositivas, que transmiten información estructurada de manera

Más detalles

UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO

UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO - 1 - UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO Tema 1: Operaciones financieras: elementos Tema 2: Capitalización y descuento simple Tema 3: Capitalización y descuento compuesto Tema

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red. Comercio electrónico. (e-commerce) Las empresas que ya están utilizando la red para hacer comercio ven como están cambiando las relaciones de la empresa con sus clientes, sus empleados, sus colaboradores

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Sistema de marketing de proximidad

Sistema de marketing de proximidad Dizan Vasquez Propuesta de proyecto Sistema de marketing de proximidad ACME México Dizan Vasquez Índice general 1. Descripción 3 2. Resúmen ejecutivo 4 2.1. Objetivo.................................................

Más detalles

Tools. Ibermática Soluciones Empresariales 2012, Todos los derechos reservados http://soluciones.ibermatica.com

Tools. Ibermática Soluciones Empresariales 2012, Todos los derechos reservados http://soluciones.ibermatica.com Tools http://soluciones.ibermatica.com La aplicación Tools Ibermática incluye 15 aplicaciones que llevan a cabo varios trabajos centrados en el diseño. Estas aplicaciones han sido desarrolladas pensando

Más detalles

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO En la actualidad la mayoría de las grandes empresas cuentan con un sin número de servicios que ofrecen a sus trabajadores y clientes. Muchos de estos servicios

Más detalles