coin-or / osi Goto Github PK
View Code? Open in Web Editor NEWOpen Solver Interface
License: Other
Open Solver Interface
License: Other
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-11-19 17:53:14
Assignee: @mjsaltzman
Version:
Hi,
in line 3352 of OsiCpxSolverInterface.cpp (stable/0.97, rev. 1132) I get an invalid read reported by valgrind.
The code snipet is
3351: for(int j=0; j<ncol; j++) {
3352: z[j] = -z[j];
3353: }
I think the ncol need to be a nrow.
Maybe similar in getBInvARow (line 3305)?
Best,
Stefan
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-11-30 18:01:36
Assignee: @mjsaltzman
Version: 0.96
Hi,
in OsiCpx latest stable, the check for (rowsen=='R')
at the end of OsiCpx::addRow(const CoinPackedVectorBase& vec, const char rowsen, const double rowrhs, const double rowrng)
(line 2068) need to be changed into (sense=='R')
since if rowsen=='N', then sense is set to 'R' and rhs and rng adapted accordingly.
Best,
Stefan
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2008-02-10 19:05:27
Assignee: @LouHafer
Version:
Hi,
when I do a
OsiCbcSolverInterface::passInMessageHandler(mymsghandler);
before an initialSolve()
or branchAndBound()
, then output still goes through the default message handler, i.e., to the screen.
For an LP this looks like
Coin0506I Presolve 5 (0) rows, 6 (0) columns and 12 (0) elements
Clp0028I Crash put 0 variables in basis, 0 dual infeasibilities
Clp0006I 0 Obj 0 Primal inf 900 (3) Dual inf 6e+10 (6)
Clp0006I 3 Obj 153.675
Clp0000I Optimal - objective value 153.675
Coin0511I After Postsolve, objective 153.675, infeasibilities - dual 0 (0), primal 0 (0)
Clp0006I 0 Obj 153.675
Clp0006I 0 Obj 153.675
Clp0000I Optimal - objective value 153.675
For a MIP, this looks like
Cbc0031I 8 added rows had average density of 42.875
Cbc0013I At root node, 8 cuts changed objective from 204.368 to 211.666 in 100 passes
Cbc0014I Cut generator 0 (Probing) - 0 row cuts (0 active), 0 column cuts in 1.188 seconds - new frequency is -100
Cbc0014I Cut generator 1 (Gomory) - 540 row cuts (8 active), 0 column cuts in 0.036 seconds - new frequency is -100
Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts (0 active), 0 column cuts in 0.008 seconds - new frequency is -100
Cbc0014I Cut generator 3 (Clique) - 0 row cuts (0 active), 0 column cuts in 0.000 seconds - new frequency is -100
Cbc0014I Cut generator 4 (FlowCover) - 0 row cuts (0 active), 0 column cuts in 0.024 seconds - new frequency is -100
Cbc0014I Cut generator 5 (MixedIntegerRounding2) - 68 row cuts (0 active), 0 column cuts in 0.024 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, 1e+50 best solution, best possible 211.666 (1.40 seconds)
Cbc0015I Node 1 Obj 211.666 Unsat 7 depth 1
Cbc0015I Node 2 Obj 211.666 Unsat 8 depth 2
Cbc0015I Node 3 Obj 211.674 Unsat 3 depth 3
Cbc0015I Node 4 Obj 211.674 Unsat 3 depth 4
Cbc0015I Node 5 Obj 211.675 Unsat 2 depth 5
Cbc0015I Node 6 Obj 212.173 Unsat 2 depth 6
Cbc0004I Integer solution of 213.711 found after 1037 iterations and 7 nodes (1.42 seconds)
Cbc0015I Node 11 Obj 211.666 Unsat 5 depth 2
Cbc0015I Node 13 Obj 211.983 Unsat 5 depth 3
Cbc0015I Node 14 Obj 213.347 Unsat 2 depth 4
Cbc0015I Node 18 Obj 211.667 Unsat 4 depth 1
Cbc0004I Integer solution of 212.111 found after 1206 iterations and 20 nodes (1.44 seconds)
Cbc0001I Search completed - best objective 212.111, took 1206 iterations and 20 nodes (1.44 seconds)
Cbc0032I Strong branching done 146 times (1634 iterations), fathomed 3 nodes and fixed 5 variables
Cbc0035I Maximum depth 6, 60 variables fixed on reduced cost
I'm using Osi 0.98, Clp 1.6, and Cbc 2.0, all stable.
Best,
Stefan
Issue created by migration from Trac.
Original creator: @mgalati13
Original creation time: 2007-02-07 15:08:10
Assignee: @mjsaltzman
Version: 0.95.2
CC: @mgalati13
Keywords: warnings
msvsv8 compiler warnings, coin-Cbc stable 1.1
Warning 1 warning C4996: 'strdup' was declared deprecated c:\cygwin\home\magala\coin\coin-cbc\coinutils\src\coinmodeluseful.hpp 403
Warning 2 warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) c:\cygwin\home\magala\coin\coin-cbc\clp\src\clppresolve.hpp 127
Warning 3 warning C4996: 'strdup' was declared deprecated c:\cygwin\home\magala\coin\coin-cbc\coinutils\src\coinmodeluseful.hpp 403
Warning 4 warning C4996: 'fopen' was declared deprecated c:\cygwin\home\magala\coin\coin-cbc\osi\src\osisolverinterface.cpp 1165
Warning 5 warning C4996: 'fopen' was declared deprecated c:\cygwin\home\magala\coin\coin-cbc\osi\src\osisolverinterface.cpp 1240
Issue created by migration from Trac.
Original creator: phines
Original creation time: 2006-07-06 18:51:38
Assignee: somebody
Version:
Keywords: Osi DyLP configure make
On a linux machine, the following sequence of commands produces an error:
svn co https://projects.coin-or.org/svn/Osi/trunk Coin-Osi
cd Coin-Osi
./configure
make
The error is the following:
"
In file included from /home/phines/src/COIN/Coin-Osi/DyLP/src/DylpStdLib/dylib_errs.h:34,
from /home/phines/src/COIN/Coin-Osi/DyLP/src/Dylp/dylp.h:62,
from OsiDylpSolverInterface.hpp:31,
from OsiDylpMessages.cpp:9:
/home/phines/src/COIN/Coin-Osi/DyLP/src/DylpStdLib/dylib_std.h:45:25: error: config_dylp.h: No such file or directory
make[3]: *** [OsiDylpMessages.lo] Error 1
make[3]: Leaving directory /home/phines/src/COIN/Coin-Osi/Osi/src/OsiDylp' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory
/home/phines/src/COIN/Coin-Osi/Osi/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/phines/src/COIN/Coin-Osi/Osi'
make: *** [all-recursive] Error 1
"
The following sequence does not produce this error:
svn co https://projects.coin-or.org/svn/Osi/trunk Coin-Osi
cd Coin-Osi
./configure
cd DyLP
./configure
cd ..
make
Apparently DyLP must be configured sepearately. It would probably be better if this step were done automatically.
Issue created by migration from Trac.
Original creator: nowozin
Original creation time: 2007-11-26 10:06:59
Assignee: @mjsaltzman
Version: 0.96
In OsiClpSolverInterface, when a lower verbosity is requested, one can issue:
OsiClpSolverInterface* si;
si->messageHandler()->setLogLevel(0);
However, there are two problems I noticed.
If multiple calls to initialSolve() are made, the log level value is forgotten after each call. Hence, one has to call setLogLevel before each call. This is maybe just a problem of the documentation.
When the Clp barrier/interior-point method is used, there are still trivial messages such as "Switching to dense for the last 12 columns" issued, although the log level is set to suppress those.
Thanks for considering,
Sebastian
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-08-10 18:57:50
Assignee: @mjsaltzman
Version: 0.96
Hi,
when I first change the objective sense to maximization and then do a load problem call,
then Dylp still seem to do a minimization because when the objective is set in the load problem call it does not take the objective sense into account.
Best,
Stefan
When Osi checks if Gurobi is available, a simple source file that calls an implicitly declared function GRBloadenv()
to see if that symbol is resolved by linking to libgurobi. Unfortunately, the source file is compiled with -pedantic-errors
, which makes compilation fail because of the implicit declaration, although Gurobi is there.
A workaround is to comment out the lines in which -pedantic-errors
is added to the compiler flags in the configure script,
Issue created by migration from Trac.
Original creator: @mjsaltzman
Original creation time: 2007-06-15 15:37:43
Assignee: @mjsaltzman
Version: 0.95.2
OsiCpx.hpp says it's licensed under GPL, should say it's licensed under CPL.
(changed by @mjsaltzman at 2007-06-15 16:43:27)
Issue created by migration from Trac.
Original creator: menal
Original creation time: 2006-12-19 18:02:50
Assignee: @mjsaltzman
Version: 0.95.2
The Osi unit test currently fails with gcc 3.4, apparently because of a bug in gcc 3.4. The problem is in OsiRowCutTest.cpp through the lines 286-293: the exception handling block (didn't check if there are more in other files). Somehow it terminates instead of catching the exception. It works fine with debugging option enabled, though.
Issue created by migration from Trac.
Original creator: @LouHafer
Original creation time: 2006-11-21 20:35:27
Assignee: @mjsaltzman
Version: 0.95.0
For the warm start methods, there's an issue that's come up with respect to cbc. Right now, there are three calls:
getEmptyWarmStart
(returns an empty basis; a sort of specialised clone)getWarmStart
(return current warm start object)setWarmStart
(set a warm start in the OSI)What's needed is a way to distinguish the actions 'remove warm start info from the OSI' and 'request the OSI to synchronise its warm start information with the solver'.
The direct impetus comes because John and I have chosen conflicting overloads for setWarmStart(0)
. I've chosen this for 'remove warm start info', John uses it for 'sync with solver'.
My suggestion would be that setWarmStart(0)
is naturally interpreted as 'remove warm start info' and we need a new call for 'sync with solver'. The form of the solution isn't critical, but we need some way to distinguish the two.
Depending on choices, we may need to revisit the default actions for getWarmStart
. Right now, it returns an empty warm start if there's no valid information. Depending on the OSI implementation, this could violate the const'ness of the call.
Issue created by migration from Trac.
Original creator: @jpfasano
Original creation time: 2007-10-03 23:53:36
Assignee: @mjsaltzman
Version: 0.96
OsiCbcSolverInterface.cpp from trunk is not compiling with MS V7 compiler.
The error message is:
Compiling...
OsiCbcSolverInterface.cpp
d:\COIN\Coin-Cbc-All\trunk\Osi\src\OsiCbc\OsiCbcSolverInterface.cpp(17) : error C2006: '#include' : expected a filename, found 'identifier'
This compile time problem was introduced into the code by changeset 857: https://projects.coin-or.org/CoinUtils/changeset/857.
Issue created by migration from Trac.
Original creator: @tkralphs
Original creation time: 2007-01-31 18:21:44
Assignee: @mjsaltzman
Version: 0.95
We should add this functionality.
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-08-06 17:10:08
Assignee: @mjsaltzman
Version:
Hi,
in case that Branch and Bound is used and intopt is available,
isObjLowerLimitReached_ and isObjLowerUpperReached_ do not get initialized with false.
Other status-booleans isIterationLimit, ...) are initialized in gutsOfConstructor().
I'm using trunk.
Best,
Stefan
Issue created by migration from Trac.
Original creator: kmartin
Original creation time: 2007-05-13 06:50:46
Assignee: @mjsaltzman
Version: 0.95.2
Problem:
configure.ac in the Osi root directory has the line
AC_COIN_HAS_USER_LIBRARY([Glpk],[GLPK],[glpk.h],[glp_lpx_simplex])
However, in the more recent version of Glpk 4.16 glp_lpx_simplex is replaced with
_glp_lpx_simplex. Hence the configure script crashes. One fix is to simply use
AC_COIN_HAS_USER_LIBRARY([Glpk],[GLPK],[glpk.h],[])
Thanks
Issue created by migration from Trac.
Original creator: @LouHafer
Original creation time: 2006-07-02 19:59:37
Assignee: somebody
Version:
Keywords: OSI unitTest, cygwin
Osi unitTest build with dylp only:
Testing OsiColCut with OsiDylpSolverInterface
Testing OsiRowCutDebugger with OsiDylpSolverInterface
Testing OsiCuts
Testing OsiDylpSolverInterface
Starting dylp OSI interface tests ...
dylp0001I This is the us_en test message, eh.
dylp0001I Blimey, this must be the uk_en test message
Calling OsiSolverInterfaceCommonUnitTest for basic tests ...
Coin3002W Bad image at line 291 < >
Coin6005E Returning as too many errors
make[2]: *** [test] Error 5
make[2]: Leaving directory `/home/lou/Coin-DyLP/Osi/test'
make[1]: *** [test] Error 2
make[1]: Leaving directory `/home/lou/Coin-DyLP/DyLP'
make: *** [test] Error 2
-----------------------------
Osi unitTest build with clp and vol only
<< Lots of output removed between `Testing ... ' lines. >>
Testing OsiRowCut with OsiVolSolverInterface
Testing OsiColCut with OsiVolSolverInterface
Testing OsiRowCut with OsiClpSolverInterface
Testing OsiColCut with OsiClpSolverInterface
Testing OsiRowCutDebugger with OsiClpSolverInterface
Testing OsiCuts
Testing OsiVolSolverInterface
*** volSolverInterface testing issue: getObjValue before solve (OK for vol)
*** volSolverInterface testing issue: column type methods all report continuous
(OK for vol)
*** volSolverInterface testing issue: addCol add columns to null
vol has no OsiSimplexInterface
*** volSolverInterface testing issue: addCol add columns to null
Checked 8 hints x (true, false) at strength OsiForceDo; 16 throws.
Testing OsiClpSolverInterface
<< And finally ... >>
Coin0001I At line 29 NAME EXAMPLE
Coin0001I At line 30 ROWS
Coin0001I At line 37 COLUMNS
Coin0001I At line 55 RHS
Coin0001I At line 61 RANGES
Coin0001I At line 64 BOUNDS
Coin0001I At line 70 ENDATA
Coin0002I Problem EXAMPLE has 5 rows, 8 columns and 14 elements
Coin0008I EXAMPLE read with 0 errors
Coin0001I At line 1 NAME E226
Coin0001I At line 2 ROWS
Coin0001I At line 227 COLUMNS
Coin3002W Bad image at line 291 < >
Coin6005E Returning as too many errors
Coin0008I E226 read with 0 errors
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-08-08 12:05:22
Assignee: @mjsaltzman
Version: 0.96
Hi,
I'm frequently using the trunk versions of OsiClp and OsiGlpk, and would like to use the same method to read the basis status from both classes.
But there seem to be some misunderstanding about when a row is at its lower or its upper bound.
Consider the following LP:
max obj
s.t. obj <= 1
Since OsiSolverInterface::optimalBasisIsAvailable() reports false, I use getWarmStart() to read the basis status of a solution.
When I run Clp then OsiClp reports CoinWarmStartBasis::atLowerBound for the status of the obj<=1 row, while running Glpk I get CoinWarmStartBasis::atUpperBound as status from OsiGlpk.
Would be nice to have the interfaces follow the same convention.
See also the discussion at http://list.coin-or.org/pipermail/coin-discuss/2007-August/003048.html.
Best,
Stefan
Issue created by migration from Trac.
Original creator: drbrett
Original creation time: 2007-06-21 15:13:50
Assignee: @mjsaltzman
Version: 0.95.2
Allow the solver to correctly solve MIP problems. Remove unneccessary initial call to XPRSinit. Free mem as pointed out by someone earlier (setInteger and setContinuous). Add in a couple of missing methods.
Issue created by migration from Trac.
Original creator: fmargot
Original creation time: 2006-11-21 13:35:56
Assignee: @mjsaltzman
Version: 0.95.0
The description of applyCuts() in OsiSolverInterface.hpp
makes reference to ReturnCode.numberInconsistent()
but should be ReturnCode.getNumInconsistent().
Other method names related to ReturnCode are also incorrect.
Issue created by migration from Trac.
Original creator: @LouHafer
Original creation time: 2008-02-06 19:37:20
Assignee: @LouHafer
Version: 0.96
Keywords: copy parameters ineffective
The default implementation of copyParameters simply copies the parameter arrays. It needs to do successive calls to the various set/get routines to ensure that parameters actually get pushed to the underlying solvers.
Issue created by migration from Trac.
Original creator: fmargot
Original creation time: 2006-12-13 23:08:26
Assignee: @mjsaltzman
Version:
Lines 3008 and 3022 of OsiCpxSolverInterface.cpp
in method getBasisStatus() should both be changed from
if(sense[i] == 'E') {
to
if((sense[i] == 'E') || (sense[i] == 'R')) {
so that status for ranged constraints are correct.
Issue created by migration from Trac.
Original creator: fmargot
Original creation time: 2006-06-29 21:01:33
Assignee: somebody
Version:
Keywords: writeLpNative bug fix
In file OsiSolverInterface.cpp in method writeLpNative(),
the line
if(getObjSense() * objSense < 0.0) {
should be replaced by
double locObjSense = (objSense == 0 ? 1 : objSense);
if(getObjSense() * locObjSense < 0.0) {
So that maximization problems are written properly even when
the parameter objsense is 0.
I have cloned the master branch. Compiling Osi
with soplex 3.1.1.
resulted in the following error.
In file included from /homes/kibaekkim/scipoptsuite-5.0.1/soplex/src/spxsolver.h:27:0,
from /homes/kibaekkim/scipoptsuite-5.0.1/soplex/src/soplexlegacy.h:25,
from /homes/kibaekkim/scipoptsuite-5.0.1/soplex/src/soplex.h:2322,
from /homes/kibaekkim/Osi/Osi/src/OsiSpx/OsiSpxSolverInterface.cpp:33:
/homes/kibaekkim/scipoptsuite-5.0.1/soplex/src/spxdefines.h:145:21: error: 'thread_local' does not name a type
#define THREADLOCAL thread_local
I believe that Osi
is incompatible to soplex 3.1.1
.
Issue created by migration from Trac.
Original creator: anna82
Original creation time: 2007-03-21 17:49:55
Assignee: @mjsaltzman
Version: 0.95.2
when i try to execute a program that uses the Osi solver, i read this message:
cannot find -lCoin
what can i do?
i thaugth i installed correctly osi solver by following the instructions in this site
Issue created by migration from Trac.
Original creator: fbaumann
Original creation time: 2007-06-21 13:09:53
Assignee: @mjsaltzman
Version: 0.95.3
Keywords: typo
There is a typo in OsiCpxSolverInterface.cpp that prevents OSI from compiling.
In line 1453 it should be indexFirst[i] instead of indexfirst[i].
Issue created by migration from Trac.
Original creator: fmargot
Original creation time: 2007-06-08 12:48:12
Assignee: @mjsaltzman
Version:
In Osi/trunk:
line 1456 of OsiCpxSolverInterface.cpp should be
obj_[indexFirst[i]] = coeffList[i];
instead of
obj_[indexfirst[i]] = coeffList[i];
Note also that there is a number of warnings of the type:
../../../../Osi/src/OsiCpx/OsiCpxSolverInterface.cpp: In member function 'virtual bool OsiCpxSolverInterface::setIntParam(OsiIntParam, int)':
../../../../Osi/src/OsiCpx/OsiCpxSolverInterface.cpp:353: warning: enumeration value 'OsiNameDiscipline' not handled in switch
Issue created by migration from Trac.
Original creator: @lleeoo
Original creation time: 2006-10-24 22:34:09
Assignee: @mjsaltzman
Version: 1.0
CC: @mjsaltzman
As of v 0.95, there is no direct loglevel control in Osi. Indirectly, one can use passInMessageHandler, but this typically has limited effect, since each solver has its own message handling mechanism in addition to Osi's. Instead, this ticket proposes two enhancements:
make passInMessageHandler virtual, so that solver-specific actions can be taken when the Osi message handler is replaced.
add virtual set/get logLevel(int) methods, which would provide a sufficiently general high-level control of messaging. What the actual int means should be left up to the solver.
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-01-25 17:30:46
Assignee: @mjsaltzman
Version: 0.95.2
Hi,
in case that a MIP was solved, the comparision
lpx_mip_status( model ) == LPX_NOFEAS;
should be changed to
lpx_mip_status( model ) == LPX_I_NOFEAS;
LPX_NOFEAS is a return of lpx_get_status, not of lpx_mip_status.
Stefan
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-06-18 13:45:29
Assignee: @mjsaltzman
Version: 0.95
Hi,
for GLPK it is possible to impose a timelimit, and it would be nice, when it could be checked via the Osi/GLPK interface, whether GLPK stopped because the timelimit was hit.
So my suggestion is to add a method isTimeLimitReached()
similar to isIterationLimitReached()
to the OsiGlpkSolverInterface.
To keep everything compatible with the general OsiSolverInterface class, isAbandoned() could still report true in this case.
Find attached a patch file which can be applied to OsiGlpk rev. 982 and adds this feature.
Best,
Stefan
Issue created by migration from Trac.
Original creator: @mgalati13
Original creation time: 2007-04-08 19:00:10
Assignee: @mjsaltzman
Version: 0.95.2
CC: @mgalati13 @tkralphs
Keywords: dual ray
In both OsiClp and OsiCpx, getDualRays takes arg=maxNumRays, but only returns 1 dual ray. Can the solvers provide more than one? If so, can this be implemented (this would be nice)? If not, should there be a maxNumRays argument at all? It seems misleading.
(changed by @LouHafer at 2008-07-18 05:20:29)
Issue created by migration from Trac.
Original creator: fmargot
Original creation time: 2007-05-24 19:00:06
Assignee: @mjsaltzman
Version:
In OsiXprSolverInterface::setInteger(), the vector qctype is not deleted.
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2006-12-18 14:53:09
Assignee: @mjsaltzman
Version: 0.95.2
The OsiGlpkSolverInterface seem to ignore the message handler that is set by passInMessageHandler(...)
and the loglevel set in the message handler.
I propose the patch that is attached to this ticket.
It uses the glpk-method lib_set_print_hook()
to tell glpk which method to use for printing the output. The printing-method then use the message handler defined for the OsiGlpkSolverInterface.
Stefan
Issue created by migration from Trac.
Original creator: menal
Original creation time: 2006-08-29 11:45:22
Assignee: @mjsaltzman
Version:
OSI configuration script cannot detect SYMPHONY. In the configure.ac input file, the line 'AC_COIN_HAS_PROJECT(Sym)' has to be replaced with 'AC_COIN_HAS_PROJECT(SYMPHONY)'.
Issue created by migration from Trac.
Original creator: @pobonomo
Original creation time: 2006-06-27 14:13:12
Assignee: somebody
Version:
There is an OsiCpxSolverInterface.hpp file in the subdirectory trunk/Osi/src/OsiClp/ which should be erased (there is one also in the good place at trunk/Osi/src/OsiCpx/).
Issue created by migration from Trac.
Original creator: San
Original creation time: 2006-09-04 06:57:46
Assignee: @mjsaltzman
Version:
Hi. I'm just wondering if I'm using the following Osi correctly to
add the columns.
void OsiClpSolverInterface::addCols(const int numcols,
const CoinPackedVectorBase * const * cols,
const double* collb, const double* colub,
const double* obj)
I don't want to add rows when I'm calling the addCols method, but when
I pass NULL for the CoinPackedVectorBase parameter, it'll crash in
void CoinPackedMatrix::appendMajorVectors(const int numvecs,
const CoinPackedVectorBase * const * vecs)
{
...
for (i = 0; i < numvecs; ++i)
nz += CoinLengthWithExtra(vecs[i]->getNumElements(), extraGap_);
...
}
as it is accessing vecs[i] without checking to see if vecs is not NULL.
When I changed the addCols method to only append cols when the
CoinPackedVectorBase is not NULL, it seemed to be working ok for small
problems that I was testing.
void OsiClpSolverInterface::addCols(const int numcols,
const CoinPackedVectorBase * const * cols,
const double* collb, const double* colub,
const double* obj)
{
...
if (cols != NULL) // added this check so that it's only appending
cols when it is specified
{
modelPtr_->matrix()->appendCols(numcols,cols);
}
...
}
If I don't change the Osi code and just pass in an array with:
CoinPackedVectorBase ** columns= new CoinPackedVectorBase* [numCol];
for (unsigned int i = 0; i < numCol; i++)
{
columns[i] = new CoinPackedVector(0,static_cast<const
int *>(NULL),static_cast<const double *>(NULL));
}
it seems to be working ok, but I don't see why I have to do that when
I could get the rest of the code working without appending any
CoinPackedVectorBase.
I'm just wondering if this was a bug or whether I've used the
interface incorrectly.
Thanks.
San
Issue created by migration from Trac.
Original creator: mjm
Original creation time: 2007-01-24 05:49:22
Assignee: @mjsaltzman
Version: 0.95
In the 0.95.3 distribution I found the following problems
Have I failed to install properly? Are these interfaces currently complete? Or are the libraries unnecessary? I am new to Osi, so perhaps I am missing something simple.
Michael
(changed by @mjsaltzman at 2007-06-15 17:04:07)
Issue created by migration from Trac.
Original creator: @tkralphs
Original creation time: 2007-01-31 18:23:20
Assignee: @mjsaltzman
Version: 0.95
The problem is that Dylp will not build on these platforms and this is downloaded and built by default.
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-11-19 20:40:49
Assignee: @mjsaltzman
Version:
Hi,
I am not definitely sure, maybe I just do not know enough the background behind this basis/nonbasis stuff. But I think the way that rows of the basis inverse are flipped in OsiCpx is not correct.
So far, when one asks for row number row_ of the BASIS INVERSE matrix, then the method checks whether row row_ from the ORIGINAL matrix is a greater-equal row! If so, and if the slack corresponding to row row_ is in the basis, then the row is flipped.
However, I think one should check whether row row_ from the basis inverse corresponds to a slack variable. Then, if the row in the original matrix that belongs to this slack is a greater-equal row, the row has to be flipped in the basis inverse.
A code would be
int *ind_bas = new int[nrow];
getBasics(ind_bas);
if (ind_bas[row]>=ncol) { // binv row corresponds to a slack variable
int Arow=ind_bas[row]-ncol; // Arow is the number of the row in the problem matrix which this slack belongs to
char sense;
status = CPXgetsense(env_, lp, &sense, Arow, Arow);
if(status) {
printf("### ERROR: OsiCpxSolverInterface::getBInvRow(): Unable to get senses for row %d\n", Arow);
exit(1);
}
if(sense == 'G') { // slack has coeff -1 in Cplex; thus row in binv must be flipped
for(int j=0; j<nrow; j++) {
z[j] = -z[j];
}
}
}
delete[] ind_bas;
The same probably in getBInvARow().
Best,
Stefan
Issue created by migration from Trac.
Original creator: @mgalati13
Original creation time: 2007-02-07 15:11:01
Assignee: @mjsaltzman
Version: 0.95.2
CC: @mgalati13
Keywords: unit tests
all unit tests fail in windows - msvsv8, coin-cbc stable 1.1
Issue created by migration from Trac.
Original creator: dan.gordon
Original creation time: 2006-08-25 04:18:10
Assignee: @mjsaltzman
Version:
When using OsiXpr, I need to be able to use the Newton barrier solver. It's just that much more efficient with my application.
The present behaviour is to use automatic solver selection for initialSolve()
and to use dual simplex for resolve()
.
There is no means of changing this behaviour in OsiSolverInterface or OsiXprSolverInterface. There is no access to the XPRSprob
member _prob
. Even if there were, this would not help when calling resolve()
. Likewise, there are no parameter(s) in OsiSolverInterface to give this kind of control over the solver behaviour.
At present, I'm forced to produce my own version of OsiXprSolverInterface. It would be neater to avoid this, say, by having a parameter in OsiSolverInterface that allows the selection of a preferred method whenever there is a choice available (say interior point/primal simplex/dual simplex).
Thanks, Dan
Issue created by migration from Trac.
Original creator: @pobonomo
Original creation time: 2006-06-27 14:56:46
Assignee: somebody
Version:
CC: @pobonomo
In OsiXprSolverInterface::getWarmStart, at the very beginning of the function line 321, there is a test which I think is invalid:
XPRS_CHECKED( XPRSgetintattrib, (prob_,XPRS_PRESOLVESTATE, &pstat) );
if ( pstat != 7 ) return NULL;
I guess that this is trying to test if the solution in Xpress is valid. If so, the bit 7 of pstat should be 1 (and not pstat==7) so the test should be:
if ( (pstat & 128) ==0 ) return NULL;
Issue created by migration from Trac.
Original creator: phines
Original creation time: 2006-08-12 19:03:57
Assignee: @mjsaltzman
Version:
After configuring Osi, and running "make" on my AMD Athalon64 with linux 64 bit, I get the following errors:
OsiDylpSolverInterface.cpp: In member function 'void OsiDylpSolverInterface::detach_dylp()':
OsiDylpSolverInterface.cpp:2085: error: cast from 'OsiDylpSolverInterface*' to 'int' loses precision
OsiDylpSolverInterface.cpp: In member function 'lpret_enum OsiDylpSolverInterface::do_lp(ODSI_start_enum)':
OsiDylpSolverInterface.cpp:4010: error: cast from 'OsiDylpSolverInterface*' to 'int' loses precision
OsiDylpSolverInterface.cpp:4027: warning: enumeration value 'startInvalid' not handled in switch
OsiDylpSolverInterface.cpp: In member function 'virtual void OsiDylpSolverInterface::initialSolve()':
OsiDylpSolverInterface.cpp:4447: error: cast from 'OsiDylpSolverInterface*' to 'int' loses precision
OsiDylpSolverInterface.cpp: In member function 'virtual void OsiDylpSolverInterface::resolve()':
OsiDylpSolverInterface.cpp:5878: error: cast from 'OsiDylpSolverInterface*' to 'int' loses precision
make[3]: *** [OsiDylpSolverInterface.lo] Error 1
make[3]: Leaving directory /home/hines/src/COIN/Coin-Osi/Osi/src/OsiDylp' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory
/home/hines/src/COIN/Coin-Osi/Osi/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/hines/src/COIN/Coin-Osi/Osi'
make: *** [all-recursive] Error 1
Perhaps a cast from OsiDylpSolverInterface* to int causes an error on 64 bit machines
Issue created by migration from Trac.
Original creator: @svigerske
Original creation time: 2007-09-23 11:36:03
Assignee: @mjsaltzman
Version: 0.96
Hi,
in OsiGlpkSolverInterface.cpp::branchAndBound()
, at line 353 (trunk rev.), there is
case LPX_I_NOFEAS:
{ isPrimInfeasible_ = false ;
break ; }
I guess this should be isPrimInfeasible_ = true ;
.
Best,
Stefan
Issue created by migration from Trac.
Original creator: kmartin
Original creation time: 2007-05-15 23:12:26
Assignee: @mjsaltzman
Version: 0.95.2
Keywords: Microsoft Visual Studio
In OsiDlypPresolve change line 279
{ val *= pow(10,(double) exp) ; }
to
{ val *= pow(10.,(double) exp) ; }
and line 286
{ val *= pow(10,(double) exp) ; }
to
{ val *= pow(10.,(double) exp) ; }
The Microsoft cl complier does not work with the signature pow(int, double)
(changed by @LouHafer at 2007-06-02 02:15:47)
Issue created by migration from Trac.
Original creator: fmargot
Original creation time: 2006-11-21 22:27:49
Assignee: @mjsaltzman
Version: 0.95.0
CglLandP needs three methods from OsiClpSolverInterface
that are in the Osi/devel branch. These are:
virtual void getBInvARow(int row, CoinIndexedVector * z,
CoinIndexedVector * slack=NULL,
bool keepScaled=false) const;
virtual void getBInvACol(int col, CoinIndexedVector * vec) const ;
virtual void getBInvACol(CoinIndexedVector * rowArray1) const;
Issue created by migration from Trac.
Original creator: @LouHafer
Original creation time: 2006-12-01 20:47:49
Assignee: @mjsaltzman
Version: 0.95.0
Keywords: --with-osidylp, OsiDylp options
Specifying any --with-osidylp-* or --without-osidylp-* option has no effect.
Issue created by migration from Trac.
Original creator: @mgalati13
Original creation time: 2006-07-06 15:18:16
Assignee: somebody
Version:
OsiRowCut::sense() uses DBL_MAX as infinity.
(changed by @mjsaltzman at 2006-10-29 19:32:02)
Issue created by migration from Trac.
Original creator: craig_schmidt
Original creation time: 2006-12-05 03:32:24
Assignee: @mjsaltzman
Version: 0.95.0
Hi There,
I am trying to build Osi stable 0.95 using cygwin on Windows XP.
This is with gcc 3.4.4, and the updated version of make 3.81
as directed here[https://projects.coin-or.org/BuildTools/wiki/current-issues]
I did the following steps:
did a new install of cygwin
use subversion to get OSI:
svn co http://www.coin-or.org/svn/Osi/stable/0.95 coin-Osi
did ./configure -C, which worked fine
did make, and got this error:
make[3]: Entering directory `/cygdrive/d/netflix/coin/coin-Osi/Osi/src'
if /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I`cygpath -w .` -I../inc -I`cygpath -w /cygdrive/d/netflix/coin/coin-Osi/CoinUtils/src` -I`cygpath -w /cygdrive/d/netflix/coin/coin-Osi/Osi/../CoinUtils/inc` -O3 -fomit-frame-pointer -pipe -DNDEBUG -pedantic-errors -Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -MT OsiAuxInfo.lo -MD -MP -MF ".deps/OsiAuxInfo.Tpo" -c -o OsiAuxInfo.lo OsiAuxInfo.cpp; \
then mv -f ".deps/OsiAuxInfo.Tpo" ".deps/OsiAuxInfo.Plo"; else rm -f ".deps/OsiAuxInfo.Tpo"; exit 1; fi
g++ -DHAVE_CONFIG_H -I. -I. -I../inc -Id:\\netflix\\coin\\coin-Osi\\CoinUtils\\src -Id:\\netflix\\coin\\coin-Osi\\CoinUtils\\inc -O3 -fomit-frame-pointer -pipe -DNDEBUG -pedantic-errors -Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -MT OsiAuxInfo.lo -MD -MP -MF .deps/OsiAuxInfo.Tpo -c OsiAuxInfo.cpp -o OsiAuxInfo.o
In file included from d:/netflix/coin/coin-Osi/CoinUtils/src/CoinMessageHandler.hpp:15,
from OsiSolverInterface.hpp:9,
from OsiAuxInfo.cpp:11:
d:/netflix/coin/coin-Osi/CoinUtils/src/CoinFinite.hpp: In function `bool CoinIsnan(double)':
d:/netflix/coin/coin-Osi/CoinUtils/src/CoinFinite.hpp:90: error: `_isnan' undeclared (first use this function)
d:/netflix/coin/coin-Osi/CoinUtils/src/CoinFinite.hpp:90: error: (Each undeclared identifier is reported only once for each function it appears in.)
make[3]: *** [OsiAuxInfo.lo] Error 1
make[3]: Leaving directory `/cygdrive/d/netflix/coin/coin-Osi/Osi/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/cygdrive/d/netflix/coin/coin-Osi/Osi/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/cygdrive/d/netflix/coin/coin-Osi/Osi'
make: *** [all-recursive] Error 1
Any suggestions?
Thanks,
Craig Schmidt
Issue created by migration from Trac.
Original creator: soumitra
Original creation time: 2007-04-12 04:05:56
Assignee: @mjsaltzman
Version: 0.95.2
Keywords: IP Solve
I modified the basic.cpp in Osi examples so that it solves my IP. However, it crashes in the call to osi->branchAndBound(). Here is the log.
soumitra$ basic
Coin0506I Presolve 3 (-1) rows, 5 (-1) columns and 7 (-1) elements
Clp0006I 0 Obj 48.5 Primal inf 578.07 (3)
Clp0006I 3 Obj 452.25
Clp0000I Optimal - objective value 452.25
Coin0511I After Postsolve, objective 452.25, infeasibilities - dual 0 (0), primal 0 (0)
Clp0032I Optimal objective 452.25 - 3 iterations time 0.002, Presolve 0.00
Clp0006I 0 Obj 452.25 Primal inf 0.5 (1)
Clp0001I Primal infeasible - objective value 452.25
Clp0006I 0 Obj 452.25 Primal inf 0.5 (1)
Clp0006I 1 Obj 452.75
Clp0000I Optimal - objective value 452.75
Illegal index 6750311 in OsiClpSolverInterface::setColUpper
terminate called after throwing an instance of 'CoinError'
Aborted (core dumped)
To recompile, you need to replace the Osi/examples/basic.cpp with the one in the tar ball.
This is truly a blocker for me. I am developing an application using BCP framework and I can not proceed until I can solve the IP similar to this example.
Issue created by migration from Trac.
Original creator: @mgalati13
Original creation time: 2007-02-11 21:04:08
Assignee: @mjsaltzman
Version: 0.95.2
CC: @mgalati13
Keywords: doxy
/home/magala/COIN/coin-Decomp/Osi/src/OsiDylp/OsiDylpMessages.hpp:4: Warning: Found unknown command `\legal'
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:325: Warning: argument `code' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:325: Warning: argument `indexfirst' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:325: Warning: argument `code' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:326: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:326: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:325: Warning: The following parameters of OsiCpxSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList) are not documented:
parameter indexFirst
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:354: Warning: argument `code' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:354: Warning: argument `indexfirst' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:354: Warning: argument `code' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:355: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:355: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:354: Warning: The following parameters of OsiCpxSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList) are not documented:
parameter indexFirst
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:365: Warning: argument `code' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:365: Warning: argument `indexfirst' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:365: Warning: argument `code' of command `@`param is not found in the argument list of OsiCpxSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiCpx/OsiCpxSolverInterface.hpp:365: Warning: The following parameters of OsiCpxSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList) are not documented:
parameter indexFirst
/home/magala/COIN/coin-Decomp/Osi/src/OsiDylp/OsiDylpSolverInterface.hpp:88: Warning: explicit link request to 'operator' could not be resolved
/home/magala/COIN/coin-Decomp/Osi/src/OsiDylp/OsiDylpWarmStartBasis.hpp:229: Warning: explicit link request to 'diffNdxs_' could not be resolved
/home/magala/COIN/coin-Decomp/Osi/src/OsiDylp/OsiDylpWarmStartBasis.hpp:230: Warning: explicit link request to 'diffVals_' could not be resolved
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:314: Warning: argument `code' of command `@`param is not found in the argument list of OsiMskSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:314: Warning: argument `indexfirst' of command `@`param is not found in the argument list of OsiMskSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:314: Warning: argument `code' of command `@`param is not found in the argument list of OsiMskSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:315: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:315: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:314: Warning: The following parameters of OsiMskSolverInterface::setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList) are not documented:
parameter indexFirst
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:343: Warning: argument `code' of command `@`param is not found in the argument list of OsiMskSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:343: Warning: argument `indexfirst' of command `@`param is not found in the argument list of OsiMskSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:343: Warning: argument `code' of command `@`param is not found in the argument list of OsiMskSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:344: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:344: Warning: found </em> tag without matching <em>
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:343: Warning: The following parameters of OsiMskSolverInterface::setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList) are not documented:
parameter indexFirst
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:354: Warning: argument `code' of command `@`param is not found in the argument list of OsiMskSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:354: Warning: argument `indexfirst' of command `@`param is not found in the argument list of OsiMskSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:354: Warning: argument `code' of command `@`param is not found in the argument list of OsiMskSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList)
/home/magala/COIN/coin-Decomp/Osi/src/OsiMsk/OsiMskSolverInterface.hpp:354: Warning: The following parameters of OsiMskSolverInterface::setRowSetTypes(const int *indexFirst, const int *indexLast, const char *senseList, const double *rhsList, const double *rangeList) are not documented:
parameter indexFirst
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.