En la anterior entrada hablábamos de la dicotomía de asignación vs. calibración y de donde surgía. También dejamos caer otra forma de plantear el problema: ¿y si la obtención de la matriz OD parte de los mismos datos de aforo en lugar de otras fuentes? Haciendo que la asignación ya surja de datos calibrados. Pese a lo bien que suena, no estaba del todo claro si este planteamiento era posible.
En esta entrada quiero hablar de esta opción, pero antes de empezar os aviso: esto es solo una propuesta de estudio, no un proyecto testado. Por eso veréis que hay algunos aspectos que falta pulir. Mi intención es plantear la idea a ver qué os parece, así que nos vemos en los comentarios.
Pensemos con un ejemplo
Centremos el tiro: queremos deducir una matriz OD directamente de los datos reales obtenidos en puntos de aforo. Para ello vamos a empezar el ejercicio mental con un grafo muy sencillito como el siguiente. En él tenemos tres zonas (A, B y C), cuatro nodos (1, 2, 3 y 4) y cinco links definidos según el orden de los nodos. Así, los links $\overline{12}, \overline{23},\overline{13},\overline{14}$ y $\overline{34}$ son los mismos que $\overline{21},\ \overline{32},\ \overline{31},\ \overline{41}$ y $\overline{43}$ pero en sentidos contrarios. También tenemos seis puntos de aforo que solo miden un único sentido de circulación (α, β, γ, δ, ε y ζ):

Figura 1. Esquema de ejemplo
Fuente: Elaboración propia
Perfecto, supongamos que los habitantes de A necesitan ir a trabajar a B, ¿por dónde irían? El sentido común nos dice que por el camino mínimo; ya sea según distancia, tiempo o, lo correcto para modelos realistas, impedancias (como vimos en la entrada anterior). Vamos a suponer que, atendiendo a un criterio concreto, el primer ($c_1^{ij}$) y segundo ($c_2^{ij}$) camino mínimo entre las zonas de nuestro esquema son los siguientes:

