[Coin-discuss] OsiGlpk interface

Brady Hunsaker hunsaker at isye.gatech.edu
Sun Aug 25 14:51:40 EDT 2002


I finally have an initial interface to GLPK written by Vivian de Smedt
and me (that is, we wrote the interface, not GLPK).  The attached
gzipped tar file has OsiGlpkSolverInterface.hpp,
OsiGlpkSolverInterface.cpp, and OsiGlpkSolverInterfaceTest.cpp, as
well as modified Makefiles that are needed.

I'd appreciate it if someone on the core team would contact me about
how to proceed from this point: what needs to be done done before this
is added to the source tree, and what can I do to help?

The rest of this email provides a few notes in case someone out there
wants to give it a try right away.

Thanks,
Brady

Some Notes on OsiGlpk:
The vast majority of the original code was written by Vivian.  In the
last couple of months I made necessary changes for GLPK's new API,
added a few methods, and corrected bugs that were identified during
some basic testing.  In this first effort we were aiming for
correctness and some clarity rather than efficiency.  Hopefully, the
interface will later be improved.

In order to use OsiGlpk, you also have to put the files
Makefile.detectGlpk and Makefile.detectSolver in the Common/make
directory.  You also have to add a GLPK section to the Osi/Makefile.
I've included my Makefile as an example.  Don't use "PROBE" since this
hasn't been implemented yet.

If you want to run unitTest, there are a few things to note.  First,
OsiGlpk will fail on the Double Parameters tests at the end of
OsiSolverInterfaceCommonUnitTest.  This is because the tests try a
variety of values, but GLPK complains (and halts) if certain
parameters are outside a reasonable range.  In particular, negative or
large positive values for tolerances don't make sense.  I could have
changed the interface to get around this, but that doesn't seem wise.
A better solution is probably to change the tests.  Also, several
sections of OsiGlpkSolverInterfaceTest.cpp are omitted (using #ifdef
0).  The reason is that these tests rely on setColSolution and
setRowPrice, which haven't been implemented yet.  

If you try the interface, I would appreciate any feedback so we can
correct/improve it.

----------------
Brady Hunsaker
Georgia Institute of Technology
Program in Algorithms, Combinatorics, and Optimization
School of Industrial and Systems Engineering

E-mail address:   hunsaker at isye.gatech.edu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OsiGlpk.tgz
Type: application/octet-stream
Size: 23435 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/coin-discuss/attachments/20020825/6d25cfb4/attachment.obj>


More information about the Coin-discuss mailing list