C++ Reference
C++ Reference: CP-SAT
cp_model.h File Reference
Detailed Description
This file implements a wrapper around the CP-SAT model proto.
Here is a minimal example that shows how to create a model, solve it, and print out the solution.
CpModelBuilder cp_model;
Domain all_animals(0, 20);
IntVar rabbits = cp_model.NewIntVar(all_animals).WithName("rabbits");
IntVar pheasants = cp_model.NewIntVar(all_animals).WithName("pheasants");
cp_model.AddEquality(rabbits + pheasants, 20);
cp_model.AddEquality(4 * rabbits + 2 * pheasants, 56);
const CpSolverResponse response = Solve(cp_model.Build());
if (response.status() == CpSolverStatus::FEASIBLE) {
LOG(INFO) << SolutionIntegerValue(response, rabbits)
<< " rabbits, and " << SolutionIntegerValue(response, pheasants)
<< " pheasants.";
}
CpSolverResponse Solve(const CpModelProto &model_proto)
Solves the given CpModelProto and returns an instance of CpSolverResponse.
int64_t SolutionIntegerValue(const CpSolverResponse &r, const LinearExpr &expr)
Evaluates the value of an linear expression in a solver response.
Definition in file cp_model.h.
Go to the source code of this file.
Classes | |
| class | BoolVar |
| A Boolean variable. More... | |
| class | IntVar |
| An integer variable. More... | |
| class | LinearExpr |
| A dedicated container for linear expressions. More... | |
| class | DoubleLinearExpr |
| A dedicated container for linear expressions with double coefficients. More... | |
| class | IntervalVar |
| Represents a Interval variable. More... | |
| class | Constraint |
| A constraint. More... | |
| class | CircuitConstraint |
| Specialized circuit constraint. More... | |
| class | MultipleCircuitConstraint |
| Specialized circuit constraint. More... | |
| class | TableConstraint |
| Specialized assignment constraint. More... | |
| class | ReservoirConstraint |
| Specialized reservoir constraint. More... | |
| class | AutomatonConstraint |
| Specialized automaton constraint. More... | |
| class | NoOverlap2DConstraint |
| Specialized no_overlap2D constraint. More... | |
| class | CumulativeConstraint |
| Specialized cumulative constraint. More... | |
| class | CpModelBuilder |
| Wrapper class around the cp_model proto. More... | |
Namespaces | |
| namespace | operations_research |
| namespace | operations_research::sat |
Functions | |
| std::ostream & | operator<< (std::ostream &os, const BoolVar &var) |
| BoolVar | Not (BoolVar x) |
| A convenient wrapper so we can write Not(x) instead of x.Not() which is sometimes clearer. More... | |
| std::ostream & | operator<< (std::ostream &os, const IntVar &var) |
| std::ostream & | operator<< (std::ostream &os, const LinearExpr &e) |
| std::ostream & | operator<< (std::ostream &os, const DoubleLinearExpr &e) |
| std::ostream & | operator<< (std::ostream &os, const IntervalVar &var) |
| int64_t | SolutionIntegerValue (const CpSolverResponse &r, const LinearExpr &expr) |
| Evaluates the value of an linear expression in a solver response. More... | |
| bool | SolutionBooleanValue (const CpSolverResponse &r, BoolVar x) |
| Evaluates the value of a Boolean literal in a solver response. More... | |
| std::string | VarDebugString (const CpModelProto &proto, int index) |
| LinearExpr | operator- (LinearExpr expr) |
| LinearExpr | operator+ (const LinearExpr &lhs, const LinearExpr &rhs) |
| LinearExpr | operator+ (LinearExpr &&lhs, const LinearExpr &rhs) |
| LinearExpr | operator+ (const LinearExpr &lhs, LinearExpr &&rhs) |
| LinearExpr | operator+ (LinearExpr &&lhs, LinearExpr &&rhs) |
| LinearExpr | operator- (const LinearExpr &lhs, const LinearExpr &rhs) |
| LinearExpr | operator- (LinearExpr &&lhs, const LinearExpr &rhs) |
| LinearExpr | operator- (const LinearExpr &lhs, LinearExpr &&rhs) |
| LinearExpr | operator- (LinearExpr &&lhs, LinearExpr &&rhs) |
| LinearExpr | operator* (LinearExpr expr, int64_t factor) |
| LinearExpr | operator* (int64_t factor, LinearExpr expr) |
| DoubleLinearExpr | operator- (DoubleLinearExpr expr) |
| DoubleLinearExpr | operator+ (const DoubleLinearExpr &lhs, const DoubleLinearExpr &rhs) |
| DoubleLinearExpr | operator+ (DoubleLinearExpr &&lhs, const DoubleLinearExpr &rhs) |
| DoubleLinearExpr | operator+ (const DoubleLinearExpr &lhs, DoubleLinearExpr &&rhs) |
| DoubleLinearExpr | operator+ (DoubleLinearExpr &&lhs, DoubleLinearExpr &&rhs) |
| DoubleLinearExpr | operator+ (DoubleLinearExpr expr, double rhs) |
| DoubleLinearExpr | operator+ (double lhs, DoubleLinearExpr expr) |
| DoubleLinearExpr | operator- (const DoubleLinearExpr &lhs, const DoubleLinearExpr &rhs) |
| DoubleLinearExpr | operator- (DoubleLinearExpr &&lhs, const DoubleLinearExpr &rhs) |
| DoubleLinearExpr | operator- (const DoubleLinearExpr &lhs, DoubleLinearExpr &&rhs) |
| DoubleLinearExpr | operator- (DoubleLinearExpr &&lhs, DoubleLinearExpr &&rhs) |
| DoubleLinearExpr | operator- (DoubleLinearExpr epxr, double rhs) |
| DoubleLinearExpr | operator- (double lhs, DoubleLinearExpr expr) |
| DoubleLinearExpr | operator* (DoubleLinearExpr expr, double factor) |
| DoubleLinearExpr | operator* (double factor, DoubleLinearExpr expr) |