CD-5892.pdf

Anuncio
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE CIENCIAS
OPTIMIZACIÓN DE LÍNEAS Y FRECUENCIAS EN UN SISTEMA
DE TRANSPORTE PÚBLICO
PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO
MATEMÁTICO
RUBÉN DARÍO FREIRE BONILLA
[email protected]
Director: RAMIRO DANIEL TORRES GORDILLO, PH.D.
[email protected]
QUITO, NOVIEMBRE 2014
DECLARACIÓN
Yo RUBÉN DARÍO FREIRE BONILLA, declaro bajo juramento que el trabajo aquı́
escrito es de mi autorı́a; que no ha sido previamente presentado para ningún grado o
calificación profesional; y que he consultado las referencias bibliográficas que se incluyen en este documento.
A través de la presente declaración cedo mis derechos de propiedad intelectual, correspondientes a este trabajo, a la Escuela Politécnica Nacional, según lo establecido por
la Ley de Propiedad Intelectual, por su reglamento y por la normatividad institucional
vigente.
Rubén Darı́o Freire Bonilla
.
CERTIFICACIÓN
Certifico que el presente trabajo fue desarrollado por RUBÉN DARÍO FREIRE BONILLA, bajo mi supervisión
Ramiro Daniel Torres Gordillo, PH.D.
Director del Proyecto
AGRADECIMIENTOS
A la Escuela Politécnica Nacional y a las personas que hicieron posible este proyecto,
en especial a Ramiro Torres director de esta investigación.
DEDICATORIA
...
Índice de contenido
Índice de figuras
viii
Índice de cuadros
ix
Resumen
1
Abstract
2
1 INTRODUCCIÓN
1
1.1 El Problema de tráfico y el Sistema Trolebús Quito . . . . . . . . . . .
1.2 Definiciones básicas y antecedentes . . . . . . . . . . . . . . . . . . . .
1.2.1 Planificación de lı́neas con tiempos y frecuencias mı́nimos . . . .
1.2.2
2
4
5
Una aproximación branch and cut para el problema de planificación de lı́neas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
Un modelo de rutas . . . . . . . . . . . . . . . . . . . . . . . . .
18
2 UN MODELO DE PLANIFICACIÓN DE LÍNEAS
2.1 Modelo de Planificación de lı́neas con viajes directos. . . . . . . . . . .
2.2 Complejidad computacional . . . . . . . . . . . . . . . . . . . . . . . .
21
21
25
2.3 Algoritmos en tiempo polinomial . . . . . . . . . . . . . . . . . . . . .
2.3.1 Asignación de viajes sobre una única lı́nea . . . . . . . . . . . .
31
32
2.3.2 Asignación de viajes con lı́neas no idénticas . . . . . . . . . . .
2.4 Modelo de Asignación de viajes en árboles . . . . . . . . . . . . . . . .
38
39
3 IMPLEMENTACIÓN Y RESULTADOS COMPUTACIONALES
3.1 LPMTF: Consideraciones . . . . . . . . . . . . . . . . . . . . . . . . . .
41
41
3.2 LPMTF: Modificación . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Instancias y resultados . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
46
1.2.3
4 CONCLUSIONES
59
vi
A Instancias
61
A.1 Instancias de partida . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1.1 Matriz 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1.2 Matriz 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
61
61
A.1.3 Matriz 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Instancias Trolebús . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
63
A.2.1 Matriz 5:00 - 6:00 . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2.2 Matriz 6:00 - 7:00 . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2.3 Matriz 7:00 - 8:00 . . . . . . . . . . . . . . . . . . . . . . . . . .
63
64
65
A.2.4 Matriz 8:00 - 9:00 . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2.5 Matriz 9:00 - 10:00 . . . . . . . . . . . . . . . . . . . . . . . . .
66
67
A.2.6 Matriz 10:00 - 11:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.7 Matriz 11:00 - 12:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.8 Matriz 12:00 - 13:00 . . . . . . . . . . . . . . . . . . . . . . . .
68
69
70
A.2.9 Matriz 13:00 - 14:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.10 Matriz 14:00 - 15:00 . . . . . . . . . . . . . . . . . . . . . . . .
71
72
A.2.11 Matriz 15:00 - 16:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.12 Matriz 16:00 - 17:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.13 Matriz 17:00 - 18:00 . . . . . . . . . . . . . . . . . . . . . . . .
73
74
75
A.2.14 Matriz 18:00 - 19:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.15 Matriz 19:00 - 20:00 . . . . . . . . . . . . . . . . . . . . . . . .
76
77
A.2.16 Matriz 20:00 - 21:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.17 Matriz 21:00 - 22:00 . . . . . . . . . . . . . . . . . . . . . . . .
A.2.18 Matriz 22:00 - 23:00 . . . . . . . . . . . . . . . . . . . . . . . .
78
79
80
A.2.19 Matriz 23:00 - 24:00 . . . . . . . . . . . . . . . . . . . . . . . .
81
Referencias
82
Índice de figuras
1.1 Ejemplo: Red Alimentadores. . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Ejemplo: Red Change&Go considerando 4 nodos y 2 lı́neas. . . . . . . . . .
3
7
1.3 Ejemplo: Reducción coeficientes. . . . . . . . . . . . . . . . . . . . . . . .
15
2.1 Problema de Asignación de Viajes en GQVD. . . . . . . . . . . . . . . . .
24
2.2 Problema de Asignación de Viajes en GQEVD. . . . . . . . . . . . . . . .
2.3 Ejemplo: Red Alimentadora. . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Grafo de intervalos y su representación de intervalos. . . . . . . . . . . . .
24
24
28
2.5 Instancia de CAC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 I)Instancia inicial con 1 lı́nea y 5 pares origen-destino. II)Grafo de intervalos.
30
III)Formulación como problema de flujo de costo mı́nimo. . . . . . . . . . .
2.7 Ejemplo del algoritmo de asignación de viajes con lı́neas no idénticas. . . . .
37
39
3.1 Ejemplo: Line Pool Generado. . . . . . . . . . . . . . . . . . . . . . . . .
42
3.2 Solución Instancia Prueba. . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Ejemplo Transferencias no penalizadas. . . . . . . . . . . . . . . . . . . .
43
44
3.4 Red Change&Go modificada. . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Lı́neas generadas para prueba de instancias trolebús. Sentido S/N. . . .
3.6 Caso 1. Comportamiento SCIP. . . . . . . . . . . . . . . . . . . . . . .
45
49
52
3.7 Caso 2. Comportamiento SCIP. . . . . . . . . . . . . . . . . . . . . . .
3.8 Caso 3. Comportamiento SCIP. . . . . . . . . . . . . . . . . . . . . . .
3.9 Caso 1 vs. Caso 2. Tiempos solución. . . . . . . . . . . . . . . . . . . .
53
54
57
3.10 Caso 1 vs. Caso 3. Tiempos solución. . . . . . . . . . . . . . . . . . . .
3.11 Caso 2 vs. Caso 3. Tiempos solución. . . . . . . . . . . . . . . . . . . .
57
58
viii
Índice de cuadros
1.1 Circuitos Trolebús. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3.1 Instancias de Partida . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.2 Solución Instancia 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Solución Instancia 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
47
3.4 Solución Instancia 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Caso 1. Resultados MAVD sobre Sistema Trolebús. . . . . . . . . . . .
3.6 Caso 2. Resultados MAVD sobre Sistema Trolebús. . . . . . . . . . . .
47
51
55
3.7 Caso 3. Resultados MAVD sobre Sistema Trolebús. . . . . . . . . . . .
3.8 Comparación Costo. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
58
ix
Resumen
La Planificación de Lı́neas es un problema de optimización relativamente nuevo, los
primeros experimentos con relación a este problema datan de los años sesenta. En los
noventas se lo comienza a tratar como problema de programación entera y surgen conceptos como System Split donde se asignan a los pasajeros a los diferentes tipos de
transporte como paso previo a la generación de lı́neas y frecuencias. Posteriormente,
algunos investigadores dejan de lado este concepto y nacen aproximaciones donde los
modelos escogen la mejor opción para los pasajeros (por ejemplo el camino más corto)
para ir de una estación a otra. Dentro de esta última aproximación podemos citar a
Borndörfer, Grötschel y Pfetsch [3] y Schöbel y Scholl [20].
En el presente trabajo se analiza el problema de planificación de lı́neas considerando
viajes directos, es decir, el modelo no permite que los pasajeros realicen transferencias
entre lı́neas para llegar a sus destinos. Se estudió la complejidad computacional de este
modelo sobre grafos que resultan de la forma del Sistema Trolebús y se demostró que
pertenecen a la clase NP-completa incluso si se opera el sistema con lı́neas cerradas.
Algoritmos polinomiales para algunos casos especiales del problema son presentados.
Al final, se resuelven instancias reales con datos tomados del Sistema Trolebús.
1
Abstract
The Line Planning Problem is a relatively new optimization problem, the first experiments concerning to this problem date back to the sixties. In the nineties it starts to
be treated as an integer programming model and techniques like Split System, where
passengers are assigned to different transportation modes previous to the selection of
lines and frequency, arise. Subsequently, some researchers overlook this concept and
approaches, where the models choose the best option for passengers (for example the
shortest path) to travel from origin station to destination station come into play. About
these last approaches, Borndörfer, Grötschel and Pfetsch [3] and Schöbel and Scholl
[20] can be cited.
In this work, the Line Planning Problem is analyzed by considering direct travels, i.e.,
the model does not allow transfers between lines to carry passengers to reach their
destinations. Computational complexity of this model on graphs resulting from the
topography of the Trolebús System was studied and later it was probed to belong to
the NP-complete class, even if the system is operated with closed lines. Polynomial
algorithms for some special cases of the problem are presented. Finally, real instances
with data provided from the Trolebús System personnel are considered.
2
Capı́tulo 1
INTRODUCCIÓN
La planificación de los sistemas de transporte público ha sido un importante campo de
investigación de la optimización combinatoria durante los últimos años, donde problemas con miles de variables y restricciones se han analizado en trabajos previos. Uno de
estos problemas es el de planificación de lı́neas y frecuencias en un sistema de transporte
que consiste en encontrar un conjunto de rutas y sus respectivas frecuencias de manera
que cubran una demanda de transporte dada, teniendo siempre en consideración que
todo el proceso está sujeto a la optimización de una función objetivo. Esta puede ser
la minimización de los costos de operación del sistema, la minimización del tiempo de
viaje de los usuarios o la maximización de los viajes directos.
Borndörfer, Grötschel y Pfetsch [5] explican en forma detallada el proceso de planificación estratégica (strategic planning process) de transporte como una serie de pasos
consecutivos que son: el diseño de una red de transporte, la planificación de lı́neas y la
generación de horarios. Todos los pasos del proceso de planificación estratégica se basan
en la matriz conocida como origen-destino (matriz-OD), que representa la cantidad de
pasajeros que quieren viajar entre dos puntos de la red de transporte.
El primer paso en este proceso es el diseño de la red de transportación. La tarea de este
problema es escoger un conjunto de calles/avenidas que provean capacidad suficiente
para cubrir la demanda dada por la matriz O-D tal que el costo de construcción sea
minimizado. Además, esta fase no sólo está interesada en la creación de nuevas redes
de transporte, también considera la evaluación y extensión de un sistema existente.
El problema de planificación de lı́neas es el segundo paso en el proceso de planificación
estratégica, que como ya se mencionó la tarea radica en encontrar lı́neas y frecuencias
en una red de transporte dada de tal forma que satisfagan la demanda definida por
las matrices-OD. Además, se debe mencionar que se toman en cuenta otros elementos
1
como: el presupuesto para operar el sistema de transporte, costos fijos y variables asociados a la operación las lı́neas, la capacidad de las unidades de transporte, la frecuencia
máxima de unidades en una lı́nea, etc. Por último, ya contando con las frecuencias se
necesita un refinamiento de las mismas para obtener el diagrama de marcha (timetabling). El objetivo de esta fase final puede ser el de minimizar el tamaño de la flota o
minimizar los tipos de transferencias de los pasajeros.
El presente trabajo inicia con una reseña de la situación actual de uno de los sistemas de transporte más importantes de la ciudad, el Sistema Trolebús. Luego se realiza
una revisión bibliográfica relacionada al segundo paso de la planificación estratégica, el
problema de planificación de lı́neas, para posteriormente proponer un modelo de maximización de viajes directos que se muestra es un problema es NP-completo. Finalmente
se implementa el modelo propuesto y realizan pruebas computacionales.
1.1
El Problema de tráfico y el Sistema Trolebús
Quito
En los últimos años, el problema de la transportación en las principales ciudades del
paı́s se ha venido acrecentando, pues el tráfico vehicular y la demanda por transportación se incrementaron y el mejoramiento de los servicios de transportación pública no
ha sido proporcional a los nuevos desafı́os. La ciudad de Quito a pesar de contar con
el mejor sistema integrado de transporte público nacional no ha sido la excepción, y
en la actualidad lamentablemente enfrenta un deterioro en la calidad de sus servicios:
largos tiempos de espera, incomodidad, buses saturados, etc. Además la topografı́a de
la ciudad (alargada y estrecha) es un factor que dificulta la organización del transporte
público y privado en la misma.
El Sistema Trolebús consiste, en su parte central, de un corredor exclusivo (independiente del tráfico) donde circulan unidades de gran capacidad. Este corredor es una
vı́a exclusiva que cuenta con terminales y estaciones. Las terminales son estaciones
mucho más grandes donde finaliza el recorrido las unidades del sistema (troles) y los
usuarios pueden acceder a buses alimentadores que conectan estas con los alrededores.
En su mayor parte, las estaciones (entre terminales) son unidireccionales, es decir, si
un usuario se encuentra viajando en el sentido norte-sur y requiere cambiar el sentido
deberá abandonar esa estación y dirigirse a otra que cubra ese requerimiento.
2
Quitumbe M.V alverde
T
T
T
T erminal
ElRecreo
LaY
T
T
Estación
Figura 1.1: Ejemplo: Red Alimentadores.
La manera en la cual el sistema cubre la demanda de pasajeros es mediante circuitos
(lı́neas de transporte). Hay que recalcar que al ser el corredor un camino simple, una
unidad necesariamente debe pasar (no detenerse) por todas las estaciones intermedias
entre un origen y destino fijados precisamente por el tipo de circuito. Las lı́neas en
algunos casos son cerradas, es decir, inician su recorrido en una terminal y finalizan
en la misma. Se puede contar con lı́neas abiertas, es decir, su inicio y fin presentan
estaciones diferentes. Además existen lı́neas exprés, donde la unidad de transporte sólo
se detiene en ciertas estaciones. En la actualidad el sistema cuenta con los siguientes
circuitos:
Circuito
Modalidad
Cobertura
C1
C2
Normal
Semi-expreso
T. La Y - T. El Recreo
T. La Y - T. Morán Valverde
C2-Q
C4
C5
Normal
Semi-expreso
Semi-expreso
T. La Y - T. Quitumbe
T. Quitumbe - E. El Ejido
T. El Recreo - E. Colón
CQ-R
Normal
T. Quitumbe - T. El Recreo
Cuadro 1.1: Circuitos Trolebús.
Los circuitos semi-expresos se detienen en ciertas paradas, por ejemplo, en el circuito
C2 semi-expreso se realizan únicamente paradas en las estaciones: Colón, Plaza Grande, Recoleta y Villafora. Además existe una lı́nea exprés escolar en las mañanas desde
la terminal Sur hasta la estación Colón.
El sistema de transporte de la ciudad no sólo consiste del Sistema Trolebús ya que
además existen otros corredores que se interconectan y complementan al corredor central. En este sentido, la planificación estratégica servirı́a como herramienta para el mejoramiento de la transportación de los usuarios (minimiza las transferencias, maximiza
los viajes directos), la minimización de costos y perfeccionamiento en la administración
3
de los recursos para el administrador de todos los corredores que conforman la Empresa
Pública Metropolitana de Transporte de Pasajeros de Quito.
1.2
Definiciones básicas y antecedentes
Un problema de planificación de lı́neas puede ser modelado como un grafo dirigido (o
no dirigido) G = (V, A) donde las estaciones están representadas por los nodos v ∈ V
y las aristas (i, j) ∈ A son las conexiones directas entre estaciones. Además contamos
con un conjunto M de modos de transportación, donde estos modos se refieren a los
distintos tipos de transporte disponibles, por ejemplo trolebuses, buses alimentadores,
etc. Cada modo de transportación m ∈ M cuenta con una capacidad fija km ∈ Z+
para sus unidades.
Una lı́nea se define como un camino dirigido cuyos nodos finales son terminales. Una
lı́nea es abierta para un modo m ∈ M si las terminales finales son distintas. De manera
similar, una lı́nea para un modo m ∈ M se llama cerrada si el terminal inicial y final es
el mismo nodo. Las lı́neas pueden ser generadas dinámicamente o seleccionadas de un
conjunto previamente construido. Se conoce como Line Pool L al conjunto que contiene
todas las lı́neas admisibles en la red de transporte. A cada lı́nea l ∈ L se debe asignar
una frecuencia fl ∈ Z+ que representa el número de salidas de unidades de transporte
de esa lı́nea en un horizonte de tiempo.
La demanda de transporte se la expresa mediante una matriz D ∈ ZV+×V conocida como
matriz de origen-destino, donde cada elemento duv indica el número de pasajeros que
requieren viajar de una estación u a una estación v. Esta matriz no siempre es simétrica.
El objetivo del problema de planificación de lı́neas es encontrar un conjunto de lı́neas
factibles y sus frecuencias de manera que se cumpla con la demanda de transporte dada, es decir, todos los usuarios puedan llegar a sus destinos y se maximice o minimice
una función objetivo (costos del sistema de transporte).
Dependiendo del objetivo del problema de planificación de lı́neas podemos encontrar
costos fijos y variables. Los costos fijos son los que no dependen del nivel de operación
del sistema de transporte, por ejemplo sueldos a conductores. Los costos variables dependen de las lı́neas y frecuencias usadas en la operación del sistema, por ejemplo el
combustible utilizado para mantener en circulación las unidades de transporte.
Durante los últimos años se han realizado muchos trabajos relacionados al problema de
4
planificación de lı́neas. Bussieck, Kreuzer, y Zimmermann [7] desarrollaron un modelo
de programación entera que maximiza el número de viajes directos, es decir, maximiza
el número de pasajeros que se trasladan mediante una lı́nea sin la necesidad de realizar
transferencias. Goossens, van Hoesel, y Kroon [14] presentan una aproximación orientada a la minimización de costos y describen una aproximación branch-and-cut para
resolver el problema. Esta formulación se basa en el trabajo de Claessens, van Dijk y
Zwaneveld [9], en el que se deja de lado el interés de los pasajeros y se toman en cuenta
los costos del plan de transporte del sistema. Lindner [16] también estudia la minimización de costos y desarrolla un método tipo branch-and-bound para encontrar las
lı́neas óptimas. En estas aproximaciones se utiliza una técnica conocida como System
Split que consiste en una distribución previa del flujo de pasajeros sobre las aristas de
la red de transporte. Sobre esta técnica se puede citar el trabajo de Bouma y Oltrogge
[6], donde los pasajeros cambian a un tren rápido lo más antes posible y a uno lento lo
más tarde posible. Además, es importante destacar el trabajo de L. Torres, R. Torres,
R. Borndörfer y M. Pfetsch [22], donde abordan el problema de planificación para el
Sistema Trolebús de la ciudad de Quito.
Schöbel and Scholl [20] abordan el problema mediante la construcción de una red de
transporte llamada Change&Go, donde los pasajeros pueden realizar transferencias
entre lı́neas. Esta aproximación se basa en modelos de flujo multi-producto (multiCommodity flow models). En el artı́culo escrito por Nachtigall y Jerosch [17], los autores proponen un modelo donde no sólo se trate con la comodidad del pasajero (como
en [20]) sino también se minimicen costos. Borndörfer, Grötschel, y Pfetsch [3] dejan de
lado el concepto de Line Pool y en su formulación los pasajeros se enrutan libremente
en lı́neas generadas dinámicamente.
A continuación se presentan de manera extensa las ideas y conceptos reportados en
algunos de los trabajos más importantes en planificación de lı́neas y frecuencias y que
se encuentran relacionados al presente proyecto.
1.2.1
Planificación de Lı́neas con Tiempos y Frecuencias Mı́nimos
Para iniciar expondremos los modelos desarrollados por Schöbel y Scholl [20], donde
el problema de planificación está orientado al mejoramiento de la experiencia de la
transportación del usuario, factor que se evidencia en la inclusión del número de transferencias entre lı́neas en la función objetivo. Se utilizarán las definiciones mostradas a
5
continuación.
Estos modelos se basan en una red de transporte (public transportation network) fija
y dada, representada por un grafo dirigido denominado P T N = (S, E), donde S es el
conjunto de las estaciones y E el conjunto de todas las conexiones fı́sicas entre todas
las estaciones.
Los autores introducen un conjunto de todas las lı́neas posibles en la red de transporte
(line pool) denotado por L, donde cada lı́nea l ∈ L puede representarse como una
sucesión de estaciones y tienen asociadas una frecuencia fl que define el número de
despachos de lı́nea en un intervalo de tiempo. Se nota como E(l) al conjunto de todas
las aristas pertenecientes a la lı́nea l y, si tomamos una estación u, el conjunto de todas
las lı́neas que pasan por esta estación, se define como L(u) = {l ∈ L : u ∈ l}. Además,
el conjunto de todos los pares origen-destino (s, t) se escribe R ∈ S × S donde wst es
el número de clientes que quieren viajar de s a t.
En este sentido, el problema de planificación de lı́neas se puede definir como: escoger un
conjunto de lı́neas L ⊂ L junto con sus frecuencias fl de manera que todos los clientes
puedan realizar sus viajes, tal que se minimice el costo de operación y se maximice la
comodidad de los usurarios. Mayor comodidad significa que se deberá incurrir en los
menores tiempos de viaje y minimice el número de transbordos para cada uno de los
usuarios.
Con las definiciones establecidas, el problema de planificación de lı́neas como programa
entero se construye usando el grafo dirigido P T N = (S, E) para formar una nueva red
llamada Change&Go GCG = (V, E) de la siguiente manera:
Se divide el conjunto inicial de nodos en dos grupos, uno relacionado con los pares
origen destino VOD y el otro con los nodos que recorre cada lı́nea VCG y se notan con:
• VCG := {(s, l) ∈ S × L : l ∈ L(s)}.
• VOD := {(s, 0) : (s, t) ∈ R ∨ (t, s) ∈ R}.
El conjunto de aristas E consiste en aristas dirigidas que salen y entran de las estaciones origen y destino, conectan estaciones de una misma lı́nea y también representan
transferencias entre lı́neas distintas. Ası́ se tiene:
Echange := {((s, l1 ), (s, l2)) ∈ VCG × VCG }.
6
EOD := {((s, 0), (s, l)) ∈ VOD × VCG ∧ ((t, l), (t, 0)) ∈ VCG × VOD : (s, t) ∈ R, l ∈ L}.
El := {((s, l), (s1, l)) ∈ VCG × VCG }.
S
Ego := l∈L El .
definiendo el conjunto de aristas E de la forma :
E := Echange ∪ Ego ∪ EOD .
En la figura 1.2 se puede ver la manera en la que es construida la red Change&Go.
PTN
1
2
3
4
(3, l2 )
(4, l2 )
l2
(3, l1 )
EOD
l1
(3, 0)
(4, 0)
Echange
VCG
(1, l1 )
El
(2, l1 )
El
EOD
VOD
(1, 0)
(2, 0)
Figura 1.2: Ejemplo: Red Change&Go considerando 4 nodos y 2 lı́neas.
Considerando que parte del objetivo del modelo es generar la mayor comodidad a los
usuarios, se incluyen pesos a cada una de las aristas de la red Change&Go. Estos pesos
son costos que se escogen de manera intuitiva, por ejemplo, si tomamos las aristas
que componen a E, es claro notar que al iniciar un viaje y tomar la primera lı́nea no
representa incomodidad por lo que el costo relacionado será cero. Caso distinto son las
aristas restantes, ya que trasladarse de una lı́nea a otra dentro del recorrido ya significa
un grado de incomodidad ası́ como incremento en el tiempo total de viaje y es necesario
incluir un costo mayor a cero. Esto se resume en la siguiente sección, donde se definen
valores asociados a los arcos y se presenta el primer modelo reportados por los autores.
Modelo 1. Planificación de Lı́neas con Tiempos de Viaje Mı́nimos
En el primer modelo que los autores proponen, la selección de los costos para los arcos
de la red Change&Go es un punto primordial. Ası́, si se desea minimizar el número de
transferencias los costos pueden ser:
7

1, si e ∈ E
change ;
ce =
0, otro caso.
o si se desea minimizar el tiempo total de viaje de los pasajeros:
ce =



0,


si e ∈ EOD ;
tiempo de viaje,
si e ∈ Ego;



tiempo de transferencia, si e ∈ E
change
Para cada par (s, t) ∈ R se debe satisfacer la restricción θxst = bst donde: θ ∈ Z (|V|×|E|)
es la matriz de incidencia nodo-arco de GCG = (V, E). Se define bst ∈ Z |V| como:
bist =



1,

si i = (s, 0);
−1, si i = (t, 0);



0,
otros.
Los xest ∈ {0, 1} son las variables de decisión donde xest = 1 sı́ y sólo si el arco e es
usado en el camino más corto entre un origen (s, 0) y un destino (t, 0) y xest = 0, caso
contrario. En el modelo además se introduce una variable binaria yl ∈ {0, 1} para cada
l ∈ L, donde esta será igual a 1 si y sólo si la lı́nea es seleccionada y es igual a cero
caso contrario. Entonces el modelo de Planificación de Lı́neas con Tiempos de Viaje
Mı́nimos (LPMT) es el siguiente:
mı́n
X X
wst ce xest
(1.1)
(s,t)∈R e∈E
s.t.
X X
xest ≤ |R||El |yl
∀l ∈ L,
(1.2)
(s,t)∈R e∈El
θxst = bst
∀(s, t) ∈ R,
X
cl yl ≤ B,
(1.3)
(1.4)
l∈L
xest , yl ∈ {0, 1}
∀(s, t) ∈ R, e ∈ E, l ∈ L.
(1.5)
La primera observación a notar es que este modelo no toma en cuenta el flujo de pasajeros solo nos devuelve un conjunto de lı́neas entre orı́genes y destinos que siempre
son tomadas por los usuarios. La restricción (1.2) asegura que una lı́nea será incluida si
8
está se usa para algún par origen-destino, por ejemplo, si contamos con una única lı́nea
para cubrir todos los orı́genes-destinos, el número de arcos escogidos en la solución será
igual a |R||El | ; en la restricción (1.3) se quiere que los usuarios lleguen a su destino
usando la ruta más corta. Para (1.4) se tiene en cuenta que el sistema de transporte
opera bajo un presupuesto máximo B ∈ Z+ y el costo de las lı́neas a tomarse en cuenta
no deben sobrepasarlo.
En la práctica, es claro que no es posible llevar a todos los usuarios siempre por una
misma ruta entre un origen y destino y hay que tener presente que las unidades tienen
una capacidad limitada, además de pertenecer a una flota también limitada. Es por ello
que pueden usarse distintos recorridos para un mismo par origen-destino, restricciones
que serán consideradas en el siguiente modelo.
Modelo 2. Planificación de Lı́neas con Transferencias y Frecuencias Mı́nimas
Ahora, notamos la capacidad de las unidades con N y la frecuencia de cada lı́nea con
la variable fl ∈ N. Manteniendo la notación anterior, esta frecuencia significa el número de unidades que deben ser despachadas por la lı́nea en un perı́odo de tiempo. Las
variables xest ∈ N porque ahora se está trabajando con flujos de pasajeros y de esta
forma el vector bst será:



w ,
si i = (s, 0);

 st
bist = −wst , si i = (t, 0);



