Re: How to retrieve intermediate solutions of MIP problems without interrupting the solver?
Domingo Alvarez Duarte <[email protected]> Mon, 10 Aug 2020 11:31:00 +0200
| Newsgroups | gmane.comp.gnu.glpk |
|---|---|
| Message-ID | <[email protected]> |
Hello Yuri ! Looking through the code I can see that the function src/draft/glpios03.c::record_solution would be a good candidate to hook a callback to do what you'll want, probably we'll also want a way to signal to stop searching for more solutions based on the return value of the callback. Cheers ! On 9/8/20 20:04, Yuri wrote: > For my problem Glpk quickly finds some solution and then goes on to > find better solutions and this takes a lot of time. > > > I'm interested in all solutions, beginning from the first integer > solution in finds. > > I couldn't find a callback that is called when a better solution > becomes known. > > > For example, in this run it called glp_intopt which progressively > found 3 solutions, each better than the previous one: > > Long-step dual simplex will be used > + 633: mip = not found yet >= -inf (1; 0) > + 1006: >>>>> 1.098691667e+01 >= 5.512339583e+00 49.8% (18; 0) > + 4134: >>>>> 1.098525000e+01 >= 6.681520833e+00 39.2% (31; 22) > + 7210: >>>>> 1.098458333e+01 >= 1.043275926e+01 5.0% (24; 87) > + 7654: mip = 1.098458333e+01 >= tree is empty 0.0% (0; 195) > INTEGER OPTIMAL SOLUTION FOUND > > I am looking for access to all of them as they become available. > > > Yuri > > >