C++ Reference: class KnapsackPropagator

This documentation is automatically generated.

   ----- KnapsackPropagator -----
KnapsackPropagator is the base class for modeling and propagating a constraint given an assignment.

When some work has to be done both by the base and the derived class, a protected pure virtual method ending by 'Propagator' is defined. For instance, 'Init' creates a vector of items, and then calls 'InitPropagator' to let the derived class perform its own initialization.

Return type: virtual void

ComputeProfitBounds should set 'profit_lower_bound_' and 'profit_upper_bound_' which are constraint specific.


Return type: void

Arguments: bool has_one_propagator, std::vector<bool>* solution

Copies the current state into 'solution'. All unbound items are set to false (i.e. not in the knapsack). When 'has_one_propagator' is true, CopyCurrentSolutionPropagator is called to have a better solution. When there is only one propagator there is no need to check the solution with other propagators, so the partial solution can be smartly completed.


Return type: int64_t


Return type: virtual int

Returns the id of next item to assign. Returns kNoSelection when all items are bound.


Return type: void

Arguments: const std::vector<int64_t>& profits, const std::vector<int64_t>& weights

Initializes data structure and then calls InitPropagator.


Return type: explicit

Arguments: const KnapsackState& state


Return type: virtual


Return type: int64_t


Return type: int64_t


Return type: bool

Arguments: bool revert, const KnapsackAssignment& assignment

Updates data structure and then calls UpdatePropagator. Returns false when failure.