21 #ifndef OR_TOOLS_LINEAR_SOLVER_SCIP_CALLBACK_H_
22 #define OR_TOOLS_LINEAR_SOLVER_SCIP_CALLBACK_H_
28 #include "absl/memory/memory.h"
31 #include "scip/scip_sol.h"
32 #include "scip/type_cons.h"
33 #include "scip/type_scip.h"
34 #include "scip/type_sol.h"
35 #include "scip/type_var.h"
93 SCIP*
scip()
const {
return scip_; }
107 bool is_pseudo_solution_;
118 template <
typename Constra
int>
162 template <
typename Constra
int>
180 template <
typename Constra
intData>
183 const std::string& constraint_name,
184 const ConstraintData* constraint_data,
207 template <
typename Constra
intData>
212 : handler_(handler) {}
216 void* constraint_data)
override {
218 context, *
static_cast<ConstraintData*
>(constraint_data));
223 void* constraint_data)
override {
225 context, *
static_cast<ConstraintData*
>(constraint_data));
229 void* constraint_data)
override {
231 context, *
static_cast<ConstraintData*
>(constraint_data));
235 void* constraint_data)
override {
237 context, *
static_cast<ConstraintData*
>(constraint_data));
246 std::unique_ptr<ScipCallbackRunner> runner, SCIP* scip);
249 const std::string& constraint_name,
250 void* constraint_data,
255 template <
typename Constra
intData>
265 template <
typename Constra
intData>
268 const std::string& constraint_name,
269 const ConstraintData* constraint_data,
273 static_cast<void*
>(
const_cast<ConstraintData*
>(constraint_data)),
A constraint is the main modeling object.
An expression of the form:
The class for variables of a Mathematical Programming (MP) model.
double VariableValue(const MPVariable *variable) const
ScipConstraintHandlerContext(SCIP *scip, SCIP_SOL *solution, bool is_pseudo_solution)
int64_t CurrentNodeId() const
int64_t NumNodesProcessed() const
bool is_pseudo_solution() const
virtual bool IntegerSolutionFeasible(const ScipConstraintHandlerContext &context, const Constraint &constraint)
virtual bool FractionalSolutionFeasible(const ScipConstraintHandlerContext &context, const Constraint &constraint)
virtual std::vector< CallbackRangeConstraint > SeparateFractionalSolution(const ScipConstraintHandlerContext &context, const Constraint &constraint)=0
ScipConstraintHandler(const ScipConstraintHandlerDescription &description)
virtual ~ScipConstraintHandler()
virtual std::vector< CallbackRangeConstraint > SeparateIntegerSolution(const ScipConstraintHandlerContext &context, const Constraint &constraint)
const ScipConstraintHandlerDescription & description() const
virtual bool IntegerSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint)=0
virtual bool FractionalSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint)=0
virtual ~ScipCallbackRunner()
virtual std::vector< CallbackRangeConstraint > SeparateFractionalSolution(const ScipConstraintHandlerContext &context, void *constraint)=0
virtual std::vector< CallbackRangeConstraint > SeparateIntegerSolution(const ScipConstraintHandlerContext &context, void *constraint)=0
std::vector< CallbackRangeConstraint > SeparateFractionalSolution(const ScipConstraintHandlerContext &context, void *constraint_data) override
std::vector< CallbackRangeConstraint > SeparateIntegerSolution(const ScipConstraintHandlerContext &context, void *constraint_data) override
ScipCallbackRunnerImpl(ScipConstraintHandler< ConstraintData > *handler)
bool FractionalSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint_data) override
bool IntegerSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint_data) override
GurobiMPCallbackContext * context
This file allows you to write natural code (like a mathematical equation) to model optimization probl...
A C++ wrapper that provides a simple and unified interface to several linear programming and mixed in...
void AddConstraintHandlerImpl(const ScipConstraintHandlerDescription &description, std::unique_ptr< ScipCallbackRunner > runner, SCIP *scip)
void AddCallbackConstraintImpl(SCIP *scip, const std::string &handler_name, const std::string &constraint_name, void *constraint_data, const ScipCallbackConstraintOptions &options)
Collection of objects used to extend the Constraint Solver library.
void RegisterConstraintHandler(ScipConstraintHandler< Constraint > *handler, SCIP *scip)
void AddCallbackConstraint(SCIP *scip, ScipConstraintHandler< ConstraintData > *handler, const std::string &constraint_name, const ConstraintData *constraint_data, const ScipCallbackConstraintOptions &options)
int feasibility_check_priority