/// <summary> /// Résout le problème /// </summary> /// <returns>Borne inférieure</returns> private double _solve() { GLPK.glp_term_out(GLPK.GLP_OFF); glp_iocp iocp; GlpkCallback.addListener(this); buildProblem(); //On construit le problème GLPK.glp_adv_basis(problem, 0); GLPK.glp_simplex(problem, null); //On résout double val = GLPK.glp_get_obj_val(problem); iocp = new glp_iocp(); GLPK.glp_init_iocp(iocp); GLPK.glp_intopt(problem, iocp); //On cherche la solution entière optimale GlpkCallback.removeListener(this); GLPK.glp_delete_prob(problem); return(GLPK.glp_get_obj_val(problem)); }
private double _solve() { GLPK.glp_term_out(GLPK.GLP_OFF); GlpkCallback.addListener(this); buildProblem(); GLPK.glp_adv_basis(problem, 0); GLPK.glp_simplex(problem, null); double val = GLPK.glp_get_obj_val(problem); /*iocp = new glp_iocp(); * GLPK.glp_init_iocp(iocp); * GLPK.glp_intopt(problem, iocp);*/ List <Route> res = getSubroutes(true); GlpkCallback.removeListener(this); GLPK.glp_delete_prob(problem); return(GLPK.glp_get_obj_val(problem)); }
/** * write simplex solution * @param lp problem */ static void write_lp_solution(glp_prob lp) { int i; int n; String name; double val; name = GLPK.glp_get_obj_name(lp); val = GLPK.glp_get_obj_val(lp); Console.Write(name); Console.Write(" = "); Console.WriteLine(val); n = GLPK.glp_get_num_cols(lp); for (i = 1; i <= n; i++) { name = GLPK.glp_get_col_name(lp, i); val = GLPK.glp_get_col_prim(lp, i); Console.Write(name); Console.Write(" = "); Console.WriteLine(val); } }