[pgrouting-users] Multimodal routing state

Hi,

i’m currently involve in the development of a routing aplication. We have seen several libraries wich migth e very usefull to use, and one of them is pgRouting.
What i wan’t to know is some of the capabilities of pgRouting.

  1. As i have read pgRouting can compute the cost from several tables and columns, rigth?, so it’s posible to take into account the traffic state or the public transport availability dinamically?, how easy is to achieve this with pgRouting?. Any manuals?

  2. What is the state of multimodal routing?. I have seen that was a 2011 GSoC, but how stable is it?. Is there a manual, tutorial or similar for this? (i have only see 1 wiki page).

Best regards.
Javier.

On 2/8/2012 11:49 AM, Javier Mr wrote:

Hi,

i'm currently involve in the development of a routing aplication. We
have seen several libraries wich migth e very usefull to use, and one of
them is pgRouting.
What i wan't to know is some of the capabilities of pgRouting.

1. As i have read pgRouting can compute the cost from several tables and
columns, rigth?, so it's posible to take into account the traffic state
or the public transport availability dinamically?, how easy is to
achieve this with pgRouting?. Any manuals?

Hi Javier,

In general the way pgRouting works is that you have a table of edges and a column for cost and reverse_cost and other attributes that are needed to model your problem.

When you process a request, you pass the solver a SQL statement that is processed to collect the edges and costs that you need for this request. (more on this in a minute).

The edges are read into a graph and the graph is solved for this request and the resulting edges are returned.

One of the reasons that we pass a SQL statement to the solver is that we can dynamically write the SQL to handle whatever cases we want. So for example, one common thing we do is to add a where clause to only select edges in a slightly expanded BBOX for the start and end points. This means that we minimize the number of segments in the graph we build. You can likewise construct a query that includes a join where you use the default costs in the edge table unless there are entries in a traffic feed. You can also select class of vehicle when you select the edges so you can change from normal auto class, to say a truck class, or emergency vehicle, or pedestrian. This is the general flexibility of storing the data in a database and pgRouting is designed to take advantage of that.

pgRouting has tools for:

In general we can solve shortest path or fastest time depending on your cost attribute.

Dijkstra shortest path/time
AStar Search shortest path/time
ShootingStar shortest path/time with turn restrictions (but it is current broken)
Turn Restricted Shortest Path (TRSP) is a Dijkstra based solver that also supports Turn restrictions. This is new, undocumented at the moment, and in git branch. But we do have some people using it successfully.
Time dependent shortest path (TDSP) is a GSoC project in a git branch.
Multimodal shortest path is a GSoC project in a git branch.
All Pairs Shortest Path (APSP) project which should be in git.

We also have Traveling Salesman Problem (TSP) solver.
Driving distance solver that generate isochrone polygons.

There are various tutorials and documentation and a wiki:

http://www.pgrouting.org/
http://www.pgrouting.org/documentation.html
http://www.pgrouting.org/download.html
https://github.com/pgRouting/pgrouting
https://github.com/pgRouting/pgrouting/wiki

Probably best to jump into one of the tutorials to find out how things work and to ask questions on the list if you get stuck.

2. What is the state of multimodal routing?. I have seen that was a 2011
GSoC, but how stable is it?. Is there a manual, tutorial or similar for
this? (i have only see 1 wiki page).

Don't know if this helps:
https://github.com/pgRouting/pgrouting/wiki/Multi-modal-Public-Transit-Routing

I think Kishore might still be monitoring the list. If not try a direct email to him.

Best regards,
   -Steve

Best regards.
Javier.

_______________________________________________
Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users

Hi,

Sorry I’ve been off the community for a while. Thanks Javier for the direct email.

MMPTR does two things:

  • Non-scheduled routing - Finding route when services do not follow a timetable.
  • Scheduled routing - Finding route by accepting GTFS[1] data.

Pardon me for the absence of documentation other than a brief tutorial[2]. I shall spent this weekend adding more documentation and get used to the code(my memory is very bad) and explore merging into master.

Thanks & Regards,
J Kishore kumar.

[1] - https://developers.google.com/transit/gtfs/reference
[2] - https://github.com/pgRouting/pgrouting/wiki/MMPTR-Tutorial

On Wed, Feb 8, 2012 at 11:30 PM, Stephen Woodbridge <woodbri@swoodbridge.com> wrote:

On 2/8/2012 11:49 AM, Javier Mr wrote:

Hi,

i’m currently involve in the development of a routing aplication. We
have seen several libraries wich migth e very usefull to use, and one of
them is pgRouting.
What i wan’t to know is some of the capabilities of pgRouting.

  1. As i have read pgRouting can compute the cost from several tables and
    columns, rigth?, so it’s posible to take into account the traffic state
    or the public transport availability dinamically?, how easy is to
    achieve this with pgRouting?. Any manuals?

Hi Javier,

In general the way pgRouting works is that you have a table of edges and a column for cost and reverse_cost and other attributes that are needed to model your problem.

When you process a request, you pass the solver a SQL statement that is processed to collect the edges and costs that you need for this request. (more on this in a minute).

The edges are read into a graph and the graph is solved for this request and the resulting edges are returned.

One of the reasons that we pass a SQL statement to the solver is that we can dynamically write the SQL to handle whatever cases we want. So for example, one common thing we do is to add a where clause to only select edges in a slightly expanded BBOX for the start and end points. This means that we minimize the number of segments in the graph we build. You can likewise construct a query that includes a join where you use the default costs in the edge table unless there are entries in a traffic feed. You can also select class of vehicle when you select the edges so you can change from normal auto class, to say a truck class, or emergency vehicle, or pedestrian. This is the general flexibility of storing the data in a database and pgRouting is designed to take advantage of that.

pgRouting has tools for:

In general we can solve shortest path or fastest time depending on your cost attribute.

Dijkstra shortest path/time
AStar Search shortest path/time
ShootingStar shortest path/time with turn restrictions (but it is current broken)
Turn Restricted Shortest Path (TRSP) is a Dijkstra based solver that also supports Turn restrictions. This is new, undocumented at the moment, and in git branch. But we do have some people using it successfully.
Time dependent shortest path (TDSP) is a GSoC project in a git branch.
Multimodal shortest path is a GSoC project in a git branch.
All Pairs Shortest Path (APSP) project which should be in git.

We also have Traveling Salesman Problem (TSP) solver.
Driving distance solver that generate isochrone polygons.

There are various tutorials and documentation and a wiki:

http://www.pgrouting.org/
http://www.pgrouting.org/documentation.html
http://www.pgrouting.org/download.html
https://github.com/pgRouting/pgrouting
https://github.com/pgRouting/pgrouting/wiki

Probably best to jump into one of the tutorials to find out how things work and to ask questions on the list if you get stuck.

  1. What is the state of multimodal routing?. I have seen that was a 2011
    GSoC, but how stable is it?. Is there a manual, tutorial or similar for
    this? (i have only see 1 wiki page).

Don’t know if this helps:
https://github.com/pgRouting/pgrouting/wiki/Multi-modal-Public-Transit-Routing

I think Kishore might still be monitoring the list. If not try a direct email to him.

Best regards,
-Steve

Best regards.
Javier.


Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users


Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users