+The MTPTracker class uses the MTPGraph. From the definition of the
+spatial topology, it builds a graph with one source, one sink, and two
+nodes per location and time. This structure ensures the trajectories
+computed by the tracker to be node-disjoint by forcing the paths
+computed by the MTPGraph to be edge-disjoint.
+
+The edges from the source or to the sink, or between these pairs, are
+of length zero, and the edge between the two nodes of such a pair has
+a length equal to the opposite of the detection score.
+
+The file mtp_example.cc gives a very simple usage example of the
+MTPTracker class by setting the tracker parameters dynamically, and
+running the tracking.
+
+The tracker data file for MTPTracker::read has the following format,
+where L is the number of locations and T is the number of time steps:
+
+---------------------------- snip snip -------------------------------
+int:L int:T
+
+bool:allowed_motion_from_1_to_1 ... bool:allowed_motion_from_1_to_L
+...
+bool:allowed_motion_from_L_to_1 ... bool:allowed_motion_from_L_to_L
+
+bool:is_an_entrance_1 ... bool:is_an_entrance_L
+
+bool:is_an_exit_1 ... bool:is_an_exit_L
+
+float:detection_score_1_1 ... float:detection_score_1_L
+...
+float:detection_score_T_1 ... float:detection_score_T_L
+---------------------------- snip snip -------------------------------
+
+The method MTPTracker::write_trajectories writes first the number of
+trajectories, followed by one line per trajectory with the following
+structure
+
+---------------------------- snip snip -------------------------------
+int:traj_number int:entrance_time int:duration float:score int:location_1 ... int:location_duration
+---------------------------- snip snip -------------------------------