> I am now having a problem with using glp_ios_heur_sol() to provide an
> initial integer feasible solution by heuristic.
> To do so I did as follows:
> 
> void callback(glp_tree *tree, void *info)
> 
> {  if (glp_ios_reason(tree) == GLP_IHEUR &&
>        glp_ios_curr_node(tree) = 1)
>    {   /* lp relaxation to the root subproblem has been just
>           solved */
>        glp_ios_heur_sol(tree, <array of x[j] found by heuristic>);
>    }
>    return;
> }
> And then in the main function:
> int main(...)
> {  glp_prob *mip;
>    glp_iocp parm;
>    . . .
>    <apply your own heuristic to find all x[j], j = 1,...,n>
>    . . .
>    glp_init_iocp(&parm);
>    parm.cb_func = callback;
>    parm.cb_info = ... ;
>    ret = glp_intopt(mip, &parm);
>    . . .
> }
> Although the array x[] is set correctly (I am sure after carefully
> checked), the result is still incorrect. Is anyone has successfully
> applied this can share something?

You may try to add after a call to glp_ios_heur_sol the following call:

   glp_print_mip(glp_ios_get_prob(tree), "filename.txt");

It prints the current integer feasible solution to a text file, and it
should be your solution if glp_ios_heur_sol accepted it. Note that
glp_ios_heur_sol doesn't check integer feasibility, so make sure that
the heuristic solution you provide is feasible (see the feasibility
conditions printed at the bottom of the text file).



_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to