Está en la página 1de 24

Universidad Nacional De Ingeniería

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Universidad Nacional de Ingeniería


Facultad de Ingeniería Industrial y de Sistemas

Proyecto de Matemática Discreta


“Análisis y rediseño de rutas del Sistema de Transporte de Lima
Metropolitana mediante la aplicación del algoritmo de Kruskal”
Integrantes:
● Navarro Puertas, Joan Sebastian Jesus
● Berroa Escriba, Henry Jesús
● Calixto Aguilar, Steven Bryan
● Polanco Sevilla, Maykoll Kevin
● Ortiz de La Cruz, Katherine Iris

Lima, 2019
“Año de la lucha contra la corrupción y la impunidad”
Índice
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Resumen 2
2. Introducción 3
3. Problemática 3
4. Objetivos 6
4.1. Objetivo Principal: 6
4.2. Objetivos Secundarios: 6
5. Solución Propuesta 7
6. Marco Teórico 17
6.1. Algoritmo de Kruskal 17
7. Bibliografía 20

1. Resumen
Nuestra propuesta consiste en rediseñar el sistema de transporte en la ciudad de
Lima Metropolitana mediante un análisis y estudio integral de las rutas actuales, así
como las rutas de demanda popular. También, veremos las causas de la
problemática de las rutas del sistema de transporte actual y habiendo de uso del
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

algoritmo de Kruskal,la librería IO y de la programación en Java, plantearemos las


soluciones presentes en este documento.

2. Introducción

En una ciudad metrópoli como Lima, donde la gente a diario recurre a sus centros
de trabajo, centros educativos, de entretenimiento, de salud, de ocio, etc; surge la
necesidad muy importante de tener un sistema de transporte óptimo a base de
rutas, paraderos, estaciones y terminales, el cual, de manera rápida y segura, nos
permita desplazarnos. Ya sea de lugares no tan lejanos a nuestra ubicación, a
lugares en donde se debe recorrer largo kilometraje (Ejem. viajes entre los conos o
puntas), en este proyecto lo que nos propusimos es de rediseñar las rutas de Lima
en base a las del Metropolitano, corredores complementarios y alimentadores, los
métodos que usaremos y la problemática a solucionar. No tocaremos las rutas por
donde pasará el futuro metro de Lima ni las rutas ya existentes o en proyecto de los
Corredores.

3. Problemática

El tema de transporte en Lima es muy complejo y lo sufren todos los días los
habitantes de esta ciudad, Esta problemática ha generado a la ciudad de Lima
pérdidas millonarias en viajes horas - hombre, reducción de los niveles de calidad
de vida, gasto de energías renovables, contaminación, etc.
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Las causas se deben a una serie de factores que detallaremos a continuación:


● Falta de una única autoridad, como un consorcio, que regule y gestione el
transporte en la ciudad. Actualmente existen una serie de direcciones y
entidades que se encargan del mismo problema, como el Ministerio de
Transporte y Comunicaciones, La Municipalidad de Lima y sus entes
pertinentes, La Municipalidad del Callao y finalmente, la Región Callao, de tal
forma que cada uno tiene una visión distinta de esta ciudad, desarrollando
independientemente sus planes, generando muchas veces conflictos entre
los sistemas propuestos (Metropolitano y Tren Eléctrico), sin tener una
organización integral del sistema.
● Gran cantidad de rutas de transporte urbano, que actualmente cuenta con
487 líneas, solo en la Provincia de Lima, además de las 177 rutas que tiene
el Callao, muchas de ellas con recorridos de gran longitud, atravesando la
ciudad de extremo a extremo (casi 50 km.), en unidades de transporte
pequeños y de mediano tamaño, inadecuados para desplazarse diariamente
en esos recorridos, generando agotamiento y malestar tanto entre los
choferes como en los pasajeros.
● Excesivo número de unidades de transporte, con 25,874 vehículos en total,
de las cuales el 43.60% son combis que compiten de manera informal por
obtener pasajeros (la guerra del centavo), produciéndose por un lado una
sobreoferta y ocupación del espacio de circulación, lo que ocasiona gran
parte del tráfico (para tener una idea, los ´pasajeros de 8 combis caben en un
bus del metropolitano y 80 combis caben en uno de los trenes del Metro de
Lima), y por el otro un aumento del número de accidentes en las pistas.
● Sobreoferta de taxis (250,000 unidades, cuando debería haber la mitad y
7.00 taxis colectivos), con el mismo problema de los vehículos de transporte
público.
● Falta de un diseño integral y jerarquizado de las redes de transporte masivo
por parte de las autoridades, de tal forma que muchos de los proyectos
realizados actualmente, han sido hechos sin un estudio integral de la ciudad,
solo con fines políticos y demagógicos.
● Falta de un fomento por parte de los gobiernos locales, del desarrollo de
sistemas de movilidad alternativa de menor escala, como bicicleta y
transporte a pie.
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

