@@ -720,7 +720,6 @@ SchedulingDemandHelper::SchedulingDemandHelper(
720
720
demands_(demands.begin(), demands.end()),
721
721
helper_(helper) {
722
722
const int num_tasks = helper->NumTasks ();
723
- linearized_energies_.resize (num_tasks);
724
723
decomposed_energies_.resize (num_tasks);
725
724
cached_energies_min_.resize (num_tasks, kMinIntegerValue );
726
725
cached_energies_max_.resize (num_tasks, kMaxIntegerValue );
@@ -747,11 +746,6 @@ IntegerValue SchedulingDemandHelper::SimpleEnergyMin(int t) const {
747
746
return CapProdI (DemandMin (t), helper_->SizeMin (t));
748
747
}
749
748
750
- IntegerValue SchedulingDemandHelper::LinearEnergyMin (int t) const {
751
- if (!linearized_energies_[t].has_value ()) return kMinIntegerValue ;
752
- return linearized_energies_[t]->Min (*integer_trail_);
753
- }
754
-
755
749
IntegerValue SchedulingDemandHelper::DecomposedEnergyMin (int t) const {
756
750
if (decomposed_energies_[t].empty ()) return kMinIntegerValue ;
757
751
IntegerValue result = kMaxIntegerValue ;
@@ -771,11 +765,6 @@ IntegerValue SchedulingDemandHelper::SimpleEnergyMax(int t) const {
771
765
return CapProdI (DemandMax (t), helper_->SizeMax (t));
772
766
}
773
767
774
- IntegerValue SchedulingDemandHelper::LinearEnergyMax (int t) const {
775
- if (!linearized_energies_[t].has_value ()) return kMaxIntegerValue ;
776
- return linearized_energies_[t]->Max (*integer_trail_);
777
- }
778
-
779
768
IntegerValue SchedulingDemandHelper::DecomposedEnergyMax (int t) const {
780
769
if (decomposed_energies_[t].empty ()) return kMaxIntegerValue ;
781
770
IntegerValue result = kMinIntegerValue ;
@@ -806,14 +795,14 @@ bool SchedulingDemandHelper::CacheAllEnergyValues() {
806
795
decomposed_energies_[t].resize (new_size);
807
796
}
808
797
809
- cached_energies_min_[t] = std::max (
810
- { SimpleEnergyMin (t), LinearEnergyMin (t), DecomposedEnergyMin (t)} );
798
+ cached_energies_min_[t] =
799
+ std::max ( SimpleEnergyMin (t), DecomposedEnergyMin (t));
811
800
if (cached_energies_min_[t] <= kMinIntegerValue ) return false ;
812
801
energy_is_quadratic_[t] =
813
802
decomposed_energies_[t].empty () && !demands_.empty () &&
814
803
!integer_trail_->IsFixed (demands_[t]) && !helper_->SizeIsFixed (t);
815
- cached_energies_max_[t] = std::min (
816
- { SimpleEnergyMax (t), LinearEnergyMax (t), DecomposedEnergyMax (t)} );
804
+ cached_energies_max_[t] =
805
+ std::min ( SimpleEnergyMax (t), DecomposedEnergyMax (t));
817
806
if (cached_energies_max_[t] >= kMaxIntegerValue ) return false ;
818
807
}
819
808
@@ -849,14 +838,6 @@ bool SchedulingDemandHelper::DecreaseEnergyMax(int t, IntegerValue value) {
849
838
if (!helper_->PushLiteral (lit.Negated ())) return false ;
850
839
}
851
840
}
852
- } else if (linearized_energies_[t].has_value () &&
853
- linearized_energies_[t]->vars .size () == 1 ) {
854
- const LinearExpression& e = linearized_energies_[t].value ();
855
- const AffineExpression affine_energy (e.vars [0 ], e.coeffs [0 ], e.offset );
856
- const IntegerLiteral deduction = affine_energy.LowerOrEqual (value);
857
- if (!helper_->PushIntegerLiteralIfTaskPresent (t, deduction)) {
858
- return false ;
859
- }
860
841
} else {
861
842
// TODO(user): Propagate if possible.
862
843
VLOG (3 ) << " Cumulative energy missed propagation" ;
@@ -900,12 +881,6 @@ void SchedulingDemandHelper::AddEnergyMinReason(int t) {
900
881
} else if (SimpleEnergyMin (t) >= value) {
901
882
AddDemandMinReason (t);
902
883
helper_->AddSizeMinReason (t);
903
- } else {
904
- DCHECK_GE (LinearEnergyMin (t), value);
905
- for (const IntegerVariable var : linearized_energies_[t]->vars ) {
906
- helper_->MutableIntegerReason ()->push_back (
907
- integer_trail_->LowerBoundAsLiteral (var));
908
- }
909
884
}
910
885
}
911
886
@@ -927,21 +902,6 @@ bool SchedulingDemandHelper::AddLinearizedDemand(
927
902
return true ;
928
903
}
929
904
930
- void SchedulingDemandHelper::OverrideLinearizedEnergies (
931
- absl::Span<const LinearExpression> energies) {
932
- const int num_tasks = energies.size ();
933
- DCHECK_EQ (num_tasks, helper_->NumTasks ());
934
- linearized_energies_.resize (num_tasks);
935
- for (int t = 0 ; t < num_tasks; ++t) {
936
- linearized_energies_[t] = energies[t];
937
- if (DEBUG_MODE) {
938
- for (const IntegerValue coeff : linearized_energies_[t]->coeffs ) {
939
- DCHECK_GE (coeff, 0 );
940
- }
941
- }
942
- }
943
- }
944
-
945
905
std::vector<LiteralValueValue> SchedulingDemandHelper::FilteredDecomposedEnergy (
946
906
int index) {
947
907
if (decomposed_energies_[index ].empty ()) return {};
0 commit comments