Donde el camino mínimo se obtiene como función de los atributos de los links. Lo siguiente es definir el reparto de los desplazamientos entre dos zonas según los caminos posibles. Creo que no hay que darle mucha vuelta a esto dado que ya conoceríamos el valor numérico de todos los caminos posibles según el criterio que hayamos adoptado como función de los links, por lo que una simple división nos puede dar el reparto. Sin embargo, creo que tendríamos que considerar dos correcciones adicionales: la primera es elevar los resultados al cuadrado para discriminar aquellos caminos menos ventajosos. La segunda es multiplicar cada camino por un coeficiente aleatorio ($a_n$) entre 0,95 y 1,05 para añadir aleatoriedad a la elección de caminos, a fin de replicar el comportamiento real (gente que se equivoca de camino, que va por otra ruta porque le da la gana, etc.). Con todo, la probabilidad de escoger un camino u otro se obtendría como: $$p_n^{ij} = \frac{\frac{1}{\left(c_n^{ij} \times a_n\right)^2}}{\sum_{n=1}^{m} \frac{1}{\left(c_n^{ij} \times a_n\right)^2}}$$
Donde m=2 para nuestro esquema dado que solo estamos considerando 2 caminos mínimos. Pero perfectamente podríamos aumentar el número de caminos mínimos e incluir un tercero, cuarto, etc. Sobra decir que la intensidad de cada camino ($I_n^{ij}$) se obtiene de la intensidad total en dicha relación ($I^{ij}$) por este porcentaje: $$I_n^{ij}=I^{ij}\times\ p_n^{ij}%$$
Finalmente vamos a usar el valor conocido de los aforos junto con los caminos deducidos en el primer paso. Estos aforos serán necesariamente la suma de las intensidades de los caminos que pasan por él. Es decir, para nuestro ejemplo quedaría como sigue:
\begin{equation}
\alpha(c_2^{CA}, c_1^{BA}) = I^{CA} \times p_2^{CA}\% + I^{BA} \times p_1^{BA}\%
\end{equation}
\begin{equation}
\beta(c_1^{AC}, c_2^{AB}) = I^{AC} \times p_1^{AC}\% + I^{AB} \times p_2^{AC}\%
\end{equation}
\begin{equation}
\gamma(c_2^{CA}, c_2^{CB}) = I^{CA} \times p_2^{CA}\% + I^{CB} \times p_2^{CB}\%
\end{equation}
\begin{equation}
\delta(c_2^{AB}, c_1^{CB}) = I^{AB} \times p_2^{AB}\% + I^{CB} \times p_1^{CB}\%
\end{equation}
\begin{equation}
\varepsilon(c_1^{BC}, c_1^{BA}) = I^{BC} \times p_1^{BC}\% + I^{BA} \times p_1^{BA}\%
\end{equation}
\begin{equation}
\zeta(c_2^{BC}, c_1^{AB}) = I^{BC} \times p_2^{BC}\% + I^{AB} \times p_1^{AB}\%
\end{equation}
Si asumimos que no hay viajes internos (es decir, los valores de la diagonal principal son nulos), la matriz OD contaría con 6 incógnitas. Y dado que tenemos 6 aforos, todo el problema se convierte en un sistema de ecuaciones donde las incógnitas son las relaciones $I^{ij}$.
$$
\textbf{Matriz OD:} \quad
\begin{pmatrix}
0 & I^{BA} & I^{CA} \\
I^{AB} & 0 & I^{CB} \\
I^{AC} & I^{BC} & 0
\end{pmatrix}
$$
Obviamente la realidad es mucho más compleja que este ejemplo. Vamos a hablar de los principales problemas que se me ocurren más adelante, pero antes quiero pararme en 2 cosas importantes.
La primera es una duda teórica sobre la generalidad de este método, me explico: el sentido común me dice que el sistema se vuelve incompatible cuando hay incoherencias en los datos de partida (por ejemplo dos aforos distintos en un mismo tramo), e indeterminado cuando nos falta información (falta de aforos o de caminos en un tramo con aforo). Pero no sé si esto es así y, en ese caso, cómo demostrarlo. Y más importante aún: cómo demostrar si en el resto de los casos el sistema siempre es compatible determinado. Si a alguien se le ocurre por favor que nos ilumine en los comentarios.
La segunda es un problema de escalabilidad, y es que las incógnitas crecen con el cuadrado del número de zonas (un poco menos si no consideramos los desplazamientos internos): 3 zonas tienen 6 incógnitas, 4 tienen 12, 5 tienen 20, etc. No tarda mucho hasta que esto se vuelve inmanejable, tanto por el número de aforos necesarios como por el tiempo de computación. Ambos problemas tienen mucha miga, pero no quiero hacer esto demasiado pesado; asique os resumiré un par de ideas que se me han ocurrido sobre cómo atajarlas. Lo primero que hace falta es simplificar el problema, y es que si veis una matriz OD de miles de zonas os daréis cuenta de que un porcentaje muy grande de las relaciones son nulas (del orden del 40% para modelos de IMD, y del 50%-60% para modelos de hora punta). Esto son decenas de miles de incógnitas que nos ahorramos. El problema es que no hay forma de determinar cuáles de estas relaciones son nulas a partir de los datos de aforo, por lo que solo nos queda emplear métodos heurísticos. El que se me ha ocurrido a mi es el empleo de variables explicativas asociadas a cada zona (como por ejemplo superficies residenciales, industriales y terciarias) sumado a un criterio gravitacional para valorar la “atracción” que existe entre dos zonas: si el valor es inferior a un cierto umbral entonces la consideramos nula. Otra opción más sencilla (pero cara) es comprar una matriz de telefonía con la zonificación que quieres hacer y ver directamente qué relaciones son nulas. Por otra parte, el tema del número de aforos implica el uso de fuentes de datos públicas como las cámaras y aforos de las diferentes administraciones (Ministerio, Ayuntamientos, etc.), pero probablemente sigan siendo insuficientes para modelos con muchas zonas. Asique qué os parece esto: el empleo de unos aforos sintéticos obtenidos a partir de datos de desplazamientos en tiempo real proporcionados por operadores como TomTom, GoogleMaps, Waze, etc. (siempre y cuando te vendan esta información y a un precio razonable). La idea de estos aforos dinámicos se basa en los diagramas fundamentales del flujo de tráfico que relacionan densidad (coches/km), velocidad (km/hora) e intensidad (coches/hora). Más concretamente nos centraremos en el diagrama que relaciona la velocidad del flujo con la intensidad, dado que de esta manera se puede obtener la intensidad de un link concreto como función de la velocidad de los vehículos que circulan por él (dato proporcionado por el proveedor). Esto puede convertir cualquier link en un punto de aforo y, aunque no tenga la precisión de un punto de aforo estático, con la debida calibración se pueden conseguir resultados muy decentes. Esto no lo digo yo, ya se estudió en las calles de Melbourne a partir de los datos en tiempo real proporcionados por SCATS y por el Victoria Integrated Transport Model (VITM) junto con herramientas de clustering mediante IA (enlace). Tal como podéis ver en la siguiente imagen se pueden conseguir diagramas muy afinados:

