TALLER Nº2: Modelo de Distribución de Viajes 4 de Mayo 2007
Modelo Biproporcional Dada una matriz de números no negativos tij y sumas deseadas de filas (Oi) y columnas (Dj) se trata de ajustar sus elementos lo menos posible, de modo que se cumplan las sumas totales La idea es encontrar una matriz (ajuste biproporcional): que cumpla las restricciones
Algoritmo de Solución Algoritmo iterativo que preserva los ceros y positividad de la matriz Paso 1): Tómese B0 arbitrario y balancee Paso 2): Balancee cada columna j por el factor Paso 3): Proseguir hasta convergencia, es decir,
Modelo Entrópico Modelo de entropía doblemente acotado
¿Cómo calibrar? Iteración 0: Calcular costo promedio compuesto Iteración 1: Calcular A, B utilizando fórmulas de balance Iteración 2: Cálculo nuevo b. Calcular A,B utilizando fórmulas de balance. Para calcular b: Newton (b= b+paso)
Datos Disponibles Situación Base Vectores de Atracción y Generación (Dj y Oi) Matriz de viajes totales de la muestra Matriz de costos: tiempos de viajes promedio entre cada par OD [minutos] Escenario 1: Los viajes aumentan en un 10% de manera proporcional la matriz de costos se mantiene igual al año base Escenario 2: Los vectores Oi y Dj aumentan de forma no proporcional, al igual que ma matriz de costos
¿Qué hacer con los datos? Para los 2 escenarios se pide: Calibrar el modelo de entropía (calcular b) Usar en modalidad predictiva los modelos: Biproporcional Entropía Esto se traduce en calcular los factores Ai y Bj de cada modelo, para obtener la matriz de viajes para el año 201x Comparación resultados ambos modelos Cualidades y deficiencias Determinar qué modelo predice mejor para cada escenario
Tarea Próximo viernes: Programa para correr modelo biproporcional. Correr modelo biproporcional manteniendo vectores O/D de la matriz original. Amplificar por 2 vectores O/D. Correr biproporcional y analizar brevemente el resultado. Estimar vectores O/D 201x (Escenario 1 y Escenario 2)
Comandos Gauss {datos,y}=import(“libro.xls”,0,0) cols(M) nº columnas rows(M) nº filas if “condicion”; “instruccion1”; else “instrucción2”; endif; do while “condicion”; “instrucciones”; endo; sumc(matriz) suma columnas de la matriz M[i:j,·] extrae las filas i y j y todas las columnas de M