From 895a4a8ef15cbcaaa058665210195fd36af2a888 Mon Sep 17 00:00:00 2001 From: "lperron@google.com" Date: Tue, 24 Jul 2012 22:32:50 +0000 Subject: [PATCH] 2 fixes on scheduling --- src/constraint_solver/resource.cc | 2 +- src/constraint_solver/sched_search.cc | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/constraint_solver/resource.cc b/src/constraint_solver/resource.cc index 4592c2e3c7..1913ef9b45 100644 --- a/src/constraint_solver/resource.cc +++ b/src/constraint_solver/resource.cc @@ -901,7 +901,7 @@ class RankedPropagator : public Constraint { } } // Propagates on ranked first from right to left. - for (int i = std::min(first_sentinel - 1, last_position - 1); i >= 0; --i) { + for (int i = std::min(first_sentinel - 2, last_position - 1); i >= 0; --i) { IntervalVar* const interval = RankedInterval(i); IntervalVar* const next_interval = RankedInterval(i + 1); IntVar* const transit = RankedTransit(i); diff --git a/src/constraint_solver/sched_search.cc b/src/constraint_solver/sched_search.cc index afe696a3db..06f161953e 100644 --- a/src/constraint_solver/sched_search.cc +++ b/src/constraint_solver/sched_search.cc @@ -251,6 +251,7 @@ void SequenceVar::RankSequence(const std::vector& rank_first, void SequenceVar::RankFirst(int index) { solver()->GetPropagationMonitor()->RankFirst(this, index); + intervals_[index]->SetPerformed(true); const int forward_frontier = ComputeForwardFrontier(); nexts_[forward_frontier]->SetValue(index + 1); } @@ -267,6 +268,7 @@ void SequenceVar::RankNotFirst(int index) { void SequenceVar::RankLast(int index) { solver()->GetPropagationMonitor()->RankLast(this, index); + intervals_[index]->SetPerformed(true); const int backward_frontier = ComputeBackwardFrontier(); nexts_[index + 1]->SetValue(backward_frontier); }