[GIT] ppl/ppl(pip): Updated the deepest cut strategy; now only selects rows associated to initial variables.

Module: ppl/ppl Branch: pip Commit: 5968086496c32916aeaafe8faadb471be547e2ec URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=5968086496c32...
Author: François Galea francois.galea@uvsq.fr Date: Mon Nov 16 15:00:45 2009 +0100
Updated the deepest cut strategy; now only selects rows associated to initial variables.
This results in performance increase in most problems.
---
src/PIP_Tree.cc | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/PIP_Tree.cc b/src/PIP_Tree.cc index 8dddf82..2058c45 100644 --- a/src/PIP_Tree.cc +++ b/src/PIP_Tree.cc @@ -1549,9 +1549,12 @@ PIP_Solution_Node::solve(PIP_Tree_Node*& parent_ref, PPL_DIRTY_TEMP_COEFFICIENT(score2); Coefficient best = 0; dimension_type best_i = 0; - for (i_ = 0; i_ < num_rows; ++i_) { - const Row& row_t = tableau.t[i_]; - const Row& row_s = tableau.s[i_]; + for (i_ = 0; i_ < num_vars; ++i_) { + if (basis[i_]) + continue; + i = mapping[i_]; + const Row& row_t = tableau.t[i]; + const Row& row_s = tableau.s[i]; score1 = 0; for (j = 0; j < num_params; ++j) { mod_assign(mod, row_t[j], d); @@ -1567,7 +1570,7 @@ PIP_Solution_Node::solve(PIP_Tree_Node*& parent_ref, score = score1*score2; if (score > best) { best = score; - best_i = i_; + best_i = i; } } i = best_i;
participants (1)
-
François Galea