Replies: 2 comments
-
That's a good thought. I've been mulling a major overhaul and I would want to include this in the update. |
Beta Was this translation helpful? Give feedback.
-
I am open to this. I think what I need to do is separate the modeling component of Flips from the solving. Right now everything is too tightly coupled which means features need to be shared across all Solver backends. What I'm searching for is a way to evolve the code instead of making breaking changes to existing models. I think what will need to happen is to create a |
Beta Was this translation helpful? Give feedback.
-
I want to ask about a possible feature implementation or maybe discuss the design reasons why this is not possible or not already implemented. Currently, when the solver returns, then (See here and here) in the optimal case the solution is returned and in all other possible cases only some string is returned. This is very restrictive and goes against the typical behaviour of other common solver interfaces. Usually the solution is made available in all cases.
The main issue is with the way many solvers return their solutions. For example, a common application in industry would be running a solver with some time limit x and then, even in case the timeout occurs, just taking the best found solution so far. With the current implementation this is not easily possible, as e.g. when using CBC/Coin-OR, the timeout case will lead to the unknown return type and thus only return a string and not the solution.
One easy fix would be changing the return type to string * Solution and simply add the solution to all return cases in Solve.fs, though this would of course break legacy applications which do not except such a return type.
In case this feature is desired i could add a new issue /pull request, though i first wanted to discuss possible problems here.
Beta Was this translation helpful? Give feedback.
All reactions