Stay organized with collections
Save and categorize content based on your preferences.
C++ Reference: sat_solver_utils
Note: This documentation is automatically generated.
Applies presolve steps to improve the MIP -> IP imperfect conversion. The stricter the domain of the variables, the more room we have for scaling the constraint to integers and prevent overflow. Similarly if we can remove singleton continuous variables, it is just good to do so.
Returns the presolve status which can currently be:
- INIT for most cases were nothing was proven during this step.
- PRIMAL_INFEASIBLE if the model was proven infeasible.
- INFEASIBLE_OR_UNBOUNDED if the presolve couldn't distinguish between these
two statuses.
- ABNORMAL if an error occurred.
[[["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\u003eThis tool applies presolve steps to enhance the conversion of Mixed Integer Programs (MIP) to Integer Programs (IP) by tightening variable domains and removing unnecessary continuous variables.\u003c/p\u003e\n"],["\u003cp\u003ePresolve can identify infeasible models or situations where infeasibility and unboundedness cannot be distinguished, returning corresponding statuses.\u003c/p\u003e\n"],["\u003cp\u003eIt primarily aims to improve the scaling of constraints to integers and prevent overflow during the conversion process.\u003c/p\u003e\n"],["\u003cp\u003eA dedicated function, \u003ccode\u003eApplyMipPresolveSteps\u003c/code\u003e, executes these steps, taking model parameters and logging information as input.\u003c/p\u003e\n"],["\u003cp\u003ePossible presolve outcomes include: initialization (no changes), primal infeasibility, infeasible or unbounded status, or abnormal termination due to errors.\u003c/p\u003e\n"]]],[],null,["# sat_solver_utils\n\nC++ Reference: sat_solver_utils\n===============================\n\n\nNote: This documentation is automatically generated.\n\n\u003cbr /\u003e\n\nApplies presolve steps to improve the MIP -\\\u003e IP imperfect conversion. The stricter the domain of the variables, the more room we have for scaling the constraint to integers and prevent overflow. Similarly if we can remove singleton continuous variables, it is just good to do so. \n\nReturns the presolve status which can currently be: \n- INIT for most cases were nothing was proven during this step. \n- PRIMAL_INFEASIBLE if the model was proven infeasible. \n- INFEASIBLE_OR_UNBOUNDED if the presolve couldn't distinguish between these \ntwo statuses. \n- ABNORMAL if an error occurred.\n\n| Function | Type | Arguments | Comments |\n|----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|----------|\n| [`ApplyMipPresolveSteps`](https://github.com/google/or-tools/blob/v9.4/ortools/linear_solver/sat_solver_utils.h#L37) | Return type: `glop::ProblemStatus ` Arguments: ` const glop::GlopParameters& glop_params, MPModelProto* model, std::vector\u003cstd::unique_ptr\u003cglop::Preprocessor\u003e\u003e* for_postsolve, SolverLogger* logger` \u003cbr /\u003e |"]]