 |
OR-Tools
8.1
|
Go to the documentation of this file.
21 #ifndef OR_TOOLS_LINEAR_SOLVER_SCIP_CALLBACK_H_
22 #define OR_TOOLS_LINEAR_SOLVER_SCIP_CALLBACK_H_
27 #include "absl/memory/memory.h"
30 #include "scip/scip_sol.h"
31 #include "scip/type_cons.h"
32 #include "scip/type_scip.h"
33 #include "scip/type_sol.h"
34 #include "scip/type_var.h"
92 SCIP*
scip()
const {
return scip_; }
106 bool is_pseudo_solution_;
117 template <
typename Constra
int>
161 template <
typename Constra
int>
179 template <
typename Constra
intData>
182 const std::string& constraint_name,
183 const ConstraintData* constraint_data,
206 template <
typename Constra
intData>
211 : handler_(handler) {}
215 void* constraint_data)
override {
217 context, *
static_cast<ConstraintData*
>(constraint_data));
222 void* constraint_data)
override {
224 context, *
static_cast<ConstraintData*
>(constraint_data));
228 void* constraint_data)
override {
230 context, *
static_cast<ConstraintData*
>(constraint_data));
234 void* constraint_data)
override {
236 context, *
static_cast<ConstraintData*
>(constraint_data));
245 std::unique_ptr<ScipCallbackRunner> runner, SCIP* scip);
248 const std::string& constraint_name,
249 void* constraint_data,
254 template <
typename Constra
intData>
264 template <
typename Constra
intData>
267 const std::string& constraint_name,
268 const ConstraintData* constraint_data,
272 static_cast<void*
>(
const_cast<ConstraintData*
>(constraint_data)),
278 #endif // OR_TOOLS_LINEAR_SOLVER_SCIP_CALLBACK_H_
bool IntegerSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint_data) override
std::vector< CallbackRangeConstraint > SeparateFractionalSolution(const ScipConstraintHandlerContext &context, void *constraint_data) override
bool is_pseudo_solution() const
ScipCallbackRunnerImpl(ScipConstraintHandler< ConstraintData > *handler)
virtual ~ScipConstraintHandler()
This file allows you to write natural code (like a mathematical equation) to model optimization probl...
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
ScipConstraintHandlerContext(SCIP *scip, SCIP_SOL *solution, bool is_pseudo_solution)
ScipConstraintHandler(const ScipConstraintHandlerDescription &description)
virtual bool IntegerSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint)=0
GurobiMPCallbackContext * context
virtual std::vector< CallbackRangeConstraint > SeparateFractionalSolution(const ScipConstraintHandlerContext &context, void *constraint)=0
virtual std::vector< CallbackRangeConstraint > SeparateIntegerSolution(const ScipConstraintHandlerContext &context, void *constraint)=0
double VariableValue(const MPVariable *variable) const
virtual bool IntegerSolutionFeasible(const ScipConstraintHandlerContext &context, const Constraint &constraint)
void AddCallbackConstraintImpl(SCIP *scip, const std::string &handler_name, const std::string &constraint_name, void *constraint_data, const ScipCallbackConstraintOptions &options)
virtual bool FractionalSolutionFeasible(const ScipConstraintHandlerContext &context, const Constraint &constraint)
virtual ~ScipCallbackRunner()
int feasibility_check_priority
std::vector< CallbackRangeConstraint > SeparateIntegerSolution(const ScipConstraintHandlerContext &context, void *constraint_data) override
int64 NumNodesProcessed() const
virtual std::vector< CallbackRangeConstraint > SeparateIntegerSolution(const ScipConstraintHandlerContext &context, const Constraint &constraint)
An expression of the form:
void RegisterConstraintHandler(ScipConstraintHandler< Constraint > *handler, SCIP *scip)
void AddConstraintHandlerImpl(const ScipConstraintHandlerDescription &description, std::unique_ptr< ScipCallbackRunner > runner, SCIP *scip)
bool FractionalSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint_data) override
A constraint is the main modeling object.
virtual std::vector< CallbackRangeConstraint > SeparateFractionalSolution(const ScipConstraintHandlerContext &context, const Constraint &constraint)=0
void AddCallbackConstraint(SCIP *scip, ScipConstraintHandler< ConstraintData > *handler, const std::string &constraint_name, const ConstraintData *constraint_data, const ScipCallbackConstraintOptions &options)
const ScipConstraintHandlerDescription & description() const
The class for variables of a Mathematical Programming (MP) model.
A C++ wrapper that provides a simple and unified interface to several linear programming and mixed in...
virtual bool FractionalSolutionFeasible(const ScipConstraintHandlerContext &context, void *constraint)=0
int64 CurrentNodeId() const