These are three MATLAB implementations of a single-source shortest path Dijkstra
algorithm. Notice that all these solvers work with a transposed sparse adjacency
matrix of a network.

* fast_dijkstra(adjmat, src) -- a binary heap-based implementation of Dijkstra, written,
	mostly, by David Bindel (http://www.cims.nyu.edu/~dbindel/software.html). It follows
	Dijkstra's algorithm as described in "Algorithms and Data Structures" by Mehlhorn and
	Sanders. Works rather fast on small- to medium-size networks.

* radix_dijkstra(adjmat, src) -- a radix heap-based implementation of a single-source
	shortest path Dijkstra algorithm of [1] for networks with bounded integer edge costs.
	It works fast on larger networks.

* spq_dijkstra(adjmat, src) -- an implementation of Dijkstra's algorithm, which can be
	seen as a "smarter" Dial's algorithm. This implementation is supposed to work well
	for the cases, when the traversal frontier is not very large, and the set of unique
	temporary distance labels is small.

Generally, you do not need to compile .mex files manually; they will be compiled
automatically at the first call to each solver. However, the latter may affect the
timing results of your experiments (and the code that checks the existence of .mex
files may hurt if you call the solver many times for small problems). An alternative
is to compile .mex files manually (e.g., by running fast_dijkstra_mex_make for
fast_dijkstra) and, optionally, remove the .mex file checking code from each used
solver.

Victor Amelkin <victor@cs.ucsb.edu>, 2015


REFERENCES

[1] Ahuja, Ravindra K., et al. "Faster algorithms for the shortest path problem."
	Journal of the ACM (JACM) 37.2 (1990): 213-223.
	