Figura 2. Nube de puntos real (izquierda) seguido de la identificación del diagrama velocidad/densidad según tipología del viario (derecha)
Fuente: Shafiei et al., 2018 (enlace)
Lo malo es que esta idea solo nos funcionaría para vías de flujo ininterrumpido, dado que los semáforos o stops pueden confundirse con retenciones y ofrecerían lecturas erróneas. Lo que infrarrepresentaría los viarios urbanos. Así como dependería de los datos proporcionados por un proveedor, lo que puede incrementar considerablemente los precios (qué sentido tienen cambiar de un proveedor a otro si nos va a costar lo mismo). Pero como parte positiva, estas fuentes nos darían datos en tiempo real para toda la red, lo que puede ser muy interesante según el caso. Y no hablo solo de los aforos dinámicos, también de los estáticos: estos estarían compuestos por las cámaras de las administraciones que graban las 24 horas del día, por lo que podemos entrenar modelos de IA que se dediquen a identificar coches y contarlos (hay códigos de uso libre como YoLo que simplifican muchísimo esto, enlace). La intensidad será el número de vehículos en el intervalo de tiempo que estemos analizando.
Demasiado bonito para ser verdad
Dicha la idea principal, veamos ahora los problemas; perdón, los retos. Algunos ya los hemos comentado, pero los repito por meterlos todos en una lista:
- Cortes de flujo debido a atascos y semáforos. No se me ocurre cómo obtener los datos dinámicos en flujos interrumpidos; dado que los cedas, stops o semáforos se confundirían con retenciones.
- Condiciones de contorno. Cualquier zonificación empleada tendrá unas condiciones de contorno que solo se pueden tener en cuenta en el modelo mediante un aforo estático (tanto para la entrada como para la salida). El problema es que no todos los viarios de contorno lo tienen, haciendo que estos puntos sean agujeros de información.
- Falta de puntos de aforo. El aumento de la zonificación tiene una complejidad n2, lo que requiere un aumento de n2 en el número de aforos. Esto obviamente no es realizable, haciendo que no contemos con suficientes datos de partida como para obtener la solución analítica. La solución pasa por ampliar la toma de datos mediante otros métodos como, por ejemplo, la toma de datos dinámicos. Sin embargo, esta tiene sus problemas como vimos en el primer punto.
- Computacionalmente muy intensivo. Obtener los resultados para una matriz de 1000×1000 zonas es un ejercicio tremendamente complejo. La solución necesariamente debe pasar por métodos heurísticos como un análisis zonal previo que identifique todas las relaciones nulas, reduciendo considerablemente el problema al eliminarlas del cálculo. El problema es que este enfoque complica la ejecución del problema e introduce una serie de suposiciones que pueden ser erróneas. Por ejemplo, “deducimos que la relación entre las zonas A y B es nula porque ambas zonas solo tienen superficies residenciales y están muy lejos”. Como primer punto ya tenemos que considerar ciertas variables explicativas que complican el problema al tener que introducirlas para todas las zonas del ámbito (las “superficies residenciales” del ejemplo). Por otra parte, este argumento tiene varias suposiciones: ¿por qué dos zonas con solo superficies residenciales (asociadas a la generación) no pueden tener relaciones entre sí?, ¿Cuánto consideramos que es “lejos”?, ¿afecta en algo el tamaño de las superficies residenciales de A y de B?, etc. En definitiva, cualquier método heurístico requiere más complejidad y más suposiciones que pueden afectar a la exactitud de la solución.
- Requiere datos en abierto que pueden estar protegidos por licencias CC. Tanto el conteo en los puntos de aforo (mediante tecnologías como YoLo) como el acceso a las cámaras (DGT, Ayuntamientos, etc.) son datos en abierto cuyo uso comercial puede estar explícitamente prohibido. Haciendo que tanto esfuerzo no tenga un beneficio económico. La verdad que no tengo mucha idea de este punto asique si alguien puede aportar algo lo agradezco.
- Dependencia del método de asignación. La idea de obtener la matriz directamente es que luego, al asignar, obtengamos un resultado definitivo idéntico o muy parecido a los datos reales de aforo. Sin necesidad de calibrar y, por tanto, modificar la matriz OD original. El problema es que esto depende directamente de qué método de asignación se emplee (TRIBUT, Frank-Wolfe, estocástica, etc). Esta discrepancia no tiene por qué suponer necesariamente un problema, pero sí que condiciona los criterios para la elección de caminos mínimos, así como condiciona la asignación al tener que aplicar los mismos criterios en la obtención de las impedancias.
- Definición de los costes. Este problema está relacionado con el anterior, y es que hay que plantear con cuidado cómo cuantificar el coste en las impedancias. Lo que afectaría directamente a los viarios con peajes.
Dicho todo esto, ¿esta propuesta tiene o no tiene sentido? Yo creo que sí, pero con ciertas condiciones. Teóricamente, este planteamiento puede ofrecer datos más precisos y baratos. Es más, no descartaría que el procesamiento de estos datos se pudiera llegar a hacer en tiempo real (contando con algoritmos eficientes o para zonificaciones más pequeñas), en una especie de gemelo digital/centro de control que se actualice constantemente. El problema es que conseguirlo no es solo cuestión de desarrollar buenos algoritmos o de dar solución a algunos de los problemas en el planteamiento que hemos visto antes, sino que también requiere bases de datos actualizadas y la modificación física de la red (instalación de aforos permanentes en puntos concretos). Es decir, no solo depende de la voluntad de un agente privado, sino también de la involucración de las administraciones.
Poneos en el siguiente caso: se desea realizar un modelo preciso del tráfico en la Comunidad de Madrid. Para ello, diferentes administraciones se ponen de acuerdo en buscar una solución tecnológica que incluya financiación y la adaptación de parte de la red. En ese caso veo muy interesante esta metodología dado que solucionaríamos los siguientes cuatro puntos:
- Modificar físicamente la red, metiendo aforos en todas las carreteras que comunican con el exterior de la comunidad. Así definimos las condiciones de contorno.
- Creación de una base de datos actualizada con las variables explicativas que permitan hacer un preanálisis zonal. Con ello simplificamos enormemente el cálculo de la matriz.
- Afinar la metodología de obtención de la matriz OD y el método de asignación para que ambos se basen en los mismos criterios de impedancias y de caminos mínimos.
- Hallar soluciones para la modelización de los flujos interrumpidos. Al menos para no infrarrepresentar los tramos urbanos en caso de falta de aforos estáticos.
Los primeros dos puntos dependen de las administraciones, los dos últimos no necesariamente. En cualquier caso, necesitaríamos que se cumplan todos para que la idea valga la pena.
Conclusiones
Creo que es realista plantear matrices OD precalibradas, pero hace falta investigar más y una involucración de las administraciones propietarias de la infraestructura. Además, sería necesario emplear métodos y tecnologías como la IA menos asentadas. Sin embargo todo ello podría dar resultados más precisos, baratos e, incluso, en tiempo real.