0,
otros.
El segundo modelo de Planificación de Lı́neas con Transferencias y Frecuencias Mı́nimas(LPMTF) se formula:
mı́n
X X
ce xest
(1.6)
(s,t)∈R e∈E
s.t.
1 X e
xst ≤ fl
N
∀l ∈ L, e ∈ El
(1.7)
(s,t)∈R
θxst = bst
∀(s, t) ∈ R,
X
cl fl ≤ B,
(1.8)
(1.9)
l∈L
X
fl ≤ fkmax
∀k ∈ E,
(1.10)
l∈L:k∈El
9
xest , fl ∈ Z+
∀(s, t) ∈ R, e ∈ E, l ∈ L.
(1.11)
Bajo el objetivo de minimizar el costo total del sistema, la restricción (1.7) asegura que
la frecuencia de una lı́nea sea lo suficientemente grande para poder atender a todos los
clientes, donde la capacidad de la lı́nea está dada por Nfl . La restricción (1.8) es ahora
una restricción de conservación de flujo, similar a la del problema de flujo de costo
mı́nimo. En (1.9) se tiene que los costos de las lı́neas no deben superar el presupuesto.
La restricción (1.10) se incluye para tener en cuenta que cualquier arista de la red sólo
podrá resistir un determinado número de unidades.
Los modelos anteriores (LPMT) y (LPMTF) son NP-completos. La demostración parte de un problema que conocemos es NP-completo. Este problema es el Set Covering
(cubrimiento de conjuntos) con pesos y lo enunciamos a continuación.
Set Covering (con pesos)
Formalmente, el problema de cubrimiento de conjuntos (SCP) puede ser formulado:
Instancia: Una colección C de subconjuntos de un conjunto finito S y un peso no
negativo Kc > 0, ∀c ∈ C.
Solución: Un cubrimiento para el conjunto S, es decir, una subcolección C ′ ⊆ C tal
que cada elemento en S pertenezca a al menos un miembro de C ′ y el costo del cubriP
miento sea minimizado, es decir, se desea minimizar la expresión c∈C ′ Kc .
Teorema 1.1. El problema de planificación de lı́neas es NP-completo.
Demostración. Tomando una instancia del problema de cubrimiento de conjuntos (SCP),
es decir, un conjunto S con m elementos, n subconjuntos C1 , C2 , ..., Cn de S con pesos
Kj > 0, ∀j = 1, 2, ..., n. Su formulación como programa entero puede ser:
min{Kx : Ax ≥ 1m ; x ∈ {0, 1}n }
con A ∈ {0, 1}m×n , y K ∈ Rn+ el vector con los pesos de cada subconjunto. A partir de
esta instancia se construye una instancia del problema de planificación de lı́neas.
10
Construimos una red de transporte con 2m nodos S = {s1 , t1 , s2 , t2 , ..., sm , tm } y aristas E = {(s1 , t1 ), (t1 , s2 ), (t2 , s3 ), ..., (sm , tm )}. Se define el conjunto de orı́genes-destinos
como: R = {(si , ti ) : i ∈ {1, 2, ..., m}} y wst = 1 para todo (s, t) ∈ R. Luego, para cada
columna j de A se construye una lı́nea lj pasando por los nodos sj y tj si y solamente
si aij = 1. Fijamos flj = 1, clj = Kj ∀j = 1, 2, ..., n, l ∈ L, N = 1 y un presupuesto
P
B = ni=1 Ki .
Alguna solución del problema de planificación de lı́neas consiste de un conjunto de
lı́neas l1 , l2 , ..., lr tal que todo arco (si , ti ) con i = 1, 2, ..., m es cubierto por al menos 1
lı́nea. Tal solución corresponde al mismo conjunto de columnas 1, 2, ..., r de la matriz
A con la propiedad de que cada elemento de S es cubierto por al menos 1 columna.
Además, al escoger las columnas de S, las cuales corresponden a las lı́neas l ∈ L, una
solución del mismo costo es obtenida para SCP.
Por otro lado, asumiendo que existe una solución factible para SCP, entonces usando
una transformación similar a la anterior se tiene una solución factible para el Problema
de Planificación de Lı́neas con el mismo costo.
Para la resolución de los programas lineales enteros los autores aprovechan la estructura interna de los mismos, ya que las restricciones (1.8) surgen del problema del camino
más corto y de flujo de costo mı́nimo generando bloques de matrices unimodulares (ver
[24]) lo cual implica que se podrı́a trabajar sobre la envolvente convexa. El método utilizado es la descomposición de Dantzig-Wolfe aplicada de manera que se obtienen dos
formulaciones principales. En la primera se considera a cada origen-destino, es decir,
cada restricción θxst = bst como un bloque resultando en |R| bloques distintos, mientras que en la segunda manera se toma todos los orı́genes-destinos en un sólo bloque y
son aplicados al primer modelo (LPMT) de planificación de lı́neas relajado.
Finalmente, para la solución de instancias reales se reportan modelos a gran escala,
usando datos proporcionados por la red alemana de trenes (German railway). Muchas
instancias fueron resueltas mediante la solución trivial y la descomposición de D-W fue
considerada donde el método anterior no fue posible de aplicar.
1.2.2
Una aproximación branch and cut para el problema de
planificación de lı́neas
En el presente trabajo desarrollado por Goossens, van Hoesel y Kroon [14] las ideas
ya introducidas de planificación de lı́neas se mantienen, es decir, queremos determinar
11
un subconjunto de lı́neas que cubran la demanda de transportación. A diferencia de
los modelos antes presentados, el enrutamiento de los pasajeros hacia las rutas es realizada como paso previo por lo que ingresan como dato. Esta asignación es ejecutada
mediante el proceso conocido como ”System Split”. Este sistema asigna los pasajeros
a los distintos tipos de transporte, asumiendo que los usuarios podrı́an viajar desde su
origen a su destino usando el camino más corto. Por ejemplo, en el presente trabajo
la demanda de pasajeros es dividida en los diferentes tipos de trenes denominados IC
”intercity”, IR ”interregional”, y AR ”aggloregional”. El artı́culo utilizado en esta revisión es aplicado para ferrocarriles por lo que existirán conceptos relacionados a este
tipo de transporte.
El objetivo a minimizar es el costo total de operación del plan de lı́neas que consiste en
el conjunto de lı́neas a operar junto con sus frecuencias. Al orientarse a ferrocarriles,
las lı́neas operan en periodos cı́clicos y estos se usan para obtener las frecuencias. Por
ejemplo, si pensamos en una lı́nea que tarda 70 minutos en ir de un origen a un destino
y el mismo tiempo en regresar, entonces tendrı́amos un ciclo de 140 minutos en total.
⌉ = 3 locomotoras (en el
Ahora, si la lı́nea opera una vez por hora se necesitarı́an ⌈ 140
60
caso de trenes) por hora.
Los autores asumen que el flujo de los pasajeros es simétrico, las lı́neas operan en dos
direcciones y las rutas que escogerán los pasajeros vendrán del problema del camino
más corto. Como última consideración antes de formular el problema, se debe asegurar
que el plan de lı́neas cumpla las condiciones: la capacidad de las lı́neas es suficiente
para cubrir la demanda de transporte y se garantiza que existirán el mayor número
posible de conexiones entre estaciones.
Modelo 3. Problema de Planificación de lı́neas de Costo Mı́nimo (CLPP)
La formulación usada en el presente artı́culo es una simplificación al modelo presentado por Claessens, van Dijk y Zwaneveld [9], cuyo modelo no lineal es usado para
maximizar el número de viajes directos en la red de transporte.
Dado un grafo no dirigido G = (V, E) y un conjunto de potencial de lı́neas L (line
pool), donde cada lı́nea l ∈ L se define como un conjunto de aristas que conectan un
nodo origen y un nodo destino. Se recalca que se toma en cuenta un sólo tipo de lı́nea
y para cada una de ellas se calculan sus diferentes frecuencias y número de vagones. Al
conjunto de las posibles frecuencias se lo denota con F ⊂ Z+ y al conjunto de número
de vagones con C ⊂ Z+ . Note que en este modelo la frecuencia ha sido discretizada,
es decir, fl ∈ F, ∀l ∈ L. Para cada arista e de la red de transporte se fija el número
12
mı́nimo de unidades f e y vagones ce por hora de manera que se cumpla la demanda.
Para poder formular este problema como un modelo de programación entera se incorpora una variable binaria para cada tripleta (l, f, c) ∈ N con N := L × F × C donde
cada i ∈ N se usará para referirse a una combinación única (li , fi , ci ). Además se introduce el conjunto N (e) = {i ∈ N : e ∈ li } ⊆ N que nos muestra las lı́neas que usan
la arista e. Se tiene la siguiente formulación del problema al cual se lo ha nombrado
por sus siglas en inglés (CLPP):
mı́n
s.t.
X
X
ki xi
(1.12)
i∈N
fi xi ≥ f e
∀e ∈ E,
(1.13)
i∈N(e)
X
fi ci xi ≥ ce
∀e ∈ E,
(1.14)
i∈N(e)
X
xi ≤ 1
∀l ∈ L,
(1.15)
i∈N |li =l
xi ∈ {0, 1}
∀i ∈ N .
(1.16)
Las restricciones (1.13) y (1.14) aseguran que para cada arista e ∈ E haya un mı́nimo
número de frecuencias y vagones (por hora) para cumplir con la demanda de pasajeros
obtenida por el System Split. La restricción (1.15) se encarga de que se seleccione una
sola configuración posible para cada lı́nea. No se restringe el número de unidades que
pueden usar una arista en un intervalo de tiempo, pero este tipo de restricciones pueden
ser incluidas. Ahora, en lo que respecta a la función objetivo se tiene el coeficiente ki
que representa el costo de operación asociado a la variable xi . Este costo se divide
en una parte fija y otra variable. Los costos variables se representan como los medios
básicos para operar una lı́nea por unidad de distancia (kilómetro), considerando factores
como electricidad, combustibles o mantenimiento variable; mientras que los costos fijos
son aquellos que no dependen del recorrido como costos por parqueo, conductores o
impuestos administrativos. Entonces el coeficiente ki se define como:
unidad
car
+ c · kvar
).
k(l,f,c) = ⌈cpl · f ⌉ · (kfunidad
+ c · kfcar
ijo ) + dl · f · (kvar
ijo
donde se tienen los siguientes costos:
• kfunidad
el costo fijo por hora por unidad (tren),
ijo
• kfcar
ijo el costo fijo por hora por vagón,
13
unidad
• kvar
el costo variable por hora de una unidad por un kilómetro,
car
• kvar
el costo variable por hora de un vagón por un kilómetro.
La distancia que recorre cada lı́nea se representa por dl y su unidad es el kilómetro, cpl
es el ciclo total de la lı́nea dividido por 60 minutos.
Branch and Cut para el CLPP
Se ha demostrado que este tipo de problemas son NP-Duros por lo que es difı́cil encontrar una buena descripción de su envolvente convexa, para ello, en el documento
se abordan tres partes: el pre-procesamiento para identificar y remover variables y restricciones redundantes, planos cortantes y árboles de búsqueda. Dada la naturaleza de
este proyecto, no se revisará en detalle lo antes expuesto pero se mostrará para cada
una de las partes ideas generales.
Para poder describir los métodos de reducción de coeficientes se va a utilizar un modelo
de planificación de lı́neas simplificado (SLPP) que tiene la siguiente formulación:
mı́n cx
(1.17)
s.t. Ax ≥ b,
(1.18)
Cx ≤ 1,
(1.19)
x ∈ {0, 1}n .
(1.20)
Donde N es el conjunto de variables. Se nota n = |N |. La matriz A tiene dimensión
m × n con elementos enteros no negativos aij y b es un vector de enteros positivos
m-dimensional. Cada variable i ∈ N es asociada con un único l ∈ L denotado por li .
Para cada l ∈ L existe una restricción de la forma (1.19). Observemos que, el Modelo
CLPP es un caso particular del SLPP.
Ahora, las ideas generales de estos métodos de reducción se mostrarán mediante ejemplos tomados del documento estudiado. Considerar el siguiente conjunto de restricciones
del problema SLPP, donde se tiene un solo arco y 2 lı́neas factibles que cubren dicho
arco. Note que para la lı́neas 1 se toman 3 frecuencias factibles (3, 4, 7) y para la lı́nea
2 (4, 6).
14
l1
l2
(l1 , 3, 1)
(l1 , 4, 1)
(l1 , 7, 1)
(l2 , 4, 1)
(l2 , 6, 2)
e
Figura 1.3: Ejemplo: Reducción coeficientes.
S := {x ∈ {0, 1}5 :
3x1 + 4x2 + 7x3 + 4x4 + 6x5 ≥ 7
x1 + x2 + x3 +
x4 + 2x5 ≥ 2
x1 + x2 + x3
≤1
x4 + x5 ≤ 1}.
Se toma la variable x3 en la primera restricción y se fija a 1, entonces cualquier solución
factible para S deberá tener a x4 o x5 iguales a 1 para que se cumplan las restricciones
restantes. Esto implica que podemos reducir el coeficiente de x3 de la primera restricción
al máximo ya que por la forma del conjunto S se necesita que x4 + x5 = 1. Entonces,
para la reducción es necesario obtener el mı́nimo entre los coeficientes de las variables
x4 y x5 de la primera restricción, teniendo:
3x1 + 4x2 + (7 − min{4, 6})x3 + 4x4 + 6x5 ≥ 7
es válida para S. Lo que se ha hecho es encontrar un valor, que los autores lo notan
por Qkj , que es una cota inferior del lado izquierdo del valor de la restricción k para
cualquier solución factible x ∈ S con xj = 1. Consideremos el siguiente ejemplo donde
se halla de otra manera una cota inferior.
Tomando el conjunto factible obtenido en el ejemplo anterior, se puede reducir el coeficiente a13 de x3 con:
Q13 = mı́n{4x4 + 6x5 }
s.t. x4 + 2x5 ≥ 1,
(1.21)
(1.22)
x4 + x5 ≤ 1,
(1.23)
x4 , x5 ∈ {0, 1}.
(1.24)
15
que es válido para S. Si se relajan las restricciones sobre x4 y x5 y se resuelve, la
solución óptima es x4 = 0 y x5 = 0,5 de manera que Q13 ≥ 3. Ahora:
3x1 + 4x2 + (7 − 3)x3 + 4x4 + 6x5 ≥ 7
es válida para S.
Se han ejemplificado algunos métodos de reducción de coeficientes, donde teoremas,
corolarios y lemas que garantizan el funcionamiento de estos resultados se encuentran
demostrados en el documento de estudio.
Los autores consideran técnicas de reducción de variables mediante la construcción de
relaciones de dominación entre grupos de variables que están conectadas con los procedimientos de reducción de coeficientes.
Podemos observar que en la formulación del problema original (CLPP), se introdujeron
variables binarias que representan a tripletas (l, f, c) ∈ N. Si tomamos dos variables
i, j ∈ N, con li = lj y i 6= j, con costos ci y cj , la variable xi domina a xj y puede ser
removida del problema si
ci ≤ cj
aki ≥ akj
∀k ∈ {1, . . . , m}.
Esta relación de dominación es transitiva y se prueba entre variables de una misma
lı́nea l ∈ L.
En relación a la reducción de restricciones, se intenta identificar a restricciones redundantes mediante reglas de dominación sobre la formulación SLPP. Ası́, dada una
instancia del SLPP y un par de restricciones, notadas como h y k. La restricción k es
redundante para la descripción del SLPP si bk ≤ Qk0 (h), con:
Qk0 (h) ≡ mı́n
X
aki xi
(1.25)
i∈N
′
s.t. x ∈ P .
(1.26)
P
donde P ′ := {x| i∈N ahi xi ≥ bh , Cx ≤ 1, x ∈ [0, 1]n }.
Aplicando lo antes mencionado a las primeras dos restricciones del ejemplo tendrı́amos:
16
Q10 (2) = min 3x1 + 4x2 + 7x3 + 4x4 + 7x5
s.t. x1 + x2 + 2x3 + x4 + x5 ≥ 2
≤1
x1 + x2 + x3
x4 + x5 ≤ 1.
donde una solución factible al problema puede ser (1, 0, 0, 1, 0) con Q10 (2) = 10, dado
que b1 = 7 se tiene b1 < Q10 (2) con lo cual Q10 (2) = 7. Entonces, resolver el problema de
esta forma nos muestra que la segunda restricción induce que la primera es redundante.
Estos procedimientos de reducción no son independientes, deben ser llevados a cabo
secuencialmente actualizando el problema (1.25) - (1.26) cada vez.
A partir de los modelos reducidos, los autores proponen estrategias de solución basadas
en planos cortantes y algoritmos Branch and Bound. Observemos qué sucede en la
restricción del ejemplo:
S := {x ∈ {0, 1}5 : 3x1 + 4x2 + 7x3 + 4x4 + 7x5 ≥ 7}.
Por lo menos una de las variables tendrán valor diferente de cero en cualquier solución
factible, por lo que:
x1 + 2x2 + 3x3 + 2x4 + 3x5 ≥ 3
es válido para S. Por tanto, dada una arista e, si una variable xi por si sola no satisface las restricciones (1.13) y (1.14), entonces cualquier solución factible tendrá por lo
menos una lı́nea más sobre e.
En la parte del proceso de solución se trata con dos estrategias de ramificación orientadas a las variables y las lı́neas. Para el caso de ramificar mediante las variables, la
idea es tomar una solución x del problema relajado y generar sub-problemas tomando
como entera una variable que es básica y quebrada en la solución. Hay que recalcar
que se plantean reglas para seleccionar esta variable.
En el caso de ramificación mediante lı́neas, para alguna lı́nea l se tendrá:
P
P
i|li =l xi = 0 contra
i|li =l xi = 1
Finalmente, los autores reportan la efectividad de las técnicas mencionadas mediante resultados computacionales basados en datos reales de ”Netherlands Railways”, y
resueltos en ABACUS 1998 y CPLEX 6.6.1.
17
1.2.3
Un Modelo de Rutas para Planificación de Lı́neas en el
Transporte Público
Ahora, se va a revisar un modelo de planificación de lı́neas reportado por Borndörfer,
Grötschel y Pfetsch [3], el cual es distinto a los antes estudiados en el sentido de que la
generación de lı́neas es dinámica. Este modelo se basa en un problema de flujo multiproducto (multi-commodity flow) y al ser un modelo de planificación de lı́neas se basa
en los conceptos ya desarrollados como por ejemplo la matriz O-D.
En los modelos anteriores se suponı́a un conjunto de lı́neas iniciales (line pool) del cual
se escogı́an algunas de ellas para la planificación óptima, y que la demanda es enrutada
usando el método conocido como system split. Estos procedimientos significan que los
modelos de planificación de lı́neas no generan lı́neas propias. El modelo a exponerse
no hace uso de estas técnicas, sino construye las lı́neas factibles y los usuarios son enrutados dinámicamente. En lo que respecta a la función objetivo se va minimizar una
combinación entre el costo de operación y el tiempo de los viajes.
Al igual que con los modelos ya tratados se iniciará definiendo la notación necesaria
para formular el problema y se mencionará de manera resumida los métodos de solución.
Modelo 4. Modelo de Planificación con Lı́neas Dinámicas
Dado un multigrafo G = (V, E) = (V, E1 ∪ ... ∪ Em ) donde se tienen m modos de transportación (bus, tren, etc.), conjuntos de terminales T1 , ..., Tm ⊆ V , costos de operación
m
m
1
(variables) c 1 ∈ QE
∈ QE
+ sobre las aristas, costos fijos C1 , ..., Cm ∈ Q+ , ca+ , ..., c
pacidades de las unidades k1 , ..., km ∈ Q+ para cada modo de transporte y capacidades
de arcos λ ∈ QE
+ . Se denota con Gi = (V, Ei ) al subgrafo que le corresponde al modo i,
i ∈ {1, 2, ..., m}.
Una lı́nea ℓ de un modo i es un camino simple que une terminales de un conjunto Ti .
Ası́, notar que para una lı́nea ℓ de modo i se definen:
•
•
•
Costos fijos: Cℓ := Ci .
P
Costos variables: cℓ := e∈ℓ cei .
Capacidad unidad de transporte: kℓ := ki .
Además, se definen Le :=
S
{ℓ ∈ L : e ∈ ℓ} al conjunto de lı́neas que usan la arista
e ∈ E, donde L es el conjunto de todas las lı́neas. La matriz O-D contiene las demandas de transporte y (dst ) ∈ QV+×V representa la cantidad de pasajeros que quieren
18
ir de un origen s a un destino t. El conjunto de todos los pares O-D se define como
D := {(s, t) ∈ V × V : dst > 0}.
Los caminos entre un origen s y un destino t en D son caminos dirigidos dentro de un
nuevo grafo que se deriva de G = (V, E). A este los autores lo notan como G′ = (V, A)
y se construye reemplazando las aristas (i, j) por arcos anti-paralelos a = (i, j) y
a = (j, i). Se definen tiempos de viaje para cada arco a por τa ∈ Q+ .
Ahora, se nota con Pst al conjunto de todas las rutas (de pasajeros) entre (s, t) ∈ D y
S
el conjunto de todas las rutas se define como P := {p ∈ Pst : (s, t) ∈ D}. Además,
S
sea Pa := {p ∈ P : a ∈ p} el conjunto de todas las rutas que usan el arco a. Como se
observa, una ruta la notamos con p y al tiempo de viaje sobre esta ruta lo definimos
P
como τp := a∈p τa .
Para la formulación del modelo se van a utilizar tres tipos de variables:
yp ∈ R+ : el flujo de pasajeros que viajan de s a t sobre la ruta p ∈ Pst ,
xℓ ∈ {0, 1}: una variable para decidir el uso de una lı́nea ℓ ∈ L,
fℓ ∈ R+ : la frecuencia de la lı́nea ℓ ∈ L.
Entonces el modelo (LPP) tiene la siguiente formulación:
mı́n τ T y + C T x + c T f
s.t. y(Pst ) = dst ∀(s, t) ∈ D,
X
y(Pa ) −
kℓ fℓ ≤ 0 ∀a ∈ A,
(1.27)
(1.28)
(1.29)
ℓ:e(a)∈ℓ
f (Le ) ≤ λe
∀e ∈ E,
(1.30)
f ≤ F x,
(1.31)
xℓ ∈ {0, 1} ∀ℓ ∈ L,
(1.32)
fℓ ≥ 0 ∀ℓ ∈ L,
(1.33)
yp ≥ 0 ∀p ∈ P.
(1.34)
La restricción (1.28) asegura que el flujo de los pasajeros en todas las rutas entre un
(s, t) sea igual a la demanda. En la restricción (1.29), el sumatorio representa la capacidad máxima de pasajeros en una arista dada, y esta debe ser mayor igual al flujo
de pasajeros que viajan por la misma arista (y(Pa )), es decir, se asegura suficiente
19
capacidad de transporte en cada arco. En (1.30) se establece una cota superior para
el número máximo de frecuencias que va a usar un arco e ∈ E. La restricción (1.31)
garantiza que si no se escoge una lı́nea en la solución, su frecuencia va a ser igual a
cero, F es una cota superior a la frecuencia de la lı́nea y finalmente, las restricciones
(1.32), (1.33) y (1.34) definen los tipos de variables a ser usadas para el modelo.
Para resolver el modelo LPP se obtiene la relajación tomando 0 ≤ x ≤ 1 la que puede
ser simplificada eliminando las variables x. Los autores señalan que debido a que (LPP)
se minimiza sobre costos no negativos se puede asumir, sin pérdida de generalidad, que
las desigualdades (1.31) se satisfacen con igualdad, es decir, hay una solución óptima
del programa lineal tal que F xℓ = fℓ ⇔ xℓ = fℓ /F para todas las lı́neas ℓ. Ahora al
modelo relajado lo notan como (LP) y además fijan para la función objetivo el valor
γℓ = Cℓ /F + cℓ obteniendo:
mı́n τ T y + γ T f
s.t. y(Pst ) = dst ∀(s, t) ∈ D,
X
y(Pa ) −
kℓ fℓ ≤ 0 ∀a ∈ A,
(1.35)
(1.36)
(1.37)
ℓ:e(a)∈ℓ
f (Le ) ≤ λe
∀e ∈ E,
(1.38)
fℓ ≥ 0 ∀ℓ ∈ L,
(1.39)
yp ≥ 0 ∀p ∈ P.
(1.40)
La solución del modelo (LPP) se la realiza mediante el método de generación de columnas. Aquı́, los autores indican que el ”pricing problem”para las variables de lı́neas fℓ
resultan en un problema del camino más largo mientras que el ”pricing”para variables
de flujo de pasajeros yp es un problema del camino más corto.
La complejidad del modelo es demostrada que es NP-difı́cil incluso para grafos planares
donde los autores lo reducen a partir del Problema del Camino Hamiltoniano que se
sabe es un problema NP-Completo en sentido fuerte (incluso para grafos planares).
Finalmente, Borndörfer, Grötschel y Pfetsch reportan experiencias computacionales
aplicando este modelo a la ciudad de Postdam, Alemania, en un proyecto conjunto
entre dos compañı́as locales de transporte público (ViP, Havelbus). La red de transporte original (después reducida) constaba de 951 nodos y 1321 aristas. Se resolvió el
problema utilizando CPLEX 9.0.
20
Capı́tulo 2
UN MODELO DE
PLANIFICACIÓN DE LÍNEAS
En el capı́tulo anterior se revisaron los principales trabajos reportados en los últimos
años para el problema de planificación de lı́neas. Estos son aplicados principalmente
a sistemas de transporte basados en ferrocarriles o en sistemas con múltiples modos
de transporte. Con respecto a la experiencia en nuestro paı́s, se encuentra el trabajo
de L. Torres, R. Torres, R. Borndörfer y M. Pfetsch [22] donde se proponen modelos
de planificación de lı́neas para redes de transporte con formas de caminos y árboles.
Además, determinan que la complejidad computacional de estos modelos sobre las topologı́as mencionadas y reportan resultados basadas en datos reales.
A diferencia de los trabajos anteriores, en este capı́tulo se propone un modelo de
planificación de lı́neas que contempla viajes directos, lo que es aplicable debido a la
forma de la red de transporte del Sistema Trolebús. Posteriormente se demuestra que
dicha formulación pertenece a la clase de complejidad NP-completo en dos de sus
variantes (lı́neas simples y lı́neas exprés) y finalmente se muestran algoritmos que
resuelven el problema en tiempo polinomial para ciertos casos.
2.1
Modelo de Asignación de Viajes
Siguiendo la misma lı́nea de formulación usada en los trabajos previos, definimos la red
de transporte representada por el grafo dirigido G = (V, A), donde V = {1, 2, ..., n}
corresponden a las estaciones y el conjunto de arcos A = {{i, j} : i, j ∈ V, i 6= j} son
las conexiones directas entre estaciones.
Definimos como M al conjunto de modos de transportación, donde cada m ∈ M tiene
una capacidad Nm fija para sus unidades. Además dependiendo del modo de trans21
portación, contaremos con ciertas paradas donde las unidades inician o terminan su
servicio (terminales). Una lı́nea abierta para un modo m es un camino dirigido donde
las estaciones de inicio y fin son terminales distintas. Por otro lado, una lı́nea cerrada
es un circuito y utiliza la misma terminal como inicio y fin.
La demanda viene dada por la matriz de orı́genes-destino D ∈ Zn×n , donde un elemento du,v indica la demanda de pasajeros entre un par de nodos (u, v). A cada par
(u, v) con duv > 0 lo llamamos origen-destino y notamos con T al conjunto de todos
los pares origen-destino en los cuales se cuenta con demanda de pasajeros, donde cada
par (s, t) ∈ T tiene demanda dst .
Consideramos un conjunto que contiene todas las posibles lı́neas factibles destinadas
a cubrir la demanda. Notaremos con Lm (line pool) el conjunto de lı́neas asociadas a
cada m ∈ M. Todas las lı́neas se encuentran en el conjunto L = ∪m∈M Lm y cada l ∈ L
tiene asociado un costo fijo Kl ∈ R+ y un costo variable Cl . A cada lı́nea la podemos
representar por una sucesión de arcos A[l] = {al1 , al2 , ..., alk }.
Se define como L(s,t) ⊂ L al conjunto de lı́neas que pueden atender al origen-destino
(s, t) ∈ T . Los pares origen-destino que pueden ser atendidos por la lı́nea l los notamos
con T (l) y Ta (l) = {(s, t) ∈ T (l) : a ∈ A[l]} es el conjunto de pares origen-destino que
pueden ser atendidos por una lı́nea l y que usan el arco a ∈ A[l].
El objetivo es escoger un conjunto de lı́neas l ∈ L junto con sus frecuencias fl de manera que exista la suficiente capacidad de transportación para satisfacer toda la demanda
de los pares origen-destino con un costo de operación mı́nimo.
Para especificar la demanda del origen-destino (s, t) ∈ T que es cubierta por la lı́nea
l ∈ L(s,t) introducimos la variable xlst ∈ Z+ . La variable fl ∈ Z+ denota la frecuencia de
la lı́nea l en la solución. El hecho de que escojamos una lı́nea en la solución viene dado
por la variable yl ∈ {0, 1}, donde yl = 1 significa que la lı́nea l es seleccionada y yl = 0
caso contrario. Imponemos f max como una cota superior a las frecuencias permitidas
por el operador del sistema.
En este sentido, el Modelo de Asignación de Viajes (MAVD) puede ser formulado como:
mı́n
X X
m∈M l∈Lm
Kl y l +
X X
Cl fl
(2.1)
m∈M l∈Lm
22
s.t.
X
xlst = dst
∀(s, t) ∈ T
(2.2)
l∈L(s,t)
X
xlst ≤ Nm fl
∀m ∈ M, ∀l ∈ Lm , a ∈ A[l]
(2.3)
(s,t)∈Ta (l)
fl ≤ f max yl
∀l ∈ L
(2.4)
xlst , fl ∈ Z+
∀(s, t) ∈ T , l ∈ L
(2.5)
yl ∈ {0, 1}
∀l ∈ L.
(2.6)
Bajo el objetivo de minimizar el costo de operación del sistema, la restricción (2.2)
asegura que toda la demanda de pasajeros sobre los pares origen-destino sea atendida. En (2.3) se asegura que las frecuencias sean lo suficientemente grandes para poder
servir a todos los pasajeros, considerando que se cuenta con unidades de capacidad
Nm , ∀m ∈ M. La restricción (2.4) es una cota superior fijada por el operador para el
máximo número de veces que se puede usar una misma lı́nea y además (2.5) y (2.6)
son restricciones de integralidad sobre las variables.
Cabe mencionar que, para el caso del Sistema Trolebús se cuenta con solo modo de
transportación, por ello se pone N en lugar de Nm de aquı́ en adelante. Además se
puede relajar la variable xlst , es decir, xlst ∈ [0, 1] representando de este manera la fracción de la demanda del par origen-destino (s, t) atendido por la lı́nea l, (s, t) ∈ T y
l ∈ L. Con esta relajación las restricciones 2.2 y 2.3 pueden ser escritas de la forma:
P
l
∀(s, t) ∈ T
l∈L(s,t) xst = 1
P
l
∀m ∈ M, ∀l ∈ Lm , a ∈ A[l]
(s,t)∈Ta (l) dst xst ≤ Nm fl
Ahora, si nos referimos a la estructura del sistema podemos destacar:
• En la parte central del sistema, los trolebuses se mueven sobre un camino simple
(uno en sentido N/S y otro S/N) donde para ir de una estación a otra necesariamente se deben pasar por las estaciones intermedias y no está permitido que
una unidad rebase a otra. En esta red, si contamos con el conjunto de estaciones
V = {v1 , v2 , ..., vn } tendremos arcos (vi , vi+1 ) y (vi+1 , vi ) para i = 1, 2, ..., n − 1,
donde estos arcos serán transformados en aristas de la forma {vi , vi+1 }, para
i = 1, 2, .., n − 1. Al grafo que resulta de las consideraciones antes mencionados
lo llamaremos Grafo de Quito con Viajes Directos (GQVD).
23
b
b
b
Lı́neas
b
b
b
1
2
n
3
OD
Figura 2.1: Problema de Asignación de Viajes en GQVD.
• Si existe la posibilidad de que los trolebuses rebasen en el recorrido, se podrı́a
introducir lı́neas exprés que se detengan en predeterminadas estaciones. A este
escenario lo llamaremos Grafo de Quito Expreso con Viajes Directos (GQEVD).
Lı́neas
b
b
b
b
b
1
2
3
b
b
b
n
OD
Figura 2.2: Problema de Asignación de Viajes en GQEVD.
Además, se cuenta con los buses alimentadores desde las terminales hacia los barrios
cercanos las cuales que forman grafos del tipo árbol.
b
b
b
b
T
T
Lı́neas
Alimentadoras
b
b
b
b
T
T erminal
Estación
b
b
b
b
P arada bus alimentador
Figura 2.3: Ejemplo: Red Alimentadora.
24
Considerando el tipo de circuitos con los que cuenta el Sistema Trolebús, en la mayorı́a
de casos nos encontramos que estos constituyen lı́neas cerradas, es decir, se utilizan
siempre los arcos de ida y vuelta entre dos estaciones. Esto nos permite construir un
nuevo grafo donde reemplazamos las dos arcos opuestos con una arista. Esta nueva
instancia se modela bajo las siguientes caracterı́sticas:
• Sea un grafo G = (V, E) no dirigido.
• Las lı́neas se reducirán a caminos simples no dirigidos sobre G.
• Si duv es la demanda entre las estaciones (u, v) y dvu la demanda entre (v, u),
entonces definimos la demanda agregada como duv := max{duv , dvu } ∀(u, v) ∈
A.
A continuación se analizará la complejidad computacional del (MAVD) sobre los grafos
antes definidos.
2.2
Complejidad computacional
Iniciaremos este análisis con el Problema de Asignación de viajes sobre el grafo GQEVD.
Para demostrar su complejidad consideraremos el problema de optimización conocido
como Set Covering (SCP) y seguimos ideas presentadas en [20].
El problema SCP fue presentado formalmente en la sección 1.2. Se expone al problema
bajo el siguiente ejemplo:
Supongamos que contamos con un conjunto de regiones m = {1, 2, ..., m} a las cuales
debemos atender con escuelas n = {1, 2, ..., n}. El conjunto Ej ⊆ m indica las regiones
que pueden ser atendidas por una escuela j ∈ n y el costo de instalar una escuela j
viene dado por cj ∈ R+ . El problema consiste en atender a todas las regiones con un
costo mı́nimo, es decir, el menor número de escuelas (si su instalación tiene el mismo
costo en todos los casos). Su formulación entera viene dada por:
mı́n
s.t.
X
X
cj xj
(2.7)
j∈n
aij xj ≥ 1
∀i ∈ m
(2.8)
j∈n
xj ∈ {0, 1}
∀j ∈ n
(2.9)
25
La variable xj será igual a 1 si la escuela j es seleccionada, caso contrario tendrá valor
de cero. La incidencia entre una región y una escuela viene dada en una matriz Am×n ,
donde si un elemento aij = 1 la región i ∈ Ej puede ser atendida por una escuela j.
Lema 2.1. El Modelo de Asignación de Viajes para GQEVD es NP-completo.
Demostración. Sea (SCP) una instancia del Problema Set Covering:
(SCP )






mı́n
X
j∈n
bT zj
C
bm×n z ≥ 1
s.t. A





z ∈ {0, 1}n
Construimos un grafo G = (V, A) con m + 1 nodos V = {0, 1, 2, ..., m} y un conjunto de m aristas de la forma A = {(0, 1), (1, 2), ..., (i, i + 1), ..., (m − 1, m)}. Definimos
el conjunto de orı́genes-destinos T = {(0, 1), (1, 2), ..., (m − 1, m)}. Las demandas se
bm×n
fijarán como dst = 1 para todo (s, t) ∈ T . Ahora, las n columnas de la matriz A
corresponderán a n lı́neas junto con su incidencia con los m pares origen-destino, es
b construimos una lı́nea lj pasando por el arco (i − 1, i) si
decir, para la columna j de A
bj y Kl = 0 con j = {1, 2, .., n} para todo l ∈ L ,
aij = 1. Por último, ponemos Cl = C
f max = 1 y N = 1.
Asumamos que tenemos una solución factible zj con j = 1, 2, ..., n para (SCP), definimos una solución factible al Modelo de Asignación de Viajes fijando fl = zj para
todo l ∈ L (contamos con n lı́neas) y ası́ tenemos un conjunto de lı́neas que con sus
arcos pueden atender a todos los orı́genes-destinos. Al ser la frecuencia para las lı́neas
escogidas igual a 1, yl = 1. Una solución factible al (SCP) puede involucrar que se
escojan algunos arcos de diferentes lı́neas para atender un mismo origen-destino, esto
no conlleva problemas debido a que la demanda de los orı́genes-destinos no están asob
ciados a valores dentro de la matriz A.
Ahora, supongamos que contamos con una solución factible para el Modelo de Asignación de Viajes, es decir, un conjunto de lı́neas con frecuencia fl para todo l ∈ L
que cubran las demandas dst = 1 para todo (s, t) ∈ T . Por construcción, una lı́nea l
utiliza un arco a si y solamente si esa lı́nea es capaz de atender el origen-destino (s, t)
asociado a el arco a. Si tomamos la restricción (2.3), fijamos un origen-destino (s, t) y
las sumamos obtendremos:
26
X
xlst ≤
X
∀(s, t) ∈ T
fl
l∈L
l∈L
Dado que la demanda es igual a 1 para cada viaje tendremos:
1=
X
l∈L
Lo que implica que si tomamos:
xlst ≤
X
fl
∀(s, t) ∈ T
l∈L

1, si f > 0;
l
zl =
0, otro caso.
podremos obtener una solución factible para (SCP) de costo
P
l∈L
Cl y l .
Queda demostrar a qué clase de complejidad pertenece el Problema de Asignación de
Viajes para el grafo GQVD. En este sentido nos basaremos en el trabajo de Kolen,
Lenstra, Papadimitriou y Spieksma [15] donde los autores presentan un estudio del
problema ”Interval Scheduling”. A continuación se mostrará en que consiste el Interval Scheduling Problem, su relación con el Problema de Planificación de Lı́neas y se
finalizará con la demostración de complejidad para nuestro caso.
Problema de Calendarización (Scheduling Problem)
En esta clase de problemas nos encontramos con un conjunto de máquinas M =
{1, 2, ..., m} y un conjunto de trabajos T = {1, 2, ..., n}. La máquinas representan
recursos con los que contamos para llevar a cabo tareas que son representadas por
los trabajos. Pueden existir restricciones temporales como el tiempo que demoran en
ejecutar las tareas y cuando están disponibles los recursos. El problema consiste en
decidir cuándo ejecutar un conjunto de tareas con los recursos disponibles, minimizando por ejemplo el costo de utilizar ciertos recursos. Este problema ha sido abordado
ampliamente en la literatura relacionada con la investigación de operaciones.
Problema de Calendarización en Intervalos (Interval Scheduling Problem)
Este problema se define de la siguiente manera. Dados n trabajos de la forma [sj , fj )
con sj < fj (sj , fj ∈ Z+ ) para j = 1, 2, 3, ..., n. Los trabajos tienen que ser llevados a
27
cabo de forma ininterrumpida, es decir, si se decide hacer un trabajo se debe obligatoriamente concluirlo. Las máquinas a lo mucho pueden realizar un trabajo en un mismo
intervalo de tiempo (no pueden procesar dos trabajos cuya intersección de tiempos sea
no vacı́a) y están disponibles continuamente ([0, +∞)). Si una máquina inicia un trabajo, este debe terminarse en la misma. El problema entonces es el de procesar todos
los trabajos minimizando el número de máquinas a utilizarse.
Las consideraciones sobre el Problema de Calendarización en Intervalos se adaptan a
nuestro problema, donde los pares origen-destino van a ser atendidos por una lı́nea y
como resultado obtendremos una asignación de pares origen-destino con una lı́nea que
atienden todos los orı́genes-destinos.
Grafos de Intervalos
El Problema de Calendarización en Intervalos está relacionado con los Grafos de Intervalos (ası́ como el Problema de Asignación de Viajes para GQVD).
Tomando la definición de [13], se dice que un grafo no dirigido G es de intervalos si
sus vértices pueden ser puestos en una correspondencia uno a uno con un conjunto de
intervalos F de un conjunto linealmente ordenado de manera que dos vértices están conectados por un arco de G si y sólo si sus correspondientes intervalos tienen intersección
no vacı́a. Llamamos a F una representación de intervalos de G.
2
b
3
b
Intervalos
1
b
4
b
2
1
4
b
3
5
5
Figura 2.4: Grafo de intervalos y su representación de intervalos.
Teniendo en cuenta esta relación, el Problema de Calendarización en Intervalos es igual
al problema de colorear vértices en el grafo de intervalos. Este problema nos dice que se
debe encontrar una asignación de colores para los vértices de manera que dos vértices
que compartan la misma arista tengan un color distinto. Una coloración que usa a lo
mucho k colores se llama k coloración propia y el menor número de colores necesarios
28
para colorear un grafo recibe el nombre de número cromático.
En el Problema de Calendarización en Intervalos el número cromático corresponde al
mı́nimo número de máquinas que serán usadas para realizar las tareas. En el problema
de Asignación de Viajes el número cromático corresponderá al número de lı́neas con las
cuales se atienden todos los pares origen-destino y el conjunto de pares origen-destino
correspondientes a un color especı́fico serán los factibles de atender por alguna lı́nea.
Problema de Calendarización en Intervalos con Disponibilidad de Máquinas
En este problema contamos con m máquinas continuamente disponibles en [ai , bi ) con
i = 1, 2, ..., m, además n trabajos que cuentan con tiempos de procesamiento [sj , fj )
para j = 1, 2, .., n. El problema consiste en determinar si existe una calendarización
factible, es decir, todos los trabajos pueden ser procesados por las máquina de manera
que dos trabajos con intersección no vacı́a de sus tiempos no puedan ser procesados
por la misma máquina.
A esta instancia también se le asocia un parámetro l que es el número máximo de
máquinas que contiene algún punto p, l = maxp | {i : ai ≤ p ≤ bi , 1 ≤ i ≤ m} |.
Papadimitriou probó que este problema es NP-completo, la idea utilizada para realizar
esta prueba la podemos encontrar en [15] y es la misma en la que se basa nuestra
demostración para el Problema de Asignación de Viajes sobre GQVD.
Para determinar la complejidad de nuestro problema usaremos el problema de Colorear
Arcos Circulares (Circular Arc Coloring), al cual lo definiremos a continuación junto
con algunas observaciones importantes.
Colorear Arcos Circulares (CAC) [15]
Dada una circunferencia y n arcos circulares sobre esta, cada uno de los arcos definidos
por una pareja de enteros positivos {si , fi } (si 6= fi ) para i = 1, 2, ..., n, y un entero
k. Puede ser que si > fi para algún i y decimos que dos arcos se sobreponen si la
intersección es no vacı́a. El problema es decidir si existe una coloración para los arcos
usando a lo mucho k colores de manera que los arcos que se intersecan tengan colores
diferentes, es decir, se debe hallar k particiones de arcos donde en cada partición los
arcos sean disjuntos.
29
Además, las instancias del CAC van a contar con las siguientes propiedades:
• k ≤ n. En el peor caso necesitaremos tantos colores como arcos.
• maxi (si , fi ) ≤ 2n. Si tenemos si y fi , i = 1, 2, ..., n todos distintos, el número
de enteros es igual a 2n (un arco tiene dos extremos). Se puede construir una
instancia donde los enteros estén acotados por 2n, no importan los valores de los
extremos de los arcos sino su orden.
6=0
5
1
4
2
A1 = [1, 3)
A2 = [3, 5)
A3 = [2, 6)
A4 = [5, 1)
A5 = [6, 2)
n=5
k=2
3
Figura 2.5: Instancia de CAC.
Lema 2.2. El Modelo de Asignación de Viajes para GQVD es NP-completo.
Demostración. Vamos a considerar una instancia del CAC y la transformaremos en
una instancia válida para el Problema de Asignación de Viajes para GQVD. Dados
n arcos circulares y sus puntos {si , fi } para i = 1, 2, ..., n y un entero k, tomamos
todos los {si , fi } diferentes, los renombramos y ordenamos de manera que tendremos
u1 < u2 < ... < uh (h ≤ 2n). El punto uh en la instancia del CAC corresponde al punto
donde el cı́rculo inicia y termina.
Ahora construimos un grafo no dirigido G = (V, A) donde el número de nodos es igual
a h + 1 y el conjunto de aristas tiene la forma A = {(u′h , u1 ), (u1, u2 ), ..., (uh−1, uh )}, u′h
es el mismo uh solo que consideramos separadamente el inicio y final del cı́rculo de la
instancia del CAC, es decir, desconectamos el cı́rculo en uh .
Para cada arco circular {si , fi }, con si < fi , se define un par origen-destino, es decir,
se asocian con los arcos del CAC que no contienen al punto uh . Se fijan todas las demandas de los pares origen-destino iguales a 1. El conjunto de lı́neas corresponderán a
los arcos que contienen a uh , es decir, los arcos con si > fi para algún i se transforman
30
en una lı́nea iniciando en la terminal fi y terminando en la estación si con un costo de
1. La capacidad de las unidades se fija en uno ası́ como la frecuencia máxima.
Ahora, supongamos que tenemos una solución factible para el Problema de Asignación
de Viajes para GQVD, es decir, un conjunto de lı́neas con sus frecuencias que satisfacen
la demanda de todos los pares origen-destino. Si consideramos las restricciones (2.2),
(2.3) y dado que la capacidad de las unidades y la frecuencia máxima es 1, tendremos
que una lı́nea cubre únicamente pares origen-destino que no se intersequen ya que si
se tiene intersección no vacı́a no se podrá cubrir la demanda, siendo necesario mayor
capacidad o incrementar la frecuencia. Si el número de lı́neas seleccionadas es menor
igual a k y como cada lı́nea tiene asociado un arco que contiene al punto uh en la
circunferencia, entonces se dispone de a lo más k colores teniendo de este modo una
solución factible para CAC.
De igual manera, si contamos con una solución factible para CAC, ese decir, k particiones de arcos de manera que en cada una estos no se hallen intersecciones de los
mismos, esta define una solución factible para el Problema de Asignación de Viajes
para GQVD ya que contamos con k lı́neas dadas por los arcos con la caracterı́stica
si > fi y los arcos restantes corresponden a los pares origen-destino que son atendidos
(no se intersecan y se encuentran en la misma partición). Que un conjunto de arcos se
encuentren en una misma partición asegura que la demanda de cada par origen-destino
pueda ser atendida por una misma lı́nea. De esta forma contaremos con una solución
factible para el Problema de Asignación de Viajes para GQVD.
2.3
Algoritmos de tiempo polinomial
Se ha observado que existe relación entre el Problema de Asignación de Viajes con
los Problemas de Calendarización en algunas variantes. A continuación tomaremos el
trabajo de Arkin y Silverberg [1] donde se estudian Problemas de Calendarización con
tiempos de inicio y final fijos. En este trabajo se demuestra que existen algoritmos
de tiempo polinomial y se realizan construcciones para dicho fin. El objetivo en esta
sección es adaptar estas ideas y mostrar que es posible contar con algoritmos de tiempo
polinomial para ciertos casos del Problema de Asignación de Viajes.
Se destacan dos variantes del Problema de Calendarización:
(a) Calendarización con máquinas idénticas. En esta variante se cuenta con n
trabajos con sus respectivos tiempos de inicio y final [si , fi ] y un beneficio wi para
31
los trabajos i = 1, 2, ..., n. Se define un entero k, que es el número de máquinas
idénticas donde los trabajos pueden ser procesados. Por máquinas idénticas se
entiende, máquinas que están disponibles en un intervalo que comprende el sj
más pequeño y el fk más grande y pueden realizar cualquier trabajo. El problema
consiste en encontrar una asignación de trabajos a máquinas de manera que se
maximice el beneficio (de procesar trabajos) teniendo en cuenta que estos tienen
que ejecutarse de forma ininterrumpida y considerando que una máquina puede
realizar a lo mucho un trabajo en un intervalo de tiempo dado.
(b) Calendarización con máquinas no idénticas. Consta de la misma estructura
mencionada en el anterior punto, pero en este caso se cuenta con conjuntos de
máquinas no idénticas asociados a cada trabajo de manera que los conjuntos indican
las máquinas en las cuales puede ser procesado dicho trabajo.
Hay que recalcar que en este tipo de problemas no necesariamente se cubren todos los
trabajos, pero se obtiene la calendarización que produce el mayor beneficio. A continuación se adaptan los métodos expuestos en [1], para mostrar que existen algoritmos
en tiempo polinomial para algunas variantes del Problema de Asignación de Viajes.
2.3.1
Asignación de viajes sobre una única lı́nea
Inicialmente se considera el caso en el que el sistema de transporte dispone de una sola
lı́nea (circuito) que cubre todas las estaciones con una frecuencia máxima igual a k.
La demanda es expresada como un conjunto de pares origen-destino T , donde para
cada par origen-destino (u, v) ∈ T se dispone de una estación origen u, una estación
destino v, y una demanda duv . El problema consiste en encontrar una asignación de
pares origen-destino a la única lı́nea tal que la demanda cubierta sea maximizada.
El problema tratado en esta sección puede ser relacionado con el problema de calendarización con máquinas idénticas de la siguiente forma: Se asocia cada par origendestino del conjunto T con un trabajo de manera que el origen y destino representan los tiempos de inicio y finalización de dicho par. Además, fijamos la demanda
del par O-D (u, v) como el beneficio de cada trabajo, es decir, wuv = duv , ∀(u, v) ∈
T . Finalmente se definen k máquinas idénticas que están disponibles en el intervalo
[min(u,v)∈T {u}, max(u,v)∈T {v}].
En la Sección 2.1 se presentó la relación entre el problema de calendarización en intervalos con el problema de colorear grafos en intervalos. Por la transformación anterior, el
problema de asignación de viajes puede también ser expresado en términos del mismo
32
problema, el cual es conocido que puede ser resuelto en tiempo polinomial.
Inicialmente se presentan algunos conceptos básicos necesarios para formular esta variante.
Dado un grafo no dirigido G = (V, E), una clique es un subgrafo completo de G.
Una clique maximal es una clique que no puede ser extendida incluyendo un vértice
adyacente más. Una clique máxima es la clique de mayor tamaño posible (mayor
número de vértices).
El número de clique ω(G) es el número de vértices de una clique máxima de G.
El número cromático χ(G) es el menor número de colores necesarios para colorear
los vértices de G, de manera que dos vértice adyacentes no tengan el mismo color.
Un conjunto estable es un conjunto de vértices en G tal que ninguno es adyacente a
otro. El número de estabilidad α(G) es el tamaño del conjunto estable más grande
de G.
El número de cubrimiento de una clique de un grafo G, κ(G), es el mı́nimo número de cliques en G que se necesitan para cubrir todos sus vértices.
Considerando estas definiciones podemos enunciar:
Teorema 2.3 (Lovász (1972)). Teorema débil de los grafos perfectos. Para un grafo
simple G = (V, E), las siguientes propiedades son equivalentes:
1. ω(GA ) = χ(GA ),
∀A ⊆ V .
2. α(GA ) = κ(GA ),
∀A ⊆ V .
3. ω(GA )α(GA ) ≥| A |,
∀A ⊆ V .
Teorema 2.4 (Berge (1960)). Los grafos cordales son perfectos.
Corolario 2.5. Todos los grafos de intervalos son perfectos.
Hay que recalcar que los problemas de coloración, cubrimiento de cliques, conjunto estable pueden ser resueltos en tiempo polinomial en grafos de intervalos. Para mayores
detalles se puede revisar [13].
33
Propiedad de Grafo Cordal Todo ciclo simple de longitud estrictamente mayor que
3 posee una cuerda.
Una cuerda es una arista que no pertenece al ciclo pero conecta dos vértices en el ciclo.
Propiedad de orientación transitiva A cada arco se le puede asignar una dirección
en una sola vı́a de manera que el grafo orientado resultante G = (V, F ) satisface la
siguiente condición:
ab ∈ F y bc ∈ F implica ac ∈ F
∀a, b, c ∈ V
Un grafo no dirigido el cual es transitivamente orientable se le conoce como grafo de
comparación.
Proposición 2.1 (Ghouila-Houri (1962)). El complemento de un grafo de intervalos
satisface la propiedad de orientación transitiva.
Demostración. [13] Sea {Iv }v∈V la representación a intervalos de un grafo G = (V, E).
Se define una orientación F del complemento G = (V, E) de la siguiente forma:
xy ∈ F ⇔ Ix < Iy ,
(∀xy ∈ E)
Ix < Iy significa que el intervalo Ix se encuentra enteramente a la izquierda del intervalo
Iy (son disjuntos). La propiedad de orientación transitiva se satisface debido a que
Ix < Iy < Iz implica Ix < Iz . Entonces F es una orientación transitiva de G.
Proposición 2.2 (Hajös (1958)). Un grafo de intervalos satisface la propiedad de
grafos triangulados.
Demostración. [13] Suponer que el grafo de intervalos G contiene un ciclo sin cuerdas
[v0 , v1 , v2 , ..., vl−1 , v0 ] con l > 3. Sea Ik el intervalo correspondiente a vk . Para i =
1, 2, ..., l − 1, escoger un punto pi ∈ Ii−1 ∩ Ii . Como Ii−1 y Ii+1 no se intersecan, pi
constituye una sucesión estrictamente creciente o decreciente. Luego, es imposible que
I0 y Il−1 se intersequen, contradiciendo el criterio que v0 vl−1 son un arco de G.
Se debe recalcar que no todo grafo triangulado es de intervalos. Observemos el siguiente
teorema:
Teorema 2.6 (Gilmore y Hoffman (1964)). Sea G un grafo no dirigido, son equivalentes:
34
1. G es un grafo de intervalos.
2. G no contiene ciclos inducidos de 4 vértices, y su complemento es un grafo de
comparabilidad.
3. Los cliques maximales de G pueden ser ordenados de tal forma que para todos los
vértices a de G, los cliques maximales que contienen a a sean consecutivos.
Demostración. Ver [25]
El problema de asignación de viajes puede ser representado como un grafo de intervalos
GI donde cada par origen-destino representa un nodo tal que 2 nodos son conectados
por un arco si y solo si la intersección de los intervalos correspondientes es no vacı́a.
Ası́, el problema de asignación de viajes sobre una única lı́nea puede ser formulado
como:
(AV LI)







máx dT x
s.t. Am×n x ≤ 1n T k
x ∈ {0, 1}
donde d ∈ Rn+ es un vector con las demandas de los viajes, A ∈ {0, 1}m×n es una
matriz con m igual al número de cliques maximales sobre el grafo GI y con aij = 1 si el
viaje j pertenece a la clique maximal i y 1n es un vector unitario. La variable x toma
el valor de 1 si un par origen-destino es seleccionado, o toma el valor de 0 caso contrario.
Notar que la matriz A es totalmente unimodular ya que las columnas tienen la propiedad de unos consecutivos. Esto debido a que las cliques maximales sobre un grafo
de intervalos pueden ser linealmente ordenadas para todos los vértices del grafo. Esto
es consecuencia directa de la proposición 2.2 y el teorema 2.6. Finalmente se conoce
que el número de cliques sobre un grafo de intervalos es del orden O(n) por lo que el
problema puede ser resuelto en tiempo polinomial.
Formulación como Problema de Flujo de Costo Mı́nimo
El Problema de Asignación de viajes con lı́neas idénticas puede ser reducido a un Problema de Flujo de Costo Mı́nimo de la siguiente manera. Consideremos una instancia
del Problema de Asignación de viajes con lı́neas idénticas visto como un problema de
coloración en un grafo de intervalos. Teniendo en cuenta que se intenta hallar una k
coloración en un grafo de intervalos, y al ser este grafo perfecto, debemos llegar a un
35
punto donde el número de clique sea igual a k. Entonces el problema será equivalente
a eliminar pares origen-destino con demandas pequeñas de manera que el número de
clique, con los pares O-D restantes, sea igual o menor que k.
Para esto, identificamos todas las cliques maximales q1 , q2 , ..., qm [13] del grafo de intervalos y por el punto 3 del teorema 2.6 sabemos que cada viaje es contenido en cliques
maximales consecutivas.
Ahora, se construye un grafo dirigido G = (V, A) con nodos V = {v0 , v1 , ..., vm } y se
definen arcos A = {(vi , vi−1 ) ∀i = 1, 2, .., m}. Estos tendrán costo igual a cero y capacidad infinita. Si un par origen-destino (s, t) se encuentra en cliques qj , .., qk añadimos
un arco (vj−1, vk ), con costo ds t y capacidad igual a 1. Para cada clique j que no es
máxima colocamos un arco (vj−1 , vj ) de costo 0 y capacidad igual a número de clique
- tamaño de la clique j.
Queda por definir los nodos fuente y destino. El nodo fuente corresponde a v0 y el
destino a vm . El flujo enviado de v0 a vm es igual al (número de clique - k ) y contamos
con una instancia del problema de flujo de costo mı́nimo. El flujo (número de clique k ) quiere decir que eliminamos los pares origen-destino de menor demanda. Con esto si
contamos con una solución factible para el problema de flujo de costo mı́nimo, entonces
(1 − xa ) para cada a asociado con un par origen-destino es solución para el problema
de asignación de viajes, al ubicar aquellos pares origen-destino que no usemos en la
transformación anterior.
36
b
I)
b
Lı́nea
c
b
a
e
d
O−D
dc
db
a
dd
da
b
c
v0
e
de
v1
0
v2
0
v3
0
d
II)
III)
Figura 2.6: I)Instancia inicial con 1 lı́nea y 5 pares origen-destino. II)Grafo de intervalos.
III)Formulación como problema de flujo de costo mı́nimo.
En cuanto al tiempo del algoritmo, se puede ver que las cliques maximales pueden
ser obtenidas en un tiempo O(n) sobre grafos de intervalos. Como el número de arcos
también es O(n) el algoritmo depende de la complejidad del algoritmo de flujo de costo
mı́nimo que también es polinomial, concluyendo de esta forma el resultado.
El problema anterior también puede ser formulado directamente sobre la red GQVD
con m + 1 nodos y m arcos expresado de la siguiente forma:
(F M)







