[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-glpk] lp/mip preprocessor api
From: |
Andrew Makhorin |
Subject: |
[Help-glpk] lp/mip preprocessor api |
Date: |
Sat, 02 Dec 2017 17:57:48 +0300 |
Currently the LP/MIP preprocessor is used internally by glp_simplex,
glp_interior, and glp_intopt. However, I think it would be reasonable
to make the LP/MIP preprocessor available to the user on API level.
Please see below the API routines I plan to include in the package.
Any comments/suggestions are appreciated.
Thank you,
Andrew Makhorin
------
A crude scheme of using the preprocessor routines on API level is the
following.
L1: /* allocate preprocessor (PP) workspace */
npp = glp_npp_alloc_wksp(...);
L2: /* load original problem instance into PP workspace */
glp_npp_load_prob(npp, P, ...);
L3: /* perform preprocessing */
call one or more specific preprocessor routines;
L4: /* obtain resulting problem instance */
Q = glp_npp_build_prob(npp, ...);
L5: /* solve resulting problem instance */
glp_simplex / glp_interior / glp_intopt (Q, ...);
L6: /* load solution to resulting problem instance into PP wksp */
glp_npp_load_sol(npp, Q, ...);
L7: /* obtain solution to original problem instance from PP wksp */
glp_npp_recover_sol(npp, P, ...);
L8: /* free PP workspace */
glp_npp_free_wksp(npp);
Steps L1, L2, and L8 are performed only once. Steps L3, ..., L7 can be
performed many times, if necessary.