Replies: 2 comments 10 replies
-
Not sure this will work. First there would be an enormous amount of coding. Presolve is the simplest preprocessing and stores actions for the postsolve. Each CoinPresolve...cpp would have to be modified. But I don't see the use of getting the global cuts. Suppose we have two similar variables x and y (not identical). Presolve may deduce that x dominates y and removes y. A cut is derived and is postsolved back to a cut on the original problem. But any change in costs, rhs or elements may invalidate the original supposition and so the cut is no longer valid. |
Beta Was this translation helpful? Give feedback.
-
Preprocessing is more complicated than just presolving - but just take presolve. There are about fifteen different types of action. Take one e.g. CoinPresolveImpliedFree.cpp and look through the postsolve and think what would need to be done and the scope for bugs. For each variable in preprocessed problem it is reasonably easy to point back to the corresponding variable in original problem (not always e.g. if x=y, then it might point to x or y). This might give you hints as to where to search. I don't know enough about your problem, but I would think a more promising approach would be - If this is not very much slower then I would think that would be the way to go. |
Beta Was this translation helpful? Give feedback.
-
Context
Why can’t I postprocess globally valid cuts in CBC?
How did I try to work around this?
Why did that happen?
How did I try to resolve this?
Why not?
Questions:
Beta Was this translation helpful? Give feedback.
All reactions