máx 1T x
s.t. Ax ≤ P
0 ≤ x ≤ d, x ∈ Z+
donde A ∈ {0, 1}m×T con m igual al número de arcos en la red y aest = 1 si el par
|T |
origen-destino (s, t) atraviesa el arco e, d ∈ Z+ el vector de demandas. Además, un
|m|
vector P ∈ Z+ con las capacidades de cada arco, es decir, Pe = femax × N y x la variable de decisión que toma un valor entero positivo y representa el número de pasajeros
del par origen-destino (s, t) cubierto por la única lı́nea.
Al igual que en el caso anterior, la matriz A es totalmente unimodular ya que tiene la
propiedad de unos consecutivos sobre sus columnas, es decir, la matriz A es una matriz
de intervalos. Por tanto, se puede relajar las restricciones de integralidad y resolver el
problema como un programa lineal y será resuelto en tiempo polinomial.
37
2.3.2
Asignación de viajes con lı́neas no idénticas
Para este caso se considera un número k fijo de lı́neas que tienen asociados un conjunto
fijo de pares origen-destino que pueden atender. Se cuentan con n pares origen-destino
con demanda dst , ∀(s, t) ∈ T y se quiere encontrar una asignación de pares origendestino a lı́neas donde todos los pares origen-destino sean atendidos. En la Sección
2.1 se demostró que este problema es NP-completo. Esta transformación considera la
simplificación en que cada lı́nea puede atender un solo par origen-destino a la vez.
A continuación adaptaremos las ideas introducidas en el trabajo de [1] y se presenta
un algoritmo polinomial para resolver el problema de asignación con lı́neas no idénticas.
Usando ideas de simulación de eventos discretos, se considera como un evento los inicios
y finales de cada par origen-destino del conjunto T . Si todos los pares origen-destino son
diferentes se tendrá 2n eventos distintos. Al contar con k lı́neas no idénticas, se puede
establecer una lista de lı́neas en las que se pueden atender a dichos pares origen-destino.
Ası́, sea (x1 , x2 , ..., xk ) el vector de asignación que representa el par origen-destino que es
asignado a cada una de las k lı́neas. Por ejemplo, en el caso de 2 lı́neas, el par (st, s′ t′ )
representa que el origen-destino (s, t) es cubierto por la lı́nea l1 , y el origen-destino
(s′ , t′ ) es cubierto por la lı́nea l2 . Usamos ∅ para indicar que la lı́nea está disponible.
Notar que la construcción de todas las combinaciones depende de los conjuntos L y
T (l) establecidos previamente, es decir, se puede solo tomar combinaciones legales a
pares origen-destino y lı́neas.
En cada evento se constituyen distintos vectores de asignación y cada uno de ellos es
un nodo de un grafo acı́clico G. Además, se tienen nodos S y T , que representan la
fuente y el sumidero. Conectamos S a cada nodo con el que se puede iniciar la lı́nea
con un costo igual a la demanda de los pares origen-destino y los nodos finales con el
nodo T con costo igual a cero.
Los arcos se construyen de la siguiente manera: tomemos un evento m que representa el
inicio de un par origen-destino (s, t), conectamos todos los nodos de eventos anteriores
a m cuya intersección sea vacı́a y se pone costo igual a la demanda de ese viaje dst . Si el
evento m representa el fin de un origen-destino (s, t), se conectan con todos los nodos
de eventos siguientes a m en los cuales el origen-destino (s, t) está siendo atendido y la
intersección sea vacı́a con costo igual a cero.
38
O−D
c
b
a
(a, ∅) (a, b)
b
(∅, b)
b
O − D lı́nea
b
db
(∅, b)
da
a
b
c
b
db
db
b
dc
b
dc
1
1, 2
2
da
db
dc
b
(b, ∅) (b, c)
S
demanda
(b, ∅)
T
(∅, c)
b
Figura 2.7: Ejemplo del algoritmo de asignación de viajes con lı́neas no idénticas.
Notar que se dispone de a lo más O(nk ) nodos y para cada nodo existen (n × k) + 1
arcos. Esta construcción resulta en un grafo dirigido acı́clico, que es un grafo sin ciclos y la solución resulta al obtener el camino más largo aplicando un ordenamiento
topológico, se cuenta con un algoritmo de orden O(nk+1 ).
Si se dispone de una sola lı́nea, existe un nodo para cada par origen-destino, es decir,
disponemos para cada (s, t) ∈ T un nodo vst . Existe un arco (vst , vs′ t′ ) si el par origendestino (s′ , t′ ) puede ser cubierto luego del par origen-destino (s, t) por la misma lı́nea
con costo ds′ t′ . Además, arcos (vst , T ) y (S, vst ), ∀(s, t) ∈ T completan el grafo. El
camino más largo es una solución para el problema de asignación de viajes.
2.4
Modelo de Asignación de viajes en árboles
Los resultados de complejidad antes enunciados se establecieron sobre grafos que representan la parte principal del corredor del Sistema Trolebús. Desde las terminales
donde un trolebús termina su servicio parten buses de menor capacidad para cubrir la
demanda de destinos aledaños. A a estos buses se les conoce como alimentadores.
En esta sección mostraremos la complejidad del Problema de Asignación de Viajes
sobre la red alimentadora que es representada por un grafo con forma de árbol. Para
ello se utilizará una reducción del Problema de Cubrimiento Exacto por 3-conjuntos
(3-Exact Cover) definido a continuación.
39
Cubrimiento Exacto por 3-conjuntos (3EC)
Dada una familia de subconjuntos F = {S1 , S2 , ..., Sn } tal que |Sj | = 3 para j =
1, 2, ..., n sobre un conjunto S = {u1 , u2, ..., u3m }, |S| = 3m. El problema es determinar si existe un cubrimiento de conjuntos disjuntos C ⊂ F de tamaño m. Este es un
problema NP-completo.
Lema 2.7. El modelo de Asignación de Viajes sobre árboles es NP-completo.
Demostración. Dada una instancia del problema 3EC, construimos una instancia del
Problema de Asignación de Viajes sobre árboles de la siguiente manera.
Se define un grafo dirigido T = (V, A) con 3m + 1 nodos V = {t, 1, 2, 3, ..., 3m} y 6m
arcos de la forma A = {(t, 1), (1, t), (t, 2), (2, t), ..., (t, 3m), (3m, t)}. A cada arista le
asociamos un par origen-destino (s, t) ∈ T , es decir, por cada uj ∈ S se tendrán dos
pares origen-destino (t, j), (j, t) y fijamos la demanda igual a 1 dst = 1,
∀(s, t) ∈ T .
Para cada Sj ∈ F con Sj = (up , uq , ur ) construimos una lı́nea lj que cubre exactamente
6 arcos (t, p), (p, t), (t, q), (q, t), (t, r), (r, t) con costo igual a 1 y costo fijo igual a cero.
Además imponemos f max = 1 para todas la lı́neas y capacidad igual a 1 para todas las
unidades de transporte.
Resulta fácil ver que alguna solución factible para el problema de asignación de viajes
con costo igual a m cubre cada arco del grafo T exactamente una vez y por tanto
se encuentra asociado a una solución del 3EC. Dado que ninguna solución de nuestro
modelo contiene menos de m lı́neas, esto retorna una solución para 3EC y viceversa.
40
Capı́tulo 3
IMPLEMENTACIÓN Y
RESULTADOS
COMPUTACIONALES
Una vez formulado el modelo de planificación de lı́neas con viajes directos (MAVD)
y estudiado su complejidad computacional, se realizarán pruebas computacionales para contrastar sus resultados frente a una modificación del modelo de Planificación de
Lı́neas con Transferencias y Frecuencias Mı́nimas propuesto en [20]. Esta comparación
se la lleva acabo con datos reales proporcionados por el personal del Sistema Trolebús.
Antes de realizar las pruebas se abordarán consideraciones respecto a el modelo de
planificación de lı́neas (LPMTF) formulado en [20]. Luego, se explica la modificación
realizada para la comparación de modelos, los datos de entrada, las instancias de prueba
y por último los resultados obtenidos.
3.1
LPMTF: Consideraciones
Con el objetivo de realizar pruebas computacionales y obtener resultados para ser
contrastados con los obtenidos por MAVD se escogió el modelo LPMTF. EL modelo
fue implementado en el lenguaje C++ y resuelto utilizando el solver ZIBOPTSUITE2.0.1. No se detalla el código pero se aborda de manera general los principales aspectos.
Para este modelo, los autores crean una red llamada Change&Go que fue presentada
en la sección 1.2 y construida mediante el siguiente proceso:
•
Se tomó una forma de grafo representado por la siguiente lista de adyacencia:
41
1
2
2
3
G= .
..
3
4
..
.
n−1 n
n
•
Las primera columna corresponde a los orı́genes y destinos.
• El conjunto de lı́neas iniciales (Line Pool) se generó con la misma representación.
Se encontraron todas las conexiones posibles (dirigidas de izquierda a derecha) entre
un par de nodos del arreglo.
G
1
2
l1
1
2
l2
1
2
3
l3
1
2
3
l4
2
3
l5
2
3
..
.
n
3
n
n
..
.
ln
n−1
n
n
Figura 3.1: Ejemplo: Line Pool Generado.
• Contando con los orı́genes, destinos y un conjunto de lı́neas, se incluyeron las aristas Echange , EOD , El obteniendo la red Change&Go.
•
Los costos sobre los arcos se definen como:

