Hi Andrew, I've tried many instances and traced the current solutions as you suggested. I see that the text file recorded exactly what it is from my heuristic solution. However, the final optimal solutions are correct just in some cases, in the many other cases, they are wrong solutions even though it displayed that "OPTIMAL INTEGER SOLUTION FOUND"! I am still confusing!
On Mon, Aug 5, 2013 at 5:09 PM, Le Dinh Danh <[email protected]> wrote: > Thank you Andrew Makhorin, I wil try it. > > > > On Mon, Aug 5, 2013 at 4:06 PM, Andrew Makhorin <[email protected]> wrote: >> >> >> > 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). >> >> > > > > -- > Le Dinh Danh > LIRMM, 161 rue Ada, 34095 Montpellier Cedex 5 > Email: [email protected]; [email protected] > Tel: (+84) 912.449.666; (+33) 6.52.98.59.66 > -- Le Dinh Danh LIRMM, 161 rue Ada, 34095 Montpellier Cedex 5 Email: [email protected]; [email protected] Tel: (+84) 912.449.666; (+33) 6.52.98.59.66 _______________________________________________ Help-glpk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-glpk
