Optimizing the transport network of a large metropolitan area to improve citizen accessibility
Participant:
Zaika Vladyslav
Supervisor:
Nicolas Nisse
Full access to Santiago city data:
- transportation system
- education system
- health system
- other metrics
Process
raw data
Improve
accessibility
- reduce amounts
- fix errors
- readable view
- propose improvements
- calculate new locations
Data analysis:
- big amounts of data;
- improve computations;
- correct the data;
Algorithmic:
- analyse existing solutions;
- propose own way;
630k nodes and 210k edges in raw
1. Bus Control Strategy Application: Case Study of Santiago Transit System (Pedro Lizana, Juan Carlos Muñoz, Ricardo Giesen, 2014)
2. More Passengers and Reduced Costs—The Optimization of the Berlin Public Transport Network (Tom Reinhold, A. T. Kearney GmbH, 2008)
3. Evaluation and optimization of urban public transportation networks (Christoph E. Mandl, 2003)
4. Optimization of Bus Route Planning in Urban Commuter Networks (Steven I-Jy Chien, Branislav V. Dimitrijevic, 2003)
1. Formalize raw data. ✓
2. Crate good structures. ✓
3. Fix errors in data. ✓
4. Test them on map.
5. Make research on topic.
6. Check existing solutions.
7. Propose improvements.
8. Test results.
- access complexity
- wrong data format
- no direct relations
Point representation:
class Point(object):
def __init__(self, id=0, x=0, y=0, edge_id=0, cell=0):
self.id = id
self.x = int(x)
self.y = int(y)
self.edge_id = int(edge_id)
self.cell = int(cell)
def __hash__(self):
return hash((self.x,self.y))
Edge representation:
<Point, Point>
✓ hash maps for points and edges
✓ clean data representations
✓ easy to access
✓ easy to update
Near points errors
Intersection errors
Near segment errors
We divide map into sectors
- Wrong GPS coords
- Human factor
- Bug in program
Creates multiple points in places, where it should be only one
For each segment in our map:
- select all the neighbor segments;
- create possible pairs of nodes;
- check relation(same hierarchy and street);
- calculate euclidean distance;
We fix 213,012 near points errors!
Reduce total number of nodes.
- Wrong GPS coords
- Human factor
- Bug in program
Forgot to create node in crossroads
For each segment in our map:
- select all the neighbor segments;
- create all possible edge combinations;
- check relation(same hierarchy);
- check intersection presence;
We fix near 2k intersections.
Intersections error fix makes our map more clean
- Wrong GPS coords
- Human factor
- Bug in program
Forgot to connect two streets
For each segment in our map:
- select all the neighbor segments;
- create pairs edge - point;
- check relation(same hierarchy);
- check if point is close enough to the edge;
Fix only 27 error situations!
Finalize data relations.
- has clean structures;
- 1/3 of reduced data;
- has straight object connections;
From 628,342 nodes in raw data:
- we fix >200k near point errors;
- we fix ~2k of intersections errors;
- we fix ~ 30 near segments errors;
SAGEMath packet is a solution!
- variety of graph functions
- easy to integrate
- strong algorithms implementation
1. Finish SAGE tests.
2. Test "static" shortest path algorithms on graph.
3. Propose algorithm improvements.
4. Develop "dynamic" algorithm( taking into account transport, education, health systems).
5. Test new code on Santiago graph.
6. Make conclusions.
1. Learn how other people solve this problem
2. Clean and formalize graph data
3. Integrate SAGE package with Santiago Graph
vlad@nowinfinity.com.au