1, si e ∈ E
change ;
Ce =
0, otro caso.
Ejemplo
Para verificar el funcionamiento del esquema presentado anteriormente consideraremos
una instancia LPMT generada mediante una red de transporte con cuatro nodos, un
42
presupuesto de 3 unidades, una matriz de origen-destinos:

0 5 10

 0 0 51
ODins1 = 
 0 0 0

0 0 0

21

41 

12 

0
Costos sobre los arcos:

1, si e ∈ E
change ;
Ce =
0, otro caso.
En esta instancia, dichos costos indican que el modelo minimizará el número de transferencias de los usuarios. Las lı́neas se generan de acuerdo a las consideraciones iniciales,
es decir, al contar con 4 nodos en la red de transporte original se generarán 6 lı́neas
(ver figura 3.2). El costo de cada lı́nea será de una unidad por el número de arcos que
las conforman.
Al resolver la instancia LPMT se obtuvo el siguiente resultado:
PTN
1
2
l6
3
4
(3, l6 )
(4, l6 )
(4, l5 )
l5
(2, l5 )
(3, l5 )
l4
(2, l4 )
(3, l4 )
l3
(1, l3 )
(2, l3 )
(3, l3 )
l2
(1, l2 )
(2, l2 )
(3, l2 )
l1
(1, l1 )
(2, l1 )
(1, 0)
(2, 0)
(3, 0)
(4, l3 )
(4, 0)
Figura 3.2: Solución Instancia Prueba.
En esta solución, se escogieron las lı́neas l2 y l6 y debido a que se considera un costo
de uno para las transferencias y se pone un costo de cero en las aristas EOD y Ego, la
43
función objetivo en este ejemplo es igual a 0 (no se realizaron transferencias).
Hay que destacar que las rutas de los pasajeros en lugar de realizar una transferencia
regresan al nodo origen-destino y luego cambian de lı́nea. Esto significa que las transferencias entre lı́neas ya no son contabilizadas y el viaje del usuario a pesar de cambiar
de lı́nea no se considera distorsionando la instancia.
El modelo LPMTF al considerar en sus restricciones problemas del flujo de costo mı́nimo y el hecho de que los costos sobre las aristas EOD , Ego son iguales a cero producirá
resultados de la siguiente forma:
PTN
1
2
3
(7, l2 )
(8, l2 )
(5, l1 )
(6, l1 )
(9, l3 )
(10, l3 )
(1, 0)
(2, 0)
(3, 0)
(4, 0)
l2
l1
4
l3
Figura 3.3: Ejemplo Transferencias no penalizadas.
El modelo en lugar de realizar la transferencia, por ejemplo entre la lı́nea 1 y la lı́nea 2,
prefiere volver al origen y realizar el cambio de lı́nea. Esto significa que no se considera
la incomodidad generada al usuario y ocultan las transferencias.
Como solución a este problema se ha planteado una modificación a la red Change&Go
sobre los nodos origen-destino. Esta modificación involucra dividirlos en un nodo origen y otro nodo destino, con ello al resolver los problemas de flujo de costo mı́nimo el
modelo se verá obligado a realizar la transferencia para poder hallar un camino factible
entre un origen y un destino.
44
PTN
1
l2
l1
(5, l1 )
s1
t1
2
3
(7, l2 )
(8, l2 )
(6, l1 )
(9, l3 )
s2
s3
t2
4
l3
(10, l3 )
s4
t3
t4
Figura 3.4: Red Change&Go modificada.
3.2
LPMTF: Modificación
Si se observa la función objetivo del MAVD (2.1), se nota que se consideran tanto
los costos fijos y variables producto de la operación del sistema de transporte. En el
LPMTF el objetivo del modelo está orientado a la comodidad de los pasajeros, se minimiza el número de transferencias, por este motivo se requiere una modificación sobre
el objetivo de la función a optimizar para poder comparar los resultados.
Se añade la variable binaria yl que tomará el valor de 1 si se escoge la lı́nea l en la
solución, 0 en otro caso. En este sentido se reformula al LPMTF como (LPMTF-M):
mı́n
X X
cl fl +
m∈M l∈L
X X
m∈M l∈L
1 X e
xst ≤ fl
s.t.
N
kl y l +
X X
ce xest
(3.1)
(s,t)∈R e∈E
∀l ∈ L, e ∈ El
(3.2)
(s,t)∈R
θxst = bst
fl ≤ flmax yl
∀(s, t) ∈ R,
(3.3)
∀l ∈ L,
(3.4)
xest , fl ∈ Z+ , yl ∈ {0, 1}
∀(s, t) ∈ R, e ∈ E, l ∈ L.
(3.5)
El objetivo será minimizar el costo total de operar el sistema de transporte más la
minimización de la incomodidad de los pasajeros. La restricción de presupuesto fue
suprimida debido a que ahora consta en la función objetivo y las restricciones (3.2) y
(3.3) cumplirán la misma función que en el modelo LPMTF. La restricción (3.4) impone
una cota superior para la frecuencia y finalmente (3.5) define los tipos de variables
usadas. Este modelo que utiliza la red Change&Go es comparable con MAVD.
45
3.3
Instancias y resultados
Contando con los modelos a comparar, se construyeron instancias basadas en datos
reales proporcionados por el personal del Sistema Trolebús, además de instancias de
partida con matrices OD generadas aleatoriamente. Los modelos se resolvieron en una
máquina con procesador Intel Core i7 3.60 GHz con memoria RAM de 8 GB y sistema
operativo Windows 7 de 64 bits utilizando el solver ZIBOPTSUITE-2.0.1.
Instancias de Partida
Para estas instancias vamos a considerar corredores con diferentes tamaños, capacidad
de buses y frecuencias máximas como se detalla en el cuadro 3.6. Las matrices OD se
generaron con demandas aleatorias, los costos de las lı́neas son iguales a una unidad
por el número de arcos de las componen y los costos fijos son iguales a una unidad. Al
ejecutar los modelos con estas instancias se obtuvieron resultados presentados en los
cuadros 3.2, 3.3 y 3.4.
Instancia
Estaciones
Num. Lı́neas
Capacidad Bus
Frecuencia Max.
1
2
4
7
3
6
18
25
4
6
3
15
10
100
10
Cuadro 3.1: Instancias de Partida
MAVD
Instancia
LPMTF-M
1
Tiempo(seg)
0.00
0,01
Variables
Restricciones
16
15
222
111
22
l 1 , l2 , l 3
22
l 1 , l2 , l 3
f1 = 3, f2 = 4, f3 = 1
***
f1 = 3, f2 = 4, f3 = 1
0
Solución
Lı́neas solución
Frecuencias solución
Transferencias
Cuadro 3.2: Solución Instancia 1
46
MAVD
Instancia
2
Tiempo(seg)
Variables
Restricciones
0.02
62
76
1,13
3120
866
46
46
l2 , l3
f2 = 5, f3 = 4
***
l 2 , l3
f2 = 5, f3 = 4
0
Solución
Lı́neas solución
Frecuencias solución
Transferencias
LPMTF-M
Cuadro 3.3: Solución Instancia 2
MAVD
Instancia
LPMTF-M
3
Tiempo(seg)
Variables
1.39
362
> 970
63440
Restricciones
422
11630
Se alcanzó una solución factible
de 285, con una cota inferior de 278.
Solución
Lı́neas solución
Frecuencias solución
Transferencias
285
Se satura la memoria y
alcanza un gap del 2.32 %.
l 3 , l4 , l 7
f3 = 6, f4 = 8, f7 = 10
***
l 3 , l 4 , l7
f3 = 6, f4 = 8, f7 = 10
0
Cuadro 3.4: Solución Instancia 3
En las Instancias 1 y 2 los resultados obtenidos son similares. Hay que destacar que el
número de variables y restricciones en los dos modelos varı́a considerablemente debido
a que el modelo LPMTF-M crea variables xest para cada arista e ∈ E sobre todos los
pares OD además de las restricciones del problema de flujo de costo mı́nimo.
Instancias Reales para MAVD
Para estas instancias se tomaron 19 matrices O-D que provienen de la operación real
por hora del Sistema Trolebús en el horario de 5:00 a 24:00. Estas matrices consideraban 32 estaciones y terminales, es decir, de la terminal Morán Valverde en el sur de la
47
ciudad hasta la Terminal Norte. Se incluyeron 2 estaciones y una terminal (Quitumbe) que completan el corredor actual y se repartieron proporcionalmente las demandas
(50 % de la demanda de la terminal Morán Valverde se la repartió hacia Quitumbe, un
15 % entre las estaciones intermedias y el 35 % restante en Morán Valverde). Para la
resolución de estas instancias se considera:
• Las lı́neas son generadas con el método descrito en el punto 3 de la sección 3. En
este caso solo se generan lı́neas entre terminales (Quitumbe(1), M. Valverde(4), El
Recreo(14), T. Norte(35)) o estaciones donde termina algún circuito (Ejido(25),
La Colón(28)). Al final contaremos con 15 lı́neas (ver figura 3.5).
• Se considera el sentido sur-norte para la resolución de las instancias.
• El costo de las lı́neas es igual a una unidad por el número de arcos usados por
las mismas.
• Los costos fijos se consideraron como un valor fijo (1 unidad) para todas las lı́neas.
Para analizar los diferentes resultados de la ejecución del modelo, sobre las 19 matrices O-D del Sistema Trolebús se variarán parámetros como la frecuencia máxima y la
capacidad de las unidades de transportación. Se considera:
• Caso 1. La capacidad de los trolebuses se fija en N = 180 y la frecuencia máxima
se fija en 20. En la lı́nea más utilizada se requerirá que en una hora se despachen
trolebuses cada 3 minutos.
• Caso 2. La capacidad de los trolebuses se fija en N = 180 y la frecuencia máxima
se fija en 15.
• Caso 3. La capacidad de los trolebuses se fija en N = 210 y la frecuencia máxima
se fija en 20.
48
Figura 3.5: Lı́neas generadas para prueba de instancias trolebús. Sentido S/N.
De aquı́ en adelante se muestra un resumen de los resultados obtenidos para MAVD.
En el cuadro 3.5 se presentan los resultados obtenidos al ejecutar el modelo MAVD
considerando el Caso 1. En la primera columna se observan los horarios en los que
opera el Sistema Trolebús con una separación de una hora. En las siguientes columnas
se encuentran numeradas la lı́neas en el orden de la figura 3.5, en ellas se identifican
las frecuencias calculadas por el modelo. Además se muestran resultados referentes al
número de lı́neas escogidas, suma de la frecuencia de las lı́neas seleccionadas, costos
fijos y variables ası́ como el tiempo de resolución mediante el solver SCIP.
49
Para el Caso 1, se observa que la lı́nea más utilizada es l12 que representa al circuito
El Recreo - T. Norte seguida de l5 y l9 que equivalen a Quitumbe - T. Norte y M.
Valverde - T.Norte, respectivamente. Para l12 se nota que en el horario 6:00 a 8:00 se
despachan unidades con una frecuencia de 20 unidades por hora, está es la lı́nea más
saturada para cumplir con la demanda de pasajeros.
Un dato que se debe mencionar es que la mayorı́a de las lı́neas la frecuencia varı́a en
pasos no muy bruscos, produciendo que operativamente la solución podrı́a llevarse a la
práctica. Esta aseveración es fortalecida por el número de lı́neas seleccionadas por el
modelo en cada uno de los horarios, siendo 8 lı́neas en el horario de 07:00 a 08:00 con
una frecuencia máxima de 20 unidades (l12 ) la cota superior, y 2 lı́neas en los horarios
de apertura y cierre la cota inferior. Estos resultados mantienen las condiciones con las
que actualmente el Sistema Trolebús opera diariamente.
El comportamiento del solver SCIP en la solución de la instancia para los horarios
9:00 - 10:00 y 10:00 - 11:00 se observa en la figura 3.6. En el horario 9:00 - 10:00 a los
pocos segundos una solución factible es encontrada tiene con un valor de 768, con una
brecha de optimalidad inicial de 16,52 %. la cual al tiempo t = 200s cae drásticamente
hasta 687. En t = 3600s la solución factible alcanzó un valor de 687 y la brecha es
igual a 1,15 %. En adelante el solver se aproxima lentamente a la cota inferior logrando
alcanzar el óptimo a los 7610,14 segundos. Por otro lado, en el horario 10:00 - 11:00,
a un t = 200s la solución factible tiene un valor de 603 y la brecha de optimalidad es
del 2,85 %, mayor que para el horario 9:00 - 10:00. El óptimo se alcanza en t = 3372,03s.
Se resolvió con las caracterı́sticas del Caso 1, la instancia que corresponde al horario 17:00 - 18-00 con el modelo LPMTF-M obteniendo que se cuenta con 1′ 599,985
variables y 201,378 restricciones. En un tiempo t = 970s se llega a una solución factible de 639 (existen transferencias) con una cota inferior de 563.38 y un gap del 13,42 %.
50
Horarios 1
5:00 - 6:00
6:00 - 7:00
7:00 - 8:00
8:00 - 9:00
9:00 - 10:00
10:00 - 11:00
11:00 - 12:00
12:00 - 13:00
13:00 - 14:00
14:00 - 15:00
15:00 - 16:00
16:00 - 17:00
17:00 - 18:00
18:00 - 19:00
19:00 - 20:00
20:00 - 21:00
21:00 - 22:00
22:00 - 23:00
23:00 - 24:00
TOTAL 0
2 3
1
2
1
0 4
4
5 6
1
9
9
7
5
4
1 2
3
1
3
3
2
3
3
3
2
3 1
2
1
1 66 1
Lı́neas y Frecuencias
7 8 9 10 11
1 1
1
5 4 10 12 5
4 4 14 14 7
3 3 6 15 6
5 2 7
3 3 6
4 1
5 2 3
4
1
2 3 3
3 1
6
1
5
4
2
3
21 24 66 59 24
12 13
2
20
20
14
12
11
15
9
15
12
14
11
15
12
8
6
7
4
2
209 0
14 15
1
3
1
5
1
2
1
1
2
7
P
l∈L
5
7
8
7
5
5
5
5
5
5
4
5
3
5
5
4
3
3
4
yl
P
l∈L
fl
6
65
73
54
31
27
23
22
23
23
21
21
23
19
13
12
11
7
6
480
Cuadro 3.5: Caso 1. Resultados MAVD sobre Sistema Trolebús.
P
Cl fl
145
1439
1616
1102
681
598
518
510
535
528
483
523
572
495
356
294
259
159
100
10913
l∈L
T. Sol. (seg.)
9,78
59,05
109,96
6.667,08
7.347,52
3.839,46
4.685,88
6.430,92
1.897,68
180,96
806,68
7.935,95
338,81
992,43
171,72
242,77
116,10
13,22
3,26
41.849
Demanda
1.127
13.526
15.187
12.216
8.510
7.928
7.296
8.121
7.616
7.242
6.926
7.507
7.992
7.556
5.146
4.203
3.402
2.178
1.235
134.914
51
Figura 3.6: Caso 1. Comportamiento SCIP.
Observemos los resultados obtenidos para el Caso 2 en el cuadro 3.6. Al reducir la
frecuencia máxima a 15 implicó tiempos de solución menores en los horarios donde
la demanda de transporte es mayor (ver figura 3.9), aunque el costo de operación se
incrementó en los horarios de 6:00 a 7:00 y 7:00 a 8:00 en 50 y 62 unidades respectivamente. Las lı́neas l12 , l9 y l5 continúan siendo las más utilizadas y las frecuencias
totales variaron en un grado pequeño en los horarios 18:00 a 19:00 y 19:00 a 20:00.
Con respecto al comportamiento del solver sobre las instancias para los horarios 9:00
- 10:00 y 10:00 - 11:00, se tiene que en el primer experimento, la solución es encontrada mucho más rápido que para el Caso 1. Ası́, en t = 200s la solución factible tiene
un valor de 687 y la brecha de optimalidad es del 1,83 %. En t = 1571s el óptimo es
alcanzado. Para el horario 10:00 - 11:00 sucede lo contrario, el solver toma un tiempo
t = 6876s en alcanzar el óptimo. En este horario a t = 200s la cota superior se ubicó
en 603, no muy alejada del resultado de la misma instancia para el Caso 1, pero en
adelante la cota inferior se va acercando a la cota superior lentamente (ver figura 3.7).
52
El Caso 2 tiene un tiempo total de solución de 22938.12 segundos que comparándolo
con el Caso 1, de 41849.23 segundos, se logra una reducción del 45, 18 % del tiempo.
En cuanto a costos de operación no existe una diferencia significativa ya que se genera
un incremento del 1 %.
Figura 3.7: Caso 2. Comportamiento SCIP.
En el cuadro 3.7 se presentan los resultados para el Caso 3, donde las lı́neas l12 y l9 continúan siendo las más utilizadas. Con relación al Caso 1, este experimento se diferencia
en que la capacidad de los buses se incrementó a N = 210, 30 personas adicionales, que
significa que las unidades en algunos casos se encuentran sobre saturadas de usuarios.
Si se considera el costo total de operación existe una reducción del 14,23 % con respecto
al Caso 1, se sacrificó comodidad para alcanzar una diferencia importante en los costos
para operar el sistema. En cuanto a tiempo de solución, este se redujo en un 65, 08 %
(ver figura 3.10).
El comportamiento del solver para el Caso 3 se observa en la figura 3.8. Analizando
nuevamente al tiempo t = 200s para la instancia 9:00 - 10:00, la solución factible toma
un valor de 591 y presenta una brecha de optimalidad del 2,27 %. En esta instancia se
53
alcanza el óptimo a un tiempo t = 1371, 8s. Para el resto de instancias se tiene que
el tiempo en el que se obtiene la solución óptima es considerablemente menor que en
el caso 1. Gráficas comparativas respecto al tiempo de solución de los tres casos son
presentados en la figuras 3.9, 3.10 y 3.11.
Hay que destacar que en el Caso 3 se cuenta con el menor tiempo de solución para las
19 instancias del Sistema Trolebús, en este caso se saturan la unidades en los horarios
de mayor demanda pero se reducen los costos significativamente. El contar con una
frecuencia máxima de 20 despachos por hora involucra que en las terminales donde se
llegue a este máximo, se despachen por lo menos una unidad cada 3 minutos, consideración que en el diagrama de marcha actual se encuentra implementada.
En el cuadro 3.8 se muestra una comparación de los costos del plan operativo para
cada uno de los casos considerados. Además, se indica el porcentaje del costo total que
implica satisfacer la demanda para un horario de operación.
Figura 3.8: Caso 3. Comportamiento SCIP.
54
Horarios 1
5:00 - 6:00
6:00 - 7:00
7:00 - 8:00
8:00 - 9:00
9:00 - 10:00
10:00 - 11:00
11:00 - 12:00
12:00 - 13:00
13:00 - 14:00
14:00 - 15:00
15:00 - 16:00
16:00 - 17:00
17:00 - 18:00
18:00 - 19:00
19:00 - 20:00
20:00 - 21:00
21:00 - 22:00
22:00 - 23:00
23:00 - 24:00
TOTAL 0
2 3
1
1
0 2
Lı́neas
4 5
1
9
13
3 4
5
4
3
3
1 2
3
3
2
3
3
3
2
3
2
1
4 69
y Frecuencias
6 7 8 9
1 1
5 4 15
3 5 15
3
9
5 2
6
4 1
5
4
2 3
3 1
1 5
5
4
2
3
1
1
10 11
1
12 5
15 6
15 6
7
6 3
1
2 3
2
3
20 20 77 62 25
12 13
2
15
15
14
12
8
14
9
14
12
14
12
15
12
8
6
7
4
2
195 0
14 15
1
3
1
5
1
2
1
1
2
7
P
l∈L
5
7
8
7
5
5
5
5
5
5
4
5
3
5
5
4
3
3
4
yl
P
l∈L
fl
6
65
73
54
31
27
23
22
23
23
21
21
23
21
18
12
11
7
6
487
Cuadro 3.6: Caso 2. Resultados MAVD sobre Sistema Trolebús.
P
Cl fl
145
1.489
1.678
1.102
681
598
518
510
535
528
483
523
572
495
356
294
259
159
100
11.025
l∈L
T. Sol. (seg.)
9,66
7,82
27,26
3.623,47
1.571,09
6.876,79
2.914,80
876,05
1.539,88
281,87
1.312,68
1.518,01
725,97
517,74
764,71
239,98
116,46
13,65
0,23
22.938
Demanda
1.127
13.526
15.187
12.216
8.510
7.928
7.296
8.121
7.616
7.242
6.926
7.507
7.992
7.556
5.146
4.203
3.402
2.178
1.235
134.914
55
Horarios 1
5:00 - 6:00
6:00 - 7:00
7:00 - 8:00
8:00 - 9:00
9:00 - 10:00
10:00 - 11:00
11:00 - 12:00
12:00 - 13:00
13:00 - 14:00
14:00 - 15:00
15:00 - 16:00
16:00 - 17:00
17:00 - 18:00
18:00 - 19:00
19:00 - 20:00
20:00 - 21:00
21:00 - 22:00
22:00 - 23:00
23:00 - 24:00
TOTAL 0
2 3
1
0 1
Lı́neas
4 5
1
1 6
3 5
6
4
2 1
2
3
3
3
2
3
3
3
2
2
2
1
1
6 53
y Frecuencias
6 7 8 9 10 11
1
1
6
4 7 9 3
4
12 11 6
4 3 3 11 5
5 1 6
6 5
5 3 1
2 2
2 1
2 2
4 2 2
4
2
4
3
2
2
2
1
6
15 18 56 47 19
12 13
2
20
20
14
11
9
8
12
14
13
8
9
13
10
8
6
4
3
1
185 0
14 15
1
1
2
1
2
1
1
2
2
9
P
l∈L
4
8
8
7
5
5
5
4
4
4
5
4
3
5
4
4
4
4
4
yl
P
l∈L
fl
5
56
62
46
27
23
19
19
20
20
18
18
20
18
14
11
9
7
5
417
Cuadro 3.7: Caso 3. Resultados MAVD sobre Sistema Trolebús.
P
Cl fl
128
1.231
1.356
938
584
518
438
444
462
465
410
443
499
422
312
263
221
135
79
9.348
l∈L
T. Sol. (seg.)
13,77
1.397,43
42,48
2.404,69
1.371,80
2.195,70
1.814,09
2.332,15
1.001,41
584,71
238,84
150,87
396,29
368,24
116,63
112,99
61,25
10,02
0,03
14.613
Demanda
1.127
13.526
15.187
12.216
8.510
7.928
7.296
8.121
7.616
7.242
6.926
7.507
7.992
7.556
5.146
4.203
3.402
2.178
1.235
134.914
56
Figura 3.9: Caso 1 vs. Caso 2. Tiempos solución.
Figura 3.10: Caso 1 vs. Caso 3. Tiempos solución.
57
Figura 3.11: Caso 2 vs. Caso 3. Tiempos solución.
Costos
Horarios
Caso 1
Caso 2
Caso 3
5:00 - 6:00
150
1,4 %
150
1,3 % 132 1,4 %
6:00 - 7:00
1446 13,1 % 1496 13,5 % 1239 13,1 %
7:00 - 8:00
1624 14,8 % 1686 15,2 % 1364 14,5 %
8:00 - 9:00
1109 10,1 % 1109 10,0 % 945 10,0 %
9:00 - 10:00
686
6,2 %
686
6,2 % 589 6,2 %
10:00 - 11:00 603
5,5 %
603
5,4 % 523 5,5 %
11:00 - 12:00 523
4,8 %
523
4,7 % 443 4,7 %
12:00 - 13:00 515
4,7 %
515
4,6 % 448 4,7 %
13:00 - 14:00 540
4,9 %
540
4,9 % 466 4,9 %
14:00 - 15:00 533
4,8 %
533
4,8 % 469 5,0 %
15:00 - 16:00 487
4,4 %
487
4,4 % 415 4,4 %
16:00 - 17:00 528
4,8 %
528
4,7 % 447 4,7 %
17:00 - 18:00 575
5,2 %
575
5,2 % 502 5,3 %
18:00 - 19:00 500
4,5 %
500
4,5 % 427 4,5 %
19:00 - 20:00 361
3,3 %
361
3,2 % 316 3,3 %
20:00 - 21:00 298
2,7 %
298
2,7 % 267 2,8 %
21:00 - 22:00 262
2,4 %
262
2,4 % 225 2,4 %
22:00 - 23:00 162
1,5 %
162
1,5 % 139 1,5 %
23:00 - 24:00 104
0,9 %
104
0,9 %
83
0,9 %
TOTAL
11006 100 % 11118 100 % 9439 100 %
Cuadro 3.8: Comparación Costo.
58
Capı́tulo 4
CONCLUSIONES
Se demostró la complejidad computacional del modelo propuesto sobre la red de transporte del Sistema Trolebús. Se analizan los siguientes casos:
• La parte central del sistema se representa como un camino simple donde para ir
de una estación a otra necesariamente se debe pasar por las estaciones intermedias. En este tipo de red la complejidad computacional del modelo propuesto es
NP-completa, para la demostración se realizó una reducción de un problema de
coloración de arcos circulares.
• Sobre la red antes mencionada, si existe la posibilidad de que los trolebuses
rebasen en el recorrido, se podrı́an introducir lı́neas exprés. En esta variante el
modelo propuesto es NP-completo, se demostró su complejidad haciendo una
reducción desde un problema de cubrimiento de conjuntos.
• Los buses alimentadores que atienden la demanda de pasajeros para los barrios
cercanos forman una red que se representa con un grafo del tipo árbol. Sobre
esta red, al reducir desde un problema de cubrimiento exacto por 3-conjuntos se
demostró que el modelo propuesto es NP-completo.
A pesar de que la complejidad computacional del modelo propuesto es NP-completa,
para casos particulares se adaptaron algoritmos de tiempo polinomial. Cuando se cuenta con una única lı́nea se propone una formulación como problema de flujo de costo
mı́nimo con el objetivo de atender los orı́genes-destinos con mayor demanda. En el
caso de contar con lı́neas no idénticas se construye un grafo en el que se representan
los eventos de inicio y final de cada par origen-destino junto con la manera en la cuál
las lı́neas pueden atender dichos pares, sobre este grafo se resuelve un problema del
camino más largo.
59
En cuanto a la implementación del modelo propuesto y los resultados computacionales
se puede destacar:
• Se propuso e implementó una modificación a los modelos de planificación de
lı́neas desarrollados por Schöbel y Scholl [20]. Se consideró una variable adicional
para incluir los costos fijos para obtener resultados comparables con el modelo
propuesto.
• Al resolver una instancia con 15 estaciones, 10 lı́neas y una capacidad de unidades
de transporte de 100 pasajeros utilizando el solver ZIBOPTSUITE-2.0.1. el modelo de asignación de viajes directos (MAVD) propuesto alcanza la solución óptima
en 1.39 segundos, mientras que el modelo LPMTF-M en 970 segundos satura la
memoria y alcanza un gap del 2.32 %. El número de variables y restricciones del
MAVD es inferior al LPMTF-M.
• Se resolvieron instancias con datos reales del Sistema Trolebús utilizando el modelo MAVD. Estas pruebas mostraron el potencial de los modelos de optimización
al reducir los costos operativos y asegurar que los usuarios puedan realizar sus
viajes sin la necesidad de transferencias.
60
Apéndice A
Instancias
A.1
A.1.1
Instancias de partida
Matriz 1

