+This is a very simple implementation of a variant of KSP applied to
+multi-target, 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 length and stops when it can not find any
+path of negative total length, instead of fixing the total number of
+paths to a constant K.
+
+* INSTALLATION
+
+This source code 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 example, 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 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