Borrar filtros
Borrar filtros

intlinprpog: "Solver stopped prematurely. Integer feasible point found." How to find optimal solution?

3 visualizaciones (últimos 30 días)
Hi, I'm using the following code to solve a (large scale) binary integer linear problem. However, I often the following output:
Solver stopped prematurely. Integer feasible point found.
The intcon variables are integer within tolerance, options.TolInteger = 1e-05 (the default value).
I guess this corresponds to exitflag 2. Is there anything I can do to obtain the optimal solution ( which I guess would correspond to exitflag 1) ?
options = optimoptions(@intlinprog,'Display','final','MaxTime',inf,'IPPreprocess','advanced','MaxNodes',inf);
[x,fval,exitflag,output] = intlinprog( w, 1:length(w), A_unique, b, A_eq, b_eq, zeros(length(w),1), ones(length(w),1), options );
Thank you very much in advance

Respuestas (1)

Alan Weiss
Alan Weiss el 1 de Jun. de 2015
You are asking a difficult question. There are some suggestions in the documentation about finding a better or more accurate solution, but there are no guarantees that these suggestions will help.
You can also try turning off some preprocessing, such as the IPPreprocess or LPPreprocess options. Usually, removing preprocessing adds to time and lowers precision, but sometimes it paradoxically can help.
Also, if you have R2014b or later, you can set the PlotFcns option to @optimplotmilp to monitor the solution process.
One thing you say surprises me. You are "guessing" what the exitflag might be. Why don't you return the exit flag along with the solution?
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by