0 50 10

 0 0 51
I1 = 
 0 0 0

0 0 0
A.1.2
Matriz 2

0 5 10

 0 0 51

 0 0 0


I2 =  0 0 0

 0 0 0


 0 0 0
0 0 0

21

41 

12 

0

12

12 

12 32 12 21 


0 21 2 5 

0 0 1 21 


0 0 0 9 
0 0 0 0
21 23 2
41 21 8
61
A.1.3
Matriz 3

















I3 = 
















0 22 11 43 30 12 54 5 14 48 57 81 58 21 1

0 0 18 48 4 50 5 51 13 92 74 29 51 37 55 

0 0 0 20 44 0 28 17 28 40 23 56 33 52 32 


0 0 0 0 56 17 42 37 79 57 55 56 17 54 59 

0 0 0 0 0 42 58 38 91 32 28 23 49 43 87 


0 0 0 0 0 0 30 24 20 31 19 47 72 49 66 

0 0 0 0 0 0 0 41 31 15 14 14 55 27 33 


0 0 0 0 0 0 0 0 13 53 26 21 41 31 1 

0 0 0 0 0 0 0 0 0 45 57 32 29 34 34 


0 0 0 0 0 0 0 0 0 0 58 25 43 52 15 

0 0 0 0 0 0 0 0 0 0 0 58 57 36 24 


0 0 0 0 0 0 0 0 0 0 0 0 4 48 52 

0 0 0 0 0 0 0 0 0 0 0 0 0 25 36 


0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
62
A.2
A.2.1
Instancias Trolebús
Matriz 5:00 - 6:00
















































































0
1
0
1
1
2
2
2
0
0
1
0
2
3
4
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
13
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
2
1
0
0
1
0
1
2
3
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
0
0
0
0
0
0
0
0
1
0
0
0
0
2
4
0
0
0
2
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
2
0
1
0
2
2
1
0
0
3
0
0
0
0
1
9
13
2
3
3
3
1
5
1
1
0
0
2
1
1
3
115
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
5
1
0
4
1
0
2
0
3
0
1
0
0
4
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
1
1
7
0
0
0
2
2
1
0
0
0
7
3
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
3
0
0
2
1
1
2
0
3
0
3
3
3
7
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
2
2
3
0
0
0
1
2
1
0
6
0
2
1
1
7
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
2
0
0
0
1
2
0
2
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15
2
1
12
6
4
16
4
2
3
5
6
9
30
1
3
0
0
8
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
2
1
13
1
0
0
0
2
0
2
1
0
11
1
1
1
0
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
2
0
2
0
0
0
1
1
2
0
5
0
0
0
3
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
2
0
0
0
0
6
0
3
0
0
2
1
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
9
1
1
7
3
3
2
5
0
3
3
2
3
30
1
2
1
1
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
1
0
4
0
1
0
2
0
1
1
1
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
1
1
6
0
0
0
0
0
1
1
2
0
6
0
0
0
1
4
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
1
0
9
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
4
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
3
0
0
2
0
0
0
0
0
0
1
1
0
12
1
1
0
0
7
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
31
4
2
24
2
2
2
2
2
1
0
2
3
61
2
2
0
0
6
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
34
4
3
27
5
5
7
6
2
4
13
8
0
201
17
8
1
3
30
6
0
4
0
1
4
3
1
3
0
3
0
3
1
2
0
















































































63
A.2.2
















































































0
5
3
10
34
13
6
3
3
2
0
2
2
9
26
4
2
0
9
7
6
6
6
9
2
0
0
6
6
2
2
0
4
1
138
Matriz 6:00 - 7:00
0
0
0
0
3
1
0
0
0
0
0
0
0
1
2
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
11
0
0
0
1
4
2
1
0
0
0
0
0
0
1
3
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
17
0
0
0
0
27
10
5
2
2
1
0
2
2
7
21
3
2
0
7
5
4
4
4
7
1
0
0
4
4
2
2
0
3
1
110
8
1
1
6
0
0
0
0
4
1
0
6
0
5
0
4
0
0
4
4
0
0
0
4
1
6
0
0
0
0
0
0
2
1
43
3
0
0
2
0
0
0
0
0
0
2
0
0
0
0
4
0
0
5
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
7
12
1
1
10
0
0
0
0
0
1
0
8
2
13
0
4
0
0
5
0
0
2
0
4
0
0
0
3
2
0
0
0
0
0
13
3
0
0
2
0
0
0
0
0
0
0
0
0
9
0
4
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
7
6
0
1
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
2
0
4
0
0
0
0
0
0
0
0
18
0
0
0
5
0
2
0
0
0
1
0
0
0
0
0
0
0
0
0
7
5
0
1
4
0
2
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
1
0
0
0
0
0
9
1
1
7
0
6
9
2
2
1
2
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
69
5
8
55
14
8
17
12
9
1
12
6
2
0
414
19
1
32
49
52
19
27
19
36
6
11
21
22
24
12
11
4
11
12
312
9
1
1
7
0
2
3
0
0
1
2
0
4
0
0
4
1
0
27
23
2
7
11
8
3
4
0
3
2
2
2
5
4
7
68
12
1
1
10
3
4
9
6
2
2
7
0
0
45
0
0
0
7
2
2
2
2
6
4
1
2
0
9
2
1
0
0
0
1
55
0
0
0
0
9
0
3
2
4
0
0
2
0
0
0
2
0
0
0
0
0
3
3
0
1
0
0
0
0
0
0
0
0
1
0
19
2
2
15
26
6
9
12
4
8
11
10
2
220
39
21
3
0
2
0
3
2
11
10
2
6
6
3
4
3
0
2
0
1
37
16
1
2
13
3
2
12
6
3
5
2
7
7
65
50
5
0
2
0
2
4
12
16
8
3
4
3
17
7
4
1
0
4
4
104
51
4
6
40
69
22
32
26
19
15
22
13
5
250
54
48
23
19
5
0
2
23
8
19
2
8
6
11
6
9
1
1
4
3
129
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
3
11
1
8
3
9
3
8
5
2
11
7
0
61
5
7
49
40
26
14
18
14
6
22
13
5
358
56
24
9
11
17
9
0
0
0
2
2
4
0
4
4
0
1
2
0
2
391
27
2
3
21
34
8
28
5
6
6
17
11
2
94
56
16
7
11
10
13
0
0
0
0
2
2
0
2
3
9
0
4
0
3
7
64
5
8
51
101
28
64
24
22
26
35
18
9
439
95
18
10
14
30
16
0
3
2
0
0
3
6
3
2
3
1
3
3
6
269
44
4
5
35
23
19
34
14
18
9
8
11
7
313
45
25
9
5
39
22
0
7
1
0
0
0
8
0
0
1
2
1
4
4
80
22
2
3
18
6
17
14
8
6
9
11
9
10
175
56
11
4
8
20
13
0
0
2
1
2
0
0
3
4
1
1
0
0
1
74
31
2
4
24
6
6
20
6
4
10
11
3
13
187
39
27
3
19
30
12
0
5
2
3
2
3
0
0
2
0
4
0
0
1
287
89
7
11
71
42
26
56
21
22
17
39
17
13
228
67
38
10
10
23
33
0
10
9
9
4
2
0
0
4
4
2
1
6
5
275
12
1
1
10
0
4
3
3
6
0
6
0
2
65
17
15
2
0
3
8
0
2
5
5
2
2
0
2
0
0
1
0
2
2
92
28
2
3
22
6
10
3
6
6
5
7
4
2
167
28
4
2
2
19
18
0
7
10
2
4
2
1
6
0
0
0
0
2
3
92
16
1
2
13
12
0
6
9
5
1
4
5
2
163
23
10
3
0
14
7
0
14
9
6
6
7
4
5
3
0
0
0
2
1
147
16
1
2
13
0
2
3
2
3
0
12
2
0
61
6
5
0
5
10
7
0
2
4
1
0
3
0
2
0
0
0
0
0
2
98
24
2
3
19
6
13
9
5
3
3
12
8
4
118
28
15
0
7
5
7
0
3
5
1
2
0
0
1
2
0
0
0
0
0
98
90
7
11
72
28
10
45
33
19
0
16
7
17
565
72
57
2
7
0
2
0
12
8
4
2
2
6
8
0
2
1
1
0
0
92
466
37
56
372
90
62
78
51
24
28
68
65
13
2145
272
55
26
31
174
131
0
39
12
22
28
31
15
52
29
11
4
5
17
16
0
















































































64
A.2.3
















































































0
2
5
8
32
6
10
3
4
1
0
5
0
21
57
0
3
4
10
8
5
8
1
4
1
0
2
15
1
3
2
2
3
6
223
0
0
3
0
2
0
1
0
0
0
0
0
0
1
3
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
12
Matriz 7:00 - 8:00
0
0
0
0
1
0
0
0
0
0
0
0
0
1
2
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
8
0
0
0
0
23
4
8
2
3
0
0
4
0
15
42
0
2
3
8
6
4
6
1
3
0
0
1
11
1
2
1
1
2
4
162
12
1
0
8
0
4
3
0
5
1
0
4
0
10
52
0
0
0
8
8
5
2
6
4
0
7
3
7
1
0
0
0
1
3
184
9
1
0
7
0
0
0
2
0
0
1
0
0
0
0
0
0
0
2
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
49
16
1
1
12
0
0
0
0
2
1
0
0
2
15
0
2
0
3
0
0
3
3
0
2
0
0
2
4
0
0
0
0
0
2
97
0
0
0
0
0
0
0
0
2
0
0
0
0
10
0
0
0
0
0
2
0
0
0
2
0
0
0
0
0
0
2
0
2
0
10
5
0
0
4
0
2
0
0
0
0
0
0
0
5
11
0
0
3
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
9
1
0
7
0
0
0
0
4
0
0
0
0
0
21
4
0
0
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
10
3
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
3
0
0
2
2
0
0
0
0
0
0
0
3
0
3
5
0
2
0
5
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
10
28
2
1
20
7
12
11
5
3
3
13
4
6
0
458
37
6
45
47
86
28
56
18
44
7
13
13
38
13
18
10
15
25
27
647
14
1
1
10
0
0
9
2
0
0
0
1
2
15
0
18
2
30
32
24
11
29
18
15
2
6
9
12
5
4
4
0
3
5
251
9
1
0
7
0
2
0
5
3
0
0
0
0
38
7
0
2
3
8
5
2
0
0
0
1
1
2
6
4
0
2
0
0
2
49
3
0
0
2
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
16
1
1
12
5
0
9
4
5
2
4
1
2
38
39
3
3
0
4
5
7
29
10
26
4
9
2
7
5
3
2
2
4
2
87
12
1
0
8
0
0
7
4
0
1
4
0
0
52
7
12
4
3
0
0
2
6
6
12
4
3
7
8
5
4
0
2
3
7
222
71
4
3
52
49
17
25
22
15
18
28
17
15
339
147
81
11
26
0
0
0
15
16
30
6
7
8
11
9
10
3
5
5
9
87
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
18
15
5
26
8
20
15
18
8
3
14
7
790
48
3
2
35
19
19
41
19
11
8
13
17
15
386
51
30
8
33
12
13
0
0
4
12
2
5
7
8
6
7
2
2
2
11
608
21
1
1
15
7
4
19
10
3
3
7
4
4
66
20
5
2
15
12
14
0
0
0
3
1
4
0
3
7
4
3
2
3
5
123
139
8
5
101
72
25
25
47
19
11
39
18
16
451
83
35
9
19
59
33
0
5
4
0
0
5
9
6
5
14
7
4
5
5
193
89
5
3
65
28
36
54
16
22
15
31
18
8
508
109
47
12
19
38
43
0
5
7
1
0
5
13
11
4
8
8
8
3
11
145
39
2
1
28
26
17
9
13
7
4
14
10
6
193
26
15
8
15
38
14
0
14
4
2
0
0
0
3
4
3
4
0
2
2
155
41
2
2
30
7
4
11
5
4
6
13
5
0
202
58
33
6
12
13
22
0
26
8
3
5
0
0
2
5
10
3
0
4
11
222
186
10
7
136
54
29
56
54
20
19
37
22
7
329
64
38
14
17
30
41
0
26
21
10
6
6
0
0
5
5
7
8
8
15
521
25
1
1
18
14
10
3
5
8
4
5
10
2
170
32
5
4
5
10
17
0
19
10
3
3
7
4
4
0
2
2
0
3
5
155
46
2
2
33
12
4
17
2
10
5
10
4
4
240
83
12
1
0
13
24
0
32
11
9
7
6
1
16
0
0
0
0
4
10
174
28
2
1
20
3
2
11
4
4
3
4
7
0
137
26
5
4
3
4
17
0
5
8
4
3
6
3
9
2
2
0
0
1
0
107
37
2
1
27
5
2
7
4
7
1
8
2
0
113
39
3
2
3
13
8
0
12
5
3
5
4
1
6
2
0
0
0
1
6
97
39
2
1
28
24
17
27
11
4
2
19
5
3
329
58
9
6
8
13
20
0
5
3
4
8
4
5
11
3
0
1
0
0
3
68
37
2
1
27
47
12
25
33
10
1
11
1
0
663
45
36
2
5
12
2
0
5
16
7
2
4
5
14
1
7
5
0
4
0
232
570
31
21
415
79
38
54
49
27
22
62
36
32
1696
338
78
21
47
155
170
0
64
31
65
40
34
21
72
34
22
19
23
149
54
0
















































































65
A.2.4
















































































0
1
1
2
16
6
12
1
3
3
1
4
0
28
91
2
1
5
14
9
9
6
4
7
2
0
2
14
2
1
2
3
2
2
82
Matriz 8:00 - 9:00
0
0
0
0
1
0
1
0
0
0
0
0
0
2
7
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
7
0
0
0
1
2
1
1
0
0
0
0
0
0
3
11
0
0
1
2
1
1
1
0
1
0
0
0
2
0
0
0
0
0
0
10
0
0
0
0
12
5
10
1
2
2
0
3
0
22
73
1
0
4
11
7
7
5
3
6
1
0
2
11
2
1
1
2
1
2
66
25
2
3
20
0
0
4
0
0
0
0
0
0
9
124
0
0
8
5
4
9
4
7
3
2
12
4
3
2
2
2
0
3
0
33
7
1
1
6
0
0
0
0
0
0
0
0
2
0
0
3
0
0
4
2
3
2
0
0
0
3
0
0
0
0
0
0
0
0
11
23
2
3
18
0
0
0
0
0
0
1
0
0
0
20
3
0
5
7
0
5
2
0
0
1
2
0
1
0
0
0
2
0
0
11
9
1
1
7
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
4
3
1
0
0
0
0
0
0
2
0
0
0
2
0
0
2
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
2
0
1
0
3
0
1
0
0
0
0
0
0
2
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
3
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
2
0
0
0
0
1
0
0
0
2
0
0
0
0
0
0
0
0
2
0
2
0
0
0
0
0
0
0
0
0
4
0
0
0
3
2
0
0
0
0
0
0
2
0
2
0
11
6
0
1
4
4
0
4
0
2
3
0
2
0
17
20
3
0
0
0
0
0
0
0
2
1
0
0
1
0
0
0
0
0
0
0
51
4
6
40
34
17
18
6
7
5
13
8
21
0
343
22
1
46
59
62
52
46
19
50
13
23
21
22
15
30
13
7
21
29
941
6
0
1
4
0
2
0
2
2
3
4
5
12
9
0
34
4
46
32
35
8
11
4
20
5
4
8
11
8
8
5
0
6
2
143
0
0
0
0
0
0
2
2
0
0
4
0
0
21
0
0
1
5
2
4
2
2
3
2
3
6
2
0
0
0
4
0
0
0
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
9
1
1
7
6
0
2
2
2
5
4
0
0
101
6
10
5
0
4
12
5
22
14
20
5
3
12
8
0
0
0
2
2
3
44
14
1
2
11
2
4
6
2
3
0
2
8
0
130
54
9
5
0
0
3
6
20
3
19
9
12
14
6
6
5
3
6
6
0
241
63
5
8
50
47
20
32
20
10
7
21
11
8
397
154
77
21
12
0
0
3
14
20
35
11
10
13
18
7
9
2
0
8
9
263
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
16
53
15
47
20
29
25
23
13
5
17
25
0
51
4
6
40
36
15
8
14
17
10
2
12
4
417
91
35
9
27
11
11
0
0
0
13
5
9
10
8
6
7
6
4
7
13
951
27
2
3
21
8
9
10
6
11
4
9
5
4
55
32
12
0
10
16
8
0
0
0
2
3
11
4
7
5
2
2
5
2
5
0
105
8
13
84
42
17
30
18
13
15
13
13
20
495
91
35
18
51
69
58
0
26
3
0
2
12
13
10
9
16
9
2
13
8
296
51
4
6
40
27
7
18
11
12
11
18
8
8
530
96
35
6
27
74
75
0
23
10
4
0
2
13
23
16
11
11
5
13
10
416
21
2
3
17
27
5
16
11
7
6
6
11
4
301
38
18
8
15
31
18
0
15
3
2
0
0
4
4
7
3
8
3
20
25
219
28
2
3
22
8
12
12
5
3
6
4
6
0
201
27
13
6
8
34
35
0
23
15
13
5
0
0
3
12
20
10
8
12
14
361
85
7
10
68
53
20
36
17
16
8
18
12
0
378
38
32
6
5
59
56
0
30
12
16
17
6
0
0
6
11
13
3
17
29
383
25
2
3
20
2
2
2
2
4
3
2
3
8
99
16
3
3
0
16
19
0
4
9
9
12
10
9
7
0
2
4
5
9
4
154
27
2
3
21
21
2
4
2
4
2
2
2
0
196
32
5
6
5
21
13
0
23
15
21
11
4
13
8
2
0
0
2
3
13
175
16
1
2
13
4
0
0
5
5
5
2
3
0
105
32
2
0
3
11
13
0
23
7
7
7
8
8
13
0
0
0
0
5
7
121
4
0
0
3
0
0
2
2
2
2
0
2
0
67
27
2
2
5
21
14
0
8
4
0
3
6
5
5
0
5
0
0
0
3
66
23
2
3
18
12
7
12
5
10
4
0
4
8
192
38
12
5
0
28
19
0
19
9
9
16
13
6
8
4
0
0
0
0
5
186
2
0
0
2
14
4
6
5
3
2
7
0
0
309
38
2
2
3
13
4
0
4
21
5
0
7
6
11
7
5
4
0
6
0
186
233
19
28
186
59
31
40
18
21
8
18
14
4
909
144
39
18
36
140
122
0
63
11
65
81
54
56
72
26
27
14
21
27
34
0
















































































