Académique Documents
Professionnel Documents
Culture Documents
ndice
NDICE
NDICE .........................................................................................................................................3 LISTA DE FIGURAS ..................................................................................................................7 LISTA DE TABLAS ..................................................................................................................11 1 1.1 1.2 INTRODUCCIN Y OBJETIVOS DEL PROYECTO................................................13 INTRODUCCIN ...............................................................................................................13 EXTRAPOLACIN TEMPORAL DE MATRICES ORIGEN-DESTINO (O-D) ..............................15 Descripcin del viario ..........................................................................................15 Matrices origen-destino (O-D).............................................................................20 Modelos de calibracin O-D................................................................................21
Anlisis convencional................................................................................................... 21 Modelos de trfico basado en contadores ..................................................................... 22
1.2.3.1 1.2.3.2
OBJETIVOS DEL PROYECTO .............................................................................................25 MODELO DE CALIBRACIN MEDIANTE ALGORITMO DE ASIGNACIN ...28 INTRODUCCIN ...............................................................................................................28 ALGORITMO DE ASIGNACIN DE TRFICO.......................................................................29 Introduccin .........................................................................................................29 Funciones volumen-retraso y tiempo de viaje......................................................32 Las condiciones de Wardrop................................................................................33
Demanda fija ................................................................................................................ 36 Demanda variable ......................................................................................................... 37
2.2.3.1 2.2.3.2
Formulacin matemtica del modelo de equilibrio..............................................39 Caracterizacin de la funcin de equilibrio.........................................................40 Procedimiento de linealizacin de Frank-Wolfe ..................................................42 Algoritmo de Dijkstra bsico ...............................................................................50 Algoritmo de Dijkstra con montculos..................................................................54 Algoritmo de Dijkstra con giros ...........................................................................58 Algoritmo de los K caminos mnimos (K-mn) .....................................................63
MODELADO ORIENTADO A OBJETOS....................................................................63 INTRODUCCIN A UML ..................................................................................................63 Breve historia de UML .........................................................................................63 Qu es UML? Por qu usar UML? ..................................................................63 Diagramas de casos de uso ..................................................................................63
ndice
3.2.1.1 3.2.1.2 Algoritmo de calibracin basado en porcentajes .......................................................... 63 Algoritmo de calibracin basado en algoritmo K-mn.................................................. 63
3.2.2
3.2.2.1 3.2.2.2
3.2.3
3.2.4
3.2.4.1 3.2.4.2
4 4.1 4.2
DISEO DE UN MODELO DE CALIBRACIN MEDIANTE ASIGNACIN.......63 INTRODUCCIN ...............................................................................................................63 MODELO DE CALIBRACIN MEDIANTE PORCENTAJES......................................................63 Diseo del algoritmo ............................................................................................63 Ejemplo de calibracin basada en porcentajes....................................................63 Diseo del algoritmo ............................................................................................63 Ejemplo de calibracin basada en algoritmo K-mn............................................63
PROCEDIMIENTO DE MEJORA DE LA EFICIENCIA DEL ALGORITMO ...................................63 DISEO DE LA INTERFAZ GRFICA ..................................................................................63 Interfaz del algoritmo K-mn................................................................................63 Interfaz del algoritmo de calibracin...................................................................63
PRUEBAS DEL SISTEMA .............................................................................................63 PRUEBAS DE INTEGRACIN DEL ALGORITMO K-MN .......................................................63 PRUEBAS DE INTEGRACIN DE LOS ALGORITMOS DE CALIBRACIN ................................63 Prueba de calibracin basada en porcentajes .....................................................63 Prueba de calibracin basada en clculo K-mn .................................................63 Comparativa de mtodos......................................................................................63
CONCLUSIONES Y EXTENSIONES ...........................................................................63 CONCLUSIONES ..............................................................................................................63 POSIBLES EXTENSIONES ..................................................................................................63 BIBLIOGRAFA ..............................................................................................................63
ANEXO I. INFORMES GENERADOS EN LAS PRUEBAS DEL SISTEMA.....................63 1. INFORMES GENERADOS EN LA PRUEBA DE VALIDACIN DEL ALGORITMO DE CALIBRACIN
ndice
2. 3. 4.
INFORMES GENERADOS EN LA PRUEBA DE VALIDACIN DEL ALGORITMO DE CALIBRACIN INFORMACIN GENERADA DURANTE EL ALGORITMO DE CALIBRACIN BASADO EN INFORMACIN GENERADA DURANTE EL ALGORITMO DE CALIBRACIN BASADO EN
Lista de Figuras
LISTA DE FIGURAS
Figura 1.2-1. Representacin del viario......................................................................................................16 Figura 1.2-2. Tramos y Nodos....................................................................................................................18 Figura 1.2-3. Representacin de giros. .......................................................................................................19 Figura 1.2-4. Ejemplo de matriz O-D.........................................................................................................20 Figura 2.2-1. Procedimientos en el proceso de asignacin de trfico.........................................................29 Figura 2.2-2. Funcin Volumen-Retraso ....................................................................................................33 Figura 2.2-3. Solucin grfica al problema de asignacin de trfico .........................................................42 Figura 2.2-4. Algoritmo de Asignacin. Mtodo de Frank-Wolfe .............................................................45 Figura 2.2-5. Mtodo de Frank-Wolfe. Inicializacin. ...............................................................................46 Figura 2.2-6. Mtodo de Frank-Wolfe. Asignacin de viajes.....................................................................48 Figura 2.2-7. Mtodo de Frank-Wolfe. Obtener direccin de mejora ........................................................49 Figura 2.2-8. Mtodo de Frank-Wolfe. Actualizacin de Flujos................................................................49 Figura 2.3-1. Grafo del algoritmo de Dijkstra bsico .................................................................................52 Figura 2.3-2. Algoritmo de Dijkstra ...........................................................................................................53 Figura 2.3-3. Elementos de los montculos. ...............................................................................................55 Figura 2.3-4. Representacin en rbol de montculo ..................................................................................56 Figura 2.3-5. Algoritmo de Dijkstra con giros ...........................................................................................61 Figura 2.3-6. Coste de tramos y giros.........................................................................................................62 Figura 2.3-7. Algoritmo de los K caminos mnimos ..................................................................................63 Figura 2.3-8. Resultados del algoritmo K-mn ...........................................................................................63 Figura 3.2-1. Notacin de actores...............................................................................................................63 Figura 3.2-2. Notacin de casos de uso. .....................................................................................................63 Figura 3.2-3. Notacin de relaciones..........................................................................................................63 Figura 3.2-4. Casos de uso de nivel 0.........................................................................................................63 Figura 3.2-5. Casos de uso de nivel 1........................................................................................................63 Figura 3.2-6. Casos de uso de nivel 2. Proceso de asignacin....................................................................63 Figura 3.2-7. Casos de uso de nivel 0.........................................................................................................63 Figura 3.2-8. Diagrama de casos de uso de nivel 1 ....................................................................................63 Figura 3.2-9. Diagramas de casos de uso de nivel 2. Clculo de las k rutas mnimas ................................63 Figura 3.2-10. Diagramas de casos de uso de nivel 3. Marcado de rutas ...................................................63 Figura 3.2-11. Diagramas de casos de uso de nivel 2. Ajuste de matriz.....................................................63 Figura 3.2-12. Diagramas de paquetes del algoritmo de calibracin basado en porcentajes ......................63 Figura 3.2-13. Diagrama de paquetes del algoritmo de calibracin basado en clculo K-mn.................63 Figura3.2-14. Ejemplo de clase ..................................................................................................................63 Figura 3.2-15. Diagrama de clases del paquete Red...................................................................................63 Figura 3.2-16. Clase Contexto....................................................................................................................63 Figura 3.2-17. Clase Mapa .........................................................................................................................63 Figura 3.2-18. Clase Punto .........................................................................................................................63
Lista de Figuras
Figura 3.2-19. Clase Tramo........................................................................................................................63 Figura 3.2-20. Clase Giro ...........................................................................................................................63 Figura 3.2-21. Diagrama de clases del paquete Listas................................................................................63 Figura 3.2-22. Clase Lista_inf ....................................................................................................................63 Figura 3.2-23. Clase MiLista......................................................................................................................63 Figura 3.2-24. Diagrama de clases del paquete Algoritmo de calibracin .................................................63 Figura 3.2-25. Clase Matriz_adyacencia ....................................................................................................63 Figura 3.2-26-Clase Datos_iteracion..........................................................................................................63 Figura 3.2-27. Clase Matriz_virtual ...........................................................................................................63 Figura 3.2-28. Clase Giro_Red...................................................................................................................63 Figura 3.2-29. Clase Vertices .....................................................................................................................63 Figura 3.2-30. Clase Tramos_Red..............................................................................................................63 Figura 3.2-31. Clase Caminos ....................................................................................................................63 Figura 3.2-32. Diagrama de clases del paquete VCL .................................................................................63 Figura 3.2-33. Diagrama de clases del paquete Interfaz Grfica ................................................................63 Figura 3.2-34. Diagrama de clases del paquete Estructuras de datos de calibracin basada en porcentajes ..........................................................................................................................................................63 Figura 3.2-35. Clase Tramo_calibracion ....................................................................................................63 Figura 3.2-36. Clase Pm .............................................................................................................................63 Figura 3.2-37. Clase PM_porcentaje ..........................................................................................................63 Figura 3.2-38. Diagrama de clases del paquete Algoritmo de ruta mnima K-mn ....................................63 Figura 3.2-39. Clase node_acm ..................................................................................................................63 Figura 3.2-40. Clase tramo_acm ................................................................................................................63 Figura 3.2-41. Clase giro_acm ...................................................................................................................63 Figura 3.2-42. Clase path_acm ...................................................................................................................63 Figura 3.2-43. Clase info_caminos_acm ....................................................................................................63 Figura 3.2-44. Diagrama de clases del paquete Estructura de datos de calibracin basada en algoritmo Kmn ....................................................................................................................................................63 Figura 3.2-45. Clase Calibracion_Kmin.....................................................................................................63 Figura 3.2-46. Clase Pm_Kmin ..................................................................................................................63 Figura 3.2-47. Clase Path_Kmin ................................................................................................................63 Figura 3.2-48. Ejemplo diagrama de secuencia..........................................................................................63 Figura 3.2-49. Interfaz grfica....................................................................................................................63 Figura 4.2-1. Algoritmo de calibracin basado en porcentajes ..................................................................63 Figura 4.2-2. Calibracin basada en porcentajes. Actualizacin de porcentajes ........................................63 Figura 4.2-3. Calibracin matriz.................................................................................................................63 Figura 4.2-4. Ejemplo de calibracin basada en porcentajes. Grafo...........................................................63 Figura 4.2-5. Calibracin basada en porcentajes. Flujos de asignacin .....................................................63 Figura 4.3-1. Representacin parcial del grafo...........................................................................................63 Figura 4.3-2. Calibracin basada en algoritmo k-mn ................................................................................63
Lista de Figuras
Figura 4.3-3. Calibracin matriz.................................................................................................................63 Figura 4.3-4. Calibracin basada en clculo K-mn. Flujos de asignacin.................................................63 Figura 4.3-5. Calibracin basada en clculo K-mn. Flujos K-mn ............................................................63 Figura 4.5-1. Interfaz del algoritmo K-mn ................................................................................................63 Figura 4.5-2. Opciones ...............................................................................................................................63 Figura 4.5-3. Interfaz del algoritmo de calibracin. ...................................................................................63 Figura 4.5-4. Zona de informacin.............................................................................................................63 Figura 4.5-5. Zona de configuracin ..........................................................................................................63 Figura 5-1. Escenario de las pruebas de integracin ..................................................................................63 Figura 5.1-1. Rutas [40, 209] de orden 2 y [177, 216] de orden 1..............................................................63 Figura 5.1-2. Rutas [83, 37] de orden 1 y [122, 25] de orden 3..................................................................63 Figura 5.1-3. Tiempo empleado en algoritmo K-mn.................................................................................63 Figura 5.2-1. Zonificacin del escenario ....................................................................................................63 Figura 5.2-2. Cdigo de colores .................................................................................................................63 Figura 5.2-3. Resultados de la calibracin basada en porcentajes. Zona 1.................................................63 Figura 5.2-4. Resultados de la calibracin basada en porcentajes. Zona 2.................................................63 Figura 5.2-5. Resultados de la calibracin basada en porcentajes. Zona 3.................................................63 Figura 5.2-6. Resultados de la calibracin basada en porcentajes. Zona 4.................................................63 Figura 5.2-7. Resultados de la calibracin basada en porcentajes. Zona 5.................................................63 Figura 5.2-8. Resultados de la calibracin basada en porcentajes. Zona 6.................................................63 Figura 5.2-9. Resultados de la calibracin basada en porcentajes. Zona 7.................................................63 Figura 5.2-10. Resultados de la calibracin basada en porcentajes. Zona 8...............................................63 Figura 5.2-11. Resultados de la calibracin basada en porcentajes. Zona 9...............................................63 Figura 5.2-12. Resultados de la calibracin basada en porcentajes. Zona 10.............................................63 Figura 5.2-13. Resultados de la calibracin basada en porcentajes. Zona 11.............................................63 Figura 5.2-14. Calibracin basada en porcentajes. Resultados Avda de la Palmera Repblica Argentina. ..........................................................................................................................................................63 Figura 5.2-15. Calibracin basada en porcentajes. Resultados Ronda del Tamarguillo.............................63 Figura 5.2-16. Calibracin basada en porcentajes. Resultados Puente Cristo de la Expiracin .................63 Figura 5.2-17. Calibracin basada en porcentajes. Resultados Rep. Argentina Lopez de Gomara .........63 Figura 5.2-18. Zonificacin del escenario ..................................................................................................63 Figura 5.2-19. Cdigo de colores ...............................................................................................................63 Figura 5.2-20. Resultados de la calibracin basada en algoritmo K-mn. Zona 1. .....................................63 Figura 5.2-21. Resultados de la calibracin basada en algoritmo K-mn. Zona 2. .....................................63 Figura 5.2-22. Resultados de la calibracin basada en algoritmo K-mn. Zona 3. .....................................63 Figura 5.2-23. Resultados de la calibracin basada en algoritmo K-mn. Zona 4. .....................................63 Figura 5.2-24. Resultados de la calibracin basada en algoritmo K-mn. Zona 5. .....................................63 Figura 5.2-25. Resultados de la calibracin basada en algoritmo K-mn. Zona 6. .....................................63 Figura 5.2-26. Resultados de la calibracin basada en algoritmo K-mn. Zona 7. .....................................63 Figura 5.2-27. Resultados de la calibracin basada en algoritmo K-mn. Zona 8. .....................................63
Lista de Figuras
Figura 5.2-28. Resultados de la calibracin basada en algoritmo K-mn. Zona 9. .....................................63 Figura 5.2-29. Resultados de la calibracin basada en algoritmo K-mn. Zona 10. ...................................63 Figura 5.2-30. Resultados de la calibracin basada en algoritmo K-mn. Zona 11. ...................................63 Figura 5.2-31. Calibracin basada en clculo K-mn. Resultados Avda de la Palmera Repblica Argentina. .........................................................................................................................................63 Figura 5.2-32. Calibracin basada en clculo K-mn. Resultados Ronda del Tamarguillo ........................63 Figura 5.2-33. Calibracin basada en clculo K-mn. Resultados Puente Cristo de la Expiracin ............63 Figura 5.2-34. Calibracin basada en clculo K-mn. Resultados Rep. Argentina Lopez de Gomara ....63
10
Lista de Tablas
LISTA DE TABLAS
Tabla 2.3-1. Matriz de viajes......................................................................................................................52 Tabla 2.3-2. Evolucin del algoritmo de Dijkstra bsico ...........................................................................53 Tabla 2.3-3. Representacin vectorial de montculo ..................................................................................55 Tabla 2.3.4. Giros del Grafo.......................................................................................................................63 Tabla 2.3.5. Tramos del Grafo....................................................................................................................63 Tabla 2.3-6. Evolucin del algoritmo de Dijkstra con giros.......................................................................63 Tabla 2.3-7. Resultados del algoritmo de Dijkstra con giros......................................................................63 Tabla 2.3-8. Evolucin del algoritmo K-mn..............................................................................................63 Tabla 4.2-1. Calibracin basada en porcentajes. Matriz de demanda.........................................................63 Tabla 4.2-2. Calibracin basada en porcentajes. Tiempos de viaje ............................................................63 Tabla 4.2-3. Calibracin basada en porcentajes. Puntos de medida ...........................................................63 Tabla 4.2-4. Calibracin basada en porcentajes. Porcentajes en el tramo 1 ...............................................63 Tabla 4.2-5. Calibracin basada en porcentajes. Porcentajes en el tramo 2 ...............................................63 Tabla 4.2-6. Calibracin basada en porcentajes. Porcentajes en el tramo 4 ...............................................63 Tabla 4.2-7. Calibracin basada en porcentajes. Porcentajes en el tramo 7 ...............................................63 Tabla 4.2-8. Calibracin basada en porcentajes. Porcentajes en el tramo 11 .............................................63 Tabla 4.2-9. Calibracin basada en porcentajes. Porcentajes en el tramo 14 .............................................63 Tabla 4.2-10. Calibracin basada en porcentajes. Matriz calibrada ...........................................................63 Tabla 4.3-1. Calibracin basada en clculo K-mn. Matriz de demanda ....................................................63 Tabla 4.3-2. Calibracin basada clculo K-mn. Tiempos de viaje ............................................................63 Tabla 4.3-3. Calibracin basada en porcentajes. Puntos de medida ...........................................................63 Tabla 4.3-4. Calibracin basada en clculo K-mn. Rutas en el tramo 1....................................................63 Tabla 4.3-5. Calibracin basada en clculo K-mn. Rutas en el tramo 2....................................................63 Tabla 4.3-6. Calibracin basada en clculo K-mn. Rutas en el tramo 4....................................................63 Tabla 4.3-7. Calibracin basada en clculo K-mn. Rutas en el tramo 7....................................................63 Tabla 4.3-8. Calibracin basada en clculo K-mn. Rutas en el tramo 11..................................................63 Tabla 4.3-9. Calibracin basada en clculo K-mn. Rutas en el tramo 14..................................................63 Tabla 4.3-10. Calibracin basada en clculo K-mn. Marcado de rutas para el par [2, 3]..........................63 Tabla 4.3-11. Calibracin basada en clculo K-mn. Matriz Calibrada......................................................63 Tabla 5.1-1. Dimensin y uso del montculo..............................................................................................63 Tabla 5.2-1. Valores de los detectores de flujo del algoritmo de calibracin basado en porcentajes .........63 Tabla 5.2-2. Tramos detectores incluidos en las zonas representadas ........................................................63 Tabla 5.2-3. Calibracin basada en porcentajes. Tramos detectores en la zona 1 ......................................63 Tabla 5.2-4. Calibracin basada en porcentajes. Tramos detectores en la zona 2 ......................................63 Tabla 5.2-5. Calibracin basada en porcentajes. Tramos detectores en la zona 3 ......................................63 Tabla 5.2-6. Calibracin basada en porcentajes. Tramos detectores en la zona 4 ......................................63 Tabla 5.2-7. Valores de los detectores de flujo del algoritmo de calibracin K-mn..................................63 Tabla 5.2-8. Tramos detectores incluidos en las zonas representadas ........................................................63
11
Lista de Tablas
Tabla 5.2-9. Calibracin basada en clculo K-mn. Tramos detectores en la zona 1 .................................63 Tabla 5.2-10. Calibracin basada en clculo K-mn. Tramos detectores en la zona 2 ...............................63 Tabla 5.2-11. Calibracin basada en porcentajes. Tramos detectores en la zona 3 ....................................63 Tabla 5.2-12. Calibracin basada en clculo K-mn. Tramos detectores en la zona 4 ...............................63 Tabla 5.2-13. Comparativa de tiempo de ejecucin ...................................................................................63
12
La mayora de la actividad desarrollada en las reas urbanas concierne al desplazamiento de personas y mercancas entre diferentes zonas, a travs del viario. Por ello disponer de infraestructuras y un sistema eficiente de transporte es esencial para la salud econmica y la calidad de vida en las regiones urbanas. Cuando se analizan la infraestructura presente para futuras inversiones y polticas operacionales, los estudios del sistema de transporte son entre otras operaciones uno de los componentes ms importante en el proceso de planificacin. Despus de la segunda guerra mundial la demanda de movilidad ha sufrido un gran auge. La mayor parte del aumento de la demanda es debido al incremento en el transporte personal, a causa del crecimiento urbano y de los niveles de vida estndar. El desarrollo de la movilidad tiene, sin embargo, asociados serios problemas en las regiones urbanas, tales como contaminacin, incremento de las tasas de incidentes, efectos sociales sobre la vida urbana debido a la expansin de autopistas y un uso poco eficiente de los sistemas de transporte a causa de la alta congestin. En los estudios de planificacin urbana las modificaciones y ampliaciones del sistema de transporte existente son evaluadas con el objetivo de aliviar los problemas mencionados anteriormente, permitiendo la utilizacin de una gran rango de modos de transportes. El proceso de planificacin del trfico urbano ha sido un proceso evolutivo. Los primeros estudios se basaban en un nmero pequeo de entrevistas realizadas a los habitantes de una ciudad para estudiar el comportamiento de los viajeros. El concepto de un nmero pequeo de entrevista fue posteriormente combinado con procedimiento de deteccin para determinar patrones de comportamiento en el viaje urbano. La utilizacin futura de las nuevas autopistas proyectada era estimada manualmente mediante asignaciones origen-destino(O-D) sobre rutas planificadas. A principio de la
13
dcada de los 50 se realizaron estudios sobre utilizacin del suelo y su relacin con el trfico urbano como consecuencia de la necesidad de disponer de mejores mtodos de estimacin para predecir los viajes producidos en le futuro. En la actualidad son empleados mtodos que relacionan la evolucin de la poblacin, distribucin y anlisis de generacin y extraccin de viajes con caractersticas de las zonas y una planificacin sobre un viario completo. Los primeros estudios de transporte se centraban exclusivamente al estudio del trfico en autopistas, solucionando el problema mejorando la capacidad del viario para que pueda acoger el incremento de la demanda obtenida en los estudios. Desde la dcada de los 50, se considera que el transporte no es una actividad aislada, sino que la demanda de viajes es una funcin de la actividad humana. Los estudios de transportes reciente integran partes de todo el proceso de planificacin conocido como la filosofa de las tres C, de continuacin comprensin y cooperacin en la planificacin del transporte que caracteriza el estado actual del proceso. El sistema de transporte es muy complejo, y el desarrollo depende de las decisiones tomadas en varios niveles de la sociedad (los objetivos y propsitos pueden entrar en conflicto entre s). En casi todas las aplicaciones de planificacin de transporte, los datos ms difciles y costosos de obtener son los necesarios para confeccionar la matriz origen/destino. Como la demanda no puede ser observada directamente, los datos necesarios deben ser obtenidos a partir de encuestas muy elaboradas y caras, realizadas en los hogares y en la propia calzada. Por otra parte y gracias a la evolucin de la tecnologa (donde el trfico rodado no se encuentra apartado) es posible obtener con gran precisin el volumen de trfico que circula por determinadas calles o tramos mediante el empleo de dispositivos de deteccin de vehculos. Muchos modelos han sido desarrollados para contemplar la posibilidad de incluir los datos de volumen de vehculos, obtenidos mediante los dispositivos de deteccin, en los modelos de asignacin. Estos modelos han tenido muy poca relevancia debido a que el tiempo de computacin y necesidades de almacenamiento necesarias se incrementaba en la medida que aumentaba el tamao del problema.
14
La motivacin del proyecto se debe a la necesidad de obtener informacin sobre los desplazamientos origen-destino (O-D) en las grandes reas urbanas, pues a partir de esta informacin es posible mejorar tanto la gestin del trfico como la planificacin del transporte, intentando aportar por tanto informacin que se utilice para subsanar uno de los problemas cotidianos de la sociedad actual, la congestin del trfico. Este trabajo queda integrado en una aplicacin ms general, TRAMOS (Traffic and tRansport Anlisis, Modeling and Optimization System), que comprende diversas herramientas para la gestin del trfico y la planificacin del transporte.
La descripcin del viario consiste en la definicin de los elementos que lo componen, de forma que posteriormente se puedan disear las estructuras de datos apropiadas para contener toda la informacin necesaria para el desarrollo del modelo. La mayora de los modelos definen el viario como un grafo, G (V , A) (dirigido o no dirigido) donde las calles estn representadas mediante los arcos del grafo y las intersecciones o cruces estn representados mediante nodos del grafo.
15
Esta descripcin, si bien es correcta y en general suficiente, no comprende a la totalidad de los componentes de un viario, ya que este no slo est formado por calles y cruces, sino que existe otra serie de elementos como los contadores de vehculos, giros definidos... etc. Este apartado pretende recoger los elementos ms importantes que componen el viario.
de vrtices y arcos. Los vrtices tambin llamados nodos, representan las intersecciones del viario. Los atributos contenidos en nodos son:
16
o Cdigo del nodo. Cada nodo est identificado en la red por un cdigo nico que lo diferencia del resto de nodos. o Tipo de nodo. Se han considerado dos tipos de nodos: Normales. Son nodos que representan las intersecciones o cruces existentes en el viario. Centroides. Nodos especiales definidos en el viario que no se corresponden con intersecciones de calle. Son puntos desde donde parte y llega la demanda de viajes de una determinada zona. o Posicin. Para representar grficamente el viario es necesario dotar a los nodos del atributo posicin, que contendr a las coordenadas del nodo.
Tramos. Los tramos representan a las calles del viario. Los atributos que
caracterizan a los tramos son: o Cdigo del tramo. Identificacin de cada calle del viario. Los tramos suelen ser unidireccionales, es decir, representan un solo sentido de circulacin. Para representar una calle con dos sentidos sern necesarios dos tramos. o Nodo origen. Todos los tramos parten de un nodo, al que denominamos nodo origen. o Nodo destino. Los tramos finalizan en una interseccin representada por el nodo destino. o Nmero de carriles. Espacios disponibles para el desplazamiento de vehculos. o Modos de transporte. Cada tramo permite la circulacin de unos tipos de vehculos (peatonal, vehculos... etc.).
17
o Funcin volumen retraso. A cada tramo se le asocia una funcin que devuelva el tiempo que emplea un vehculo en recorrer el tramo en funcin de la intensidad de la circulacin. o Longitud. La longitud del tramo.
Nodo
Tramo
Giros Las intersecciones son puntos de unin de los tramos y son empleadas por
los vehculos como medio de seleccin del tramo que conduce a su destino final. Las intersecciones representan el punto de unin entre tramos, pero no todos los tramos que llegan a una interseccin estn comunicados a travs de ella. Las posibilidades de acceso de unos tramos a otro en una interseccin estn indicadas por los giros que se definen en el nodo. Un giro habilita la
18
posibilidad de circulacin de vehculos entre dos tramos que llegan y parten de un nodo.
o Nmero de giro. Nmero secuencial creciente que identifica al giro. o Cdigo del nodo. Nodo que identifica al movimiento. o Tramo origen. Tramo de donde proceden los vehculos. o Tramo destino. Tramo a donde se dirigen los vehculos. o Funcin volumen retraso. A veces se incluye una funcin volumen retraso para obtener el tiempo empleado en realizar el giro.
Detectores Los detectores son elementos situados en los carriles de los tramos del
viario que proporcionan datos sobre la intensidad del trfico en dichos tramos. Los atributos que contiene son: o Cdigo del detector. Cdigo que identifica unvocamente al detector. o Cdigo del tramo. Cdigo del tramo en el que est el detector. o Tipo de detector. Los detectores pueden ser de varios tipos, desde cmaras de televisin hasta los contadores por espiras.
19
o Flujo de vehculos. Nmero de vehculos que han pasado por el detector en un intervalo de tiempo. o Posicin del detector. Posicin del detector relativa al comienzo del tramo. o Estado del detector. Especifica si el detector est en funcionamiento, averiado o pasivo.
1.2.2
Una matriz O-D, es una matriz de dos dimensiones, en la que filas y columnas representan zonas de origen y destino respectivamente, y el valor de sus elementos indica el nmero de viajes o desplazamientos realizados desde cada una de las zonas de origen a las de destino en un periodo de tiempo (por ejemplo tendremos una matriz OD para una determinada hora punta, otra indicativa de la media diaria, etc...).
As, por ejemplo observando la figura anterior, podemos decir que entre el origen 2 y el destino 3, se van a producir 334 desplazamientos, para el periodo de
20
tiempo del que se trate. Como podemos observar, en estas matrices, la diagonal es cero, pues no interesan aqu los desplazamientos internos dentro de una zona, sino los desplazamientos interzonales. Se han desarrollado muchos modelos para sintetizar matrices O-D, a partir de la informacin disponible, desde la dcada de los setenta. Nuestro objetivo es desarrollar un modelo de estimacin de matrices O-D, usando como informacin el flujo observado en algunos arcos, partiendo de una matriz O-D no optima, que nos pueda servir como gua de la solucin. En el siguiente apartado se presentan algunas tcnicas existentes de calibracin de matrices O-D.
1.2.3
Este apartado trata de presentar una serie de teoras, algoritmos, tcnicas y mtodos usados para la estimacin de las matrices O-D. As comenzaremos la resea con una discusin del desarrollo histrico general relacionado con el tema. Se comentarn un conjunto de modelos para el establecimiento de matrices O-D basados en los volmenes de trfico observados.
Antes de 1970, las matrices O-D, eran obtenidas mediante medidas estadsticas, tales como entrevistas en las casas, medidas oficiales y medidas a pie de carretera. Los mtodos que usan esas medidas como dato para determinar las distribuciones reales de trfico se denominan mtodos de anlisis convencional. Adems, la mayora de estas aproximaciones conllevan la realizacin de muestreos estadsticos, con el consecuente error asociado. As, con la evolucin de la sociedad y con los rpidos cambios en las demandas de transporte, esas medidas eran ms difciles de realizar, y adems cada vez resultaba ms costoso tanto en tiempo y esfuerzo, como desde el punto de vista econmico.
21
Otro inconveniente de los anlisis convencionales, es que como las infraestructuras y el propio trfico cambian, esos datos rpidamente quedan anticuados y obsoletos. Adems, en la mayora de los casos, una asignacin de esta matriz a la red, puede no reproducir los flujos observados. Los tres tipos ms importantes de modelos considerados como anlisis convencional son: modelos Fratar, modelos de Oportunidad y modelos Gravitatorios. El nfasis en el desarrollo de los sistemas de transporte a principio de los 70 creci por la necesidad de estudiar pequeas reas urbanas en detalle. Desde entonces se han venido desarrollando mtodos para sintetizar tablas de trfico, a partir de la informacin ms conveniente, buscando que estos mtodos fueran lo ms rpidos y econmicos posible. 1.2.3.2 Modelos de trfico basado en contadores
En realidad, el problema de una red dada, es un sistema dinmico en cunto a la dependencia con el tiempo. El proceso de analizar el flujo del trfico en dichas redes, se puede simplificar estudiando algunas funciones de densidad, que satisfagan ciertas ecuaciones diferenciales de tipo continuo ( Lyrintzis et al. 1994, Zhang et al.1995), o puede ser tratado mediante aproximaciones de programacin dinmica DP (Dynamic Programming, Janson 1995). En la prctica, sin embargo, este sistema dinmico es muy complicado de estudiar para obtener la solucin deseada. Para derivar matrices O-D a partir de la informacin contabilizada (basada en contadores) , el flujo de trfico se considera normalmente estacionario esttico, es decir , independiente del tiempo. Primero, el estudio de matrices O-D est motivado por el propsito de reducir el problema de la congestin. En el caso de la congestin, sin embargo, la distribucin del flujo de trfico est dominada por el principio de equilibrio-usuario, que se discutir en el siguiente apartado. Adems puede demostrarse que el patrn de flujo es independiente del tiempo si el sistema satisface una condicin de equilibrio.
22
Segundo, si el sistema se considera durante un corto intervalo de tiempo, se puede aproximar como un sistema esttico. Es ms, el tratamiento estacionario de sistemas dinmicos puede considerarse como el primer paso hacia la simplificacin del problema, y frecuentemente, esto revela una estructura ms detallada del problema. De todos los modelos de obtencin de informacin de trfico, tal vez, la contabilizacin del trfico (volmenes de trfico en los arcos de una red), contenga la informacin ms importante sobre distribuciones O-D. Se ha desarrollado una gran variedad de modelos para construir matrices O-D, basados en conteos de trfico junto con otra informacin. Segn la teora usada, esos modelos se pueden dividir en los siguientes tipos: I. Modelos Gravitatorios Estos modelos, a veces son llamados de Calibracin de Parmetros, y
representan la idea original de establecer distribuciones de trfico. En estos modelos, las entradas de la matriz O-D son consideradas como una funcin del trfico contabilizado y otros parmetros. Se aplican tcnicas de regresin y la ley de conservacin del flujo, para calibrar los parmetros, buscando que las diferencias entre los volmenes observados y los volmenes establecidos sean minimizadas. Se dividen los modelos de regresin, en lineales (Low [Low1972], Hola [Hol1976], Gaudry and Lamarre 1978, Smith and McFarlane 1978) y no lineales (Rolillhard 1975, Hogbag 1976). II. Modelos de Equilibrio Estos modelos estn basados en el principio de optimizacin del flujo del trfico por parte del usuario, llamado Principio de Equilibrio-Usuario Principio de Wardrop (Wardrop 1952). Aqu se incluyen los modelos: LINKOD (Nguyen [Ngu1977], Gur [Gur1980]), SMALD (Kurth [Kur1979]), y LP (Sivanandan [Siv1991], Sherali [She1994a], [She1994b]). III. Modelos de Entropa
23
Los modelos de Mnima Informacin y Mxima Entropa estn incluidos en este grupo y pueden convertirse en el tipo de modelo Gravitatorio. En estos modelos, la probabilidad de que ocurra una determinada distribucin de trfico es considerada proporcional al nmero de estados (entropa o desorden) del sistema. La matriz O-D que se deriva aparenta ser la ms probable, en cunto a la consistencia de la informacin tal como la longitud y velocidad libre en los arcos. Los pioneros de estos modelos, ME2, son Willumsen [Wil1978] y Van Zuylen [Van1978]. Desde entonces se han realizado muchas mejoras y combinaciones con otras teoras, y se han mejorado una gran parte de las pruebas de esos modelos. Estos resultados se recogen [Eas1993a] y CTR (1995). IV. Modelos Estadsticos Estos modelos tienen en cuenta la inexactitud de los flujos O-D observados. Este grupo incluye el modelo CGLS (Constrained Generalized Least Squares, McNeil 1983), y modelos CML (Constrained Maximum-likelihood, Geva 1983, Spiess 1987, Walting and Maher 1988, Walting and Grey 1991). Otro modelo, llamado MEUSE (Matriz Estimation Using Structure Explicity, Bierlaire and Toint 1995), usa tanto datos histricos como datos recogidos en la entrada de aparcamientos, y puede ser parcialmente incluido en este subgrupo. Los modelos estadsticos no son tan populares en la prctica como los modelos de equilibrio o los de entropa. V. Modelos de Redes Neuronales Muller y Reinbardt introdujeron en 1990, la aproximacin de red neuronal, para determinar matrices O-D a partir de conteos del trfico. En cierto sentido, esta aproximacin est basada en los conceptos derivados de la investigacin del cerebro humano. El procedimiento en esta aproximacin incluye componentes de aprendizaje y optimizacin. El modelo puede ser descrito matemticamente como un diagrama directo con tres caractersticas: en las revistas Easa
24
Una funcin de transferencia definida para determinar el estado de cada nodo como una funcin de sus tendencias y de los pesos de sus arcos entrantes.
Yang, Akiyamma y Sasaki [Yan1992] adoptaron una red neuronal para sintetizar flujo O-D en una interseccin de cuatro caminos. Chin, Hwang y Pei [Chi1994] describieron un modelo de red neuronal para generacin de informacin O-D a partir de los volmenes de flujo. Estos modelos todava estn en un proceso embrionario. VI. Modelos Fuzzy En lugar de la suposicin del todo o nada hecha en la mayora de los modelos, estos modelos aplican cierto grado de borrosidad a los datos en los arcos (Xu and Chan 1992 a-b). La borrosidad, indica probabilidad, pero es bastante diferente en realidad. Se han realizado pruebas con diferentes tipos de borrosidad en la red de Eastern Highway Corridor (Estados Unidos). El modelo es relativamente nuevo, por lo que sera recomendable realizar estudios de casos adicionales y experimentar.
Este proyecto tiene como objetivo el diseo y la implementacin de un algoritmo de calibracin de matrices O-D partiendo de una asignacin de trfico. El algoritmo emplea una matriz O-D inicial y realiza una asignacin de trfico en la red. Partiendo de la diferencia de volmenes observada en ciertos tramos en los que se tiene constancia del volumen real que poseen, se pretende calibrar la matriz original con vistas a obtener una nueva matriz O-D que se ajuste a los volmenes reales. Por tanto, el algoritmo se divide en dos partes: una asignacin previa y una calibracin basada en los resultados de la asignacin. El trabajo realizado comprende dos algoritmos diferentes, uno basado en el clculo de los porcentajes de flujo que recorren los tramos y un segundo algoritmo que realizar una calibracin basndose en el clculo de los k caminos mnimos (K-mn) en
25
la red. En la implementacin del segundo algoritmo, es necesario el desarrollo de un algoritmo de obtencin de los k caminos mnimos, dado que no se dispone de esa herramienta. Cada uno de los algoritmos aportar unas ventajas e inconvenientes frente al otro, las cuales se detallarn en captulos sucesivos. En cuanto a la asignacin previa, se emplea un algoritmo ya implementado en la aplicacin TRAMOS, basado en el algoritmo de Frank-Wolfe. La implementacin de los algoritmos desarrollados requiere del diseo de una estructura de datos, adems de las correspondientes funciones que operen sobre los mismos datos. Ambas partes han de ser convenientemente diseadas y documentadas. El documentado est estructurado en seis captulos. El primero consiste en una introduccin a la extrapolacin de matrices O-D. Tambin se especifican algunos de los elementos que se usan a lo largo de este documento. En el captulo 2 se analizar el algoritmo de asignacin utilizado en la calibracin. Este algoritmo se basa en el algoritmo de Frank-Wolfe. As mismo se har una descripcin de diferentes algoritmos de encaminamiento, partiendo del algoritmo de Dijkstra bsico y que concluir con el diseo de un algoritmo de bsqueda de k caminos mnimos. La implementacin de los algoritmos realizados ha sido realizada en el lenguaje C++, y se ha seguido una metodologa orientada a objetos denominada UML (Unified Modeling Language). Dicho lenguaje se basa principalmente en la definicin de diagramas de casos de uso, diagramas de paquetes, diagramas de clases y diagramas de secuencia. Estos diagramas se incluyen en la documentacin del proyecto en el captulo 3. En el captulo 4 se detallarn los dos mtodos de calibracin que se proponen en este proyecto, analizando el proceso que llevan a cabo sobre la matriz origen-destino. Se analizarn las diferencias entre ambos algoritmos y las ventajas e inconvenientes que ambos aportan. Se presentan unos ejemplos sobre escenarios sencillos para ilustrar el
26
funcionamiento de los algoritmos. Tambin se analizarn las interfaces grficas diseadas para la aplicacin. Con vistas a probar el funcionamiento de los algoritmos implementados se realizar una serie de pruebas sobre varios escenarios, ficticios y reales. Se realizarn pruebas de validacin y de integracin de los algoritmos. Todas ellas, con su correspondiente documentacin se encuentran detalladas en el captulo 5. Finalmente se presentarn las conclusiones a las que se ha llegado tras el anlisis de los resultados obtenidos y se propondrn modificaciones y extensiones que pudieran mejorar el algoritmo. No hay que olvidar que el objetivo es obtener una estimacin de la matriz origen-destino que se ajuste mejor a la realidad, por lo cual las soluciones son infinitas.
27
Entre las numerosas aplicaciones de planificacin de trfico que existen, la determinacin de la demanda de trfico es una de las ms estudiadas. De hecho, en la mayora de las aplicaciones de modelado del trfico, la obtencin de los datos de viajes origen/destino es en la mayora de los casos difcil, caro y como consecuencia resultan datos incompletos. No es pues difcil comprender el motivo de buscar algoritmos que nos permitan estimar la matriz origen/destino a partir de datos ms asequibles. Nosotros vamos a ofrecer una variante a los mtodos existentes. Entre los algoritmos que se han desarrollado hasta ahora, destacan especialmente los que se basan en tcnicas de optimizacin lineal (maximizacin de la entropa o minimizacin de la informacin) como se realiza, por ejemplo, en maximum likelihood methods (Spiess [Spi1987], 1987), A method to Enhance the Perfonmance of Synthetic OriginDestination (O-D) Trip Table Estimation Models (Dhruv Nanda [Nan 1997], 1997) o Mathematical models transportation demand analysis (Michel Bierlaire [Bie1995], 1995). Este trabajo se basa en el uso de un algoritmo de asignacin como herramienta de apoyo. El mtodo de calibracin mediante asignacin de trfico que vamos a desarrollar, realiza una estimacin de la matriz de viajes a partir de la observacin de los flujos de trfico que se generan en los tramos como consecuencia de una asignacin en el viario y su posterior comparacin con los datos de volmenes reales de la red. Es pues necesario disponer de una relacin de datos con los flujos reales en los tramos de la red. Estos datos se obtienen mediante contadores electrnicos situados en puntos estratgicos situados en el viario. Para la implementacin del modelo se requiere disponer de un algoritmo que nos permita realizar una asignacin de trfico en la red a partir de la matriz de viajes con el fin de obtener los flujos en los tramos con puntos de medida. Este
28
algoritmo ya implementado con anterioridad al desarrollo de este proyecto en la aplicacin TRAMOS. El algoritmo es descrito en el siguiente punto. Asimismo para la implementacin de los mtodos de calibracin se requiere de un algoritmo de clculo de los k caminos mnimos, descrito en el apartado 2.3.
La asignacin de trfico es el proceso que distribuye un conjunto conocido de viajes a una red de transporte. El proceso de asignacin requiere como entrada una completa descripcin del sistema de transporte existente y una matriz que describa los desplazamientos que se producen. La salida del procedimiento difiere del nivel de sofisticacin del procedimiento de asignacin, pero siempre incluye una estimacin del volumen de trfico y los tiempos o coste de viajes en cada tramo del sistema de transporte; algunas tcnicas de asignacin incluyen informacin en el interior de las intersecciones mediante la inclusin de giros.
29
Los objetivos de la asignacin de trfico como parte del proceso de planificacin son conocer las deficiencias en el actual sistema de transporte, mediante la asignacin de la previsin futura de viajes al sistema actual, evaluar los efectos de las mejoras y las extensiones al sistema de transporte actual asignando a la red ampliada la previsin futura de viajes y establecer las prioridades de construccin asignando estimaciones de viajes para aos intermedios. Los conceptos bsicos de asignacin de trfico surgieron a principios de los aos 40 y conjuntamente con los primeros estudios sobre movilidad realizados en 100 ciudades de los EEUU despus de la finalizacin de la segunda guerra mundial. (Los estudios consistan en determinar origen y destino y el desplazamiento de vehculos entre zonas) Los primeros trabajos en asignacin consistieron principalmente en la estimacin de la diversificacin del trfico desde las calles y carreteras existentes hacia las nuevas y mejoradas arterias o autopista, basando en el tiempo de viaje y costes. La primera asignacin realizada asuma que el tiempo de viaje y coste era independiente del flujo sobre los tramos, esto es conocido como asignacin todo o nada que se describir en el siguiente punto. Esta tcnica ofrece resultados poco reales, no solo por que falla en reconocer que el tiempo de viaje y coste se incrementa cuando aumenta el flujo de vehculos sobre los tramos, sino que principalmente el hecho que todos los viajeros estn localizados sobre rutas basndose en una media simple. Posteriormente se realizaron estudios que pretenda relacionar la seleccin de ruta con los factores de tiempo y distancia, y como resultado la Asociacin Oficial de Autopista (Federal Highway Administration) desarrollaron una curva de diversificacin de trfico estndar como sugerencia para la determinacin de la utilizacin futura de las vas urbanas. Las curvas desarrolladas estaban basadas en los datos obtenidos de la observacin en diferentes localizaciones con dos caractersticas similares, y estimacin del porcentaje de flujo sobre las rutas tradicionales que seran transferida a las nuevas vas en estudio. Las asignaciones realizadas mediante esta metodologa se reduca al estudio de pequeas zonas donde eran definidos varias rutas en paralelo (estudios de corredores de trfico), esta tcnica se denomina asignacin en dos rutas y asignacin proporcional.
30
Posteriormente, a principios de la dcada de los 50 el conocimiento de como el conductor selecciona la ruta para desplazarse entre dos zonas estaba basado en la experiencia del ingeniero de transporte y el tiempo empleado en el desplazamiento. El anlisis detallado del presente y futuro del transporte en reas urbanas requera una mayor precisin y efectividad de los resultados obtenidos de la asignacin, que necesitaba una gran cantidad de operaciones, y por ello era necesario disponer de ordenadores de gran potencia o bien procedimientos generales que redujeran el costo de la realizacin de la asignacin. Sobre 1957 surgen los primeros algoritmos eficientes para calcular caminos mnimos en un grafo, es decir encontrar solucin al problema de ruta mnima, con coste en arcos. Simultneamente el rea de transporte de Chicago contrat el desarrollo de un programa de ordenador que permitiera realizar asignaciones de trfico sobre grandes redes urbanas. Las investigaciones condujeron a al desarrollo de un programa para encontrar la ruta mnima en tiempos de una red. El procedimiento estaba basado en el algoritmo de Moore con coste en arcos especificado por el tiempo medio de viaje. Posteriormente la General Electric conjuntamente con el distrito de Columbia desarrollaron un modelo de asignacin donde se incorporaban la posibilidad de prohibicin de giros. J.G. Wardrop [War1952], del laboratorio de desarrollo de carreteras publica un artculo donde se describe los dos principios de distribucin de flujo en red: El principio de equilibrio de usuario, basado en el supuesto de Todos los conductores selecciona la ruta que minimiza su coste de viaje y El principio de optimalidad del sistema que indica que el tiempo total de viaje para todos los conductores es aquel que minimiza el tiempo total del sistema. Estos dos principios han sido ampliamente aceptados y se conoce como los principios de Wardrop. M. J. Beckmann [Bec1956], formul en problema de asignacin de trfico mediante modelos matemticos. Empleando teora de optimizacin no lineal, el modelo cumple las dos condiciones de Wardrop ofreciendo una solucin convexa al problema de optimizacin no lineal.
31
En 1956, M. Frank y P. Wolfe [Fra1956] desarrollaron un algoritmo iterativo para obtener la solucin convexa a problemas de optimizacin cuadrtica. Cuando aplicaron los modelos de asignacin de trfico al algoritmo desarrollado, emplearon una asignacin inicial Todo o nada, basndose en los tiempos de viaje, el volumen de trfico existente y minimizar la funcin objetivo. Actualmente este algoritmo es un estndar en la planificacin del transporte y lo describiremos en los siguientes apartados. Despus de estos pasos se han desarrollado y mejorado los algoritmos de asignacin. Una de las mejoras fue la introduccin de funciones aritmticas que relacionan el volumen de trfico que circula por un tramo con el tiempo de viaje empleado y velocidad desarrollada. Estas funciones son denominadas funciones volumen-retraso y funciones de tiempo de viaje.
2.2.2
Como resultado del crecimiento del volumen de trfico, la velocidad de desplazamiento de los vehculos tiende a disminuir, al principio el descenso de velocidad es muy pequeo pero aumenta en la medida que las colas producidas en el tramo aumentan. En el anlisis de los sistemas de trfico el tiempo medio de viaje en el tramo es modelado como una funcin no positiva, lineal y creciente del volumen de vehculos. Los parmetros incluidos en la expresin suelen ser la capacidad y los factores de medida como por ejemplo el tiempo de viaje. Diferentes estudios han desarrollado sus propias frmulas de retraso. Existen dos mtodos de obtencin:
Obtencin de una serie de parmetros a partir de un conjunto de medidas. Desarrollo de las expresiones a partir de estudios sobre velocidad y tiempo de viajes caractersticos de la red.
32
Los parmetros bsicos del tramo, en relacin con el tiempo de viaje t a sobre el
0 tramo a con flujo f a son el tiempo de viaje en flujo libre, t a , es el tiempo empleado por
un vehculo cuando no existe ningn otro vehculo en el tramo, y la capacidad del tramo, c a , es una medida de flujo, a partir de la cual el tiempo de viaje sobre el tramo se incrementar muy rpidamente. A continuacin mostramos una grfica que representa una curva VolumenRetraso:
Volumen de trfico
2000,00 1800,00 1600,00 Tie 1400,00 mp 1200,00 o 1000,00 800,00 600,00 400,00 200,00 0,00 0 100 200 Intensidad 300 400 500
Intensidad
La grfica muestra la evolucin del tiempo de viaje cuando la intensidad (nmero de vehculos) en el tramo aumenta, es destacable observar como las funciones deben presentar una asntota (diferente a cada curva y tramo) que coincide con el valor de saturacin del tramo (medido en nmero de vehculos que circula en 1 hora).
2.2.3
El problema de asignacin de trfico pretende determinar el flujo de trafico que circula por los tramos a partir de la demanda de viaje entre un conjunto de par de nodos y funciones de retraso definidas. Las dos condiciones de asignacin ptima fueron consideradas y descrita por Wardrop, aunque Pigou formul la primera nocin sobre
33
equilibrio de trfico con una descripcin del comportamiento del trfico rodado bajo congestin. En el anlisis de los modelos de asignacin, la congestin es fundamental. Como resultado del crecimiento del volumen de trfico, la velocidad media de desplazamiento de los vehculos sobre el tramo desciende, primero lentamente, para que despus crezca rpidamente como consecuencia del incremento de la cola producida en el tramo, hasta que el tramo entra en un estado de saturacin donde el flujo por el tramo es muy bajo. En el anlisis de los sistemas de trfico, el tiempo medio de desplazamiento es modelado a partir de las funciones volumen-retraso. Kohl [War1952] reconoci que las rutas seleccionadas por los viajeros eran aquellas rutas considerada como mas corta por el viajante bajo las condiciones de trfico existente, es decir, cada viajero selecciona aquella ruta que minimiza el tiempo empleado en su desplazamiento. Aunque se ha observado que, adems del tiempo de viaje, existen otros parmetros que influyen sobre la decisin del conductor en el proceso de seleccin de ruta, este todava es considerado como el principal componente del coste de viaje. Las dos condiciones descritas por Wardrop [War1952] son la condicin de equilibrio de usuario y la condicin de optimalidad del sistema. El principio de equilibrio de usuario corresponde con la seleccin de rutas minimizando el tiempo total de viaje del conductor. El segundo principio hace referencia a minimizar el coste total del sistema, es decir minimizar el coste total incurrido por todos los conductores. El resultado de tales decisiones tomadas por todos los conductores dirige el problema a una situacin donde ningn conductor puede reducir su tiempo de viaje seleccionando una ruta en detrimento de otra, esto es conocido como Situacin ptima de usuario. La situacin ptima de usuario est caracterizada por que todas las rutas utilizadas entre un origen y un destino tienen el mismo tiempo de viaje medio. Este ptimo puede ser establecido por que se considera que existe informacin perfecta y detallada sobre todos los caminos disponibles, as como de las caractersticas de cada camino, es decir, todos los usuarios conocen los tiempos de viajes empleados en cada
34
ruta. Supngase que existen dos rutas entre un origen y un destino, donde el tiempo medio de viaje de una de ellas es inferior, el usuario o viajante observar la existencia de una nueva ruta donde su tiempo de viaje es inferior al tiempo actual, esto provoca un cambio de ruta y por consiguiente un aumento del tiempo medio de viaje en la ruta seleccionada, el proceso prosigue hasta que a los usuarios les sea indiferente seleccionar cualquier ruta. El resultado de los patrones de viaje procedentes de la seleccin de rutas es conocido como flujo ptimo del sistema. La situacin ptima para el sistema est caracterizada por que el tiempo marginal empleado entre un origen y un destino es el mismo independiente de la ruta seleccionada. Si el tiempo de viaje marginal fuera inferior en una ruta que en otra sera posible una redistribucin de los flujos de las rutas con mayor tiempo de viaje hacia rutas con menor tiempo de manera que se alcance un nuevo equilibrio. Existen dos alternativas para obtener el flujo ptimo en el sistema. La primera es la imposicin de las rutas a los usuarios (Sistema ptimo involuntario). Existen sistemas donde un controlador central influye en la toma de decisiones sobre los viajes, donde esta opcin puede ser razonable, por ejemplo en distribucin de mercancas. La segunda alternativa es intentar persuadir a los conductores a seleccionar su ruta eficientemente. Este sistema voluntario es conocido como estrategia de congestin. Dada las funciones describiendo las relaciones entre el volumen de trfico, coste del viaje y demanda de transporte, el trfico puede ser asignado sobre el viario acorde con dos principales principios: El principio de igualdad de tiempos de viajes independiente de la ruta seleccionada de forma eficiente, tambin llamado asignacin
descriptiva, siendo uno de los mas empleados, o el principio de mnimo coste total, el
cual es denominado asignacin normativa. La demanda de transporte es normalmente considerada como la media de los viajes realizados, es decir frecuencia media de viajes durante un periodo de tiempo determinado. El equilibrio debe ser visto como un estado estable que es alcanzado
35
despus de un nmero de pasos donde los conductores han ajustado sus rutas segn las condiciones descritas anteriormente. Los dos principios descritos anteriormente son atribuibles a J. G. Wardrop del Road Research Laboratory [War1952], que posteriormente fueron conocidos como las dos condiciones de Wardrop.
El primer principio de Wardrop. El tiempo de viaje en todas las rutas utilizadas es igual y menor que
aquellos tiempos que pueden ser experimentados por un vehculo en cualquier otra ruta.
En los modelos de asignacin la demanda de viajes puede ser fija o variable, apliquemos el principio de Wardrop para cada tipo de demanda.
Para formular matemticamente las condiciones de equilibrio de usuario, considrese un par origen y destino ( p, q) C . Sea c pqr el tiempo de viaje empleado en la ruta r que conecta el nodo origen p con el nodo destino q. Se asume que las rutas estn ordenadas por volumen de circulacin, por ello las rutas que presentan flujo cumplen:
c pq1 = c pq 2 = c pq 3 = ... = c pql , y las rutas no empleadas para cada par origen-destino (l+1..) tienen tiempos de viaje que son al menos iguales o superiores a las rutas anteriores. c pq1 = c pq 2 = c pq 3 = ... = c pql c pqi i = l + 1,....
36
h pqr el flujo que circula por la ruta r que conecta el par ( p, q) C y pq el tiempo de viaje en la ruta mas corta. Las condiciones de equilibrio de usuario de Wardrop son equivalentes a: h pqr > 0 c pqr = pq h pqr = 0 c pqr pq r R pq r R pq (1a) (1b)
r R pq , ( p, q) C r R pq , ( p, q) C ( p, q) C r R pq , ( p, q) C ( p, q) C
pqr
= d pq
h pqr 0
pq 0
donde (2a)-(2b) es una estructuracin de (1), (2c) asegura la adminisibilidad con respecto a la demanda prefijada y (2d) y (2e) aseguran la no negatividad del flujo en la ruta as como del correspondiente coste de viaje.
Normalmente el problema de asignacin de trfico es formulado como un problema con demanda variable, donde los viajes entre un origen y un destino son modelados como funciones del menor coste de viaje entre el origen y el destino. La premisa bsica detrs de tales modelos es que los viajeros tienen un nmero de posibles rutas que seleccionan segn consideraciones econmicas, tales como el coste del viaje.
37
En el supuesto de que la demanda sea elstica, la interpretacin del problema de asignacin del trfico en trminos econmicos es ms natural que con demanda fijada. Si la red de transporte es considerada como un mercado econmico, la demanda corresponde a las necesidades de viajes. La oferta corresponde con la propia red o viario que se ofrece a los usuarios y que tiene un coste asociado al propio viaje. El equilibrio de mercado se alcanza cuando el nmero de viajes entre un par origen-destino es igual a la demanda de viajes a un coste determinado. Para extender las condiciones de equilibrio de usuario a demanda elstica se considera que sta viene determinada como funcin del coste mas bajo en una ruta, es decir: d pq = g pq ( ) , ( p, q) C
Las condiciones de Wardrop para demanda elstica se escriben: h pqr > 0 c pqr = pq h pqr = 0 c pqr pq d pq > 0 d pq = g ( ) d pq = 0 g ( ) 0 r R pq r R pq ( p, q) C ( p, q) C (3a) (3b) (3c) (3d)
Las condiciones (3a)-(3b) corresponden a las condiciones de la demanda fijada expuesta en el (1). Las condiciones (3c) y (3d) establecen que la demanda de transporte en un par origen destino es igual al valor de la funcin de la demanda en la ruta de menor coste y que la demanda es cero si el coste de viaje es muy elevado. Nosotros vamos a centrarnos en el caso de demanda fija, por lo que a partir de aqu slo hablaremos de ese caso.
38
2.2.4
El modelo bsico trata de representar el problema de asignacin, de forma que el anlisis y solucin del mismo conduzca a una distribucin de flujos que satisfaga las condiciones de equilibrio de Wardrop. Las restricciones del modelo son las correspondientes al envo de flujo en una red urbana. Las restricciones se expresan en las siguientes ecuaciones con las siguientes consideraciones: La red est fuertemente conectada, es decir todo par origen-destino esta conectado por una ruta.
( p, q) C R pq 1
La funcin que especifica el tiempo de viaje t a : + + + es positiva y continua para cada tramo a A . El modelo bsico queda:
Min t a ( s )ds
aA 0 fa
(4a)
sujeto a:
rR pq
pqr
= d pq
( p, q) C
r R pq , ( p, q) C
h pqr 0
( p , q )C rR pq
pqra
h pqr = f a
a A
39
total empleado por todos los viajeros en el desplazamiento sobre el viario es mnimo. A continuacin la ecuacin (4b) establece que el nmero de viajes que se producen entre cada par origen-destino es la suma de los viajes realizados por cada una de las posibles rutas que conectan el origen con el destino, el grupo de ecuaciones (4c) corresponde a la no negatividad de la cada ruta, por ltimo la ecuacin (4d) implica que el nmero de viajes que circula por un tramo es la suma del nmero de vehculos que emplean la ruta que contiene el tramo especificado. La mayora de los autores representan el problema de asignacin mediante caminos para todos los pares de zonas Origen-Destino. Las restricciones que describen la admisibilidad de los flujos queda:
rR pq
pqr
= d pq ,
( p.q) C
h pqr 0
( p.q) C , r R pq
siendo h pqr el flujo correspondiente al camino r que conecta los nodos p y q, la relacin con las variables xa mediante la ecuacin:
( p , q )C rR pq
pqra
h pqr = f a
a A
La funcin objetivo del problema de asignacin debe permitir que la solucin obtenida cumpla las condiciones de optimalidad y las condiciones de equilibrio de Wardrop.
2.2.5
El paradigma de Wardrop especifica que los viajeros se desplazan por aquellas rutas que minimizan el tiempo individual de desplazamiento. Caracterizando el modo de comportamiento queda:
40
Sea urs el tiempo mnimo de recorrido que experimenta una unidad de demanda al desplazarse entre el origen r R y el destino s S . Por tanto, urs Min ckrs : k K rs
[c
rs k
Por definicin, los tiempos ckrs de desplazamiento sobre los caminos no son superiores al tiempo mnimo, u rs . Por lo tanto la expresin indica que solo puede haber flujo positivo en aquellos caminos k por los que el tiempo de recorrido es mnimo. La funcin objetivo adecuada debe permitir que las condiciones de optimalidad del modelo corresponda con las condiciones de equilibrio de Wardrop. Las condiciones de optimalidad de este modelo coinciden con las condiciones de Kuhn-Tucker [Lar1997] que expresan que la direccin de mxima mejora de la funcin objetivo sin restricciones ha de pertenecer al cono descrito por las direcciones de mxima inadmisibilidad de las restricciones. La funcin objetivo del modelo queda: G ( x) = t a ( s )ds
a A
0
fa
donde t a es funcin que indica el tiempo empleado en recorrer un tramo con un volumen de trfico especfico. La solucin para el problema de asignacin de trfico es equivalente a resolver un problema donde el rea bajo la curva volumen-retraso es minimizada. Por ejemplo:
41
La grfica de la izquierda muestra la asignacin de trfico no es ptima ya que existe un punto donde el rea por debajo de la funcin es inferior
2.2.6
El mtodo de Frank y Wolfe [Fra1956] fue desarrollado inicialmente para la resolver problemas cuadrticos convexo, pero es aplicable a cualquier problema de optimizacin cuya funcin objetivo sea pseudoconvexa y diferenciable. El algoritmo de Frank-Wolfe aplicado al problema de asignacin es: f 0 una solucin admisible para el problema de
42
T ( f ) = T ( f k ) + T ( f k ) T ( f f k )
Min T ( f ) sujeto a:
rR pq
pqr
= d pq
( p, q) C
r R pq , ( p, q) C
h pqr 0
( p , q )C rR pq
pqra
h pqr = f a
a A
la direccin de bsqueda de
T ( f k ) LDB < , entonces finalizar el procedimiento con f LDB En otro caso continuar al siguiente paso.
solucin aproximada.
5.- Actualizacin.
k +1
= f k + lp k
T( f
k +1
43
el procedimiento con f
k +1
La solucin inicial f 0 puede ser obtenida mediante una asignacin Todo o nada considerando que en todos los tramos se circula en flujo libre. El problema de programacin lineal a resolver en el paso dos puede ser desagregado en C problemas independientes. Cada problema corresponde a la obtencin del camino mnimo entre un par de nodos. El coste asociado a cada arco para el clculo del camino mnimo es t a ( f ak ) . La resolucin del problema de asignacin mediante el algoritmo de Frank-Wolfe conlleva la resolucin de una gran cantidad de problemas de ruta mnima, es decir en el paso dos el procedimiento debe calcular el camino mnimo desde todos los nodos origen hacia todos los nodos destinos. La mayor parte de los clculos realizados en el algoritmo son efectuados por la resolucin del problema de ruta mnima (sobre el 90%) en el paso 1. La importancia de seleccionar e implementar un algoritmo eficiente en la obtencin de la ruta mnima es esencial. A continuacin se expone con mayor detalle del procedimiento de Frank-Wolfe aplicado al modelo de asignacin de trfico.
44
Inicio
Iteracin Inicial
Si
Matriz Asignacin = Yk
No Fin
Si Fin
La figura anterior muestra el procedimiento empleado en la obtencin de una solucin admisible mediante el algoritmo de Frank-Wolfe. Sea A(i,j) la matriz que representa los viajes entre cada par de zonas definidas en el viario, Yk direccin de mejora de la funcin objetivo del modelo, corresponder con el camino mnimo entre un
45
par origen-destino, el factor de ponderacin es una variable utilizada para la redistribucin de flujos y la matriz de asignacin corresponde a la estructura de datos donde se almacenarn los resultados obtenidos en cada iteracin. El procedimiento comienza inicializando todos los valores la matriz de asignacin a 0, a continuacin comienza el proceso iterativo calculando la matriz de distancias o coste:
Inicio
Fin
La matriz de distancias contiene, para cada arco de la red, el tiempo o coste que emplea un vehculo en el desplazamiento. Los arcos o tramos estn caracterizados por una funcin Volumen-Retraso, continua y creciente que es empleada para obtener el tiempo necesario para desplazarse por el tramo. El procedimiento se encarga de actualizar el tiempo empleado en cada tramo mediante la aplicacin de la funcin Volumen-Retraso correspondiente a cada tramo.
46
Conocido el flujo de vehculos que circula por cada tramo es posible obtener el valor de la funcin objetivo y calcular la direccin de mejora que nos conduce a una nueva solucin mejor a la actual. El procedimiento de obtener la direccin de mejora se realiza mediante una asignacin Todo o Nada en el camino mnimo calculado previamente. El procedimiento para calcular el camino mnimo debe ser eficiente y ptimo ya que el 90% del tiempo de computacin del procedimiento de asignacin es consumido por el clculo de la ruta mnima. Los algoritmos eficientes para la obtencin de una ruta mnima son los algoritmos de etiquetado, en especial se utiliza el algoritmo de Dijkstra cuyo orden de computacin es O(n log m) , donde n representa el nmero de nodos y m el nmero de aristas.
Inicio
No
Fin
Si
No
Dijstrak (i,j)
47
El mtodo debe calcular los caminos mnimo entre cada par de zona OrigenDestino y asignarle la matriz de viaje a la ruta que conecta dicho par. Una vez obtenida la direccin de mejora de la funcin objetivo se obtiene el factor de ponderacin que permite redistribuir los flujos en el viario. El factor de ponderacin toma valores entre 0 y 1, ya que especifica que porcentaje de demanda se redistribuye. En la primera iteracin del algoritmo el factor de ponderacin toma como valor la unidad siendo equivalente a la asignacin todo o nada. El factor de ponderacin es el porcentaje en que se minimiza la funcin objetivo es decir: Min G ( ) =
a A
(1 ) va y a
t a ( s )ds
Inicio
F ((1 )M
a A i
Mtodo dicotomia
asig
(i , j ) + Ya )(Ya M asig (i , j ) )
48
Los valores del factor de ponderacin se encuentran acotados entre 0 y 1. Para calcular el valor de que anula el gradiente se emplea el mtodo de clculo de races de una ecuacin, como por ejemplo el mtodo de dicotoma. Por ltimo el algoritmo se encarga de la actualizacin de la matriz de Asignacin, que recoge el volumen de vehculos que circula por cada tramo. La nueva matriz de asignacin es una redistribucin de flujos de la matriz anterior.
Inicio
Fin
Al final se comprueba las condiciones de salida del procedimiento, entre las posibles causas de salida del procedimiento son:
El nmero de iteraciones realizadas. El usuario especifica el nmero mximo de iteraciones que el procedimiento debe realizar.
El factor de ponderacin toma valor 0, por lo que no existe una redistribucin de flujos.
49
En los problemas de asignacin de trfico una gran parte del proceso consiste en el clculo del camino mnimo entre cada par de centroides del grafo. Todo problema de asignacin tiene como ncleo del cdigo un algoritmo de optimizacin, el cual suele usarse de forma recurrente. De hecho, el 90% del tiempo empleado en el procedimiento de asignacin, consiste en el clculo del camino mnimo entre cada par de centroides. Por ello el tiempo total de clculo del algoritmo de asignacin depende fuertemente de la rapidez del cdigo de bsqueda de dichos caminos. Debido a que nuestro mtodo de calibracin se basa en una preasignacin, tambin va a ser para nosotros importante disponer de un buen algoritmo de optimizacin. En este punto vamos a estudiar diferentes algoritmos. Para la realizacin de dichos clculos se recurre a una serie de algoritmos llamados voraces entre los que se encuentran los algoritmos de obtencin de rboles de expansin mnima (Kruskal y Prim) y los algoritmos de ruta mnima (Dijkstra y Floyd [Dij1959]). En concreto se estudia el algoritmo de Dijkstra y varias modificaciones y mejoras sobre el algoritmo base. El algoritmo de Dijkstra as mejorado ser el empleado en nuestro algoritmo de asignacin y calibracin.
2.3.1
En la realizacin de este algoritmo, partiremos de un grafo G = {N, A} donde la longitud de los arcos es conocida en forma de matriz de distancias. En el desarrollo del algoritmo se utilizaran dos conjuntos de nodos. Uno estar comprendido por los nodos candidatos C y otro por el conjunto de nodos seleccionados S. El algoritmo de Dijkstra es un algoritmo de etiquetacin en nodos, lo cual quiere decir que los nodos irn marcndose conforme se vayan seleccionando, de forma que no se seleccione un nodo ms de una vez. Al inicio del algoritmo la lista de nodos seleccionados estar integrada nicamente por el nodo origen. El resto de nodos estarn en la lista de nodos candidatos. El algoritmo ira traspasando los nodos de la lista de candidatos a la de seleccionados, de
50
forma que al finalizar este la lista de candidatos este vaca. El modelo de minimizacin que se pretende resolver con la aplicacin del algoritmo de Dijkstra viene determinado por el siguiente grupo de ecuaciones: Min t a ( s )ds
aA fa
sujeto a:
rR pq
pqr
= d pq
( p, q) C r R pq , ( p, q) C
h pqr 0
( p , q )C rR pq
pqra
h pqr = f a
a A
Se denomina camino especial a aquel camino, desde el origen a otro vrtice, que solo pasa por vrtices del conjunto de nodos seleccionados S. Un vector D mantiene la longitud del camino especial ms corto para cada uno de los nodos excepto el origen. Una vez que un nodo es trasladado del conjunto C al conjunto S, el camino especial de dicho nodo coincide con el camino mnimo. Para ilustrar los algoritmos se van a presentar los resultados aplicados al siguiente grafo:
51
La matriz de distancias asociada al grafo permite introducir fcilmente los datos a la implementaron informtica del algoritmo. En ella cada elemento de la matriz L[i, j] representa la distancia entre los nodos i y j. La matriz que usaremos es la siguiente: O/D Nodo 1 Nodo 2 Nodo 3 Nodo 4 Nodo 5 Nodo 6 Nodo 1 Nodo 2 10 Nodo 3 5 15 5 Nodo 4 20 5 Nodo 5 10 Nodo 6 15 1 -
Tabla 2.3-1. Matriz de viajes A continuacin se muestra el algoritmo en forma de diagrama de flujo.
52
C = { 2 , 3,...n} j=2
D [ j ] = L [1, j ]
Si
jn
No
F in
C
Si
Si
C: conjunto candidatos.
p C
v = vk
uk u p
S: conjunto seleccionados.
Si
C = C {v} S = S {v}
L[i,j]: distancia entre los nodos i y j D[]: vector de distancias. ui: elemento i-simo del vector D
Si
m C
D [ w ] = M in ( L [ v , w ] + D [ v ], D [ w ])
w = elemento nmero m de C
m = m +1
A continuacin se muestran los resultados de la iteracin del algoritmo sobre el grafo anteriormente mostrado. Se toma como origen el nodo 1.
Iteracin 1 2 3 4 5 Final Seleccionados {1} {1, 3} {1, 2, 3} {1, 2, 3,4} {1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6} Candidatos {2, 3, 4, 5, 6} {2, 4, 5, 6} {4, 5, 6} {5, 6} {6} {-} Nodo selec (v) 3 2 4 5 6 Distancias D [10, 5, 20, -, -] [10, 5, 10, -, 20] [10, 5, 10, -, 20, ] [10, 5, 10, 20, 20, ] [10, 5, 10, 20, 20, ] [10, 5, 10, 20, 20, ]
53
La mayor perdida de tiempo del algoritmo de Dijkstra es la bsqueda del nodo v tal que su distancia al nodo origen sea mnima. Para ello se usa el vector de distancias D. La bsqueda implica recorrer un vector de N posiciones, lo cual, para grafos de un cierto tamao, puede ser realmente importante. Por ello, parece lgico tratar de disminuir este tiempo, con vistas a acelerar el algoritmo. En concreto, la inicializacin del algoritmo emplea un tiempo O(n), siendo n el nmero de nodos. La seleccin de un vrtice v implica un tiempo O(n2). El algoritmo tiene un coste de tiempo total de O(n2). Se buscarn mtodos que aceleren el proceso. Ello se consigue cambiando el vector D por una estructura en forma de rbol llamada montculo. Esta modificacin ser explicada con detalle en el siguiente paso.
2.3.2
Un montculo es un rbol binario, representado por un vector, sin necesidad de punteros. La principal propiedad de este tipo de rbol es la sencillez y el coste computacional de aadir un nodo, de forma que se mantenga ordenado. Un rbol binario se llama casi completo si cada uno de sus nodos internos posee exactamente dos hijos, izquierdo y derecho, excepto posiblemente un nodo especial situado en el nivel 1, que puede tener un solo hijo, el izquierdo. Adems todas las hojas (nodos sin hijos) se encuentran en el nivel 0 o en el nivel 1. El nodo especial, si existe, estar a la derecha de todos los nodos internos de nivel 1. Se puede representar este rbol sobre un vector T, en el cual los nodos de profundidad k se sitan en las posiciones T(2k-1),..., T(2k-1), k=1, ...., sabiendo que las posiciones del rbol son T(1), T(2),... Un montculo es un rbol binario casi completo en el que cada nodo tiene una informacin asociada, denominada valor del nodo. La propiedad del montculo exige que el valor de cada nodo interno sea mayor o igual que el valor de sus hijos. El padre del nodo representado por T(i) se halla en T(i div 2), y sus hijos en las posiciones T(2i) y T(2i+1).Las propiedades especiales de los montculos hacen que este
54
T(1)
Nodos Internos
T(2)
Nivel 2
T(3)
T(4)
T(5)
Nivel1
T(6)
T(7)
Hojas
T(8)
T(9)
T(10)
Nivel 0
T(1) 10
T(2) 7
T(3) 9
T(4) 4
T(5) 7
T(6) 5
T(7) 2
T(8) 2
T(9) 1
T(10) 6
Tabla 2.3-3. Representacin vectorial de montculo La estructura que representa el montculo es extremadamente til cuando se usa para la ordenacin de valores. La raz siempre contiene el elemento con el valor mas alto (tambin se pueden modificar los mtodo para que sea el mas pequeo). Adems las propiedades del montculo, que se veran afectadas al modificar el valor de un elemento o aadir uno nuevo a la estructura, son fcilmente restauradas, sin que el proceso implique una comparacin entre todos los elementos. Si un elemento aumenta su valor hasta superar el de su padre, basta con intercambiarlo con ste y proseguir con este proceso hasta que se reubique el nodo modificado. Este proceso recibe el nombre
55
de flotar el elemento. Igualmente existe un mtodo equivalente llamado hundir que intercambia un nodo con el mayor de sus hijos si el padre ha modificado su valor.
Es necesario por tanto la implementacin de una serie de mtodos asociados al montculo que nos van a permitir el manejo y uso de este. Se asegura que con estos mtodos se podr sacar total provecho del montculo de forma transparente al resto del cdigo. Los mtodos son los siguientes, expresados en notacin de pseudocdigo.
Mtodo crear_monticulo(T[1...n])
Mtodo quitar_raiz(T[1...n])
56
Mtodo aadir_nodo(T[1...n],v)
Mtodo hundir(T[1...n], i)
ki Repetir jk Si 2*j n Y T[2*j] > T[k] entonces k 2*j Si 2*j +1 n Y T[2*j+1] > T[k] Y T[2*j+1] > T[2*j] entonces k 2*j+1 Hasta j=k
Mtodo flotar(T[1...n], i)
ki Repetir jk Si j>1 Y T[jmod2] > T[k] entonces k jmod2 Intercambiar T[j]T[k] Hasta j=k La primera modificacin que vamos a realizar sobre el algoritmo de Dijkstra va a ser sustituir el vector D de distancias por un montculo que contendr como nodos los
57
vrtices que existan en la lista de candidatos y ordenados segn el valor de D[v]. Para que el funcionamiento del montculo se ajuste a nuestras necesidades es preciso modificar los mtodos para convertirlo en un montculo mnimo, es decir que sea el menor de los nodos el que se encuentre en la raz. La inicializacin del montculo requiere de un tiempo de coste O(n). En cuanto al algoritmo, la inclusin del montculo nicamente implica la sustitucin de la lnea C = C-{v} por la instruccin quitar_raiz. El proceso de eliminacin de la raz tiene un coste de tiempo de O(logn). La actualizacin de las distancias supone comprobar para cada nodo w adyacente a v si se cumple la condicin D[v]+L[v,w]<D[w], en cuyo caso se usara el mtodo modificar_elemento, lo que requiere igualmente un tiempo O(logn). En resumen, para un grafo G(N, A), se tiene que eliminar la raz del montculo n-2 veces y hacer flotar como mximo A nodos, dando un tiempo total O((A+n)logn). Si el grafo es conexo el tiempo empleado sera O(Alogn). Para grafos muy densos es preferible la implementacin bsica del algoritmo bsico, mientras que en grafos poco densos es preferible la utilizacin de montculos.
2.3.3
En los problemas reales de asignacin, una representacin del viario mediante un grafo con N vrtices y A aristas no es suficiente para la inclusin de todas las caractersticas de ste. Si pensamos en un grafo que represente el viario de una ciudad, nos encontramos con el problema de que ciertos giros no estarn permitidos para los usuarios. Se presenta la necesidad de modificar nuestros algoritmos de forma que representen ms fielmente nuestro problema. Los algoritmos hasta ahora contemplados no incluyen esta circunstancia, generndose rutas mnimas las cuales no son vlidas ya que incluyen giros prohibidos. Es necesario pues que el algoritmo tenga en cuenta tambin estas caractersticas del viario y encuentre la ruta mnima permitida por las normas de circulacin. Adems, esta circunstancia nos permite incluir un coste para esos giros, los cuales pueden ser como en el caso de los tramos, funciones del volumen de trfico que cursa el giro. Debemos tener una relacin pues de esos costes. Ello se incluye en una matriz cuadrada G de dimensiones iguales al numero de tramos del
58
grafo, cuyos valores sern el coste en tiempo si el giro esta permitido e infinito si el giro no existe o no est permitido. En cuanto al algoritmo, el hecho de incluir los giros obliga a modificar las estructuras que usamos para la bsqueda de caminos mnimos. Ase tendr que trabajar con tramos en lugar de nodos. Esto quiere decir que en vez de buscar el camino mnimo a un nodo, lo que vamos a buscar es el camino ms corto para llegar a un tramo. La distancia a un nodo ser la menor distancia de todos los tramos que llegan a dicho nodo. Esto, desde el punto de vista de la implementacin, nos obliga a realizar una etiquetacin en tramos en lugar de en nodos como venamos haciendo hasta ahora, es decir, que el montculo va a estar compuesto por tramos en lugar de nodos. Seguimos usando montculos como estructura de ordenacin ya que los motivos para elegirlos en implementaciones anteriores siguen mantenindose. La inclusin de los giros en nuestra representacin del viario, hace que el modelo de asignacin vea modificadas sus ecuaciones, quedando como se muestra a continuacin:
Min t a ( s )ds +
fa a A 0
lI a1 Ai a2 Ai+
f a1 , a 2
g a1 ,a2 ( s )ds
sujeto a:
rR pq
pqr
= d pq
( p, q) C r R pq , ( p, q) C
h pqr 0
( p ,q )C rR pq
pqra
h pqr = f a
a A
El modelo es muy similar, excepto la incorporacin del tiempo empleado en cruzar el giro en la funcin objetivo y la restriccin que indica que el volumen de
59
vehculos que pasa por un giro es igual a la suma de todos los vehculos que utilizan el giro en concreto en su ruta. En la siguiente notacin se han incluido una serie de elementos que pasamos a detallar. es el conjunto de intersecciones que tienen definidos giros, Ai- es el conjunto de tramos cuyo nodo final es el nodo i, Ai+ el conjunto de tramos con nodo inicial igual a i y g a1,a2 (s) la funcin Volumen-Retraso del giro que conecta los tramos a1 y a2. En el siguiente diagrama de flujo se muestra el algoritmo que nos permite realizar el proceso anteriormente explicado. En el siguiente diagrama se sigue la siguiente notacin:
Q: conjunto de nodos destino. : conjunto de nodos que tienen definidos los giros p: nodo origen. ui: distancia al tramo i-simo. bi: tramo que precede al tramo i-simo en la ruta mnima. uq: distancia a un nodo destino. a y : tramos genricos. ca: coste del giro que conecta los tramos a y . ca: coste del tramo a. Aj+: conjunto de tramos que parten del nodo j. Aj-: conjunto de tramos que llegan al nodo j.
60
Inicio
u q = , bq = , q Q
+ u a = , ba = , a A p + u a = c a , ba = 0 , a A p
+ A = Ap
Inicializacin
Si
No
A
Si Seleccionar
Fin
a = ( i , j ) A tal que
ua ua a A
A = A {a }
Si
jQ
Si
uq = ua
A = A {a }
bq = a
No
No
Si
Si
Si
j I
No Si
a = ( j, l ) A + j
No
l 0
Si Si
a = ( j, l ) A + j li
Si Si Si
No
u a + caa + ca < u a
Si
u a = u a + ca
u a + ca < u a
No
j = i
u a = u a + c aa + c a
A = A + {a} ba = a
A = A + {a} ba = a
61
El algoritmo mostrado en este diagrama de flujo obtiene el camino mnimo entre un nodo origen p y un conjunto de nodos destino denominado Q. La variable ua contiene la distancia entre el nodo origen y el tramo a. Para finalizar con la descripcin del algoritmo as como ilustrar el funcionamiento del proceso, obsrvese el siguiente ejemplo. La siguiente red consta de 6 nodos y 16 tramos. Al nodo central, nodo 6, se le han definido los giros permitidos con sus respectivos costes. Para los dems nodos, los giros estarn permitidos desde cualquier tramo entrante hacia cualquier tramo saliente, con coste igual a cero.
Como siempre, representaremos el grafo en forma matricial, en este caso una matriz para las distancias y otra matriz para definir los costes de los giros en el nodo 6. as matrices son las siguientes: 5 4 5 8 1 8 1 1 7 3 4 7 2 1 3 2
4 2 6
Coste de giros
Coste de tramos
62
Como ya se ha comentado, el algoritmo funciona con un etiquetado en tramos, por lo que pasamos a definir los cdigos de tramos:
63
Una vez hemos obtenido las distancias mnimas a los tramos, para conocer la distancia mnima a los nodos, seleccionamos para cada nodo la distancia del tramo que tiene una distancia ms pequea. Haciendo esto, obtenemos los siguientes resultados: Nodo destino 2 3 4 5 6 Coste 5 11 10 4 6 Secuencia de nodos 12 1 2 6 4 3 1 2 6 4 1 5 1 5 6
2.3.4
Una modificacin lgica sobre el algoritmo del camino mnimo, consiste en encontrar no slo ese camino mnimo, sino los k caminos mnimos entre un nodo origen y un nodo destino. Esta modificacin sobre el algoritmo puede ser muy til en problemas de encaminamiento. Se diferencian dos tipos de problemas, segn los caminos encontrados deban cumplir o no con una serie de condiciones. Hablamos as de problemas k-min con y sin condiciones de contorno. Posibles condiciones de contorno podran ser la de no tener bucles, ser disjuntos, etc.. Nosotros vamos a centrarnos en el problema sin condiciones de contorno y en concreto en el principio de optimalidad, como todos los algoritmos de encaminamiento presentados hasta ahora. En realidad va a ser una modificacin del algoritmo de Dijkstra ya presentado, en particular del algoritmo de Dijkstra con giros. Este algoritmo de los K caminos mnimos va a ser despus utilizado como ncleo de la segunda propuesta de calibracin de matrices origen/destino.
64
Tanto el algoritmo de Dijkstra como el algoritmo de los K caminos mnimos, son algoritmos de etiquetacin, en nodos si no tenemos en cuenta los giros y en tramos en caso contrario. No obstante, mientras que en el algoritmo de Dijkstra cada nodo (o tramo) posee una nica etiqueta, en el caso del algoritmo k-mn es necesario tener ms de una etiqueta por elemento. As, para cada nodo (o tramo) tendremos, para cada uno de los K caminos, una etiqueta indicando la distancia al nodo origen. Es decir, dispondremos de un conjunto de parmetros ik indicando la distancia del nodo (o tramo) i para el camino k-simo. Existen dos tipos de algoritmos de etiquetacin, algoritmos de etiquetacin correctores y permanentes. En los primeros, slo obtenemos el conjunto de los K caminos una vez concluido el algoritmo, mientras que en el segundo grupo, los caminos van siendo obtenidos conforme el algoritmo va ejecutndose. En cuanto a la ejecucin del algoritmo es idntica al caso de Dijkstra con giros, pero ahora cuando se saca la raz del montculo, se aade al montculo un elemento por cada tramo que parta del nodo destino del tramo que se encontraba en la raz del montculo. Es decir, si el elemento raz es el tramo (i, j), se aade un elemento por cada tramo de la forma (j, l). Por ello, cada tramo puede ser aadido al montculo ms de una vez, por lo que para diferenciarlos, se aade un segundo identificador que los diferencie, siendo elementos totalmente diferentes a efectos del algoritmo. Para determinar los caminos encontrados, cada elemento del montculo debe mantener como caracterstica los identificadores (numero de tramo y subidentificador) del tramo que le precede.
65
Inicio
Inicializacin u q = , bq = , q Q
+ u a = , ba = , a A A p + u a = 0, ba = 0, a A p
+ A = Ap
si A No
Si
Fin
A = A {a}
si j Q No
Si
uq = ua
' ba = a, ba = Na + 1
A = A {a}
si j I
Si
si a = ( j , l ) A+ j
No
No
si a = ( j , l ) A+ j li
Si No
si N a < K
No
Si ua = ua + caa + ca
Sa = N a + 1
Si
u a = u a + ca
Si
Sa = N a + 1
si N a < K
No
A = A + {a}
' ba = a, ba = Sa
A = A + {a}
' ba = a, ba = Sa
66
montculo.
uq: distancia a un nodo destino. a y : tramos genricos. ca: coste del giro que conecta los tramos a y . ca: coste del tramo a. Aj+: conjunto de tramos que parten del nodo j. Aj-: conjunto de tramos que llegan al nodo j.
El algoritmo utiliza las variables Na que almacena el nmero de elementos con cdigo de tramo igual a a que han sido incluidos en el montculo. Hay que notar que el algoritmo slo incorporar un tramo al montculo como mximo K veces, siendo K el nmero de caminos que se desea encontrar. Esto se debe a que para encontrar los K caminos mnimos a cualquier nodo, slo sern necesarios como mucho K caminos mnimos al resto de los nodos, lo cual se desprende del principio de optimalidad. Esta modificacin acelera enormemente el algoritmo en redes con un alto nmero de nodos y tramos, limitando as el tamao del montculo. Con vistas a aclarar este algoritmo vamos a aplicarlo al grafo anterior, para un valor de K = 3. En este caso vamos a considerar como nodo origen el nodo 1 y como nodo destino el nodo 3. Los dems datos del grafo siguen mantenindose iguales que en el ejemplo anterior.
67
Iteracin 0(init) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Raz del montculo X {20, 00, 4} {10, 00, 5} {130, 20, 6} {50, 10, 6} {110, 20, 8} {140, 130, 9} {151, 50, 10} {51, 140, 10} {30, 10, 10} {120, 20, 11} {81, 151, 11} {161, 50, 11} {82, 120, 12} {21, 110, 12} {72, 81, 12} {101, 151, 13} {132, 161, 13} {11, 110, 13} {40, 10, 13} {152, 51, 14}
Elementos aadidos al montculo {10, 00, 5} ; {20, 00, 4} {110, 20, 8} ; {120, 20, 11}; {130, 20, 6} {30, 10, 10} ; {40, 10, 13} ; {50, 10, 6} {140, 130, 9} ; {150, 130, 15} {151, 50, 10} ; {161, 50, 11} {11, 110, 13} ; {21, 110, 12} {31, 140, 14} ; {41, 140, 17} ; {51, 140, 10} {81, 151, 11} ; {91, 151, 17} ; {101, 151, 13} {152, 51, 14} ; {162, 51, 15} {12, 30, 15} ; {22, 30, 14} {82, 120, 12} ; {92, 120, 18} ; {102, 120, 14} {62, 81, 19} ; {72, 81, 12} {112, 161, 15} ; {122, 161, 18} ; {132, 161, 13} ---------
68
El algoritmo acaba cuando el montculo queda vaco. No obstante, tambin se podra dar por terminado una vez se han encontrado K caminos mnimos a tramos con nodo destino el nodo 3. A continuacin mostramos las soluciones encontradas:
Camino K = 1, longitud 11
Camino K = 2, longitud 12
Camino K = 3, longitud 13
69
En este apartado se va a hacer una revisin de cmo surge, qu es y por qu se utiliza el Lenguaje de Modelado Unificado (UML). Este lenguaje es una especificacin de notacin orientada a objetos y se emplea ara modelar el sistema y representar las distintas relaciones entre los componentes del mismo.
3.1.1
Los lenguajes de modelados orientados a objetos aparecieron a mediados de los 70 y finales de los 80, influidos por tcnicas como los modelos de Entidad/Relacin y el
Specifications & Description Language (SDL, circa 1976, CCITT), como diversas
metodologas que se aproximaban al anlisis y diseo orientado a objetos. El nmero de lenguajes de modelado sufri un espectacular incremento entre los aos 1989 y 1994, llegando a identificarse hasta 50 lenguajes diferentes con los problemas que esto conllevaba para los usuarios. A mediados de los 90 aparecieron nuevas interacciones entre los diferentes mtodos, destacando el Booch93, la evolucin del OMT (Object Modeling Techniques) y Fusion. Los mtodos empezaron a incluir tcnicas unos de los otros, predominando un pequeo grupo de ellos, incluyendo el OOSE (Object Oriented Software Engineering), OMT-2 y el Booch93. Cada uno de ellos era un mtodo completo con sus puntos fuertes y flaquezas. Simplificando, OOSE era un lenguaje que se orientaba hacia los casos de uso, dando un excelente soporte para los anlisis de requerimientos en la ingeniera. OMT-2 era especialmente adecuado para el anlisis de sistemas de informacin y bases de datos. Finalmente Booch93 destacaba por su utilidad en las fases de diseo y construccin de proyectos, llegando a ser muy popular para el desarrollo de proyectos de ingeniera.
70
Con este panorama, en Octubre del 94, comenz el desarrollo del UML cuando Grady Booch y Jim Rumbaugh, del grupo Rational Software Corporation, comenzaron un trabajo conjunto para unificar los mtodos Booch y OMT. Se daba el caso de que los mtodos Booch y OMT estaban conocidos en todo el mundo como los lderes entre los mtodos de modelado orientados a objetos, por lo que Booch y Rambaugh unieron sus esfuerzos para unificar sus trabajos. Un primer boceto (versin 0.8) del Unified Method, como fue llamado entonces, se dio a conocer en Octubre del 95. A finales de 1995, Ivar Jacobson y su compaa de unieron a Rational y a su esfuerzo por unificar el lenguaje, aportando lo ya desarrollado en el OOSE. Los autores de los mtodos Booch, OMT y OOSE (Grady Booch, Jim Rumbaugh e Ivar Jacobson), estaban por lo tanto decididos a crear un lenguaje unificado de modelado por tres razones:
En
primer
lugar,
los
mtodos
se
estaban
desarrollando
unos
independientemente de los otros. Era de sentido comn continuar la evolucin conjuntamente mejor que por separado, eliminando la posibilidad de crear diferencias innecesarias que posteriormente podran confundir a los usuarios.
Por otro lado, unificar la nomenclatura y la semntica traera estabilidad al mercado de los lenguajes orientados a objetos, permitiendo que los proyectos se centraran en un solo lenguaje, dejando a los desarrolladores de herramientas crear mejor aplicaciones.
Finalmente, ellos esperaban que su colaboracin pudiera conllevar importantes mejoras en los tres mtodos, de forma que se pudieran abarcar nuevos problemas que ninguno de los tres mtodos originales resolva adecuadamente.
71
Cuando de comenz la unificacin, se establecieron cuatro objetivos primordiales en los que centrar sus esfuerzos:
Permitir el modelado de sistemas, y no solo de software, usando conceptos de la orientacin hacia objetos.
Modelar el sistema, desde el concepto hasta los artefactos ejecutables, utilizando tcnicas orientadas a objetos.
Cubrir las cuestiones relacionadas con el tamao inherente a los sistemas complejos y crticos.
Crear un lenguaje de modelado utilizable tanto por las personas como por las maquinas.
En Junio de 1996 se publicaron las versiones 0.9 y 0.91. Durante ese ao los autores invitaron, y recibieron respuesta, de toda la comunidad internacional relacionada con el tema. Adems, varias corporaciones vieron el UML como un punto estratgico en el desarrollo de sus actividades. Algunas de las empresas contribuyeron a la aparicin de la versin 1.0 en Enero de 1997 fueron IBM, Hewlet-Packard, Dell, Texas Instruments... Esta versin fue ofrecida a la OMG (Object Management Group) para su estandarizacin, en respuesta a su solicitud de propuestas para un lenguaje estndar de modelado. Entre Enero y Julio de 1997, el grupo inicial de colaboradores se ampli para incluir prcticamente a todas las organizaciones que haban aportado algo al proyecto, crendose un grupo de trabajo liderado por Cris Kobryn para trabajar en la semntica. Como resultado se le entreg a la OMG la versin 1.1 para su estandarizacin en Julio de 1997. Esta versin se acept el 14 de Noviembre de 1997 por la OMG. El control del mantenimiento de UML fue asumido por la OMG Revision Task
72
Force, dirigida por Cris Kobryn. La RTF public una revisin editorial, UML 1.2, en
Junio de 1998. En otoo de 1998 la RTF public UML 1.3, que es la versin utilizada en este proyecto.
3.1.2
UML es un lenguaje estndar para escribir planos de software. Se puede utilizar para especificar, construir y documentar los artefactos de un sistema que involucran una gran cantidad de software. UML es apropiado para modelar desde sistemas de informacin de empresas, hasta aplicaciones distribuidas basadas en la web, e incluso para sistemas empotrados de tiempo real muy exigentes. Es un lenguaje expresivo, que cubre todas las vistas necesarias para desarrollar y luego desplegar tales sistemas. UML es slo un lenguaje, por lo tanto es tan slo una parte de un mtodo de desarrollo de software. Es independiente del proceso, aunque para utilizarlo ptimamente se debera usar en un proceso que fuese dirigido por los casos de uso, centrado en la arquitectura, iterativo e incremental. En general, UML es un lenguaje para visualizar, especificar, construir y documentar los artefactos de un sistema con gran cantidad de software. Como lenguaje, UML proporciona un vocabulario y unas reglas para combinar las palabras de dicho vocabulario con el objetivo de posibilitar la comunicacin. Un lenguaje de modelado es un lenguaje cuyo vocabulario y reglas se centran en la representacin conceptual y fsica del sistema. Un lenguaje de modelado como es UML es, por tanto, un lenguaje estndar para los planos de software. El modelado proporciona una comprensin de un sistema. Nunca es suficiente un nico modelo. Ms bien, para comprender cualquier cosa, a menudo se necesitan mltiples modelos conectados entre s, excepto en los casos ms triviales. Para sistemas
73
con gran cantidad de software, se requiere un lenguaje que cubra las diferentes vistas de la arquitectura de un sistema mientras evoluciona a travs del ciclo de vida del desrrollo del software. El vocabulario y las reglas de un lenguaje como UML indican cmo crear y leer modelos bien formados, pero no dicen qu modelos se deben crear ni cundo se deberan crear. sta es la tarea del proceso del desarrollo del software. Un proceso bien definido guiar a su usuario a decidir qu artefactos producir, qu actividades y personal se emplean para crearlos y gestionarlos, y cmo usar estos artefactos para medir y controlar el proyecto de forma global. Para muchos programadores, la distancia entre pensar en una implementacin y transformarla en cdigo es casi nula. Lo piensas, lo codificas. De hecho, algunas cosas se modelan mejor directamente en cdigo. En este caso, el programador todava est haciendo mentalmente algo de modelado, si bien lo hace de forma totalmente mental. No obstante, esta manera de proceder plantea algunos problemas:
Primero, la comunicacin de estos modelos conceptuales se torna complicada y est sujeta a errores, salvo que las dos partes hablen el mismo lenguaje. Normalmente, los proyectos y las organizaciones desarrollan su propio lenguaje, y es difcil comprender lo que est pasando para alguien ajeno al grupo.
Segundo, hay algunas cuestiones en un sistema de software que no se pueden entender amenos que se construyan sobre modelos que trasciendan el lenguaje de programacin textual. Por ejemplo, el significado de una jerarqua de clases puede inferirse, pero no capturarse completamente inspeccionando el cdigo de todas las clases en la jerarqua.
Tercero, si el desarrollador que escribi el cdigo no dej documentacin escrita de los modelos que haca de forma mental, esa informacin se perder para siempre, o como mucho, ser slo parcialmente reproducible a
74
Al escribir modelos UML, se afronta el tercer problema: un modelo explcito para facilitar la comunicacin. Algunas cosas se modelan mejor textualmente, otras se modelan mejor de forma grfica. En realidad, en todos los sistemas interesantes hay estructuras que trascienden lo que puede ser representado mediante un lenguaje de comunicacin. UML es uno de esos lenguajes grficos. As afronta el segundo problema mencionado anteriormente. UML es algo ms que un simple compendio de smbolos grficos. Ms bien, detrs de cada smbolo en la notacin UML hay una semntica bien definida. De manera que un desarrollador puede escribir un modelo en UML, y otro desarrollador, o incluso otra herramienta, pude interpretar ese modelo sin ambigedad. As afronta el primer problema mencionado con anterioridad. En este contexto, especificar significa construir modelos precisos, no ambiguos y completos. En particular, UML cubre la especificacin de todas las decisiones de anlisis, diseo e implementacin que se deben realizar al desarrollar y desplegar un sistema con gran cantidad de software. UML no es un lenguaje de programacin visual, pero sus modelos pueden conectarse a gran variedad de lenguajes de programacin. Esto significa que es posible establecer correspondencias desde un modelo UML a un lenguaje de programacin como C++, Java o Visual Basic, o incluso tablas en una base de datos relacional o almacenamiento persistente en una base de datos orientada a objetos. Las cosas que se expresan mejor grficamente tambin se representan grficamente con UML, mientras que las cosas que se representan mejor textualmente se plasman con un lenguaje de programacin. Esta correspondencia permite la ingeniera directa: generacin de cdigo a partir de un modelo UML en un lenguaje de programacin. Lo contrario tambin es posible: se puede reconstruir un modelo en UML a partir de una implementacin. Pero este
75
proceso no es automtico, a menos que se codifique esa informacin en l a implementacin, la informacin se pierde cuando se pasa del modelo al cdigo. La ingeniera inversa requiere, por lo tanto, de herramientas que la soporten e intervencin humana. La combinacin de estas dos vas de generacin de cdigo y de ingeniera inversa produce una ingeniera de ida y vuelta, entendiendo por eso la posibilidad de trabajar en una vista grfica o textual, mientras que las herramientas mantienen la consistencia de las dos vistas. Adems de esta correspondencia directa, UML es lo suficientemente expresivo y no ambiguo como para permitir la ejecucin directa de modelos, la simulacin de sistemas y la instrumentacin de sistemas en ejecucin. UML cubre la documentacin de la arquitectura de un sistema y todos sus detalles. UML tambin proporciona un lenguaje para expresar requisitos y pruebas. Finalmente, UML proporciona un lenguaje para modelar las actividades de planificacin de proyectos y gestin de versiones.
Los mtodos de calibracin que en este proyecto se han desarrollado han sido implementados en un lenguaje de programacin orientado a objetos como es C++. Por ello, resulta adecuado el uso de UML para explicar su diseo. A continuacin se muestran los diagramas que forman parte del lenguaje de modelado unificado del proyecto, as como una breve introduccin a los mismos, con el fin de que su interpretacin sea de utilidad a la hora de entender los algoritmos aqu diseados.
3.2.1
76
punto de vista del usuario basndose en un conjunto de acciones y reacciones. Es por lo tanto una tcnica que permite capturar los requisitos funcionales del sistema. De esta forma queda delimitado el alcance del sistema y cul es su relacin con el entorno. E estos diagramas, el sistema queda reducido a una caja negra, ya que no interesa cmo lleva a cabo sus funciones, sino simplemente qu acciones visibles desde el exterior son las que realiza. Los casos de uso estn basados en lenguaje natural, lo que los hace accesibles a cualquier usuario. Adems, aquellos casos de uso que resulten muy complejos pueden descomponerse en nuevos casos de uso de un nivel inferior, hasta llegar a un nivel tal que resulten fciles de analizar. Los casos de uso guan todo el proceso de desarrollo del sistema, lo que quiere decir que en momentos determinados de dicho proceso, el sistema debe ser validado comprobando que se ajusta al diagrama de casos de uso. Los diagramas de casos de uso estn formados por tres elementos fundamentales:
Actores. Los actores son los participantes de os casos de uso, se corresponden con los usuarios que interactan con el sistema. Estos actores pueden ser humanos, dispositivos externos que interacten con el sistema, o incluso temporizadores que enven eventos al mismo. Un actor se caracteriza por la forma de interaccionar con el sistema, por lo que un mismo usuario puede ejercer de varios actores, y un actor puede representar a varios usuarios.
Casos de uso. Son los escenarios de interaccin de los actores. Representan el comportamiento del sistema en relacin con los usuarios. De esta forma, un caso de uso define la secuencia de interacciones entre uno o ms usuarios y el sistema.
77
Relaciones. Representan el flujo de informacin intercambiada entre los actores y los casos de uso, o entre diferentes casos de uso. Normalmente, se emplean para que un caso de uso obtenga la informacin necesaria para llevar a cabo alguna accin, o para que el proceso proporcione algn resultado. Estas relaciones pueden ser unidireccionales o bidireccionales.
Los diagramas de casos de uso se clasifican en diferentes niveles, en funcin del grado de detalle con el que se represente el funcionamiento del sistema. De esta forma, los diagramas de nivel 0 o contexto representan el sistema completo con un nivel de detalle muy bajo, mientras que al aumentar el nivel, el grado de detalle va incrementndose.
Notacin
A continuacin de muestra la notacin empleada para la representacin de los distintos elementos que forman los diagramas de casos de uso. Los actores son representados mediante figuras de hombre de palo, con su correspondiente nombre debajo de la figura.
Viario
Los casos de uso, o procesos, se representan mediante una elipse, con su nombre correspondiente debajo de la misma.
78
Por ltimo, las relaciones se representan mediante flechas que unen los casos de uso, o el caso de uso y el actor, entre los que existe un flujo de informacin.
Debido a la similitud de los dos algoritmos implementados, los diagramas de diseo UML de ambos mtodos se irn presentando de forma paralela y conjunta. No en vano, ambos algoritmos poseen partes en comn que sern ms fcilmente identificables si se muestran a la vez.
3.2.1.1 Algoritmo de calibracin basado en porcentajes 3.2.1.1.1 Diagramas de caso de uso de nivel 0 o de contexto
En este diagrama se muestra la aplicacin con el menor grado de detalle, permitiendo una visin global de su comportamiento.
Usuario
Viario
79
El usuario es la persona que se encuentra realizando la calibracin de la matriz O-D. Su relacin con el modelo de calibracin es bidirecional, dado que proporciona la informacin necesaria para su ejecucin y recibe los resultados del proceso. El otro actor que aparece es el viario. Es un agente externo y su relacin es unidireccional con el modelo. En concreto, se encarga de proporcionar al modelo los datos necesarios del viario relativos a configuracin del grafo que sirve de representacin del mismo. Entre la informacin que suministra se encuentran la longitud, nmero de carriles y numero de funcin volumen-retraso de cada tramo, giros permitidos, matrices O-D iniciales,...
Asignacin de v iajes
Clculo de porcentajes
Ajuste matriz
80
En este diagrama se divide el modelo en 4 procesos que se relacionan entre s e intercambian informacin. El proceso de asignacin de viajes se encarga de calcular las rutas por las que los usuarios van a desplazarse, partiendo de la matriz origen-destino. Por tanto, este proceso necesita toda la informacin concerniente al viario, con vistas a calcular las rutas mnimas que los usuarios elegirn a la hora de desplazarse. El proceso obtendr unas rutas que le sern entregadas al proceso de clculo de porcentajes y unos volumenes en tramos que le sern entregados al proceso ajuste de matriz. Asimismo, toda la informacin en forma de resultados que el usuario haya decidido obtener del proceso de asignacin ser enviada al proceso estadstica y generacin de datos, para que sea entregada al usuario. El proceso de clculo de porcentajes se encarga de obtener para cada tramo con detector, el porcentaje del flujo total que corresponde a cada ruta que utiliza dicho tramo en su camino. Estos datos sern de suma importancia a la hora de realizar el ajuste de la matriz origen-destino. Los datos son pues entregados al proceso ajuste de matriz. El proceso ajuste de matriz recibe los resultados de la asignacin de trfico realizada por el proceso asignacin de viajes as como todos los datos de porcentajes de flujo en los tramos con datos reales de flujo. Tambin recibe la relacin de flujos reales del elemento externo viario. A partir de todos estos datos, se realiza la calibracin de la matriz origen-destino. Los resultados son entregados al proceso de estadstica y
generacin de datos para ser entregados al usuario como resultados del proceso.
Se ha credo necesario profundizar ms en el proceso de asignacin de trfico. Hay que hacer notar que este proceso es iterativo y se ejecuta tantas veces como el usuario decida en el formulario asociado a la aplicacin. En el siguiente diagrama se especifica su funcionamiento en mayor detalle.
81
<<include>>
Dijkstra
El proceso de clculo de costes en tramos y giros se encarga de calcular los costes en tiempo de recorrer los tramos, as como de el tiempo empleado en efectuar un giro permitido. Debido a ello, debe tener acceso a todos os datos del viario. El coste en tramos y giros vendr dado por una expresin matemtica que tendr como variables el volumen de trfico en el elemento, nmero de carriles,... Estos datos le sern entregados al proceso de clculo de rutas mnimas. El proceso de clculo de rutas mnimas recibe los datos de coste en tiempo de la red viaria, as como los datos del grafo que caracterizan la red. Con ellos y haciendo uso del proceso Dijkstra, el proceso calcular las rutas mnimas por las que se encauzarn los viajes de la matriz O-D. Estas nuevas rutas (en cada iteracin se calculan nuevas rutas), le sern entregadas al mdulo de clculo del parmetro lambda. El proceso de clculo del parmetro lambda decide el valor del parmetro lambda, que indica en que proporcin los usuarios decidirn modificar las rutas que venan usando en la iteracin anterior, en beneficio de las nuevas rutas calculadas en el proceso precedente. Este clculo se realiza mediante un clculo de minimizacin de una funcin objetivo. Una vez obtenido este parmetro de ponderacin, le es entregado al mdulo de actualizacin de los volmenes.
82
Por ltimo, el mdulo de actualizacin de los volmenes se encarga de modificar los datos de flujo en los tramos acorde con la sustitucin de los caminos establecidos por los calculados en esta iteracin, ponderados por el factor lambda. Con todo este proceso, estamos intentando distribuir la demanda de viajes a travs de la red, de forma que los tiempos de viajes se minimicen. Esta asignacin ser la base de la calibracin basada en porcentajes.
3.2.1.2 Algoritmo de calibracin basado en algoritmo K-mn 3.2.1.2.1 Diagramas de casos de uso de nivel 0 o de contexto
El diagrama que define el nivel 0 del algoritmo de calibracin basado en el clculo de los K caminos mnimos es idntico al caso del algoritmo basado en porcentajes.
Usuario
Viario
Es necesario bajar de nivel para apreciar las diferencias existentes entre ambos mtodos. En cuanto al diagrama, los elementos son equivalentes al caso ya visto para el otro algoritmo. El usuario es quien esta usando la aplicacin y el viario ofrece todos los datos concernientes a la red viaria.
83
Pasamos a profundizar en el proceso de calibracin. Aqu es donde se empiezan a observar diferencias con el algoritmo anterior. Se observa como aparecen nuevos mdulos relacionados con el nuevo mtodo de calibracin.
Asignacin de v iajes
Ajuste matriz
Marcardo de rutas
El proceso de asignacin de viajes es exactamente igual al integrante del primer algoritmo. Se encarga de calcular las rutas por las que se encauza la demanda de trfico, as como calcular los flujos de trfico en los tramos del viario debido a dicho proceso. Adems de las funciones que ya se comentaron anteriormente, ahora debe entregar esos datos de flujo al mdulo de clculo de la k rutas mnimas. El mdulo de clculo de las k rutas mnimas se encargar de obtener las k rutas mnimas en el grafo partiendo de las condiciones que la asignacin predetermine debido a la distribucin de trfico. Requiere tambin de los datos ofrecidos por el viario que caracterizan la red. Estas rutas sern entregadas al mdulo de marcado de rutas. El proceso de marcado de rutas se encarga de obtener una relacin de las rutas que utilizan cada uno de los tramos con detectores. Es decir, para cada tramo con
84
detector, obtendr una relacin de cuales de las k rutas obtenidas utilizan dicho tramo en su recorrido. Esto servir para calibrar la matriz, por lo que los resultados sern entregados al mdulo ajuste de matriz. En el proceso de ajuste de matriz se parte de los datos de flujo reales obtenidos del agente externo viario, de los datos de flujo que resultan del proceso de asignacin
de viajes y de la relacin de transito de rutas por tramos con detector generado por el
proceso de marcado de rutas. Con estos datos se proceder a la calibracin de la matriz mediante una serie de clculos que pretenden asignar la variacin de demanda de trfico entre los elementos de la matriz O-D, en base al uso que hacen de los tramos. El mdulo de estadstica y generacin de datos se encarga de recopilar los datos generados a lo largo del proceso y entregrselos al usuario en el caso de que ste los haya solicitado.
Se ha credo conveniente entrar a explicar con mayor grado de detalle algunos de los procesos que se han aadido al diagrama de casos de uso de nivel 1. En concreto el proceso de clculo de las k rutas mnimas, el marcado de rutas y el mdulo de ajuste de
matriz.
En este proceso se pretenden obtener para cada par de centroides, los k caminos de menor distancia que los une a travs de la red. Se partir de los volmenes de trfico obtenidos por el proceso de asignacin de trfico.
85
Clculo de porcentajes
Figura 3.2-9. Diagramas de casos de uso de nivel 2. Clculo de las k rutas mnimas
El proceso de clculo de costes de tramos y giros obtiene del viario los datos del grafo y calcula el retardo correspondiente a los tramos y giros usando las funciones de volumen-retraso. Estos datos son entregados al mdulo de obtencin de las rutas
obtencin de las rutas mnimas para calcular las rutas. Necesita tener acceso a los datos
del grafo que obtiene del agente externo viario. El mdulo de clculo de los k porcentajes se encarga de calcular en que medida los k caminos sern utilizados, es decir, que proporcin de demanda se encauzar a travs del camino de orden uno, que proporcin en la ruta de orden 2, etc. El mdulo de obtencin de las rutas obtiene todos los datos necesarios de los dems mdulos y los elementos de la red del viario y calcula las rutas mnimas que sern usadas en el algoritmo de calibracin.
86
Marcado de rutas
Este proceso se encarga de generar para cada tramo con detector una lista, donde cada entrada de la misma es un registro que se corresponde con un camino que incluye ese tramo en su secuencia.
El proceso recorrer los tramos en cada ruta obtiene los tramos que componen las rutas y se los entrega al siguiente proceso. Obtiene las rutas directamente del mdulo de clculo de las k rutas mnimas. El proceso de comprobacin de existencia de detectores se encarga de comprobar para cada tramo si posee datos concernientes a flujos reales como consecuencia de la existencia de detectores que controlen el flujo. Debe pues tener acceso a la informacin del viario que guarda relacin de los tramos que tienen esa clase de informacin disponible en el agente externo viario. El proceso aadir registro al tramo con detector almacena una entrada para los tramos que permiten comparacin de flujos, haciendo referencia al cdigo de tramo que lo recorre.
Ajuste de matriz
El proceso de ajuste de matriz puede descomponerse en una serie de subprocesos que clarifican su proceso.
87
Clculo de v ariaciones
obtencin de las diferencias de flujo se encarga de calcular las diferencias que existen
entre los flujos reales y los producidos por el proceso de asignacin de trfico. Estos datos son entregados tanto al proceso de clculo de variaciones como al proceso de
ponderacin de las variaciones. Estas diferencias son las que van a dictar las
modificaciones en la matriz de demanda de viajes. El mdulo de clculo de variaciones se encarga de calcular las variaciones que cada elemento de la matriz de viajes debe experimentar para minimizar las diferencias de flujo en los tramos. Cada tramo con detector dictar variaciones en algunos de estos elementos. Estas variaciones son entregadas al mdulo de ponderacin de las
variaciones. Este mdulo tambin necesita dispones del marcado de rutas que recibe del
proceso correspondiente. El mdulo de ponderacin de variaciones es el ms importante de este proceso de calibracin. La principal diferencia de este algoritmo frente al basado en porcentajes radica en el hecho de que no trata cada tramo de forma independiente, partiendo del hecho que los tramos no son entidades aisladas, sino que estn relacionados con los tramos que le rodean. Una variacin en el flujo de un tramo, implica necesariamente la variacin de los flujos en los tramos adyacentes. Por ello, partiendo de las modificaciones que cada tramo necesitara, el proceso llega a una solucin de
88
compromiso de la variacin de la matriz de viajes que intenta minimizar las desviaciones de flujo en los tramos. Es evidente que no se va a poder satisfacer a todos los tramos, por lo que se realiza una ponderacin de las variaciones, primando a los tramos que aportan una mayor correccin en la matriz O-D. El mdulo de modificacin de la matriz se encarga de ajustar la matriz de viajes en base a las variaciones que el mdulo de ponderacin de desviaciones le indique. Esta matriz ser el resultado del algoritmo y le ser entregada al usuario.
3.2.2
Diagramas de paquetes
El objetivo de este tipo de diagramas es obtener una visin mucho ms clara del sistema de informacin orientado a objetos, organizndolo en diferentes subsistemas, agrupando los elementos del anlisis, diseo o construccin y detallando las relaciones de dependencias entre ellos. El mecanismo de agrupacin utilizado se denomina
paquete.
Estrictamente hablando, los paquetes y sus dependencias son elementos de los diagramas de casos de uso, de clases y de componentes, por lo que se podra decir que el diagrama de paquetes es una extensin de stos. En estos diagramas de pueden diferenciar dos tipos de elementos:
Paquetes: Un paquete es la agrupacin de elementos, bien sea casos de uso, clases o componentes. Los paquetes pueden contener a su vez otros paquetes anidados que en ltima estancia contendrn alguno de los elementos anteriores.
Dependencia entre paquetes. Existe una dependencia cuando une elemento de un paquete requiere de otro que pertenece a un paquete distinto. Es importante resaltar que las dependencias no son transitorias.
89
Los paquetes se van a representar mediante un smbolo en forma de carpeta, en el cual se coloca el nombre del paquete correspondiente. Por su parte, las dependencias entre paquetes se representan con una flecha discontinua con inicio en el paquete que depende del otro. A continuacin se adjuntan los diagramas de paquetes de ambos algoritmos de calibracin. Algunos elementos son comunes a ambos procesos, otros son exclusivos de cada uno de ellos.
En el siguiente grfico se pueden observar los paquetes que componen el primer algoritmo de calibracin.
Red
Interfaz grfica
Listas
Algoritmo de calibracin
VCL
90
En el diagrama se observan seis paquetes o elementos, que estn relacionados entre s. Los paquetes son los siguientes:
Red: Este paquete contiene las clases utilizadas para describir el viario. Por lo tanto, contendr toda la informacin referente a los tramos y nodos existentes en el escenario de simulacin, es decir, todo lo que hace referencia a los componentes estticos del modelo.
Calibracin basada en porcentajes: Este paquete es el elemento principal del algoritmo, ya que contiene las clases que se encargan de recopilar los datos, aplicar el algoritmo y obtener los resultados. Incluye adems las estructuras que permiten llevar a cabo la asignacin de trfico.
Estructuras de datos de calibracin basada en porcentajes: Dentro de este paquete se encuentran las estructuras que permiten realizarla calibracin. En las clases q la componen, se almacenan los datos referentes a porcentajes de utilizacin de tramos que son el resultado de la asignacin y sern necesarios para la calibracin de la matriz de demanda de trfico.
Listas: Este paquete contiene dos clases parametrizadas que sern usadas para la implementacin de listas de estructuras de las clases definidas en otros paquetes. Es pues un paquete auxiliar, y sus clases no tienen un significado propio dentro del algoritmo, aunque son tremendamente tiles a la hora del procesamiento de los datos.
VCL (Visual Component Library): Este paquete engloba a todos los elementos visuales de la librera de Borland que se utilizan en la aplicacin.
91
Interfaz grfica: En este paquete se incluyen las clases que componen los formularios visuales que permiten la interaccin entre la aplicacin y el usuario. Estas clases hacen uso de los elementos VCL propios de Borland.
Mostramos ahora el diagrama de paquetes de la segunda implementacin de calibracin. El diagrama es muy parecido al del algoritmo anterior. Slo se comentarn aquellos paquetes que no estuviesen incluidos en el diagrama del primer algoritmo.
Red
Interfaz grfica
Listas
Algoritmo de calibracin
VCL
Figura 3.2-13. Diagrama de paquetes del algoritmo de calibracin basado en clculo K-mn
92
Estructuras de datos de calibracin basada en algoritmo K-mn: Este paquete es equivalente al paquete que apareca en el diagrama anterior. Sustituimos las estructuras que posibilitaban la calibracin basada en porcentajes, por otras estructuras que sirven de apoyo a la calibracin basada en el clculo de las k rutas mnimas. Estas estructuras sern igualmente usadas por el algoritmo de calibracin y por el de clculo de dichas rutas.
Algoritmo de ruta mnima K-mn: Este paquete contiene las estructuras que permiten obtener las k rutas mnimas entre cada par de centroides del grafo. Es pues el mdulo ms importante de esta calibracin.
3.2.3
Diagramas de clases
El objetivo principal de este modelo es la representacin de los aspectos estticos del sistema, utilizando diversos mecanismos de abstraccin (clasificacin, generalizacin, agregacin). El diagrama de clases recoge las clases existentes en los paquetes y sus correspondientes asociaciones. En este diagrama se representa la estructura y comportamiento de cada uno de los objetos del sistema y sus relaciones con los dems objetos, pero no se muestra ninguna informacin temporal. Con el fin de facilitar la comprensin del diagrama, se pueden incluir paquetes como elementos del mismo, donde cada uno de ellos agrupa un conjunto de clases que tienen algn tipo de relacin. Este diagrama no refleja los comportamientos temporales de las clases, aunque para representarlos puede usarse un diagrama de transicin de estados. Los elementos bsicos del diagrama son:
93
Clases. Una clase describe un conjunto de objetos con propiedades (atributos) similares y un comportamiento comn. Los objetos son instancias de las clases. No existe un procedimiento inmediato que permita localizar las clases del diagrama de clases. stas suelen corresponderse con sustantivos que hacen referencia al mbito del sistema de informacin y que se encuentran en los documentos de las especificaciones de requisitos y de los casos de uso. Dentro de la estructura de una clase se definen los atributos, que representan los datos asociados a los objetos instanciados por esa clase, y los mtodos, que representan las funciones o procesos propios de los objetos de una clase, caracterizando a dichos objetos. Dentro de las clases es importante destacar un caso especial, las plantillas o
Relaciones. Los tipos ms importantes de relaciones estticas entre clases son las siguientes:
enlaces entre objetos o instancias de clases. Es el tipo de relacin ms general, y denota bsicamente una dependencia semntica. Por ejemplo un Carril pertenece a un Tramo. Cada asociacin puede representar elementos adicionales que doten de mayor detalle al tipo de relacin: