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
>
>
>