From: Francois Fleuret Date: Fri, 24 Aug 2012 00:03:35 +0000 (-0700) Subject: Cosmetics + fixed the entrance in last time frame and exits in first time frame. X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=mtp.git;a=commitdiff_plain;h=df0839702923a2c5128b9374e01984dfb9f7791b Cosmetics + fixed the entrance in last time frame and exits in first time frame. --- diff --git a/misc.h b/misc.h index f28305a..f9458da 100644 --- a/misc.h +++ b/misc.h @@ -11,6 +11,8 @@ #ifndef MISC_H #define MISC_H +#include + // #define VERBOSE typedef float scalar_t; diff --git a/mtp.cc b/mtp.cc index 1af71af..e07a738 100644 --- a/mtp.cc +++ b/mtp.cc @@ -20,7 +20,6 @@ #include #include -#include using namespace std; @@ -37,8 +36,8 @@ scalar_t detection_score(int true_label, scalar_t flip_noise) { } int main(int argc, char **argv) { - int nb_locations = 1000; - int nb_time_steps = 1000; + int nb_locations = 6; + int nb_time_steps = 5; int motion_amplitude = 1; Tracker *tracker = new Tracker(nb_time_steps, nb_locations); @@ -75,6 +74,12 @@ int main(int argc, char **argv) { cout << endl; } + { + ofstream dot("graph.dot"); + tracker->print_graph_dot(&dot); + cout << "Wrote graph.dot." << endl; + } + delete tracker; exit(EXIT_SUCCESS); diff --git a/mtp_graph.cc b/mtp_graph.cc index 7167cf6..a208403 100644 --- a/mtp_graph.cc +++ b/mtp_graph.cc @@ -152,17 +152,19 @@ void MTPGraph::print(ostream *os) { void MTPGraph::print_dot(ostream *os) { (*os) << "digraph {" << endl; - (*os) << " node[shape=circle];" << endl; + // (*os) << " node [shape=circle];" << endl; + (*os) << " " << _source->id << " [peripheries=2];" << endl; + (*os) << " " << _sink->id << " [peripheries=2];" << endl; for(int k = 0; k < _nb_edges; k++) { Edge *e = _edges + k; // (*os) << " " << e->origin_vertex->id << " -> " << e->terminal_vertex->id // << ";" // << endl; if(e->occupied) { - (*os) << " " << e->origin_vertex->id << " -> " << e->terminal_vertex->id + (*os) << " " << e->origin_vertex->id << " -> " << e->terminal_vertex->id << " [style=bold,color=black,label=\"" << e->length << "\"];" << endl; } else { - (*os) << " " << e->origin_vertex->id << " -> " << e->terminal_vertex->id + (*os) << " " << e->origin_vertex->id << " -> " << e->terminal_vertex->id << " [color=gray,label=\"" << e->length << "\"];" << endl; } } diff --git a/tracker.cc b/tracker.cc index ce4dfc2..0d1d781 100644 --- a/tracker.cc +++ b/tracker.cc @@ -104,7 +104,7 @@ void Tracker::build_graph() { _nb_locations * 2 + // The edges from the source to the entrances and from the exists // to the sink (in every time frames but the first and last) - (_nb_time_steps - 2) * (nb_exits + nb_entrances) + + (_nb_time_steps - 1) * (nb_exits + nb_entrances) + // The edges for the motions, between every pair of successive // frames (_nb_time_steps - 1) * nb_motions + @@ -157,15 +157,15 @@ void Tracker::build_graph() { } } - for(int t = 1; t < _nb_time_steps-1; t++) { + for(int t = 0; t < _nb_time_steps; t++) { for(int l = 0; l < _nb_locations; l++) { - if(_entrances[l]) { + if(t > 0 && _entrances[l]) { node_from[e] = source; node_to[e] = 1 + (2 * (t + 0) + 0) * _nb_locations + l; _edge_lengths[e] = 0.0; e++; } - if(_exits[l]) { + if(t < _nb_time_steps - 1 && _exits[l]) { node_from[e] = 1 + (2 * (t + 0) + 1) * _nb_locations + l; node_to[e] = sink; _edge_lengths[e] = 0.0; @@ -182,7 +182,7 @@ void Tracker::build_graph() { delete[] node_to; } -void Tracker::print_dot_graph(ostream *os) { +void Tracker::print_graph_dot(ostream *os) { int e = 0; for(int t = 0; t < _nb_time_steps; t++) { for(int l = 0; l < _nb_locations; l++) { diff --git a/tracker.h b/tracker.h index 88f4bf2..f17c7a0 100644 --- a/tracker.h +++ b/tracker.h @@ -44,7 +44,7 @@ public: void set_as_exit(int location, int v); void build_graph(); - void print_dot_graph(ostream *os); + void print_graph_dot(ostream *os); void set_detection_score(int time, int location, scalar_t score);