48 orthogonal_packing_checker_(*random_, shared_stats_) {}
58 std::vector<RectangleInRange> items_for_opp;
59 Rectangle rectangle_with_too_much_energy;
62 std::optional<Conflict> FindConflict(
63 std::vector<RectangleInRange> active_box_ranges);
65 std::vector<RectangleInRange> GeneralizeExplanation(
const Conflict& conflict);
67 bool BuildAndReportEnergyTooLarge(
68 const std::vector<RectangleInRange>& ranges);
70 SchedulingConstraintHelper& x_;
71 SchedulingConstraintHelper& y_;
72 ModelRandomGenerator* random_;
73 SharedStatistics* shared_stats_;
74 OrthogonalPackingInfeasibilityDetector orthogonal_packing_checker_;
76 int64_t num_calls_ = 0;
77 int64_t num_conflicts_ = 0;
78 int64_t num_conflicts_two_boxes_ = 0;
79 int64_t num_refined_conflicts_ = 0;
80 int64_t num_conflicts_with_slack_ = 0;