wangshaohua / SPLZ

A fast algorithm for single source shortest path problem on large-scale road network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SPLZ

SPLZ is a fast algorithm for single source shortest path problem on large-scale road network

This program is an implement of SPLZ algorithm. It consist of three parts:

1). Graph partitioning.
2). Compressing the all-pair shortest path of a road network.
3). Decompressing a particular shortest path tree.

These three parts are included in one Visual Studio 2010 solution. It is easy to build. Partition and compression are parallelized with OpenMP. So a multi-core environment is better.

File format

The benchmark we used is downloaded from http://www.dis.uniroma1.it/challenge9/download.shtml The graph file format is .gr, and the coordinate file format is .co. We would not recommend to use SPLZ on a graph with more than one million vertices. It needs too much time to pre-computing, unless you have a high performance workstation.

Command format

Note:

1.You must input all the parameters mentioned below.
2.Examples of commands are included in ~\x64\Release\

1).partition SPLZ_partition.exe gr_in co_in C len-to-dict regions_out

gr_in:			the graph file to be partitioned.
co_in:			the coordinate file of graph
C:					the parameter that determine how many regions the graph will be partitioned into. 
					(recommand value of C: 1, 2, 4, 8)
len-to-dict:		the parameter that can control the compression ratio and decompression speed.
					lower len-to-dict leads to higher compression ratio and lower decompression speed.
regions_out:	a file that records the result of partitioning.

2). compress SPLZ_compress.exe gr_in regions_in dir_out

gr_in:		the graph to be calculated and compressed.
regions_in:	the file generated by partitioning.
dir_out:		the directory that stores the result of compressing.

3). decompress

Decompression part is just a demo for testing the performance of SPLZ. 
It don't have commandline parameter.
In fact, all parameters are written in the code.
You can modify them and rebuild.

About

A fast algorithm for single source shortest path problem on large-scale road network


Languages

Language:C++ 53.7%Language:C 46.0%Language:Shell 0.3%