66
A.2.5
















































































0
1
1
2
19
7
8
3
5
2
0
3
3
12
27
5
0
8
11
10
9
8
5
27
7
1
6
4
2
9
2
3
4
4
52
Matriz 9:00 - 10:00
0
0
0
0
2
1
1
0
0
0
0
0
0
1
2
0
0
1
1
1
1
1
0
2
1
0
0
0
0
1
0
0
0
0
4
0
0
0
1
2
1
1
0
1
0
0
0
0
1
3
1
0
1
1
1
1
1
1
3
1
0
1
0
0
1
0
0
0
0
6
0
0
0
0
15
5
6
2
4
1
0
2
2
9
21
4
0
6
9
8
7
6
4
21
5
1
4
3
1
7
1
2
3
3
41
12
1
1
10
0
0
9
0
2
0
0
0
3
9
50
0
0
0
1
12
13
11
3
6
3
16
9
9
0
0
0
5
0
6
52
8
1
1
6
0
0
0
0
0
1
0
0
0
0
10
0
0
0
3
2
0
0
0
0
0
0
2
3
0
0
0
0
0
0
0
10
1
1
8
0
0
0
0
0
0
0
0
7
0
10
2
0
2
0
11
5
3
0
6
1
0
2
0
0
0
0
0
2
2
26
5
0
1
4
0
0
0
0
0
0
1
1
0
0
0
2
0
0
0
5
1
0
0
7
0
0
0
0
0
4
0
0
0
2
0
12
1
1
10
0
0
0
0
0
0
0
0
2
0
0
0
0
0
1
0
0
0
0
0
1
0
0
2
0
0
0
0
0
0
0
0
0
0
0
2
0
3
0
0
0
0
0
0
0
0
2
0
0
0
3
2
0
0
2
1
2
0
0
0
0
0
0
0
0
0
3
0
0
2
0
0
2
0
3
0
0
0
0
14
0
0
0
2
3
4
1
0
2
0
2
0
0
2
0
2
0
3
0
0
6
0
0
0
0
4
5
3
5
0
0
0
0
0
5
23
0
0
0
0
1
0
1
0
2
7
0
6
0
0
0
0
0
0
0
6
3
0
0
2
2
0
4
4
5
0
5
0
0
0
19
0
0
0
0
1
0
3
1
0
1
0
0
0
0
0
0
0
0
0
0
61
5
7
49
71
11
14
10
6
3
21
13
14
0
203
28
5
60
68
91
80
61
16
97
51
44
32
49
43
39
31
7
34
37
565
5
0
1
4
2
5
5
2
2
1
0
1
2
18
0
11
7
50
14
27
24
15
11
42
31
11
15
19
8
22
9
7
4
25
164
12
1
1
10
0
0
2
2
0
0
0
0
2
36
3
0
0
11
1
15
8
7
0
5
4
4
0
0
0
2
3
0
0
0
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
2
1
2
0
0
2
0
3
0
0
3
0
0
0
0
0
19
2
2
15
8
0
4
2
9
3
7
1
3
45
11
15
6
0
7
12
20
18
20
35
11
13
6
13
3
5
0
0
4
0
32
10
1
1
8
0
0
9
4
3
0
0
2
0
63
11
6
2
3
0
0
11
19
16
44
43
8
32
26
3
10
6
14
12
4
244
36
3
4
28
25
5
13
6
12
3
19
9
9
251
43
57
17
51
3
0
0
15
11
24
29
12
27
22
8
14
3
0
17
22
166
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
26
98
60
61
34
40
31
32
14
12
22
25
0
36
3
4
28
22
9
7
9
6
6
9
3
3
220
23
9
8
6
41
11
0
0
0
10
17
19
18
15
15
12
6
7
16
16
539
19
2
2
15
13
0
4
2
9
2
7
0
2
27
13
5
6
9
27
24
0
0
0
3
11
17
8
10
6
4
3
0
2
10
0
59
5
7
47
15
7
21
9
6
4
9
12
6
336
39
17
7
21
74
65
0
17
2
0
8
38
24
26
10
17
9
3
19
12
203
24
2
3
19
6
0
11
3
9
3
0
5
5
255
60
23
8
15
48
72
0
23
2
10
0
3
24
44
22
17
3
10
22
39
182
15
1
2
12
8
3
2
5
2
0
3
2
3
90
23
13
4
18
43
30
0
28
7
7
3
0
5
5
12
9
23
3
7
6
109
15
1
2
12
6
5
3
2
2
0
5
4
0
99
13
6
4
27
29
19
0
40
13
15
15
4
0
6
10
22
23
0
17
22
192
94
8
11
75
23
18
15
15
5
4
7
9
6
202
41
6
0
24
43
62
0
38
12
32
25
7
5
0
8
11
26
10
11
22
182
5
0
1
4
0
0
2
2
0
0
5
2
0
59
11
3
0
3
12
12
0
5
9
10
5
6
12
3
0
3
0
5
0
6
47
17
1
2
13
13
7
0
5
0
1
0
2
2
85
11
0
2
0
0
24
0
19
16
15
13
10
19
17
0
0
0
0
11
25
68
10
1
1
8
0
0
4
0
2
0
0
0
0
36
13
3
0
0
8
8
0
21
8
5
4
15
9
15
0
0
0
3
2
4
47
15
1
2
12
0
5
2
2
0
1
0
0
2
32
7
5
0
0
12
13
0
9
4
7
9
4
11
8
0
0
0
0
0
2
37
8
1
1
6
4
0
4
0
5
1
3
1
2
139
15
3
2
3
43
27
0
17
12
21
29
10
17
10
5
5
0
0
0
6
52
29
2
3
23
9
0
2
3
8
0
0
0
0
188
11
5
0
0
10
3
0
13
8
6
12
18
8
3
3
13
16
2
6
0
83
70
6
8
56
54
5
26
4
2
3
15
8
9
565
102
23
2
30
101
101
0
78
24
79
103
84
96
69
47
46
30
27
33
82
0
















































































67
A.2.6
















































































0
1
1
2
23
6
6
1
1
1
0
3
0
4
27
6
0
10
7
23
12
10
5
43
17
6
7
18
2
6
3
2
1
9
77
Matriz 10:00 - 11:00
0
0
0
0
3
1
1
0
0
0
0
0
0
0
4
1
0
1
1
3
2
1
1
6
2
1
1
3
0
1
0
0
0
1
11
0
0
0
1
1
0
0
0
0
0
0
0
0
0
2
0
0
1
0
1
1
1
0
3
1
0
0
1
0
0
0
0
0
1
5
0
0
0
0
18
4
5
1
1
1
0
2
0
3
22
5
0
8
6
18
10
8
4
34
14
4
5
14
2
4
2
2
1
7
62
7
1
0
6
0
2
2
2
5
0
1
0
4
7
41
0
0
4
7
8
17
12
7
15
12
18
0
9
3
2
5
0
2
6
37
9
1
1
7
0
0
0
0
0
0
1
0
2
0
0
0
0
0
2
5
2
0
2
0
0
0
3
0
0
0
0
0
0
0
0
12
2
1
9
0
0
0
0
0
2
1
0
4
0
13
2
0
0
3
3
0
4
0
0
3
0
3
2
0
0
0
0
8
0
8
3
0
0
2
0
0
0
0
0
0
0
0
0
0
5
2
0
0
6
4
0
8
3
0
4
2
0
0
0
0
0
0
0
4
15
0
0
0
0
2
5
0
0
0
0
0
0
0
0
13
2
0
0
0
0
1
1
0
0
0
0
2
2
0
2
0
0
0
0
8
0
0
0
0
2
0
2
0
2
0
0
2
2
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
5
1
0
4
2
0
2
0
2
0
0
0
0
0
0
0
0
0
0
7
2
0
0
7
0
0
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
3
2
0
0
0
0
5
3
2
0
3
0
0
0
0
0
5
1
0
4
0
0
5
2
7
0
0
0
0
0
5
2
0
0
0
3
1
3
0
0
2
2
0
0
0
0
0
0
0
0
0
68
9
4
54
69
10
21
7
17
6
15
24
19
0
213
25
3
60
48
111
115
54
27
139
100
60
48
58
22
56
30
0
39
32
777
14
2
1
11
4
4
2
0
7
2
2
4
6
44
0
6
4
50
27
58
41
36
7
41
29
14
30
15
4
12
5
4
8
11
96
0
0
0
0
2
0
2
0
0
0
0
3
0
32
0
0
0
3
8
7
4
12
4
0
5
5
0
3
0
2
3
0
0
4
44
0
0
0
0
4
0
0
0
2
0
0
3
0
7
0
0
0
1
2
4
5
0
0
0
5
0
5
0
0
0
0
0
2
0
0
7
1
0
6
2
0
0
0
0
2
2
3
0
100
17
7
0
0
5
11
30
29
13
27
19
6
5
7
0
0
5
4
8
11
37
14
2
1
11
8
8
0
3
2
5
3
2
0
63
38
11
4
0
0
5
12
26
28
33
44
14
36
20
6
28
5
13
8
13
110
30
4
2
24
32
9
26
8
8
2
8
8
8
250
59
44
14
48
21
0
3
16
23
44
45
27
40
31
14
17
7
13
10
14
228
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
45
131
92
54
56
73
25
27
15
7
27
37
0
7
1
0
6
16
3
9
6
2
4
6
4
6
337
27
19
4
19
7
4
0
0
2
49
18
26
30
24
12
21
7
7
20
13
469
23
3
1
18
11
2
3
4
4
0
2
4
0
50
0
12
0
16
7
14
0
0
0
0
16
11
10
7
11
4
7
16
10
0
8
68
9
4
54
20
8
14
8
11
9
6
9
0
194
38
7
9
16
36
67
0
27
2
0
14
24
19
37
10
8
7
10
26
16
88
30
4
2
24
18
4
3
3
8
5
3
4
2
187
33
7
11
28
59
55
0
36
19
7
0
11
23
40
19
35
15
4
31
46
125
12
2
1
9
4
3
6
0
0
2
0
2
2
82
0
2
0
3
25
30
0
18
10
28
2
0
5
8
11
6
21
10
12
11
74
0
0
0
0
15
0
2
0
0
2
2
3
0
50
22
6
4
10
27
20
0
39
15
29
16
0
0
5
14
14
9
10
18
23
132
43
6
3
34
9
0
6
2
5
3
2
5
8
138
11
3
2
14
36
37
0
23
21
24
26
10
5
0
13
24
7
4
18
32
132
9
1
1
7
0
0
5
0
0
2
0
2
0
32
6
0
0
3
7
16
0
23
3
8
19
16
14
2
0
5
3
4
4
9
15
9
1
1
7
9
2
0
0
0
3
3
6
0
50
22
3
0
3
18
21
0
16
9
24
25
17
19
21
2
0
0
7
18
23
88
5
1
0
4
2
0
2
2
0
0
0
0
0
32
11
2
0
0
3
15
0
7
7
8
8
16
12
21
5
0
0
4
6
7
22
5
1
0
4
0
2
2
0
0
0
0
0
0
32
6
3
0
10
25
15
0
5
5
14
14
6
8
1
2
6
0
0
0
2
22
5
1
0
4
0
0
3
2
0
4
2
0
0
75
0
6
0
0
5
23
0
12
5
17
14
10
18
15
7
4
6
4
0
7
59
3
0
0
2
9
0
0
3
5
0
0
0
2
244
11
3
0
3
9
29
0
7
5
12
14
14
24
12
8
8
4
2
10
0
30
75
10
4
60
55
4
23
4
11
6
8
9
6
565
52
18
11
21
160
114
0
81
21
101
138
63
93
88
54
68
35
31
37
86
0
















































































68
A.2.7
















































































0
1
1
2
19
6
11
2
2
0
1
1
0
0
23
4
0
10
13
25
29
8
11
49
18
11
1
15
1
4
3
2
3
9
62
Matriz 11:00 - 12:00
0
0
0
0
3
1
1
0
0
0
0
0
0
0
3
0
0
1
2
3
4
1
2
7
2
2
0
2
0
1
0
0
0
1
9
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
2
0
1
3
1
1
0
1
0
0
0
0
0
1
4
0
0
0
0
15
4
8
1
2
0
1
1
0
0
18
3
0
8
10
20
23
6
9
39
14
9
1
12
1
3
2
1
2
7
50
26
4
2
20
0
3
0
0
7
0
0
0
0
0
63
3
3
0
18
10
17
6
3
11
3
17
3
9
3
6
1
0
8
0
45
2
0
0
2
0
0
0
1
0
0
0
0
0
0
0
2
0
0
2
3
7
0
0
0
0
0
0
0
0
2
0
0
0
3
0
16
2
1
13
4
0
0
0
0
1
0
0
0
0
14
0
0
0
2
2
8
12
3
11
0
0
0
4
0
3
0
0
2
0
5
2
0
0
2
0
0
0
0
0
0
0
0
1
0
3
0
0
2
2
12
0
3
0
11
2
0
0
2
2
0
0
0
0
0
10
2
0
0
2
0
0
0
0
0
0
0
0
0
0
6
0
0
3
0
5
3
2
2
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
3
0
0
0
4
0
2
0
3
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
8
0
0
2
0
6
7
0
5
5
0
0
0
5
0
0
0
0
0
0
10
0
0
0
0
2
4
0
0
4
0
0
0
0
0
0
0
0
0
0
3
5
6
0
0
2
2
0
0
0
0
0
0
0
5
5
4
1
0
3
4
0
2
1
4
1
0
0
0
0
0
1
0
0
0
8
4
0
0
3
0
0
0
2
0
0
0
0
0
0
0
71
10
4
56
34
7
14
3
17
3
10
10
16
0
210
22
8
100
65
160
221
115
36
161
87
84
59
61
40
78
15
29
49
48
490
8
1
0
6
6
5
3
3
0
0
2
2
3
0
0
4
8
57
61
56
67
22
12
52
59
12
16
26
14
22
5
6
14
10
102
4
1
0
3
4
2
5
2
4
0
0
0
0
26
0
0
0
2
12
12
4
21
5
0
5
0
5
2
0
2
5
0
2
5
25
0
0
0
0
0
3
3
0
0
0
0
0
0
0
0
0
0
2
0
2
8
3
0
0
0
0
0
0
0
2
0
0
0
0
0
18
3
1
14
4
0
3
1
0
7
2
6
4
128
7
3
0
0
2
18
42
52
9
17
25
3
24
15
4
2
1
0
5
10
35
16
2
1
13
10
0
2
1
7
0
0
4
0
68
7
7
2
9
0
2
28
26
18
60
79
24
30
26
6
31
12
5
15
26
224
14
2
1
11
43
5
28
17
23
12
12
29
12
246
46
29
8
71
10
0
4
16
21
50
66
22
27
48
11
11
4
6
15
7
70
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
26
138
93
85
51
60
31
46
17
15
15
50
0
12
2
1
10
17
2
9
0
10
2
0
0
2
305
39
16
1
33
28
7
0
0
3
35
27
27
36
43
11
9
10
8
21
15
412
8
1
0
6
12
3
2
1
4
0
4
0
0
60
0
6
3
4
17
26
0
8
0
7
29
8
10
15
6
6
5
3
15
6
15
22
3
1
18
15
2
7
2
10
0
8
4
0
144
21
9
6
19
50
39
0
17
3
0
8
31
30
18
12
17
12
5
25
18
85
8
1
0
6
15
0
3
2
4
1
4
0
2
60
25
11
3
21
54
72
0
47
13
7
0
3
22
24
20
34
15
15
31
26
115
2
0
0
2
0
3
2
0
7
1
4
0
0
51
4
4
0
4
11
29
0
20
7
17
2
0
2
11
12
14
13
12
28
7
60
8
1
0
6
4
2
3
0
4
0
0
0
0
34
7
4
1
7
14
29
0
16
7
27
24
5
0
2
18
26
14
12
24
15
55
49
7
3
39
2
3
9
1
0
2
4
0
3
165
35
3
4
16
29
53
0
21
12
27
27
6
4
0
3
22
15
26
9
25
95
4
1
0
3
0
3
2
0
0
0
0
0
0
17
11
4
0
6
2
9
0
20
7
8
11
7
13
11
0
4
4
3
21
13
50
4
1
0
3
0
0
3
0
0
0
0
0
0
128
18
3
0
2
4
17
0
13
5
22
11
22
25
33
0
0
0
5
5
22
65
2
0
0
2
2
0
0
2
4
0
0
0
0
34
11
0
0
0
16
15
0
7
6
9
9
16
20
11
4
1
0
0
5
9
35
0
0
0
0
0
0
0
0
0
0
0
0
0
17
0
2
0
4
10
11
0
6
1
10
8
6
8
9
7
3
4
0
3
0
45
0
0
0
0
2
3
3
0
0
1
0
4
0
102
7
5
0
7
22
18
0
9
8
12
31
13
14
30
5
1
0
0
0
3
55
8
1
0
6
10
0
0
0
0
0
0
0
0
246
4
5
1
7
0
6
0
10
8
14
22
7
20
20
7
5
7
4
15
0
60
34
5
2
27
58
2
9
3
0
1
10
4
4
480
49
19
4
24
102
130
0
78
42
113
125
86
140
104
80
57
72
44
52
107
0
















































































69
A.2.8
















































































0
1
1
1
29
11
12
11
7
3
1
4
1
0
33
18
1
9
20
33
21
20
8
36
8
12
10
16
2
4
6
5
3
14
45
Matriz 12:00 - 13:00
0
0
0
0
2
1
1
1
1
0
0
0
0
0
3
1
0
1
2
3
2
2
1
3
1
1
1
1
0
0
0
0
0
1
4
0
0
0
0
3
1
1
1
1
0
0
0
0
0
4
2
0
1
2
4
2
2
1
4
1
1
1
2
0
0
1
1
0
2
5
0
0
0
0
23
9
10
8
6
2
0
3
0
0
26
14
0
7
16
26
16
16
6
29
6
9
8
13
1
3
4
4
2
11
36
24
2
3
19
0
0
7
0
2
0
0
0
2
0
27
0
0
6
0
6
15
7
3
9
3
2
6
4
0
0
0
2
2
2
24
2
0
0
2
0
0
0
0
0
0
0
0
0
0
4
0
0
0
10
5
0
0
0
0
0
0
2
2
0
0
0
0
0
0
5
8
1
1
6
2
0
0
0
0
0
0
0
0
1
5
22
1
0
5
8
3
0
0
14
2
0
2
6
2
0
4
0
0
0
0
4
0
0
3
0
0
0
0
0
0
0
0
0
0
8
0
0
0
8
3
2
6
0
9
1
2
4
0
0
0
0
2
0
0
5
7
1
1
5
0
2
2
0
0
0
1
2
0
0
4
0
0
0
0
3
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
5
0
2
0
3
2
0
0
3
5
0
0
0
0
0
0
0
0
0
0
5
21
2
3
17
2
0
5
0
0
0
0
0
0
0
5
0
0
1
0
8
8
0
6
3
1
4
0
3
0
0
0
0
3
0
0
16
1
2
13
5
0
18
0
0
2
0
0
0
0
4
8
0
3
0
6
3
0
0
5
1
0
3
0
0
0
0
0
2
0
0
7
1
1
5
12
0
0
0
9
2
2
0
0
0
7
0
0
0
3
2
2
0
0
3
0
2
2
2
0
0
0
0
0
0
0
56
4
7
44
40
7
21
14
25
9
15
32
64
0
190
162
8
82
102
200
209
158
94
209
53
113
61
69
28
49
19
26
25
51
480
13
1
2
10
2
2
2
4
2
0
4
0
0
18
0
15
4
57
50
72
48
26
24
81
17
26
18
20
19
12
24
8
12
16
205
12
1
1
9
10
0
5
0
0
2
0
8
8
152
27
0
0
2
18
16
10
10
3
9
2
2
5
4
5
0
2
0
0
0
14
0
0
0
0
0
0
0
0
2
0
0
0
0
0
2
0
0
0
0
6
9
5
0
3
0
0
2
0
0
0
0
0
0
0
0
5
0
1
4
15
0
7
0
7
7
2
7
48
170
40
7
0
0
10
29
40
27
8
21
14
10
18
12
6
2
2
3
4
6
56
12
1
1
9
4
0
3
0
9
0
2
4
0
90
23
10
2
9
0
3
16
29
29
52
33
20
33
30
21
14
6
10
17
26
163
27
2
3
22
20
9
14
25
18
9
35
24
16
411
30
55
13
45
20
0
7
19
21
68
19
13
24
34
10
7
12
5
19
28
98
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
18
34
142
45
66
48
31
43
23
31
17
20
24
0
34
3
4
27
23
4
2
0
7
0
4
4
0
72
16
16
3
30
27
25
0
0
11
32
18
39
24
31
11
11
9
9
20
19
238
12
1
1
9
4
0
3
0
2
0
2
0
0
54
5
7
3
11
27
34
0
0
0
5
5
8
16
27
5
16
4
5
6
4
19
16
1
2
13
18
0
7
0
0
4
2
0
0
232
27
17
3
13
22
54
0
18
2
0
5
34
23
25
13
6
2
8
17
12
107
13
1
2
10
0
12
2
0
0
0
2
2
0
90
22
14
0
15
38
52
0
42
19
10
0
10
12
18
27
25
16
8
42
24
182
2
0
0
2
7
0
6
0
0
0
0
0
0
54
5
3
0
9
9
26
0
39
7
17
4
0
5
11
8
19
11
9
6
6
61
4
0
0
3
8
2
6
0
0
0
4
0
0
45
8
4
1
3
29
24
0
27
15
34
16
1
0
0
12
15
21
5
15
17
75
29
2
3
23
12
7
2
0
0
4
4
0
0
295
6
7
1
17
31
51
0
57
36
38
35
9
3
0
9
16
23
10
23
21
140
7
1
1
5
0
0
2
0
0
0
0
0
0
18
3
4
0
3
4
6
0
15
7
10
10
9
13
5
0
2
2
2
20
2
28
2
0
0
2
0
0
5
0
0
0
0
0
0
72
5
2
2
5
13
22
0
27
3
12
27
17
16
12
3
0
2
0
9
6
84
2
0
0
2
0
0
0
0
0
0
0
0
0
27
2
2
1
0
0
5
0
6
13
15
11
11
13
16
1
2
0
2
7
4
70
4
0
0
3
0
0
0
0
0
0
0
0
0
63
2
3
0
3
8
8
0
3
4
8
5
7
9
9
6
4
0
0
0
17
38
5
0
1
4
2
0
2
0
0
0
0
0
0
63
6
5
0
0
9
18
0
15
3
18
26
8
6
12
7
4
4
2
0
12
61
4
0
0
3
13
0
2
0
0
0
0
2
0
143
6
2
2
3
0
10
0
30
7
6
19
9
24
19
7
5
4
0
20
0
61
45
4
5
36
26
17
18
0
4
0
2
0
0
464
41
30
2
26
97
194
0
166
37
97
136
114
182
123
81
52
65
82
76
143
0
















































































70
A.2.9
















































































0
1
1
3
19
8
39
7
20
3
0
14
2
0
25
12
1
20
23
23
38
20
14
30
5
6
5
20
2
5
4
2
5
8
43
Matriz 13:00 - 14:00
0
0
0
0
1
1
3
1
2
0
0
1
0
0
2
1
0
2
2
2
3
2
1
2
0
0
0
2
0
0
0
0
0
1
3
0
0
0
0
2
1
5
1
2
0
0
2
0
0
3
1
0
2
3
3
5
2
2
4
1
1
1
2
0
1
0
0
1
1
5
0
0
0
0
15
6
31
6
16
2
0
11
1
0
20
9
1
16
18
18
30
16
11
24
4
4
4
16
1
4
3
2
4
6
34
19
2
2
15
0
2
7
0
1
0
0
5
0
0
37
0
0
9
0
6
14
16
4
11
1
7
2
6
2
5
0
2
0
5
24
5
0
1
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
2
0
3
0
0
2
0
0
0
0
8
8
1
1
6
0
0
0
0
0
0
1
10
0
0
7
0
0
9
3
3
14
18
0
11
1
7
0
0
2
0
2
0
0
0
8
2
0
0
2
0
0
0
0
0
2
0
0
1
0
13
0
0
5
3
3
2
0
4
5
0
2
2
0
2
0
3
0
0
0
4
7
1
1
5
11
0
2
0
0
0
0
0
0
1
0
0
0
5
3
2
0
0
0
0
1
0
3
0
0
0
0
0
0
0
20
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
3
0
4
0
0
0
1
5
0
0
2
0
0
0
2
0
8
8
1
1
6
0
0
3
0
1
0
0
0
0
0
0
5
0
5
5
2
7
4
0
0
0
0
0
0
2
0
0
0
2
0
4
2
0
0
2
0
0
2
0
1
0
0
0
0
0
0
0
0
5
3
3
4
0
0
3
0
0
5
0
0
0
0
0
0
2
8
2
0
0
2
4
0
0
0
4
0
0
0
0
0
13
0
0
0
0
3
5
4
0
0
2
0
0
0
0
3
0
0
0
0
0
78
6
9
62
64
10
25
10
17
6
11
10
18
0
185
72
16
188
106
145
251
141
108
183
47
82
58
63
24
42
38
13
32
52
574
7
1
1
5
4
0
3
0
3
2
0
2
0
11
0
36
7
153
35
53
64
29
37
50
9
26
14
22
13
9
2
4
8
12
197
8
1
1
6
4
2
0
2
1
2
0
0
0
32
13
0
0
0
10
13
10
5
0
9
1
7
5
4
4
2
3
2
2
0
24
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
0
0
0
0
3
2
0
4
0
0
0
0
0
0
0
0
0
0
4
0
7
1
1
5
8
0
0
2
2
2
2
0
0
130
22
4
2
0
3
27
19
32
7
16
11
5
20
12
5
3
5
4
12
30
20
7
1
1
5
6
4
0
2
4
0
4
0
0
78
10
7
0
7
0
0
40
33
37
105
24
22
18
24
11
14
0
3
19
19
162
24
2
3
19
38
10
8
22
8
12
22
2
26
214
17
31
5
88
2
0
4
8
19
65
16
10
23
14
17
3
8
6
16
19
52
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
34
132
35
100
39
51
17
35
19
13
27
24
0
21
2
3
17
11
5
6
0
3
0
2
2
0
120
22
10
3
42
30
17
0
0
10
20
12
19
26
21
13
12
8
8
13
16
221
0
0
0
0
0
5
3
0
0
0
0
0
2
47
10
8
2
11
18
14
0
0
0
5
3
19
14
17
4
6
5
8
9
2
0
18
1
2
14
17
5
10
0
1
0
2
5
2
177
22
22
6
28
30
57
0
34
7
0
3
11
21
28
12
11
15
6
13
5
63
15
1
2
12
6
4
3
0
0
0
0
2
0
125
19
26
2
18
74
63
0
41
27
14
0
2
15
11
15
15
14
11
18
16
111
2
0
0
2
8
4
0
0
0
0
0
0
0
63
2
3
2
14
23
31
0
26
14
17
7
0
6
22
9
10
14
8
14
8
71
8
1
1
6
0
5
2
0
0
0
0
0
0
68
8
4
5
7
21
14
0
26
4
17
19
0
0
4
7
21
19
11
19
18
87
34
3
4
27
20
5
4
0
0
0
0
4
0
130
10
9
0
7
21
31
0
45
17
21
31
16
3
0
14
18
14
15
15
32
71
7
1
1
5
6
2
0
0
0
0
0
0
0
78
4
5
0
0
0
12
0
23
6
11
5
14
15
5
0
3
3
2
10
2
36
13
1
2
10
4
0
2
0
0
0
2
0
0
78
0
2
0
4
4
13
0
45
14
16
27
26
17
14
0
0
0
7
9
32
44
5
0
1
4
0
2
2
0
0
0
0
0
0
52
0
2
2
0
2
18
0
12
2
10
7
4
10
18
4
2
0
0
10
5
44
2
0
0
2
0
4
0
0
0
0
0
0
0
58
0
3
0
0
7
13
0
0
0
6
7
9
4
8
4
2
0
0
0
5
16
2
0
0
2
4
0
4
0
0
0
0
0
0
110
19
3
0
0
4
11
0
34
6
9
16
21
10
18
14
3
2
0
0
0
40
7
1
1
5
15
0
4
0
0
0
0
0
0
312
21
7
0
4
6
16
0
12
16
4
16
13
19
18
8
4
8
7
20
0
67
38
3
5
30
38
9
18
0
0
0
2
9
0
557
37
11
8
35
97
183
0
156
24
99
119
97
192
122
52
63
53
62
82
108
0
















































