● Crecimiento urbano desordenado de manera expansiva y con muy baja


densidad, lo que ocasiona un gasto enorme en el desarrollo de
infraestructuras de transporte y que además, se de una dependencia en el
uso del automóvil como único medio de transporte (800,000 unidades)
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Figura 1: Transporte informal en Lima. Fuente: El Comercio.

Figura 2: Taxis en el Centro de Lima. Fuente: El Comercio.

4. Objetivos

4.1. Objetivo Principal

● Analizar y rediseñar rutas del Sistema de Transporte de Lima Metropolitana


mediante la aplicación del algoritmo de Kruskal.

4.2. Objetivos Secundarios

● Analizar las posibles nuevas rutas en base a la afluencia del tránsito peatonal
y vehicular entre otros factores.
● Plantear una posible aplicación del algoritmo de Kruskal para el rediseño de
las rutas de Lima Metropolitana
● Aplicar las técnicas aprendidas en clase en el desarrollo de este proyecto.
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

5. Solución Propuesta
Actualmente la ciudad de Lima cuenta con dos sistemas ya existentes que están
aliviando en parte la problemática de la movilidad de la ciudad. El Metro, conocido
como “Tren Eléctrico”, y el Metropolitano que hace poco ha sido unificado a una de
red de corredores para buses.

Estructura urbana de Lima. Fuente: Instituto Metropolitano de Planificación.

Para la definición de nuestra propuesta de solución, empezaremos por describir la


estructura urbana de la ciudad de Lima, como podemos observar en el gráfico de
arriba, Lima tiene una configuración nuclear de varios centros comerciales y
financieros, que van de norte a sur a lo largo de grandes ejes como la
Panamericana Norte y la Vía Expresa (Los Olivos. Centro de Lima, San Isidro,
Miraflores y Barranco) zonas que son consideradas de gran demanda comercial, en
menor grado están los sectores de la Av. La Marina, la Av. Primavera y Javier
Prado, donde se desarrollan núcleos importantes de comercio. En cuanto a las
áreas industriales, estas se dan a lo largo de los ejes de la Av. Argentina y la
Carretera Central, con algunos núcleos en Lima Norte. Finalmente, los sectores
residenciales, se desarrollan con bajas densidades poblacionales hacia las
periferias y con mayores densificaciones en altura y población hacia los centros y
subcentros mencionados.

Otro punto importante a considerar es el estudio de los flujos de transporte dentro


de la estructura urbana, al ser Lima una ciudad policéntrica, con una organización
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

compleja y de gran extensión territorial en toda la provincia, se manejan diferentes


demandas en distintas zonas, por lo que generalmente se definen para el estudio
las llamadas cuencas de demanda, estas áreas se organizan en función de criterios
geográficos y estructurales de la ciudad, como zonas consolidadas por su uso de
suelo y densidad.

En los estudios que hicieron Protransporte junto con la consultora ALG - INOCSA,
para el proyecto del Metropolitano en 2006 se definieron las cuencas mencionadas y
se vio que la mayor demanda de transporte se da en las zonas norte y centro,
sobretodo en el eje Norte-Sur (Comas - Centro de Lima - Barranco), las áreas del
sur y suroeste tienen una demanda menor.

Para lograr el objetivo de nuestro proyecto: Analizar y rediseñar de rutas del


Sistema de Transporte de Lima Metropolitana, hemos elaborado una propuesta que
creemos mejorará radicalmente el transporte urbano de Lima. Basándonos en
estudios anteriores y considerando el tamaño que tiene la provincia de Lima,
decidimos delimitar las cuencas de demanda de forma diferente a la propuesta de
ALG - INOCSA, definiendo dos grandes zonas:

5.1. Análisis de los posibles recorridos de la rutas propuestas

Para lograr obtener los resultados buscados debemos analizar posibles rutas
alternativas mediante el uso del algoritmo de Kruskal, pero para ello necesitaremos
establecer los pesos de las aristas mediante el uso de la ponderación de factores de
acuerdo a un criterio subjetivo definido en el siguiente cuadro
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Factores Valor

Atascamiento Vehicular 10

Distancia 7

Inseguridad 5

Deterioro de las pistas 4

Impopularidad 7

No linealidad 5

