> I'm using GLPK 4.47 in Java. My aim is to provide a heuristic solution
> which is stored in a double array "soln", with the coefficient of the
> first column being stored at index 1.
>
> When I use the code as given below, the optimiser happily accepts the
> suggested solution and terminates with an infeasible solution. As I
> understand from the documentation, it doesn't check feasibility of the
> solution provided internally, so I guess the problem is that I provide
> the heuristic solution in a wrong format which is misinterpreted by
> the GLPK. In particular, I wonder whether the provided heuristic
> solution must take the pre-processing stage (reduction of colums, etc)
> into account?
If you provide a solution to the original mip, the mip preprocessor
should be disabled; otherwise the mip solver assumes that you provide a
solution to the preprocessed mip, that probably is not your intention.
To check feasibility of the heuristic solution you can print it to a
text file with glp_print_mip.
>
>
>
> GlpkCallbackListener myCallback = new GlpkCallbackListener()
> {
> @Override
> public void callback(glp_tree tree) {
> System.out.println("We were called by library...");
> if(GLPK.glp_ios_reason(tree) ==
> GLPKConstants.GLP_IHEUR) {
> System.out.println("...and it asked for heuristic
> solution!");
> SWIGTYPE_p_double swigSoln =
> GLPK.new_doubleArray(soln.length);
Please check the following statement (shouldn't be i <= ... ?).
>
> for(int i = 1; i < soln.length; i++) {
> GLPK.doubleArray_setitem(swigSoln, i,
> soln[i]);
> }
>
> GLPK.glp_ios_heur_sol(tree, swigSoln);
> }
> }
>
>
> Thanks for your help.
>
> Simon
_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk