+This is a very simple implementation of a variant of the k-shortest
+paths algorithm (KSP) applied to multi-target tracking, as described
+in
+
+ J. Berclaz, E. Turetken, F. Fleuret, and P. Fua. Multiple Object
+ Tracking using K-Shortest Paths Optimization. IEEE Transactions on
+ Pattern Analysis and Machine Intelligence (TPAMI), 33(9):1806-1819,
+ 2011.
+
+It works with negative edge lengths and stops computing new path when
+it can not find one of negative total length, instead of fixing the
+total number of paths to a constant K.
+
+* INSTALLATION
+
+This software should compile with any C++ compiler. Just execute
+
+ make
+ ./mtp_example
+
+It will create a synthetic dummy example, save its description in
+tracker.dat, and print the optimal detected trajectories.
+
+If you now execute
+
+ ./mtp tracker.dat
+
+It will load the tracker.dat saved by the previous command, run the
+detection, save the detected trajectories in result.trj, and the
+underlying graph with occupied edges in graph.dot.
+
+You can produce a pdf from the latter with the dot command from
+graphviz:
+
+ dot < graph.dot -T pdf -o graph.pdf
+
+* IMPLEMENTATION
+
+The two main classes are MTPGraph and MTPTracker.
+
+The MTPGraph class stores a directed acyclic graph (DAG), with a
+length for each edge -- which can be negative -- and can compute the
+family of paths in this graph that globally minimizes the sum of edge
+lengths.
+
+This means that it will iteratively add paths as long as it can find
+some with negative length. If there are no such path, it will compute
+no path at all. Note that the procedure is similar to that of KSP, in
+the sense that the family it computes eventually is globally optimal,
+even if the computation is iterative.
+
+The MTPTracker class allows