Pseudo solutions may not be LP feasible. Duals/reduced costs are not
available (the LP solver failed at this node).
Do not add "user cuts" here (that strengthen LP solution but don't change
feasible region), add only "lazy constraints" (cut off integer solutions).
TODO(user): maybe this can be abstracted away.
[[["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\u003eScipConstraintHandlerContext\u003c/code\u003e provides methods for interacting with SCIP solver within constraint handlers.\u003c/p\u003e\n"],["\u003cp\u003eIt allows access to current node information, the SCIP solver instance, and the current solution.\u003c/p\u003e\n"],["\u003cp\u003eUsers can retrieve the value of variables and the total number of nodes processed.\u003c/p\u003e\n"],["\u003cp\u003eIt helps in distinguishing between pseudo and true solutions to apply appropriate constraints.\u003c/p\u003e\n"]]],["The `ScipConstraintHandlerContext` class provides methods for interacting with the SCIP solver. Key actions include retrieving the `CurrentNodeId` and `NumNodesProcessed`, accessing the underlying `SCIP*` solver instance. `VariableValue` gets the value of a variable. `is_pseudo_solution` checks if the solution is a pseudo solution where duals/reduced costs are not available, and suggests only adding lazy constraints. The class can be created with an instance of `SCIP`, a solution and a boolean.\n"],null,["# ScipConstraintHandlerContext\n\nC++ Reference: class ScipConstraintHandlerContext\n=================================================\n\n\nNote: This documentation is automatically generated.\n\n| Method ||\n|--------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`CurrentNodeId`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L91) | Return type: `int64_t ` \u003cbr /\u003e |\n| [`is_pseudo_solution`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L103) | Return type: `bool ` Pseudo solutions may not be LP feasible. Duals/reduced costs are not available (the LP solver failed at this node). Do not add \"user cuts\" here (that strengthen LP solution but don't change feasible region), add only \"lazy constraints\" (cut off integer solutions). TODO(user): maybe this can be abstracted away. |\n| [`NumNodesProcessed`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L92) | Return type: `int64_t ` \u003cbr /\u003e |\n| [`scip`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L94) | Return type: `SCIP* ` \u003cbr /\u003e |\n| [`ScipConstraintHandlerContext`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L87) | \u003cbr /\u003e Arguments: `SCIP* scip, SCIP_SOL* solution, bool is_pseudo_solution` A value of nullptr for solution means to use the current LP solution. |\n| [`VariableValue`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/scip_callback.h#L89) | Return type: `double ` Arguments: `const MPVariable* variable` \u003cbr /\u003e |"]]