|
template<typename VectorInt > |
std::function< void(Model *)> | operations_research::sat::WeightedSumLowerOrEqual (const std::vector< IntegerVariable > &vars, const VectorInt &coefficients, int64_t upper_bound) |
| Weighted sum <= constant.
|
|
template<typename VectorInt > |
std::function< void(Model *)> | operations_research::sat::WeightedSumGreaterOrEqual (const std::vector< IntegerVariable > &vars, const VectorInt &coefficients, int64_t lower_bound) |
| Weighted sum >= constant.
|
|
template<typename VectorInt > |
std::function< void(Model *)> | operations_research::sat::FixedWeightedSum (const std::vector< IntegerVariable > &vars, const VectorInt &coefficients, int64_t value) |
| Weighted sum == constant.
|
|
void | operations_research::sat::AddWeightedSumLowerOrEqual (absl::Span< const Literal > enforcement_literals, absl::Span< const IntegerVariable > vars, absl::Span< const int64_t > coefficients, int64_t upper_bound, Model *model) |
| enforcement_literals => sum <= upper_bound
|
|
void | operations_research::sat::AddWeightedSumGreaterOrEqual (absl::Span< const Literal > enforcement_literals, absl::Span< const IntegerVariable > vars, absl::Span< const int64_t > coefficients, int64_t lower_bound, Model *model) |
| enforcement_literals => sum >= lower_bound
|
|
std::function< void(Model *)> | operations_research::sat::ConditionalWeightedSumLowerOrEqual (const std::vector< Literal > &enforcement_literals, const std::vector< IntegerVariable > &vars, const std::vector< int64_t > &coefficients, int64_t upper_bound) |
|
std::function< void(Model *)> | operations_research::sat::ConditionalWeightedSumGreaterOrEqual (const std::vector< Literal > &enforcement_literals, const std::vector< IntegerVariable > &vars, const std::vector< int64_t > &coefficients, int64_t upper_bound) |
|
void | operations_research::sat::LoadConditionalLinearConstraint (const absl::Span< const Literal > enforcement_literals, const LinearConstraint &cst, Model *model) |
| LinearConstraint version.
|
|
void | operations_research::sat::LoadLinearConstraint (const LinearConstraint &cst, Model *model) |
|
void | operations_research::sat::AddConditionalAffinePrecedence (const absl::Span< const Literal > enforcement_literals, AffineExpression left, AffineExpression right, Model *model) |
|
template<typename VectorInt > |
std::function< IntegerVariable(Model *)> | operations_research::sat::NewWeightedSum (const VectorInt &coefficients, const std::vector< IntegerVariable > &vars) |
|
std::function< void(Model *)> | operations_research::sat::IsEqualToMinOf (IntegerVariable min_var, const std::vector< IntegerVariable > &vars) |
|
std::function< void(Model *)> | operations_research::sat::IsEqualToMinOf (const LinearExpression &min_expr, const std::vector< LinearExpression > &exprs) |
|
std::function< void(Model *)> | operations_research::sat::IsEqualToMaxOf (IntegerVariable max_var, const std::vector< IntegerVariable > &vars) |
|
std::function< void(Model *)> | operations_research::sat::IsOneOf (IntegerVariable var, const std::vector< Literal > &selectors, const std::vector< IntegerValue > &values) |
|
template<class T > |
void | operations_research::sat::RegisterAndTransferOwnership (Model *model, T *ct) |
|
std::function< void(Model *)> | operations_research::sat::ProductConstraint (AffineExpression a, AffineExpression b, AffineExpression p) |
| Adds the constraint: a * b = p.
|
|
std::function< void(Model *)> | operations_research::sat::DivisionConstraint (AffineExpression num, AffineExpression denom, AffineExpression div) |
| Adds the constraint: num / denom = div. (denom > 0).
|
|
std::function< void(Model *)> | operations_research::sat::FixedDivisionConstraint (AffineExpression a, IntegerValue b, AffineExpression c) |
| Adds the constraint: a / b = c where b is a constant.
|
|
std::function< void(Model *)> | operations_research::sat::FixedModuloConstraint (AffineExpression a, IntegerValue b, AffineExpression c) |
| Adds the constraint: a % b = c where b is a constant.
|
|