Forum Discussion
FICO
2 years agoCommunity Manager
Is it possible to configure the linear relaxation simplex solve of an MIP problem?
I have created a complex MIP program and during testing I have noticed that the final solution does not always converge to the same answer after several tests. I understand that simplex algorithms are not deterministic, but is it possible to set an initial seed of sorts so that tests can be compared more accurately?
5 Replies
- FICOCommunity Manager
Our implementation of the simplex algorithm is fully deterministic, meaning that if you run it on the same problem twice, you'll always get the same answer.
However, if the problem changes, even if the change is trivial, such as a reordering of constraints, then you will typically get a different (but equally optimal) solution.
So, what kind of nondeterminism are you experiencing?
- FICOCommunity Manager
We have written the model in the C# BCL libraries, and without changing the underlying data or structure of the program, iterative runs return not only different final solutions, but the simplex results also vary by upwards of 0.1%. When our solution accuracy is attempting to be 0.0001% the initial delta seems to be causing large swings in the final solution. I have attached some images that show the different solutions
- FICOCommunity Manager
You mentioned the order of the constraints can change things; during some discussion with the other developer, it was brought up that we query our database as part of the program and build out the constraints/decisions based on that data. If that data is not pulled into the program in the same order, and therefore the constraints are not created in the same order, is that a potential cause of this discrepancy
- FICOCommunity Manager
Different order of rows may impact the simplex algorithm performance. Please take a look at the control PRESORT which allows you to ensure a sorting by name of your matrix rows, columns, and MIP entities before the search begins. This should lead to the same outcome of the simplex even if data base queries randomize the initial order.
Note that PRESORT is a bit vector control. In order to sort all rows (PRESORT = 1), columns (PRESORT = 2), and MIP entities (PRESORT = 4), you have to set its value to 7.
- FICOCommunity Manager
This looks like it is working. Thank you so much for your help.
Related Content
Related Content
Lagrange Relaxation example
Hello, I'm Antonio i'm making an heuristic for my clsp lot size problem, but i didn't find any example of a possible lagrange relaxation because i don't know how to implement lagrangian multipliers f...6 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum2 unread comments2 unread0Views0likes2CommentsXpress Optimizer Memory Issue and Configuration
Hi, We are using FICO Xpress optimizer version 8.12.3 in dot net C#. So we are using the BCL library along with the optimizer library. We are containerizing the dot net service in a Linux container...2 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum3 unread comments3 unread0Views0likes3CommentsIs it possible to count all possible Solutions of a Problem?
I wondered wether its possible to either get the number of all possible solutions of a problem or to actually block a solution after an optimization (in my case its minimize an IP) is done to search ...1 year agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum3 unread comments3 unread1View0likes3Comments