[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-glpk] [What is the easiest way to use COIN LP as solver in GLP
From: |
nicolas.derhy |
Subject: |
Re: [Help-glpk] [What is the easiest way to use COIN LP as solver in GLPK ?] |
Date: |
Mon, 4 Jul 2011 16:57:16 +0200 |
Thank you for your answer !
I watched your attached file : if I have correctly understood, it transforms a
GLPK problem into a Cplex problem, solves it with Cplex and gets the optimal
solution.
I also find in the CointUtils project the method CoinMpsIO::readGMPL which
converts a GLPK problem into a Coin problem (I think it corresponds to what you
evoke when you said "both Coin and Symphony allow using the glpk model
translator").
Finally, I think it would be much easier for me to use the write/read methods
of glpk. Maybe it will be less efficient than using CoinMpsIO::readGMPL but I
won't have to modify a large part of my code !
Thank you very much for your answer.
-----Message d'origine-----
De : Andrew Makhorin [mailto:address@hidden
Envoyé : lundi 4 juillet 2011 16:21
À : address@hidden; Derhy Nicolas (GDF SUEZ SA)
Objet : Re: [Help-glpk] [What is the easiest way to use COIN LP as solver in
GLPK ?]
> I am using GLPK in C++ programs like :
> glp_prob *lp = glp_create_prob();
> glp_tran *tran = glp_mpl_alloc_wksp();
>
> glp_mpl_read_model(tran, "..\\MyModel.mod", 1);
> glp_mpl_read_data(tran, "..\\MyModel.dat");
> glp_mpl_generate(tran, NULL);
> glp_mpl_build_prob(tran, lp);
> glp_simplex(lp, NULL);
> glp_mpl_postsolve(tran, lp, GLP_MIP);
>
> glp_create_index(lp);
> int index = glp_find_col(lp, "MyVariable");
> double optimalValue = glp_get_row_prim(lp, index);
>
> When using with big input data, the solving time becomes very
> important. So, I would like to use another solver like CLP. For
> example, in the above source, it would replace the ligne
> "glp_simplex(lp, NULL);" by the call of the new solver.
>
> I found references for Symphony or Osi but I did not find clear
> examples doing what I am looking for.
> Maybe, someone have met this problem or you could have valuable
> advices or suggestions that I could test...
AFAIK, both Coin and Symphony allow using the glpk model translator.
Another way is to output the mip data into a file, say, in free mps format,
call an external solver, and load the solution back into the glpk problem
object. To simplify the interface between glpk and the external solver you may
use api routines glp_write_prob, glp_read_mip, and glp_write_mip described in
the glpk reference manual.
If the external solver has its own api, you also may write an interface module;
see an example attached.
GDF SUEZ Mail Disclaimer: http://www.gdfsuez.com/disclaimer/disclaimer-fr.html