[GIT] ppl/ppl(pip): Implemented Bland' s anti-cycling rule in compatibility_check.

Module: ppl/ppl Branch: pip Commit: 22429a8c2b62bd1cba1fcd42a4f8acd045853fcf URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=22429a8c2b62b...
Author: François Galea francois.galea@uvsq.fr Date: Mon Nov 2 17:41:11 2009 +0100
Implemented Bland's anti-cycling rule in compatibility_check.
---
src/PIP_Tree.cc | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/PIP_Tree.cc b/src/PIP_Tree.cc index 3f703e7..4c47ff5 100644 --- a/src/PIP_Tree.cc +++ b/src/PIP_Tree.cc @@ -720,16 +720,16 @@ PIP_Solution_Node::compatibility_check(const Matrix &ctx, const Row &cnst) { if (i == num_rows) i = i_; for (j_=1; j_<num_cols; ++j_) { - if (rs[j_] > 0) { - if(j == 0) - j = j_; - break; - } + // Search for first least nonnegative pivot candidate + const Coefficient& c = rs[j_]; + if (c > 0 && (j == 0 || c < rs[j])) + j = j_; } - if (j_==num_cols) { + if (j == 0) { // No positive pivot candidate: empty problem return false; } + break; } }
participants (1)
-
François Galea