Made some parts clearer.
[mtp.git] / mtp_graph.h
index 5988688..9b34248 100644 (file)
@@ -1,7 +1,7 @@
 
 /*
- *  mtp is the ``Multi Tracked Path'', an implementation of the
- *  k-shortest path algorithm for multi-target tracking.
+ *  mtp is the ``Multi Tracked Paths'', an implementation of the
+ *  k-shortest paths algorithm for multi-target tracking.
  *
  *  Copyright (c) 2012 Idiap Research Institute, http://www.idiap.ch/
  *  Written by Francois Fleuret <francois.fleuret@idiap.ch>
@@ -37,15 +37,29 @@ class Vertex;
 class Edge;
 
 class MTPGraph {
+  // Uses the estimated vertex distances to the source to make all the
+  // edge lengths positive, resulting in an identical added value to
+  // the total length of any path from source to a certain node (in
+  // particular the sink)
   void update_positivized_lengths();
+
+  // It may happen that numerical errors in update_positivized_lengths
+  // make the resulting lengths negative, albeit very small. The
+  // following method forces all negative lengths to zero, and prints
+  // the total correction when compiled in VERBOSE mode.
   void force_positivized_lengths();
+
   // Set the edge pred_edge_toward_source correspondingly to the path
-  // of shortest length.
+  // of shortest length. The current implementation is not Dijkstra's!
   void find_shortest_path();
+
   // Follows the path starting on edge e and returns its length. If
   // nodes is non-null, stores in it the nodes met along the path.
   int retrieve_one_path(Edge *e, Path *path);
 
+  // Returns if the graph is a DAG
+  int is_dag();
+
   Vertex **_front, **_new_front;
 
   int _nb_vertices, _nb_edges;