Usaremos los datos del cuadro en la siguiente ecuación

Siendo
Pi: Peso de la arista i
f j : Peso del factor j (j:1,2,3,4,5)
v j: Valor asignado al factor j
v jes el grado de incidencia del factor y podrá tener como únicos valores a los
números desde 1 hasta 10
Luego de analizar los factores y asignar un peso a cada arista aplicaremos el
algoritmo de Kruskal para buscar la solución óptima y encontrar la mejor ruta
posible.

5.1.1. Código en Java del Algoritmo de Kruskal

package kruskal;

import java.io.*;

class Kruskal {
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

public static BufferedReader br = new BufferedReader(new


InputStreamReader(System.in));

public int[][] G;
public int[][] t;
public boolean[][] in;
public boolean[][] temp;

static int n;
static int mincost = 0;
public int k, l, num_ed = 0;

public Kruskal(int n) throws IOException {


this.G = new int[n + 1][n + 1];
this.in = new boolean[n + 1][n + 1];
this.t = new int[n + 1][3];

System.out.print("\nDame los costos de las aristas:\n");


for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
in[i][j] = in[j][i] = false;
if ((i != j) && (i < j)) {
System.out.print(i + " al " + j + ": ");
G[j][i] = G[i][j] = Integer.parseInt(br.readLine());
if (G[i][j] == 0) {
G[j][i] = G[i][j] = 7001;
}
}
if (i == j) {
G[i][j] = 7001;
}
}
}
}

public void Kruskals() {


for (int i = 1; i <= n; i++) {
getMinKL();
if (k == l) {
break;
}
System.out.print(l + "-" + k);
if (formscycle(i - 1)) {
System.out.println(" --> Ya estan en el mismo
conjunto");
i--;
continue;
} else {
System.out.println();
}
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

mincost = mincost + G[k][l];


num_ed = (isPresent(i, k)) ? num_ed : num_ed + 1;
num_ed = (isPresent(i, l)) ? num_ed : num_ed + 1;

t[i][1] = l;
t[i][2] = k;
if (num_ed >= n) {
if (allconnect(i)) {
return;
}
}
}
System.out.println("\nNo hay solucion");
}
public boolean allconnect(int i) {
for (int c = 2; c <= n; c++) {
temp = new boolean[n + 1][n + 1];
for (int a = 1; a <= n; a++) {
for (int b = 1; b <= n; b++) {
temp[a][b] = temp[b][a] = false;
}
}
if (can_reach(1, c, i) == false) {
return false;
}
}
return true;
}
public boolean formscycle(int i) {
if (isPresent(i, k) && isPresent(i, l)) {
temp = new boolean[n + 1][n + 1];
for (int a = 1; a <= n; a++) {
for (int b = 1; b <= n; b++) {
temp[a][b] = temp[b][a] = false;
}
}
if (can_reach(k, l, i)) {
return true;
}
}
return false;
}

public boolean can_reach(int k, int l, int i) {


temp[k][l] = temp[l][k] = true;
for (int o = 1; o <= i; o++) {
if (((k == t[o][1]) && (l == t[o][2])) || ((l == t[o][1])
&& (k == t[o][2]))) {
return true;
}
if ((k == t[o][1]) && !(temp[t[o][2]][l])) {
if (can_reach(t[o][2], l, i) == true) {
return true;
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

}
} else if ((k == t[o][2]) && !(temp[t[o][1]][l])) {
if (can_reach(t[o][1], l, i) == true) {
return true;
}
}
}
return false;
}

public boolean isPresent(int i, int val) {


for (int o = 1; o <= i; o++) {
if ((val == t[o][1]) || ((val == t[o][2]))) {
return true;
}
}
return false;
}

public void getMinKL() {


int k1 = 1, l1 = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if ((i != j) && (i < j)) {
if ((G[i][j] < G[k1][l1]) && G[i][j] != 0 && in[j]
[i] == false) {
k1 = i;
l1 = j;
}
}
}
}
if (G[k1][l1] != 0) {
k = k1;
l = l1;
in[k][l] = in[l][k] = true;
}
}
public static void main(String[] args) throws IOException {
System.out.println("\t\t\t\t Algoritmo de Kruskal");
System.out.print("\nDe el numero de vertices: ");
n = Integer.parseInt(br.readLine());

Kruskal kr = new Kruskal(n);

System.out.println("\n\nSolucion : \n");
kr.Kruskals();
System.out.println("\n\n\nEl costo es de: " + mincost);
}
}
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Para conseguir el árbol de expansión mínima necesitaremos ejecutar el código del


