shortest path search for real road networks and dynamic costs with pgrouting

Post on 17-Dec-2014

4.606 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

This presentation will show the inside and current state of pgRouting development. It will explain the shortest path search in real road networks and how the data structure is important for getting better routing results. We will show how you can improve the quality of the search with dynamic costs and make the result look closer to the reality. We will demonstrate the way of using pgRouting together with other Open Source tools. Also you will learn about difficulties and limitations of implementing routing functionality in GIS applications, the difference between algorithms and their performance. pgRouting is an extension of PostgreSQL and PostGIS. A predecessor of pgRouting - pgDijkstra, written by Sylvain Pasche from Camptocamp, was extended by Orkney (Japan) and renamed to pgRouting, which now is a part of the PostLBS project. pgRouting can perform: * shortest path search (with 3 different algorithms) * Traveling Salesperson Problem solution (TSP) * driving distance geometry calculation

TRANSCRIPT

   

Shortest path search for real road networks

Anton Patrushev

   

What is pgRouting?

    Shortest path

    TSP and DD

    VRP (DARP)

   

Real road networks

How do they look like?

   

Like this...

   

...or like this...

   

...or sometimes like this.

   

What makes them real?

traffic lights signs road marking

   

How pgRouting can help here?

   

gid,source,target,cost,reverse_cost,x1, y1,x2, y2,rule,to_cost

source

target

   

It means we should increase costs.

Traffic lights make you slower.

   

A

BC

D

cost(A)=cost(A)+30seccost(B)=cost(B)+30seccost(C)=cost(C)+30seccost(D)=cost(D)+30sec

1min

   

Signs tell you about restrictions and road types.

   

   

cost(A)=length(A)reverse_cost(A)=∞

A

   

Sometimes the costs have different meaning.

   

cost(A)=length(A)/2reverse_cost(A)=length(A)*2

cost(B)=length(B)*3reverse_cost(B)=length(B)/3

A

B

   

Turn restrictions obviously restrict

turns.

   

A

BC

D

cost(A)=cost(A)+1mincost(B)=cost(B)+1mincost(C)=cost(C)+1mincost(D)=cost(D)+1min

1min

A

BC

D

rule(A)="D"to_cost(A, D)=∞

   

Road type signs can be used for cost calculation.

   

Not only types, but also conditions.

   

What about road marking?

   

It separates lanes, ...

   

...specifies road types, ...

   

... and restrictions.

A

B

C

D

rule(D)="A, B"to_cost(D)=∞

E

   

And you know what's cool about pgRouting?

   

All costs are dynamic.

Which is opposite to pre-calculated.

   

If the road is closed, ...

   

... there is an accident, ...

   

... a sign with restrictions limited

in time, ...

   ... bad weather conditions, ...

   

... or an obstacle, ...

   

You don't need to rebuild and reload

your network...

   ... and wait forever.

   

You only need to adjust the cost for this particular road.

And next search will go another way.

   

Cost can be virtually anything.

   

It is possible to use pgRouting with OSM data.

   

pgRouting can be used for different kinds of networks.

   

Canals and rivers, ...

   

... hiking trails, ...

   

... or any other kind of network.

   

Now it's showtime!

   

Thanks to people who put their photos to flickr under Creative Commons license.

Thanks to sxc.hu for being the best free photo stock.

   

Just want you to remember

pgrouting.orggeorepublic.deopenvrp.com

   

   

top related