[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[[["\u003cp\u003e\u003ccode\u003eScipConstraintHandler\u003c/code\u003e is a C++ class used to define custom constraint handling logic within the SCIP optimization framework.\u003c/p\u003e\n"],["\u003cp\u003eIt provides methods to check solution feasibility (\u003ccode\u003eFractionalSolutionFeasible\u003c/code\u003e, \u003ccode\u003eIntegerSolutionFeasible\u003c/code\u003e) and separate solutions by adding constraints (\u003ccode\u003eSeparateFractionalSolution\u003c/code\u003e, \u003ccode\u003eSeparateIntegerSolution\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eUsers can inherit from this class and override its virtual methods to implement their own constraint handling procedures.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003edescription\u003c/code\u003e method provides access to the handler's description, while the constructor initializes it with a given description.\u003c/p\u003e\n"],["\u003cp\u003eA destructor (\u003ccode\u003e~ScipConstraintHandler\u003c/code\u003e) is also provided for proper cleanup.\u003c/p\u003e\n"]]],["The `ScipConstraintHandler` class defines methods for constraint handling in C++. Key actions include: checking fractional solution feasibility via `FractionalSolutionFeasible`, and checking integer solution feasibility via `IntegerSolutionFeasible`. It allows separating solutions with `SeparateFractionalSolution` and `SeparateIntegerSolution`, which must find violated constraints. `description` returns constraint handler details. The `ScipConstraintHandler` constructor initializes the handler, and `~ScipConstraintHandler` is a virtual destructor.\n"],null,["# ScipConstraintHandler\n\nC++ Reference: class ScipConstraintHandler\n==========================================\n\n\nNote: This documentation is automatically generated.\n\n| Method ||\n|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`description`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L126) | Return type: `const ScipConstraintHandlerDescription& ` \u003cbr /\u003e |\n| [`FractionalSolutionFeasible`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L145) | Return type: `virtual bool ` Arguments: ` const ScipConstraintHandlerContext& context, const Constraint& constraint` Returns true if no constraints are violated. |\n| [`IntegerSolutionFeasible`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L152) | Return type: `virtual bool ` Arguments: ` const ScipConstraintHandlerContext& context, const Constraint& constraint` This MUST find a violated constraint if one exists. |\n| [`ScipConstraintHandler`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L122) | Return type: `explicit ` Arguments: ` const ScipConstraintHandlerDescription& description` \u003cbr /\u003e |\n| [`~ScipConstraintHandler`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L125) | Return type: `virtual ` \u003cbr /\u003e |\n| [`SeparateFractionalSolution`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L132) | Return type: `virtual std::vector\u003cCallbackRangeConstraint\u003e ` Arguments: ` const ScipConstraintHandlerContext& context, const Constraint& constraint` Unless SeparateIntegerSolution() below is overridden, this must find a violated lazy constraint if one exists when given an integral solution. |\n| [`SeparateIntegerSolution`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L138) | Return type: `virtual std::vector\u003cCallbackRangeConstraint\u003e ` Arguments: ` const ScipConstraintHandlerContext& context, const Constraint& constraint` This MUST find a violated lazy constraint if one exists. All constraints returned must have is_cut as false. |"]]