algoritmo de Kruskal mostrado en la parte superior en NetBeans.

5.2. Mapa de los recorridos principales de la ruta 1


Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Cuando asignamos los pesos a todas las aristas ya vemos la aplicación del
algoritmo de Kruskal como una vía de solución óptima debido a su simplicidad a
partir de ahora para encontrar la solución buscada. Una vez mostrada la solución
buscamos igualarlo a las rutas marcadas a color o sus contiguas, así llegando a la
ruta óptima buscada.

IDA VUELTA

Fuerte Hoyos Rubios Óvalo de la Avenida Elmer


Faucett
Cruce de Av. Eduardo de Habich Óvalo 200 Millas
con Av. Túpac Amaru
Puerta 5 de la UNI Cruce Av. Faucett con Av. Canta
Callao
Cruce de Av. Tomás Valle con Av. Cruce Av. Faucett con Av.
Tupac Amaru Bocanegra
Cruce de Panamericana Aeropuerto Jorge Chávez
Norte(1N)con Av. Tomás Valle
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Cruce de Av. Beta con Av. Tomás Cruce de Av. Tomás Valle con Av.
Valle Faucett
Avenida Av. Universitaria con Av. Cruce de Av. Tomás Valle con Av.
Tomas Valle Pacasmayo
Cruce de Av. 12 de Octubre con Cruce de Av. Tomás Valle con Av.
Av. Universitaria Dominicos
Cruce de Av. Tomás Valle con Av. Cruce de Av. 12 de Octubre con
Dominicos Av. Universitaria
Cruce de Av. Tomás Valle con Av. Cruce de Av. Universitaria con Av.
Pacasmayo Tomás Valle
Cruce de Av. Tomás Valle con Av. Cruce de Av. Beta con Av. Tomás
Faucett Valle
Aeropuerto Jorge Chávez Cruce de Panamericana
Norte(1N)con Av. Tomás Valle
Cruce Av. Faucett con Av. Cruce de Av. Tomás Valle con Av.
Bocanegra Túpac Amaru
Cruce Av. Faucett con Av. Canta Puerta 5 de la UNI
Callao
Óvalo 200 Millas Cruce de Av. Eduardo de Habich
con Av. Túpac Amaru

5.3. Recorridos Principales de la Ruta 2


Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Análogamente a la al análisis de la Ruta N°1, procedemos a aplicarlo para conseguir


la Ruta N°2 que conecta a Paradero 8, José Gálvez, Villa Maria del Triunfo con
Estacion Atocongo, Cercado de Lima. Para el ponderado de la nueva ruta usaremos
la misma tabla de Factores - Valor.

Factores Valor

Atascamiento Vehicular 10

Distancia 7

Inseguridad 5

Deterioro de las pistas 4

Impopularidad 7

No linealidad 5
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

En esta imagen podemos apreciar ya hecho el ponderado y el algoritmo de Kruskal


aplicado, cuyo árbol de mínima expansión lo apreciamos de color blanco.
En este caso el algoritmo de Kruskal nos determina un árbol de mínima expansión,
en donde ninguna rama de dicho árbol coincide con una ruta planteada
anteriormente en su totalidad.
Y como producto final el recorrido de la Ruta N°2 es:

IDA VUELTA
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Paradero 8, José Gálvez Estación Atocongo


Cruce de Saenz Peña con Paradero Los Héroes
Atocongo
Cruce de José Balta con Atocongo Cruce San Juan con M. Carranza
Paradero Ovalo Gálvez Cruce San Juan con G. Billinghurst
Cruce Tupac Amaru con Paradero Colegio Javier Heraud
Pachacútec
Paradero 200 millas Paradero San Juan
Paradero Mariátegui Paradero Ramón Vargas Machuca
Paradero Tottus Paradero Pedro Miotta
Paradero El Sol Paradero Victor Castro Iglesias
Cruce El Sol con Separadora Cruce Av. Canevaro con Velasco
Industrial
Cruce El Sol con Av. Central Cruce M. Pastor con Las Torres
Paradero Revolución Paradero Ciudad de Dios
Cruce El Sol con los Álamos Paradero Av. Pumacahua
Cruce El Sol con M. Bastidas Paradero Av. Modelo
Cruce El Sol con M. Pastor Cruce de M. Pastor con 1 de Mayo
Cruce de M. Pastor con 1 de Cruce El Sol con M. Pastor
Mayo
Paradero Av. Modelo Cruce El Sol con M. Bastidas
Paradero Av. Pumacahua Cruce El Sol con los Álamos
Paradero Ciudad de Dios Paradero Revolución
Cruce M. Pastor con Las Torres Cruce El Sol con Av. Central
Cruce Av. Canevaro con Velasco Cruce El Sol con Separadora
Industrial
Paradero Victor Castro Iglesias Paradero El Sol
Paradero Pedro Miotta Paradero Tottus
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Paradero Ramón Vargas Machuca Paradero Mariátegui


