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(LinearExpr::Sum({rabbits, pheasants}), 20);
cp_model.AddEquality(LinearExpr::ScalProd({rabbits, pheasants}, {4, 2}), 56);
const CpSolverResponse response = Solve(cp_model.Build());
if (response.status() == CpSolverStatus::FEASIBLE) {
LOG(INFO) << SolutionIntegerValue(response, rabbits)
<< " rabbits, and " << SolutionIntegerValue(response, pheasants)
<< " pheasants.";
}
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 | 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 | |
operations_research | |
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 IntervalVar &var) |
int64 | SolutionIntegerValue (const CpSolverResponse &r, const LinearExpr &expr) |
Evaluates the value of an linear expression in a solver response. More... | |
int64 | SolutionIntegerMin (const CpSolverResponse &r, IntVar x) |
Returns the min of an integer variable in a solution. More... | |
int64 | SolutionIntegerMax (const CpSolverResponse &r, IntVar x) |
Returns the max of an integer variable in a solution. More... | |
bool | SolutionBooleanValue (const CpSolverResponse &r, BoolVar x) |
Evaluates the value of a Boolean literal in a solver response. More... | |
CpSolverResponse Solve(const CpModelProto &model_proto)
Solves the given CpModelProto and returns an instance of CpSolverResponse.
int64 SolutionIntegerValue(const CpSolverResponse &r, const LinearExpr &expr)
Evaluates the value of an linear expression in a solver response.