[Coin-discuss] interface guidelines
hunsaker at isye.gatech.edu
Sun Dec 16 22:39:16 EST 2001
I've (finally) been working on a GLPK interface for OSI, and I came up
with a couple of questions about expected behavior of an interface.
Given the presence of the getInfinity function as well as getColLower
and getColUpper, it seems to me that infinite bounds should be tested
by calling getColUpper (or similar) and comparing the bound to
getInfinity. Is this the expected behavior? This is relevant to me
since GLPK doesn't handle things that way. It won't be difficult to
work around this, but I just wanted to be sure.
Also, the OSL, Cplex, and Xpress interfaces all use "cached" data to
reduce the number of solver-specific data queries made. The
trade-offs seem clear: querying the solver every time is simpler but
may be wasteful, keeping some of the data cached can therefore save
time but requires care to be sure that the cache is destroyed whenever
the data may have changed. The interfaces do this to different
extents, however, and I was wondering if anyone had advice on how much
or how little to cache.
Finally, these questions have led me to believe that it would be
valuable to have some documentation on the expected behavior of OSI,
at least in areas where solvers may have significant differences (so
that OSI's behavior is not "obvious"). This would be potentially
helpful both for interface writers and for people using OSI. If there
is already something like this please let me know. Otherwise, I'll
collect the questions that I come up with as a starting point.
Georgia Institute of Technology
Program in Algorithms, Combinatorics, and Optimization
School of Industrial and Systems Engineering
E-mail address: hunsaker at isye.gatech.edu
More information about the Coin-discuss