Paradero San Juan Paradero 200 millas
Paradero Colegio Javier Heraud Cruce Tupac Amaru con Pachacútec
Cruce San Juan con G. Paradero Ovalo Gálvez
Billinghurst
Cruce San Juan con M. Carranza Cruce de José Balta con Atocongo
Paradero Los Héroes Cruce de Saenz Peña con Atocongo
Estación Atocongo Paradero 8, José Gálvez
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

5.4. Recorridos Principales de la Ruta 3

6. Marco Teórico

6.1. Algoritmo de Kruskal

Es un algoritmo usado en la teoría de grafos para encontrar un árbol recubridor


mínimo en un grafo conexo y etiquetado. Consiste en buscar un subconjunto de
aristas que, formando un árbol, incluyen todos los vértices y donde el valor total de
todas las aristas del árbol es el mínimo. Si el grafo no es conexo, entonces busca un
bosque expandido mínimo (un árbol expandido mínimo para cada componente
conexa). El algoritmo de Kruskal es un ejemplo de algoritmo voraz y un ejemplo de
árbol expandido mínimo. Cada punto representa un vértice, el cual puede ser un árbol
por sí mismo. Su nombre hace honor a Joseph Kruskal, quien lo publicó por primera
vez en 1956. Para comprender su procedimiento, analizaremos el sgte ejemplo:
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

Este es el grafo original. Los números de las aristas indican su peso. Ninguna de las
aristas está resaltada.

AD y CE son las aristas más cortas, con peso 5, y AD se ha elegido arbitrariamente,


por tanto se resalta.

Sin embargo, ahora es CE la arista más pequeña que no forma ciclos, con peso 5,
por lo que se resalta como segunda arista.
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

La siguiente arista, DF con peso 6, ha sido resaltada utilizando el mismo


método.

Las siguientes aristas más pequeñas son AB y BE, ambas con peso 7. AB se elige
arbitrariamente, y se resalta. La arista BD se resalta en rojo, porque formaría un
ciclo ABD si se hubiera elegido.
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

El proceso continúa marcando las aristas, BE con peso 7. Muchas otras aristas se
marcan en rojo en este paso: BC (formaría el ciclo BCE), DE (formaría el ciclo
DEBA), y FE (formaría el ciclo FEBAD)

Finalmente, el proceso termina con la arista EG de peso 9, y se ha encontrado el


árbol expandido mínimo con peso total de 39.

Generalmente se usa para las obras viales y circuitos eléctricos, solo el primer
concepto nos será útil en la problemática antes planteada.

7. Conclusiones
➢ Concluimos que el Algoritmo de Kruskal es una alternativa
eficiente porque nos brindó rutas diferentes en comparación a las
Universidad Nacional De Ingeniería
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

propuestas por el Sistema Integral de transporte y el


Metropolitano.
➢ Concluimos que las rutas actuales que existen son muy
deficientes, no satisfacen las necesidades de los usuarios y que
no han sido realizadas previas a un estudio matemático sino
estadístico, debido a que fueron sesgados con fines políticos.
➢ Concluimos que, a pesar de haber definido pesos para cada uno
de los factores de la propuesta, todos los factores fueron de suma
importancia para la evaluaciòn de los recorridos.

8. Bibliografía

● Jalón, M. L. D., de Lara, M. A. S., & Ortega, A. G. (2014). Financiación del


servicio público de transporte urbano: un estudio empírico en las empresas
españolas. Investigaciones Europeas de Dirección y Economía de la
Empresa, 20(3), 151-162
● https://www.ecured.cu/Algoritmo_de_Kruskal
● https://sites.google.com/site/complejidadalgoritmicaes/kruskal
● https://es.wikipedia.org/wiki/Algoritmo_de_Kruskal
● https://langleruben.wordpress.com/%C2%BFque-es-un-sig/
● https://es.scribd.com/document/311226871/El-Transporte-Urbano-en-Lima
● https://elcomercio.pe/economia/peru/costo-anual-trafico-lima-callao-s-5-541-
5-millones-noticia-593591
● http://apuntesdearquitecturadigital.blogspot.com/2012/03/el-transporte-
urbano-en-lima-propuestas.html

También podría gustarte