|
From: | Le Dinh Danh |
Subject: | Re: [Help-glpk] problem with glp_ios_heur_sol |
Date: | Mon, 5 Aug 2013 17:09:55 +0200 |
You may try to add after a call to glp_ios_heur_sol the following call:
> 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?
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).
[Prev in Thread] | Current Thread | [Next in Thread] |