71
A.2.10
















































































0
1
0
3
25
6
6
4
6
5
0
4
0
0
32
7
2
8
12
20
19
9
6
29
4
3
5
11
1
5
0
2
2
9
86
Matriz 14:00 - 15:00
0
0
2
0
3
1
1
0
1
1
0
0
0
0
4
1
0
1
1
2
2
1
1
3
0
0
1
1
0
1
0
0
0
1
10
0
0
0
4
2
0
0
0
0
0
0
0
0
0
3
1
0
1
1
2
2
1
0
2
0
0
0
1
0
0
0
0
0
1
7
0
0
0
0
20
5
5
3
5
4
0
3
0
0
26
5
1
6
10
16
15
7
5
23
3
2
4
9
1
4
0
1
2
7
69
19
2
1
15
0
0
3
3
0
0
0
2
3
0
18
0
2
4
6
7
15
8
2
5
1
8
5
2
2
4
3
0
0
0
0
2
0
0
2
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
1
0
2
0
2
0
0
0
2
0
0
11
1
1
9
0
0
0
0
0
0
0
0
0
0
0
0
1
7
4
1
7
0
2
4
2
2
2
3
0
0
0
0
1
0
8
0
0
0
0
0
0
0
0
0
0
0
0
0
1
3
0
0
2
4
1
2
0
0
5
2
3
0
2
0
0
0
0
0
0
43
16
2
1
12
0
0
0
0
0
0
0
0
0
0
5
0
1
2
2
2
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
1
2
0
0
0
0
0
2
0
1
4
0
0
0
0
0
2
3
0
0
0
0
0
0
0
14
2
1
11
0
0
0
0
2
0
0
0
0
0
8
2
0
0
2
2
3
0
0
0
2
6
2
2
0
0
0
0
0
0
8
10
1
1
8
0
0
0
0
3
0
0
0
0
0
5
0
0
2
0
4
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
2
4
0
0
0
0
0
0
0
0
0
0
0
2
1
2
0
2
0
1
0
2
2
0
2
0
0
0
0
0
109
13
9
87
46
22
12
12
12
8
24
22
8
0
154
32
2
66
70
102
146
102
38
149
39
60
53
53
39
37
33
22
40
60
671
5
1
0
4
9
6
3
0
0
0
8
0
0
39
0
7
4
30
47
35
51
32
13
40
15
22
21
9
3
17
3
3
5
18
172
4
0
0
3
0
0
0
0
0
0
5
2
0
28
7
0
0
0
14
6
8
0
4
5
3
0
0
3
2
0
3
0
1
0
22
0
0
0
0
0
0
0
0
0
0
0
4
0
0
5
0
0
0
4
10
2
0
0
0
1
0
2
0
0
0
0
0
0
0
0
2
0
0
2
5
2
3
0
3
2
0
2
0
33
14
2
0
0
8
25
19
11
6
9
3
19
8
14
0
0
2
6
4
2
50
8
1
1
6
9
0
0
0
6
10
0
3
0
72
9
0
2
3
0
5
32
21
14
35
23
34
26
26
2
21
4
3
15
9
175
29
3
2
23
46
14
7
42
27
14
19
13
47
198
5
37
4
34
4
0
2
20
17
32
17
11
16
25
7
7
3
4
11
4
86
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
18
134
26
70
45
64
20
46
28
12
28
25
43
5
1
0
4
37
0
12
0
0
0
0
3
0
121
18
21
5
17
30
14
0
0
0
22
11
32
23
25
6
12
4
0
19
17
275
0
0
0
0
0
2
6
0
6
0
0
0
0
44
16
15
0
13
22
12
0
0
0
0
0
7
5
8
10
4
2
4
3
12
5
19
2
1
15
17
6
8
0
2
4
3
2
0
182
25
6
4
22
40
67
0
84
4
0
0
4
18
24
21
19
7
14
11
11
12
11
1
1
9
13
7
12
0
0
2
0
3
4
143
33
6
3
5
31
51
0
48
7
27
0
12
13
25
12
7
11
6
16
25
136
17
2
1
14
5
0
0
0
0
0
0
0
0
28
7
3
3
5
26
27
0
18
4
6
2
0
5
7
10
0
11
15
12
12
36
2
0
0
2
0
0
3
0
0
0
0
3
0
83
5
15
0
8
26
26
0
30
6
25
5
3
0
2
10
15
12
4
18
18
72
19
2
1
15
13
6
9
0
4
0
0
2
8
99
20
8
6
20
19
28
0
42
10
39
26
12
1
0
3
12
17
7
12
29
65
5
1
0
4
0
0
2
0
0
0
0
0
0
39
3
0
0
0
13
9
0
6
3
9
10
12
4
0
0
0
2
3
2
8
2
11
1
1
9
0
2
3
0
0
0
0
0
0
154
9
6
0
0
10
19
0
36
9
15
13
14
17
9
2
0
0
0
3
6
10
4
0
0
3
0
0
3
0
0
0
0
0
0
44
3
0
0
0
10
12
0
6
9
10
12
19
8
16
8
0
0
2
5
10
15
8
1
1
6
0
0
4
0
0
0
0
0
0
39
7
6
1
5
4
12
0
0
5
15
9
10
8
3
0
0
2
0
1
9
29
7
1
1
5
0
0
2
0
0
0
0
0
0
112
14
8
0
0
17
28
0
42
4
6
8
15
12
15
3
5
9
0
0
7
65
13
2
1
10
25
0
3
0
0
0
0
2
0
175
11
9
0
13
2
10
0
18
11
14
18
11
15
21
2
5
6
4
3
0
36
16
2
1
12
70
2
24
0
0
2
3
11
0
702
73
16
9
17
151
129
0
78
30
73
110
77
92
90
56
61
47
34
57
93
0
















































































72
A.2.11
















































































0
1
1
0
1
1
4
9
9
3
7
5
2
5
37
2
0
13
13
28
21
13
5
24
5
10
9
16
4
11
5
4
4
5
43
Matriz 15:00 - 16:00
0
0
0
0
0
0
1
1
1
0
1
1
0
1
6
0
0
2
2
4
3
2
1
4
1
2
1
3
1
2
1
1
1
1
7
0
0
0
1
0
0
0
1
1
0
1
1
0
1
5
0
0
2
2
4
3
2
1
3
1
1
1
2
0
1
1
0
0
1
6
0
0
0
0
0
1
2
6
6
2
5
3
1
4
26
1
0
9
9
20
14
9
4
16
4
7
6
11
2
7
3
2
2
3
30
21
3
3
14
0
0
5
0
2
0
0
3
2
0
4
0
0
2
4
5
10
3
2
5
4
2
2
7
2
0
0
0
0
0
15
3
0
0
2
0
0
2
3
0
0
0
0
0
0
7
0
0
0
0
2
6
2
0
2
1
0
2
0
0
2
0
4
0
0
0
5
1
1
3
0
0
0
0
0
0
0
0
0
0
0
1
0
0
2
6
8
4
2
2
2
2
0
2
0
0
0
0
2
0
5
0
0
0
0
0
0
0
0
0
0
0
8
0
0
0
0
0
3
8
6
8
5
2
4
1
0
0
0
0
2
3
2
2
0
0
11
2
1
7
0
4
0
0
0
0
0
2
0
0
7
0
0
0
0
3
0
0
0
3
0
0
0
0
0
0
0
0
0
3
5
0
0
0
0
0
0
3
0
0
0
0
0
4
0
4
0
0
0
0
9
0
3
0
0
0
0
0
4
0
0
0
0
4
3
15
2
0
0
1
0
0
6
7
0
0
0
3
2
0
0
4
0
2
3
2
3
4
4
0
0
15
2
6
0
2
0
0
0
0
5
2
0
0
1
0
5
2
0
2
0
0
0
0
0
7
0
0
0
0
9
0
2
2
2
1
2
0
0
0
2
0
0
0
0
5
6
1
1
4
0
2
0
0
2
4
0
0
0
0
7
0
0
0
6
5
3
4
0
0
0
0
0
0
0
0
0
0
0
0
0
75
12
10
52
87
14
22
9
20
11
7
18
0
0
222
25
5
74
79
106
138
80
46
162
40
80
43
84
32
64
62
12
83
69
1078
9
1
1
6
0
5
5
0
0
0
0
2
0
43
0
11
7
32
29
36
53
35
16
58
21
10
26
35
18
19
12
13
16
9
166
0
0
0
0
0
2
2
0
0
0
0
0
0
38
3
0
3
5
0
2
6
5
0
4
2
2
2
2
2
0
0
0
0
3
15
0
0
0
0
87
2
0
0
0
0
0
0
0
5
2
0
0
0
0
3
5
0
2
0
1
0
0
4
2
0
0
0
0
2
0
8
1
1
5
0
4
0
5
2
2
0
0
0
66
11
4
0
0
6
10
8
9
2
19
5
15
18
11
5
6
0
2
10
3
34
12
2
2
8
0
0
6
0
4
0
0
5
2
164
15
19
8
4
0
5
36
20
31
48
27
37
36
21
7
22
2
4
6
17
109
31
5
4
22
0
7
20
15
9
3
53
8
13
122
19
42
16
19
5
0
5
11
18
48
15
10
22
37
5
8
8
8
6
17
76
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
31
111
32
39
42
42
29
24
25
5
19
51
360
24
4
3
16
0
9
9
11
0
4
0
2
0
117
26
32
5
67
34
138
0
0
0
36
12
26
29
20
5
27
8
10
8
30
71
0
0
0
0
0
2
5
0
0
2
0
2
0
57
7
3
0
3
6
0
0
0
0
7
4
11
18
13
12
6
2
5
8
9
5
2
0
0
1
0
5
7
0
2
4
0
0
2
131
17
8
3
2
51
51
0
48
0
0
10
16
19
37
21
5
14
5
22
14
57
8
1
1
5
0
4
10
3
0
0
0
0
9
309
16
7
3
3
35
16
0
15
10
6
0
12
20
28
15
8
15
18
30
16
133
8
1
1
5
0
0
0
0
0
0
0
0
0
29
18
4
0
4
9
21
0
20
11
16
2
0
5
9
16
8
11
13
19
17
29
0
0
0
0
0
2
0
0
0
0
0
0
0
71
6
9
0
4
24
0
0
0
13
27
10
5
0
4
16
3
6
0
21
14
128
22
4
3
15
87
4
7
0
0
2
0
0
2
99
31
9
3
1
33
31
0
29
8
20
25
5
6
0
4
14
11
15
22
23
119
0
0
0
0
0
0
2
0
0
0
0
0
0
29
2
2
0
1
3
11
0
10
6
6
5
4
9
6
0
0
2
4
16
13
52
3
0
0
2
0
0
0
0
0
0
0
0
0
80
6
3
0
3
3
16
0
15
10
24
11
19
20
16
4
0
0
5
16
19
43
0
0
0
0
0
0
0
0
0
0
0
0
0
61
2
3
0
0
2
6
0
5
2
8
8
7
7
12
10
0
0
0
6
3
10
3
0
0
2
0
0
3
0
0
0
0
0
0
80
6
2
0
1
0
0
0
0
2
4
6
12
12
9
2
0
0
0
0
3
38
2
0
0
1
0
2
0
0
0
0
0
0
0
71
6
0
0
0
2
6
0
5
10
22
11
10
7
8
10
0
0
0
0
2
10
0
0
0
0
0
0
2
5
0
0
0
0
0
19
11
0
0
0
3
21
0
20
6
16
34
4
13
13
8
9
2
3
0
0
48
65
10
9
45
0
7
22
0
9
2
0
2
8
884
39
26
8
18
88
97
0
91
39
82
103
112
129
110
63
55
44
27
69
89
0
















































































73
A.2.12
















































































0
1
1
1
8
9
18
3
6
7
4
3
8
0
27
1
4
11
14
37
20
31
11
40
6
10
13
30
10
19
5
10
17
22
473
Matriz 16:00 - 17:00
0
0
0
0
1
1
1
0
0
1
0
0
1
0
2
0
0
1
1
3
2
2
1
3
0
1
1
2
1
1
0
1
1
2
38
0
0
0
0
1
1
2
0
1
1
0
0
1
0
3
0
0
1
2
4
2
4
1
5
1
1
2
4
1
2
1
1
2
3
57
0
0
0
0
6
7
14
2
5
6
3
2
6
0
22
1
3
8
11
30
16
25
8
32
4
8
10
24
8
15
4
8
13
17
378
19
1
2
15
0
0
2
0
2
0
0
0
7
0
8
0
0
0
6
7
10
4
3
4
2
0
2
7
0
0
0
0
0
2
29
4
0
0
3
2
0
0
0
0
0
0
0
0
1
4
0
0
0
9
0
3
0
0
2
0
1
2
0
3
0
0
0
0
2
35
10
1
1
8
0
0
0
0
2
2
0
0
0
0
4
0
0
3
0
6
3
0
3
3
2
1
3
4
0
4
0
0
2
0
18
14
1
2
11
2
0
0
0
2
0
0
3
0
0
0
4
4
3
1
4
5
5
0
4
3
2
2
8
0
0
7
2
3
0
47
4
0
0
3
2
2
0
0
0
0
0
3
0
0
4
0
0
3
1
2
6
0
2
2
0
0
2
3
2
0
0
0
0
0
12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
4
3
4
0
0
0
0
0
2
0
0
0
0
2
3
6
0
0
0
0
0
3
2
0
5
0
0
0
0
0
0
0
0
1
3
0
2
0
0
2
0
1
0
2
0
4
0
7
2
2
70
0
0
0
0
0
0
2
2
0
0
0
0
0
0
16
2
0
1
0
3
2
2
3
2
3
0
3
4
0
0
0
0
0
3
24
0
0
0
0
0
2
0
0
2
0
0
0
0
0
8
0
0
1
2
2
3
0
3
0
1
1
2
0
0
4
0
0
0
0
35
119
10
14
95
27
21
36
8
25
24
35
19
18
0
175
39
22
56
92
148
161
150
66
273
52
91
73
109
55
143
76
53
129
90
1135
8
1
1
6
6
3
3
3
0
0
0
3
0
32
0
10
0
51
22
44
41
27
27
75
23
32
17
28
21
25
17
19
48
18
195
4
0
0
3
2
6
0
0
0
0
7
0
0
118
3
0
0
1
2
10
23
2
2
5
3
4
4
7
0
3
2
0
0
6
12
0
0
0
0
0
0
4
0
0
0
0
0
0
0
5
0
0
0
0
0
4
5
3
0
3
1
0
0
0
0
0
0
0
0
0
0
0
0
0
6
2
0
0
0
0
0
0
0
10
13
0
0
0
11
8
15
5
2
5
6
7
3
9
6
4
0
2
6
0
58
7
1
1
5
3
2
4
2
0
0
3
3
0
349
10
7
3
2
0
4
19
15
33
42
34
29
22
18
29
25
2
2
11
27
317
37
3
4
30
15
6
6
26
9
6
33
17
5
91
23
41
7
17
13
0
14
24
17
37
17
41
14
12
20
9
10
3
7
18
87
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
27
128
24
36
21
48
13
36
9
10
17
25
173
7
1
1
5
19
6
6
2
4
2
0
7
3
99
22
18
4
27
44
19
0
0
2
28
12
24
25
28
18
20
24
13
17
28
64
4
0
0
3
2
4
3
0
2
0
0
0
3
69
6
10
2
2
6
11
0
3
0
0
3
9
4
15
5
0
2
0
9
13
52
7
1
1
5
9
3
6
0
0
0
0
0
3
143
10
10
2
6
41
51
0
13
2
0
5
10
22
18
3
10
3
2
8
28
35
29
2
3
23
9
5
3
0
2
2
0
7
0
123
8
13
4
3
39
30
0
41
13
7
0
2
17
19
14
4
9
4
26
19
35
5
0
1
4
2
2
2
0
2
2
0
0
3
74
7
9
0
6
17
11
0
7
2
11
0
0
3
7
13
13
17
15
22
14
24
4
0
0
3
2
3
3
0
0
0
0
0
3
67
20
9
0
3
14
22
0
39
9
27
5
2
0
2
2
4
7
5
11
24
104
29
2
3
23
13
8
2
0
2
2
0
7
12
74
17
18
4
19
35
43
0
54
18
31
14
25
3
0
13
17
22
7
21
28
133
0
0
0
0
2
0
0
0
0
0
0
5
0
32
1
2
3
0
6
15
0
11
2
14
5
11
15
7
0
5
2
3
7
8
24
2
0
0
2
2
0
2
0
0
0
0
0
0
30
3
2
3
2
6
15
0
24
7
15
10
12
20
16
2
0
0
8
4
12
64
2
0
0
2
0
2
3
0
0
0
0
3
9
59
3
0
2
0
9
22
0
30
9
11
12
6
13
15
2
0
0
0
0
8
6
0
0
0
0
2
0
0
0
0
0
0
0
0
3
6
0
0
1
6
5
0
3
2
5
6
4
11
11
4
2
1
0
0
6
35
0
0
0
0
0
2
3
0
0
0
0
0
0
20
4
0
2
3
10
12
0
7
2
9
12
14
9
10
6
0
0
1
0
6
41
0
0
0
0
2
5
3
0
0
2
0
0
0
47
5
0
2
1
0
19
0
5
9
8
28
5
9
8
10
4
4
3
0
0
6
127
10
15
101
24
6
12
0
2
4
0
7
5
825
48
44
9
36
144
168
0
170
33
102
138
138
151
152
81
81
62
64
105
165
0
















































































74
A.2.13
















































































0
1
2
0
12
9
10
8
10
4
4
6
15
0
25
3
0
5
12
33
38
31
17
33
17
18
12
54
18
22
10
13
20
27
767
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
2
1
1
1
1
1
0
2
1
1
0
1
1
1
31
Matriz 17:00 - 18:00
0
0
0
0
2
1
2
1
2
1
1
1
2
0
4
0
0
1
2
5
6
5
3
5
3
3
2
9
3
4
2
2
3
4
123
0
0
0
0
9
7
8
6
8
3
3
4
12
0
20
2
0
4
10
26
30
24
13
26
13
14
10
43
14
18
8
10
16
22
613
14
1
2
11
0
0
0
0
0
3
0
0
0
1
3
0
0
0
8
3
8
6
4
6
1
4
4
38
5
5
0
10
7
1
109
0
0
0
0
2
0
0
0
0
0
0
0
2
0
6
0
2
0
2
7
3
0
0
2
1
2
2
7
0
3
0
0
1
1
28
12
0
2
9
0
0
0
0
0
0
2
0
0
0
3
2
0
2
3
0
10
2
3
4
1
4
10
11
0
7
0
3
7
2
55
3
0
0
2
0
0
0
0
0
0
0
0
2
0
0
2
0
3
6
9
8
0
0
5
5
0
8
6
5
3
0
3
6
2
62
0
0
0
0
2
0
0
0
0
0
0
0
2
0
3
0
0
2
0
0
5
4
7
2
1
0
2
3
0
3
0
0
2
3
34
0
0
0
0
0
2
0
0
0
0
0
0
0
0
3
0
0
0
0
3
7
0
2
8
0
2
4
7
0
5
0
3
2
2
28
6
0
1
4
2
2
0
0
0
0
0
2
0
0
6
1
0
0
7
4
4
0
3
6
0
0
2
10
5
3
2
6
25
3
34
0
0
0
0
0
0
2
0
0
0
4
0
0
0
3
0
0
0
4
0
4
10
0
2
0
2
0
7
2
0
0
3
3
0
21
4
0
1
3
4
0
2
0
3
0
0
0
0
0
3
0
0
0
4
3
4
2
2
0
0
0
5
6
0
0
3
0
0
0
28
116
5
19
93
28
20
36
15
9
5
15
29
16
0
225
29
18
56
123
151
196
164
78
299
70
118
107
184
74
195
111
85
169
137
2056
13
1
2
10
3
3
0
3
5
0
2
5
16
8
0
6
0
22
35
44
68
71
43
66
23
55
32
64
33
51
23
26
47
51
280
0
0
0
0
4
2
3
0
0
0
2
2
2
38
5
0
0
0
2
9
18
4
6
17
1
8
5
3
7
3
0
0
1
8
21
0
0
0
0
0
0
0
0
2
0
0
0
0
4
1
0
0
0
2
2
4
2
0
0
2
0
2
2
0
0
2
0
3
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
30
17
3
0
0
3
5
5
8
3
0
3
0
7
4
2
3
0
0
2
2
21
8
0
1
6
7
3
7
2
5
0
5
8
0
357
18
20
0
3
0
2
30
30
21
52
35
27
81
38
10
16
5
13
19
29
129
34
1
5
27
0
5
3
6
5
3
15
2
10
143
15
31
2
20
8
0
7
31
19
41
21
22
8
33
13
21
15
9
16
26
89
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
17
79
30
31
24
28
16
27
26
12
14
26
41
16
1
2
12
12
5
10
3
5
0
4
5
4
135
16
17
2
29
25
8
0
0
5
23
9
19
19
13
14
13
23
23
15
36
62
6
0
1
4
0
4
3
3
0
0
0
2
0
105
10
6
0
0
12
26
0
0
0
3
2
11
4
10
6
3
6
10
3
15
41
6
0
1
4
14
6
7
2
2
3
0
2
2
90
27
2
8
4
36
26
0
26
2
0
3
8
8
19
14
17
5
12
10
31
68
11
0
2
8
4
0
2
0
2
0
0
5
4
79
17
6
6
3
30
23
0
33
12
3
0
0
7
12
17
23
15
10
14
13
75
3
0
0
2
0
0
5
0
0
0
2
0
0
64
5
7
0
4
9
13
0
11
4
0
0
0
0
3
12
5
12
8
17
18
55
2
0
0
1
2
2
2
0
0
0
0
0
0
75
20
2
0
1
14
10
0
13
8
16
5
3
0
3
5
14
17
8
15
39
48
22
1
4
18
16
5
4
7
5
0
4
5
4
124
16
2
6
8
23
41
0
23
10
31
19
11
3
0
10
19
32
13
28
13
95
0
0
0
0
0
0
0
0
0
0
0
0
2
30
7
3
0
1
6
10
0
10
4
8
6
7
7
5
0
0
3
9
5
10
28
4
0
1
3
0
0
2
0
0
3
0
5
0
38
3
3
0
3
8
10
0
15
3
9
13
14
5
18
3
0
0
0
3
11
34
2
0
0
1
0
0
0
4
0
0
0
0
0
42
3
3
0
7
0
10
0
13
6
11
8
14
18
11
5
0
0
0
1
8
14
0
0
0
0
0
0
0
0
0
0
0
0
0
42
2
0
0
2
2
2
0
6
3
10
2
2
7
8
0
0
2
0
0
4
7
9
0
1
7
0
3
2
0
0
0
0
2
0
30
4
2
2
0
3
9
0
6
4
7
10
11
12
8
4
1
0
0
0
0
48
0
0
0
0
4
0
7
2
0
0
2
0
0
165
4
2
0
0
2
7
0
9
14
9
20
5
5
11
4
5
3
2
0
0
28
143
6
23
114
28
25
15
2
6
9
8
6
2
1039
73
46
12
33
157
194
0
218
55
110
175
160
202
225
142
103
77
88
126
225
0
















































































75
A.2.14
















































































0
2
3
5
32
11
26
4
21
3
11
30
8
0
22
12
1
4
18
56
57
47
25
46
13
23
11
50
7
9
21
20
22
29
374
0
0
1
0
5
2
4
1
3
0
2
5
1
0
3
2
0
1
3
9
9
8
4
7
2
4
2
8
1
1
3
3
4
5
60
Matriz 18:00 - 19:00
0
0
0
1
4
2
4
1
3
0
1
4
1
0
3
2
0
1
2
8
8
7
4
6
2
3
1
7
1
1
3
3
3
4
52
0
0
0
0
22
8
18
3
14
2
7
21
5
0
15
8
1
3
12
39
40
33
18
32
9
16
7
35
5
6
15
14
15
20
262
17
3
2
12
0
2
0
1
3
0
2
6
5
0
9
3
0
2
4
4
14
8
2
11
1
6
0
11
6
9
5
3
7
14
227
2
0
0
1
0
0
0
0
0
0
0
2
0
1
5
0
0
3
3
2
3
0
5
6
0
0
2
5
2
1
0
0
4
6
9
15
2
2
11
2
0
0
0
0
1
1
2
0
0
5
3
2
0
7
6
10
4
3
7
0
3
2
8
0
3
0
2
13
9
114
2
0
0
1
0
2
0
0
0
0
0
6
2
0
3
3
3
1
5
6
7
10
2
13
3
6
5
21
0
1
2
4
7
6
53
5
1
1
3
4
0
1
0
0
0
0
2
1
0
5
0
2
1
5
3
4
0
5
4
2
0
2
3
0
1
6
4
2
4
18
2
0
0
1
0
0
0
0
0
0
0
0
0
0
3
0
0
0
5
1
6
2
0
12
2
4
0
8
3
2
0
2
4
3
18
2
0
0
1
0
2
2
4
1
0
0
0
2
0
3
3
0
1
4
4
12
2
2
3
1
5
0
16
2
3
9
4
3
2
44
3
0
0
2
4
0
1
2
4
2
0
0
1
0
7
0
0
3
2
7
8
4
5
1
3
2
5
8
0
0
5
4
4
3
44
3
0
0
2
12
7
16
2
4
4
0
2
0
0
15
0
0
0
0
1
4
4
2
3
4
5
2
2
0
2
2
0
4
0
18
130
21
18
91
29
27
22
13
10
10
23
64
20
0
178
87
4
36
119
177
282
213
97
434
91
143
104
153
94
104
117
83
181
138
2244
9
1
1
6
0
0
5
0
0
2
3
0
0
48
0
18
10
17
40
54
108
56
37
73
27
51
33
75
26
21
32
26
63
62
305
3
0
0
2
8
5
0
2
3
2
1
3
1
189
11
0
2
1
6
6
31
2
5
11
4
12
3
7
3
2
6
3
7
3
70
0
0
0
0
0
0
0
0
0
0
0
0
0
16
2
0
0
1
0
1
6
4
0
0
0
5
2
0
0
0
0
0
2
0
0
2
0
0
1
4
0
0
0
1
0
0
0
0
59
11
10
0
0
2
0
7
5
9
2
3
4
11
11
5
5
3
2
7
2
35
5
1
1
3
2
5
0
0
2
0
0
4
1
256
20
14
1
2
0
0
26
37
31
27
21
25
34
21
11
18
15
7
13
52
227
17
3
2
12
2
7
6
1
0
2
2
4
2
169
15
38
7
19
11
0
3
12
11
25
10
17
23
20
29
9
11
4
13
13
87
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
11
52
18
40
23
27
6
14
14
9
21
10
53
26
4
4
18
12
5
6
3
1
2
1
2
2
157
11
35
3
14
31
13
0
0
2
0
13
15
30
28
8
14
18
9
20
31
87
0
0
0
0
2
4
4
0
1
0
0
2
1
52
6
2
0
0
11
29
0
0
0
0
4
7
17
9
3
5
0
8
8
6
27
2
0
0
1
2
0
2
1
0
1
2
4
1
130
13
10
1
0
15
28
0
6
0
0
7
8
3
11
8
5
12
7
13
13
27
15
2
2
11
2
4
0
0
1
0
1
0
1
79
3
12
0
0
28
33
0
11
11
1
0
0
3
11
5
2
5
4
22
8
44
9
1
1
6
0
0
2
1
0
1
0
0
2
20
5
9
0
4
8
12
0
8
6
3
1
0
2
13
11
3
6
2
13
7
70
0
0
0
0
0
0
0
0
0
1
0
0
0
52
7
7
1
0
6
22
0
13
6
9
11
2
0
2
3
7
6
4
10
34
53
21
3
3
14
2
2
1
2
0
1
2
3
1
83
11
7
0
5
11
26
0
43
22
23
14
0
1
0
3
13
12
15
26
18
18
0
0
0
0
0
0
0
0
0
0
0
0
0
28
5
2
0
2
6
9
0
18
5
6
6
0
15
5
0
0
3
0
3
8
0
2
0
0
1
0
0
0
0
0
0
0
0
0
44
1
2
0
4
8
3
0
9
5
7
8
6
8
12
2
0
0
0
0
8
27
0
0
0
0
0
0
0
0
0
0
0
0
0
24
1
2
0
0
3
5
0
2
2
10
1
5
9
17
2
0
0
2
3
5
0
0
0
0
0
0
0
1
0
0
0
0
0
0
16
5
0
0
0
0
5
0
6
3
0
1
6
5
10
4
1
0
0
0
0
0
6
1
1
4
2
0
2
0
0
0
2
2
0
32
2
4
0
3
3
10
0
13
0
8
10
9
9
16
0
1
2
4
0
2
9
0
0
0
0
0
2
1
1
0
0
2
4
0
55
6
0
0
0
3
0
0
6
12
5
17
3
5
12
0
1
3
3
0
0
9
101
16
14
70
17
18
11
2
3
2
16
11
2
923
72
33
8
21
134
191
0
193
62
163
159
224
205
242
134
103
108
113
184
203
0
















































































