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."],[[["This 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."],["Presolve can identify infeasible models or situations where infeasibility and unboundedness cannot be distinguished, returning corresponding statuses."],["It primarily aims to improve the scaling of constraints to integers and prevent overflow during the conversion process."],["A dedicated function, `ApplyMipPresolveSteps`, executes these steps, taking model parameters and logging information as input."],["Possible presolve outcomes include: initialization (no changes), primal infeasibility, infeasible or unbounded status, or abnormal termination due to errors."]]],[]]