76
A.2.15
















































































0
1
2
3
21
6
17
3
3
2
0
8
2
0
30
1
4
13
16
25
47
34
15
24
8
16
18
36
9
8
9
8
11
20
195
Matriz 19:00 - 20:00
0
0
0
1
1
0
1
0
0
0
0
0
0
0
2
0
0
1
1
2
3
2
1
1
0
1
1
2
1
0
1
0
1
1
12
0
0
0
1
3
1
2
0
0
0
0
1
0
0
4
0
0
2
2
4
7
5
2
3
1
2
2
5
1
1
1
1
1
3
27
0
0
0
0
17
4
14
2
2
1
0
6
2
0
24
1
3
10
13
20
38
27
12
19
6
12
14
28
7
6
7
6
8
16
156
23
1
3
18
0
0
0
0
6
0
0
0
0
0
2
0
4
4
3
7
20
7
4
5
1
3
4
13
2
1
0
0
5
3
16
7
0
1
6
0
0
0
0
2
2
0
0
0
0
2
0
0
4
0
0
2
2
0
0
2
2
7
5
0
0
0
0
2
0
8
7
0
1
6
0
0
0
0
0
2
0
2
2
0
12
0
0
0
5
7
5
6
2
2
1
2
4
9
2
0
2
2
0
0
46
5
0
1
4
0
0
0
0
2
0
1
0
0
0
0
0
4
0
0
1
13
9
3
8
2
7
0
3
3
1
6
4
2
4
46
5
0
1
4
5
3
0
0
0
2
0
0
3
1
0
0
0
0
0
3
5
0
0
1
2
7
0
0
0
3
0
0
5
3
8
0
0
0
0
0
0
0
0
0
0
0
0
2
0
6
0
2
0
2
7
4
0
0
2
0
0
2
5
0
0
3
0
3
0
16
12
1
2
9
0
0
0
0
0
0
0
0
0
0
2
0
0
4
5
2
5
7
0
1
2
3
0
9
0
2
0
0
2
3
61
0
0
0
0
4
0
5
0
2
0
0
0
0
0
2
0
0
0
0
3
9
3
2
1
1
6
3
8
0
1
2
2
4
2
8
3
0
0
2
2
2
5
0
0
2
0
0
0
0
0
0
0
0
0
3
0
0
2
3
0
2
0
2
2
0
0
0
0
0
0
70
4
10
56
20
12
13
7
6
2
10
18
6
0
114
30
14
70
121
145
207
147
80
260
59
136
96
179
48
64
92
27
112
101
1766
5
0
1
4
0
0
4
1
0
0
0
0
0
49
0
10
9
19
27
39
56
41
30
48
22
39
21
45
17
12
20
22
20
30
313
0
0
0
0
2
0
0
0
0
0
3
0
0
54
10
0
0
4
7
3
17
3
5
2
3
5
7
6
2
3
0
2
2
0
31
0
0
0
0
0
0
2
0
0
0
0
0
0
29
2
0
0
0
3
0
5
0
2
0
0
2
2
5
0
2
0
0
0
0
0
3
0
0
2
2
0
0
0
0
0
0
0
0
26
13
3
3
0
6
0
10
11
8
0
2
3
8
8
2
0
2
0
4
6
31
41
2
6
33
10
5
4
1
0
3
0
0
0
346
10
17
0
4
0
0
25
30
19
10
18
18
7
27
5
10
0
8
8
18
198
7
0
1
6
0
2
5
0
2
0
5
2
0
68
14
3
0
11
0
0
0
6
12
6
8
17
19
13
5
1
5
0
5
6
54
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
5
13
11
14
10
17
2
10
10
2
9
8
61
43
3
6
34
0
0
4
1
0
5
5
2
7
108
18
3
8
8
21
10
0
0
5
2
3
9
9
22
10
2
8
7
11
16
77
0
0
0
0
0
0
0
0
0
0
0
0
0
51
4
0
0
5
14
10
0
0
0
0
0
17
11
3
3
3
0
4
2
5
16
0
0
0
0
0
0
0
0
0
0
0
0
0
20
4
5
0
7
21
10
0
3
0
0
1
9
2
15
9
5
6
0
5
5
8
5
0
1
4
0
0
2
0
0
0
0
0
0
46
7
4
3
4
25
9
0
6
9
0
0
2
3
0
3
0
2
5
5
8
23
3
0
0
2
0
2
0
0
0
0
0
0
0
12
3
0
0
2
10
10
0
4
4
2
0
0
3
3
4
1
3
7
3
9
0
3
0
0
2
0
0
0
0
0
0
0
0
0
20
1
0
0
0
5
5
0
4
4
7
2
2
0
0
4
5
3
0
0
4
39
3
0
0
2
2
0
3
0
0
0
0
0
0
46
3
0
0
2
16
19
0
27
9
11
4
3
0
0
0
8
17
11
5
5
16
0
0
0
0
0
0
0
0
0
0
0
0
0
12
2
0
3
0
3
2
0
6
2
0
0
5
4
9
0
0
0
2
6
2
16
0
0
0
0
2
0
0
0
0
0
0
0
0
12
1
0
0
0
5
2
0
8
7
2
2
3
2
4
0
0
0
0
2
2
16
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
0
0
0
2
8
0
0
2
4
0
3
4
8
5
0
0
2
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
2
0
0
0
6
2
0
2
0
2
3
0
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
17
2
3
0
0
2
2
0
7
2
3
0
5
7
4
0
4
2
2
0
2
0
3
0
0
2
0
2
3
2
0
0
0
0
0
17
0
0
0
0
2
0
0
3
18
4
1
2
2
5
0
2
1
2
0
0
8
66
4
9
52
12
7
0
2
6
0
10
2
3
799
41
13
3
32
130
72
0
123
26
82
102
197
230
228
95
68
58
60
92
184
0
















































































77
A.2.16
















































































Matriz 20:00 - 21:00
0
1
1
3
16
14
15
4
9
4
6
7
16
0
11
2
0
1
9
7
10
12
12
16
3
7
7
12
4
6
3
4
10
5
51
0
0
0
1
2
2
2
0
1
1
1
1
2
0
2
0
0
0
1
1
1
2
2
2
0
1
1
2
0
1
0
1
1
1
7
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
3
0
0
0
0
13
11
12
3
7
3
5
5
13
0
9
1
0
1
7
5
8
9
10
13
2
6
6
9
3
5
2
3
8
4
40
31
4
2
25
0
0
0
0
0
0
0
0
0
0
2
1
0
0
4
0
2
7
0
2
0
3
4
3
0
4
0
0
2
0
6
0
0
0
0
0
0
0
0
0
0
0
0
16
0
0
0
0
0
2
1
0
4
0
0
0
2
1
2
0
0
0
0
0
0
0
38
5
2
30
0
0
0
0
0
0
0
3
32
0
0
0
0
1
1
1
1
4
2
0
0
6
1
3
4
0
5
0
4
1
0
20
3
1
16
0
0
0
0
0
0
0
0
0
0
0
0
2
0
3
1
4
6
0
2
2
0
2
2
0
0
2
0
2
1
6
3
0
0
2
2
0
0
0
0
0
0
0
0
0
2
0
0
0
1
0
0
2
0
0
0
2
0
2
0
0
0
4
5
1
0
0
0
0
0
0
0
0
2
0
0
0
3
16
0
0
2
0
0
1
2
1
3
0
0
0
2
1
3
0
2
0
0
4
3
0
0
0
0
0
0
2
0
2
0
0
0
0
0
1
0
0
0
0
1
5
3
3
0
1
0
0
2
2
0
0
0
0
2
1
101
5
1
0
4
3
0
0
0
0
0
0
0
0
0
2
0
0
0
0
2
0
2
0
0
1
3
1
0
0
0
3
0
2
1
6
7
1
0
6
0
0
2
0
4
4
0
0
0
0
7
0
0
1
0
4
2
2
4
0
1
0
1
4
0
0
0
0
0
0
6
84
12
5
67
22
7
14
2
5
7
9
13
95
0
73
10
8
9
83
60
88
106
45
94
23
119
62
105
24
86
68
28
71
41
1318
14
2
1
11
4
0
0
0
0
0
0
2
0
71
0
3
2
2
16
13
16
37
29
13
5
22
17
26
0
8
20
4
22
9
212
0
0
0
0
0
0
0
0
2
0
0
0
16
22
5
0
0
0
1
6
1
13
3
1
1
2
6
2
0
4
0
0
5
1
6
0
0
0
0
0
0
0
0
0
0
0
0
0
11
0
0
0
0
0
1
2
4
0
0
1
0
0
0
0
0
0
0
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
16
22
3
0
0
0
0
2
2
5
0
1
2
4
5
3
2
0
0
4
2
0
11
7
1
0
6
3
2
0
2
0
0
4
3
0
270
7
4
2
2
0
0
12
14
12
4
5
10
9
12
2
8
2
0
10
10
48
12
2
1
9
6
2
0
0
4
0
2
3
0
77
4
2
2
0
0
0
1
10
13
3
3
12
6
12
8
2
20
0
5
1
48
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
5
4
3
10
11
4
0
9
2
4
2
4
0
20
3
1
16
3
3
2
0
0
0
0
2
0
109
10
6
0
2
16
3
0
0
3
1
3
6
13
17
4
10
12
8
11
4
48
0
0
0
0
0
2
0
0
0
0
0
0
0
39
2
0
0
0
6
8
0
0
0
0
1
7
0
0
0
0
3
0
0
2
32
0
0
0
0
0
2
0
0
0
0
0
3
0
44
4
4
0
2
11
3
0
9
0
0
1
2
3
11
2
0
3
4
2
3
11
0
0
0
0
7
0
0
0
0
0
0
0
0
52
3
0
0
0
8
6
0
0
4
0
0
0
1
2
8
10
0
4
8
6
22
3
0
0
2
0
0
0
0
0
0
3
0
0
9
2
0
0
0
4
4
0
2
0
0
0
0
1
0
0
3
5
4
0
4
16
0
0
0
0
0
0
0
0
0
0
0
0
0
11
3
0
0
0
7
4
0
2
2
2
0
0
0
0
0
0
3
0
0
3
11
3
0
0
2
2
2
4
0
0
0
2
0
0
93
9
0
0
2
15
7
0
15
7
5
0
2
0
0
5
4
9
4
11
5
80
0
0
0
0
0
0
0
0
0
0
0
0
0
9
2
0
0
0
3
8
0
3
2
3
2
0
5
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
14
3
0
0
0
2
3
0
6
4
5
0
2
2
2
0
0
0
0
0
0
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
3
0
0
0
0
0
2
0
0
0
0
0
0
2
0
6
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
20
1
2
0
2
0
0
0
3
6
2
0
2
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
36
1
0
0
0
0
0
0
0
6
2
0
0
3
3
0
0
0
0
0
0
6
54
7
3
43
7
10
14
4
3
2
0
7
0
670
37
8
2
13
114
26
0
77
24
53
79
180
165
185
61
57
84
29
60
79
0
















































































78
A.2.17
Matriz 21:00 - 22:00
















































































0
1
1
1
22
10
14
10
8
2
13
12
26
5
23
2
2
0
3
3
6
18
5
10
4
8
14
6
2
4
2
2
3
3
14
0
0
0
0
4
2
2
2
1
0
2
2
4
1
4
0
0
0
0
0
1
3
1
2
1
1
2
1
0
1
0
0
0
0
2
0
0
0
1
3
1
2
1
1
0
2
2
4
1
3
0
0
0
0
0
1
3
1
1
0
1
2
1
0
1
0
0
0
0
2
0
0
0
0
15
7
10
7
5
1
9
8
18
4
16
1
1
0
2
2
4
13
3
7
2
5
9
4
1
3
1
1
2
2
10
12
2
2
8
0
1
3
0
1
0
0
2
7
0
6
0
0
0
2
0
3
11
2
0
3
2
0
4
0
3
1
0
2
0
55
9
1
1
6
2
0
0
0
1
0
0
0
0
0
3
0
0
0
0
0
2
0
0
0
1
2
1
0
0
0
0
0
0
0
0
8
1
1
5
2
0
0
0
1
0
0
4
3
0
0
0
0
0
3
0
0
3
0
0
1
3
0
2
0
0
0
0
0
0
0
24
4
3
16
3
0
0
0
0
0
0
3
0
4
0
1
0
0
5
0
2
2
0
0
0
3
0
4
0
0
1
0
0
6
12
6
1
1
4
3
0
0
0
0
2
0
0
3
0
0
0
0
0
0
1
3
0
0
2
0
0
1
2
0
0
1
0
0
2
0
2
0
0
1
2
0
1
0
0
0
0
0
9
6
3
0
0
3
3
3
2
0
0
0
1
3
0
2
0
0
0
0
5
0
4
2
0
0
1
4
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
2
3
0
0
4
0
4
0
0
0
0
2
4
16
2
0
0
1
0
1
0
0
1
0
0
0
0
0
3
0
0
0
3
0
2
3
0
0
0
0
2
2
0
0
1
2
3
0
0
6
1
1
4
2
0
0
0
0
2
0
0
0
0
8
0
0
0
0
1
0
25
5
0
1
3
0
0
0
3
0
0
0
0
0
105
17
15
73
14
8
15
4
2
7
6
14
16
0
102
8
1
18
98
21
56
79
45
100
21
102
91
85
17
49
33
18
72
36
1125
9
1
1
6
2
1
0
0
1
4
0
3
3
127
0
1
1
0
18
9
8
8
10
41
12
22
18
12
6
19
9
4
13
16
67
3
0
0
2
0
0
0
0
0
0
0
0
0
22
5
0
0
0
2
5
3
4
3
0
0
4
1
7
1
0
0
0
2
0
20
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
1
0
0
0
0
0
0
0
0
0
3
0
0
0
0
2
0
0
17
3
5
0
0
0
0
2
4
3
0
1
3
1
2
0
4
0
0
6
2
12
24
4
3
16
4
2
1
0
2
0
0
2
3
226
11
6
3
0
0
0
7
8
13
2
9
14
3
8
1
0
0
0
6
6
183
2
0
0
1
0
0
0
0
0
0
2
2
0
49
8
4
3
0
4
0
2
4
2
0
3
11
4
5
3
3
2
4
0
4
94
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
0
2
10
3
8
2
1
4
4
9
4
36
15
2
2
10
2
1
0
0
0
0
0
2
3
57
4
1
0
0
14
0
0
0
0
0
4
14
3
16
1
6
0
2
10
11
47
0
0
0
0
3
0
0
0
0
0
0
0
0
25
1
0
0
2
0
0
0
0
0
0
1
6
3
5
1
0
0
2
2
0
16
3
0
0
2
3
0
0
0
1
0
2
0
0
33
2
0
0
0
5
0
0
0
0
0
0
0
6
6
0
2
2
0
2
2
28
5
1
1
4
0
0
2
0
1
0
2
0
0
41
4
2
0
0
5
3
0
4
4
0
0
0
3
2
0
0
4
2
2
0
24
0
0
0
0
0
0
0
0
0
0
0
0
0
6
0
0
0
0
0
2
0
2
2
0
0
0
0
2
0
0
2
4
5
2
28
0
0
0
0
0
0
0
0
0
0
0
0
0
3
3
1
0
2
0
3
0
2
3
0
0
0
0
0
0
0
1
0
5
0
20
13
2
2
9
2
1
1
0
1
0
0
0
0
86
1
2
0
0
9
3
0
11
5
4
0
3
0
0
0
5
6
2
5
6
67
0
0
0
0
0
0
0
0
0
0
0
0
0
9
2
0
0
0
3
0
0
2
2
4
3
5
3
0
0
0
5
2
2
2
24
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
3
0
3
2
0
0
5
2
0
0
0
0
0
0
2
4
0
0
0
0
0
0
0
4
0
0
0
0
0
3
2
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
3
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
0
0
0
2
0
0
0
0
0
0
5
3
1
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
1
0
0
0
0
0
0
3
2
0
0
3
0
5
0
0
0
0
0
0
20
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
2
4
0
0
5
0
1
0
0
0
0
0
0
0
50
8
7
35
4
0
2
4
2
7
0
3
0
585
25
5
3
5
68
20
0
53
38
63
50
170
155
138
30
34
70
29
53
44
0
















































































79
A.2.18
Matriz 22:00 - 23:00
















































































0
1
0
2
12
12
12
3
20
2
7
21
10
0
9
2
0
0
5
1
0
5
2
1
1
13
8
12
2
0
2
2
0
0
0
0
0
1
0
1
1
1
0
2
0
1
2
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
2
0
1
2
1
0
1
0
0
0
1
0
0
1
0
0
0
2
1
1
0
0
0
0
0
0
0
0
0
0
0
10
10
10
2
16
1
5
16
8
0
7
1
0
0
4
0
0
4
1
1
0
10
6
10
1
0
2
1
0
0
0
6
0
1
4
0
0
2
0
3
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
4
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
7
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
3
0
4
0
0
0
0
0
0
0
6
0
0
0
2
4
0
0
0
0
0
0
0
10
1
1
8
10
0
0
0
0
0
0
1
0
0
4
0
0
0
0
0
0
12
0
0
0
2
5
2
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
10
0
3
2
2
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
3
2
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
5
2
0
0
0
0
0
0
0
3
0
0
2
5
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
86
7
10
69
10
2
3
3
6
0
4
1
1
0
78
3
4
8
57
10
52
60
35
39
11
175
40
81
6
32
12
7
69
44
548
8
1
1
6
0
0
0
0
0
3
1
1
1
84
0
0
0
2
19
5
2
15
0
19
3
58
10
26
4
16
4
7
13
11
80
0
0
0
0
0
0
0
0
2
0
0
0
0
7
2
0
0
0
7
0
0
0
0
0
1
4
2
0
0
0
0
0
0
0
11
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
11
7
2
0
0
4
0
2
0
0
0
0
2
0
0
0
0
0
0
4
0
3
8
1
1
6
0
0
0
0
0
0
0
2
0
112
12
4
0
0
0
0
2
8
6
0
2
8
3
6
2
3
0
0
0
22
32
0
0
0
0
0
2
0
1
0
0
0
0
0
42
3
0
2
9
0
0
0
6
3
0
1
2
7
6
3
0
2
3
7
4
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
0
1
2
3
13
0
0
2
0
4
4
0
8
1
1
6
0
2
0
0
0
0
0
0
0
102
4
3
0
0
24
0
0
0
0
0
1
4
3
6
2
0
0
0
13
0
35
3
0
0
2
0
0
0
0
0
0
1
0
0
18
0
0
0
0
0
0
0
0
0
0
1
5
4
0
0
0
0
0
20
0
30
0
0
0
0
0
0
0
0
0
0
0
0
0
14
3
0
0
0
0
7
0
2
0
0
0
0
3
6
0
0
0
0
0
0
14
2
0
0
1
0
0
0
0
2
0
0
0
0
28
0
2
0
0
3
0
0
7
0
0
0
0
0
4
2
0
2
0
0
0
32
0
0
0
0
0
0
0
0
0
0
0
0
0
11
2
0
0
0
3
0
0
4
0
2
0
0
0
2
0
0
0
0
0
0
48
0
0
0
0
0
0
0
0
0
0
0
0
0
14
0
0
0
0
5
0
0
2
0
2
0
0
0
0
0
0
2
0
0
0
11
0
0
0
0
0
0
0
1
2
0
0
0
0
56
4
0
0
0
3
3
0
8
0
3
0
0
0
0
0
0
3
0
0
0
78
0
0
0
0
0
0
0
0
0
0
0
0
0
4
2
0
0
0
0
0
0
3
0
3
0
3
0
3
0
0
0
0
4
0
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
2
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
8
17
1
2
13
3
0
2
1
0
0
0
0
0
350
17
4
0
0
35
7
0
66
51
15
32
114
71
169
10
21
26
22
47
38
0
















































































80
A.2.19
Matriz 23:00 - 24:00
















































































0
1
1
0
4
0
3
3
2
7
7
7
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
2
1
4
4
4
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
1
1
2
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
0
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
20
4
4
12
0
0
6
6
3
4
1
0
1
0
27
13
27
13
27
13
27
13
27
13
27
13
27
13
27
13
27
13
27
13
170
0
0
0
0
0
0
0
0
0
0
3
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
44
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
2
0
3
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
17
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
6
0
0
4
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
4
0
0
0
0
0
0
0
0
76
8
0
34
34
8
0
0
34
75
47
126
75
47
126
126
5
126
12
23
31
0
















































































81
Referencias
[1] E. M. Arkin and E. B. Silverberg. Scheduling jobs with fixed start and end times.
Discrete Appl. Math., 18(1):1–8, November 1987.
[2] Katerina Böhmová, Yann Disser, Matús Mihalák, and Peter Widmayer. Interval
selection with machine-dependent intervals. In Frank Dehne, Roberto Solis-Oba,
and Jörg-Rüdiger Sack, editors, Algorithms and Data Structures, volume 8037 of
Lecture Notes in Computer Science, pages 170–181. Springer Berlin Heidelberg,
2013.
[3] Ralf Borndörfer, Martin Grötschel, and Marc E. Pfetsch. A path-based model for
line planning in public transport. ZIB, 2004.
[4] Ralf Borndörfer, Martin Grötschel, and Marc E. Pfetsch. A column-generation
approach to line planning in public transport. Transportation Science, 41(1):123–
132, February 2007.
[5] Borndörfer, Ralf and Grötschel, Martin and Pfetsch, Marc E. Models for line
planning in public transport. In Mark Hickman, Pitu Mirchandani, and Stefan
VoÃ, editors, Computer-aided Systems in Public Transport, volume 600 of Lecture
Notes in Economics and Mathematical Systems, pages 363–378. Springer Berlin
Heidelberg, 2008.
[6] A. Bouma and C. Oltrogge. Linienplanung und Simulation für öffentliche
Verkehrswege in Praxis und Theorie. ETR - Eisenbahntechnische Rundschau,
43(6):369–378, 1994.
[7] Michael R. Bussieck, Peter Kreuzer, and Uwe T. Zimmermann. Optimal lines for
railway systems, 1995.
[8] Michael R. Bussieck, Peter Kreuzer, and Uwe T. Zimmermann. Optimal lines for
railway systems. European Journal of Operational Research, 96(1):54 – 63, 1997.
82
[9] M.T. Claessens, N.M. van Dijk, and P.J. Zwaneveld. Cost optimal allocation of
rail passenger lines. European Journal of Operational Research, 110(3):474 – 489,
1998.
[10] William J. Cook, William H. Cunningham, William R. Pulleyblank, and Alexander
Schrijver. Combinatorial Optimization. John Wiley & Sons, Inc., New York, NY,
USA, 1998.
[11] S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani. Algorithms.
[12] M. R. Garey, D. S. Johnson, Gary L. Miller, and C. H. Papadimitriou. The complexity of coloring circular arcs and chords. SIAM J. Alg. Disc. Meth., 1(2):216–227,
June 1980.
[13] Martin Charles Golumbic. Algorithmic Graph Theory and Perfect Graphs (Annals
of Discrete Mathematics, Vol 57). North-Holland Publishing Co., Amsterdam, The
Netherlands, The Netherlands, 2004.
[14] Jan-Willem Goossens, Stan van Hoesel, and Leo Kroon. A branch-and-cut
approach for solving railway line-planning problems. Transportation Science,
38(3):379–393, August 2004.
[15] Antoon W.J. Kolen, Jan Karel Lenstra, Christos H. Papadimitriou, and Frits C.R.
Spieksma. Interval scheduling: A survey. Naval Research Logistics (NRL),
54(5):530–543, 2007.
[16] T. Lindner and U.T. Zimmermann. Train schedule optimization in public rail
transport. Technical report, Ph. Dissertation, Technische Universitat, 2000.
[17] Karl Nachtigall and Karl Jerosch. Simultaneous network line planning and traffic
assignment. In ATMOS, 2008.
[18] Nikolaus Ruf and Anital Schöbel. Set covering with almost consecutive ones property. Discrete Optimization, 1(2):215 – 228, 2004.
[19] Anita Schöbel. Line planning in public transportation: Models and methods. OR
Spectr., 34(3):491–510, July 2012.
[20] Anita Schöbel and Susanne Scholl. Line Planning with Minimal Traveling Time. In Leo G. Kroon and Rolf H. Möhring, editors, 5th Workshop on Algorithmic Methods and Models for Optimization of Railways (ATMOS’05), volume 2
of OpenAccess Series in Informatics (OASIcs), Dagstuhl, Germany, 2006. Schloss
Dagstuhl–Leibniz-Zentrum fuer Informatik.
83
[21] Luis M. Torres, Ramiro Torres, Ralf Borndörfer, and Marc E. Pfetsch. Line planning on paths and tree networks with applications to the quito trolebus system.
Technical Report 08-35, ZIB, Takustr.7, 14195 Berlin, 2008.
[22] Luis M. Torres, Ramiro Torres, Ralf Borndörfer, and Marc E. Pfetsch. Line planning on paths and tree networks with applications to the quito trolebus system
(extended abstract). Technical Report 08-53, ZIB, Takustr.7, 14195 Berlin, 2008.
[23] Luis M. Torres, Ramiro Torres, Ralf Borndörfer, and Marc E. Pfetsch. On the
line planning problem in tree networks. Technical Report 08-52, ZIB, Takustr.7,
14195 Berlin, 2008.
[24] Laurence A Wolsey. Integer programming. Wiley, 1998.
[25] Fan Zhang. Grafos de intervalos y otras clases relacionadas. Tesis de licenciatura,
Universidad de Buenos Aires, Agosto 2013.
84
Descargar