ruby-cbc 0.1.9 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/Rakefile +0 -2
- data/lib/ruby-cbc.rb +1 -1
- data/lib/ruby-cbc/problem.rb +6 -8
- data/lib/ruby-cbc/version.rb +1 -1
- data/ruby-cbc.gemspec +3 -2
- metadata +17 -287
- data/ext/ruby-cbc/cbc.i +0 -15
- data/ext/ruby-cbc/cbc_wrap.c +0 -4618
- data/ext/ruby-cbc/extconf.rb +0 -60
- data/ext/ruby-cbc/install/bin/cbc +0 -0
- data/ext/ruby-cbc/install/bin/clp +0 -0
- data/ext/ruby-cbc/install/include/coin/CbcBranchActual.hpp +0 -24
- data/ext/ruby-cbc/install/include/coin/CbcBranchAllDifferent.hpp +0 -62
- data/ext/ruby-cbc/install/include/coin/CbcBranchBase.hpp +0 -78
- data/ext/ruby-cbc/install/include/coin/CbcBranchCut.hpp +0 -183
- data/ext/ruby-cbc/install/include/coin/CbcBranchDecision.hpp +0 -129
- data/ext/ruby-cbc/install/include/coin/CbcBranchDefaultDecision.hpp +0 -100
- data/ext/ruby-cbc/install/include/coin/CbcBranchDynamic.hpp +0 -206
- data/ext/ruby-cbc/install/include/coin/CbcBranchLotsize.hpp +0 -242
- data/ext/ruby-cbc/install/include/coin/CbcBranchToFixLots.hpp +0 -94
- data/ext/ruby-cbc/install/include/coin/CbcBranchingObject.hpp +0 -236
- data/ext/ruby-cbc/install/include/coin/CbcClique.hpp +0 -303
- data/ext/ruby-cbc/install/include/coin/CbcCompare.hpp +0 -39
- data/ext/ruby-cbc/install/include/coin/CbcCompareActual.hpp +0 -14
- data/ext/ruby-cbc/install/include/coin/CbcCompareBase.hpp +0 -142
- data/ext/ruby-cbc/install/include/coin/CbcCompareDefault.hpp +0 -120
- data/ext/ruby-cbc/install/include/coin/CbcCompareDepth.hpp +0 -47
- data/ext/ruby-cbc/install/include/coin/CbcCompareEstimate.hpp +0 -48
- data/ext/ruby-cbc/install/include/coin/CbcCompareObjective.hpp +0 -49
- data/ext/ruby-cbc/install/include/coin/CbcConfig.h +0 -14
- data/ext/ruby-cbc/install/include/coin/CbcConsequence.hpp +0 -49
- data/ext/ruby-cbc/install/include/coin/CbcCountRowCut.hpp +0 -168
- data/ext/ruby-cbc/install/include/coin/CbcCutGenerator.hpp +0 -482
- data/ext/ruby-cbc/install/include/coin/CbcCutModifier.hpp +0 -57
- data/ext/ruby-cbc/install/include/coin/CbcCutSubsetModifier.hpp +0 -66
- data/ext/ruby-cbc/install/include/coin/CbcDummyBranchingObject.hpp +0 -83
- data/ext/ruby-cbc/install/include/coin/CbcEventHandler.hpp +0 -245
- data/ext/ruby-cbc/install/include/coin/CbcFathom.hpp +0 -137
- data/ext/ruby-cbc/install/include/coin/CbcFathomDynamicProgramming.hpp +0 -169
- data/ext/ruby-cbc/install/include/coin/CbcFeasibilityBase.hpp +0 -56
- data/ext/ruby-cbc/install/include/coin/CbcFixVariable.hpp +0 -67
- data/ext/ruby-cbc/install/include/coin/CbcFollowOn.hpp +0 -207
- data/ext/ruby-cbc/install/include/coin/CbcFullNodeInfo.hpp +0 -161
- data/ext/ruby-cbc/install/include/coin/CbcGeneral.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CbcGeneralDepth.hpp +0 -279
- data/ext/ruby-cbc/install/include/coin/CbcHeuristic.hpp +0 -682
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDINS.hpp +0 -96
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDW.hpp +0 -309
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDive.hpp +0 -192
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveCoefficient.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveFractional.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveGuided.hpp +0 -55
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveLineSearch.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDivePseudoCost.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveVectorLength.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicFPump.hpp +0 -340
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicGreedy.hpp +0 -280
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicLocal.hpp +0 -271
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicPivotAndFix.hpp +0 -58
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicRENS.hpp +0 -77
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicRINS.hpp +0 -102
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicRandRound.hpp +0 -58
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicVND.hpp +0 -94
- data/ext/ruby-cbc/install/include/coin/CbcLinked.hpp +0 -1406
- data/ext/ruby-cbc/install/include/coin/CbcMessage.hpp +0 -94
- data/ext/ruby-cbc/install/include/coin/CbcMipStartIO.hpp +0 -26
- data/ext/ruby-cbc/install/include/coin/CbcModel.hpp +0 -2952
- data/ext/ruby-cbc/install/include/coin/CbcNWay.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CbcNode.hpp +0 -351
- data/ext/ruby-cbc/install/include/coin/CbcNodeInfo.hpp +0 -349
- data/ext/ruby-cbc/install/include/coin/CbcObject.hpp +0 -272
- data/ext/ruby-cbc/install/include/coin/CbcObjectUpdateData.hpp +0 -64
- data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.cpp +0 -4134
- data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.hpp +0 -532
- data/ext/ruby-cbc/install/include/coin/CbcParam.hpp +0 -324
- data/ext/ruby-cbc/install/include/coin/CbcPartialNodeInfo.hpp +0 -110
- data/ext/ruby-cbc/install/include/coin/CbcSOS.hpp +0 -279
- data/ext/ruby-cbc/install/include/coin/CbcSimpleInteger.hpp +0 -286
- data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +0 -564
- data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerPseudoCost.hpp +0 -114
- data/ext/ruby-cbc/install/include/coin/CbcSolver.hpp +0 -447
- data/ext/ruby-cbc/install/include/coin/CbcStrategy.hpp +0 -258
- data/ext/ruby-cbc/install/include/coin/CbcSubProblem.hpp +0 -83
- data/ext/ruby-cbc/install/include/coin/CbcTree.hpp +0 -490
- data/ext/ruby-cbc/install/include/coin/CbcTreeLocal.hpp +0 -372
- data/ext/ruby-cbc/install/include/coin/Cbc_C_Interface.h +0 -381
- data/ext/ruby-cbc/install/include/coin/Cgl012cut.hpp +0 -464
- data/ext/ruby-cbc/install/include/coin/CglAllDifferent.hpp +0 -115
- data/ext/ruby-cbc/install/include/coin/CglClique.hpp +0 -308
- data/ext/ruby-cbc/install/include/coin/CglConfig.h +0 -19
- data/ext/ruby-cbc/install/include/coin/CglCutGenerator.hpp +0 -121
- data/ext/ruby-cbc/install/include/coin/CglDuplicateRow.hpp +0 -189
- data/ext/ruby-cbc/install/include/coin/CglFlowCover.hpp +0 -371
- data/ext/ruby-cbc/install/include/coin/CglGMI.hpp +0 -364
- data/ext/ruby-cbc/install/include/coin/CglGMIParam.hpp +0 -313
- data/ext/ruby-cbc/install/include/coin/CglGomory.hpp +0 -204
- data/ext/ruby-cbc/install/include/coin/CglKnapsackCover.hpp +0 -310
- data/ext/ruby-cbc/install/include/coin/CglLandP.hpp +0 -306
- data/ext/ruby-cbc/install/include/coin/CglLandPValidator.hpp +0 -130
- data/ext/ruby-cbc/install/include/coin/CglLiftAndProject.hpp +0 -104
- data/ext/ruby-cbc/install/include/coin/CglMessage.hpp +0 -50
- data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding.hpp +0 -429
- data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding2.hpp +0 -427
- data/ext/ruby-cbc/install/include/coin/CglOddHole.hpp +0 -160
- data/ext/ruby-cbc/install/include/coin/CglParam.hpp +0 -93
- data/ext/ruby-cbc/install/include/coin/CglPreProcess.hpp +0 -492
- data/ext/ruby-cbc/install/include/coin/CglProbing.hpp +0 -543
- data/ext/ruby-cbc/install/include/coin/CglRedSplit.hpp +0 -448
- data/ext/ruby-cbc/install/include/coin/CglRedSplit2.hpp +0 -494
- data/ext/ruby-cbc/install/include/coin/CglRedSplit2Param.hpp +0 -495
- data/ext/ruby-cbc/install/include/coin/CglRedSplitParam.hpp +0 -272
- data/ext/ruby-cbc/install/include/coin/CglResidualCapacity.hpp +0 -240
- data/ext/ruby-cbc/install/include/coin/CglSimpleRounding.hpp +0 -174
- data/ext/ruby-cbc/install/include/coin/CglStored.hpp +0 -125
- data/ext/ruby-cbc/install/include/coin/CglTreeInfo.hpp +0 -180
- data/ext/ruby-cbc/install/include/coin/CglTwomir.hpp +0 -565
- data/ext/ruby-cbc/install/include/coin/CglZeroHalf.hpp +0 -133
- data/ext/ruby-cbc/install/include/coin/ClpAmplObjective.hpp +0 -113
- data/ext/ruby-cbc/install/include/coin/ClpCholeskyBase.hpp +0 -294
- data/ext/ruby-cbc/install/include/coin/ClpCholeskyDense.hpp +0 -162
- data/ext/ruby-cbc/install/include/coin/ClpConfig.h +0 -17
- data/ext/ruby-cbc/install/include/coin/ClpConstraint.hpp +0 -125
- data/ext/ruby-cbc/install/include/coin/ClpConstraintAmpl.hpp +0 -108
- data/ext/ruby-cbc/install/include/coin/ClpConstraintLinear.hpp +0 -110
- data/ext/ruby-cbc/install/include/coin/ClpConstraintQuadratic.hpp +0 -119
- data/ext/ruby-cbc/install/include/coin/ClpDualRowDantzig.hpp +0 -71
- data/ext/ruby-cbc/install/include/coin/ClpDualRowPivot.hpp +0 -129
- data/ext/ruby-cbc/install/include/coin/ClpDualRowSteepest.hpp +0 -153
- data/ext/ruby-cbc/install/include/coin/ClpDummyMatrix.hpp +0 -183
- data/ext/ruby-cbc/install/include/coin/ClpDynamicExampleMatrix.hpp +0 -186
- data/ext/ruby-cbc/install/include/coin/ClpDynamicMatrix.hpp +0 -381
- data/ext/ruby-cbc/install/include/coin/ClpEventHandler.hpp +0 -187
- data/ext/ruby-cbc/install/include/coin/ClpFactorization.hpp +0 -432
- data/ext/ruby-cbc/install/include/coin/ClpGubDynamicMatrix.hpp +0 -247
- data/ext/ruby-cbc/install/include/coin/ClpGubMatrix.hpp +0 -358
- data/ext/ruby-cbc/install/include/coin/ClpInterior.hpp +0 -570
- data/ext/ruby-cbc/install/include/coin/ClpLinearObjective.hpp +0 -103
- data/ext/ruby-cbc/install/include/coin/ClpMatrixBase.hpp +0 -524
- data/ext/ruby-cbc/install/include/coin/ClpMessage.hpp +0 -131
- data/ext/ruby-cbc/install/include/coin/ClpModel.hpp +0 -1307
- data/ext/ruby-cbc/install/include/coin/ClpNetworkMatrix.hpp +0 -229
- data/ext/ruby-cbc/install/include/coin/ClpNode.hpp +0 -349
- data/ext/ruby-cbc/install/include/coin/ClpNonLinearCost.hpp +0 -401
- data/ext/ruby-cbc/install/include/coin/ClpObjective.hpp +0 -134
- data/ext/ruby-cbc/install/include/coin/ClpPackedMatrix.hpp +0 -638
- data/ext/ruby-cbc/install/include/coin/ClpParameters.hpp +0 -126
- data/ext/ruby-cbc/install/include/coin/ClpPdcoBase.hpp +0 -103
- data/ext/ruby-cbc/install/include/coin/ClpPlusMinusOneMatrix.hpp +0 -290
- data/ext/ruby-cbc/install/include/coin/ClpPresolve.hpp +0 -299
- data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnDantzig.hpp +0 -72
- data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnPivot.hpp +0 -155
- data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnSteepest.hpp +0 -247
- data/ext/ruby-cbc/install/include/coin/ClpQuadraticObjective.hpp +0 -155
- data/ext/ruby-cbc/install/include/coin/ClpSimplex.hpp +0 -1797
- data/ext/ruby-cbc/install/include/coin/ClpSimplexDual.hpp +0 -300
- data/ext/ruby-cbc/install/include/coin/ClpSimplexNonlinear.hpp +0 -117
- data/ext/ruby-cbc/install/include/coin/ClpSimplexOther.hpp +0 -277
- data/ext/ruby-cbc/install/include/coin/ClpSimplexPrimal.hpp +0 -244
- data/ext/ruby-cbc/install/include/coin/ClpSolve.hpp +0 -446
- data/ext/ruby-cbc/install/include/coin/Clp_C_Interface.h +0 -525
- data/ext/ruby-cbc/install/include/coin/CoinAlloc.hpp +0 -176
- data/ext/ruby-cbc/install/include/coin/CoinBuild.hpp +0 -149
- data/ext/ruby-cbc/install/include/coin/CoinDenseFactorization.hpp +0 -419
- data/ext/ruby-cbc/install/include/coin/CoinDenseVector.hpp +0 -383
- data/ext/ruby-cbc/install/include/coin/CoinDistance.hpp +0 -48
- data/ext/ruby-cbc/install/include/coin/CoinError.hpp +0 -257
- data/ext/ruby-cbc/install/include/coin/CoinFactorization.hpp +0 -2044
- data/ext/ruby-cbc/install/include/coin/CoinFileIO.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CoinFinite.hpp +0 -34
- data/ext/ruby-cbc/install/include/coin/CoinFloatEqual.hpp +0 -177
- data/ext/ruby-cbc/install/include/coin/CoinHelperFunctions.hpp +0 -1111
- data/ext/ruby-cbc/install/include/coin/CoinIndexedVector.hpp +0 -1164
- data/ext/ruby-cbc/install/include/coin/CoinLpIO.hpp +0 -805
- data/ext/ruby-cbc/install/include/coin/CoinMessage.hpp +0 -96
- data/ext/ruby-cbc/install/include/coin/CoinMessageHandler.hpp +0 -666
- data/ext/ruby-cbc/install/include/coin/CoinModel.hpp +0 -1054
- data/ext/ruby-cbc/install/include/coin/CoinModelUseful.hpp +0 -441
- data/ext/ruby-cbc/install/include/coin/CoinMpsIO.hpp +0 -1056
- data/ext/ruby-cbc/install/include/coin/CoinOslFactorization.hpp +0 -280
- data/ext/ruby-cbc/install/include/coin/CoinPackedMatrix.hpp +0 -947
- data/ext/ruby-cbc/install/include/coin/CoinPackedVector.hpp +0 -657
- data/ext/ruby-cbc/install/include/coin/CoinPackedVectorBase.hpp +0 -269
- data/ext/ruby-cbc/install/include/coin/CoinParam.hpp +0 -644
- data/ext/ruby-cbc/install/include/coin/CoinPragma.hpp +0 -26
- data/ext/ruby-cbc/install/include/coin/CoinPresolveDoubleton.hpp +0 -73
- data/ext/ruby-cbc/install/include/coin/CoinPresolveDual.hpp +0 -85
- data/ext/ruby-cbc/install/include/coin/CoinPresolveDupcol.hpp +0 -226
- data/ext/ruby-cbc/install/include/coin/CoinPresolveEmpty.hpp +0 -116
- data/ext/ruby-cbc/install/include/coin/CoinPresolveFixed.hpp +0 -181
- data/ext/ruby-cbc/install/include/coin/CoinPresolveForcing.hpp +0 -61
- data/ext/ruby-cbc/install/include/coin/CoinPresolveImpliedFree.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CoinPresolveIsolated.hpp +0 -51
- data/ext/ruby-cbc/install/include/coin/CoinPresolveMatrix.hpp +0 -1842
- data/ext/ruby-cbc/install/include/coin/CoinPresolveMonitor.hpp +0 -105
- data/ext/ruby-cbc/install/include/coin/CoinPresolvePsdebug.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CoinPresolveSingleton.hpp +0 -112
- data/ext/ruby-cbc/install/include/coin/CoinPresolveSubst.hpp +0 -101
- data/ext/ruby-cbc/install/include/coin/CoinPresolveTighten.hpp +0 -55
- data/ext/ruby-cbc/install/include/coin/CoinPresolveTripleton.hpp +0 -66
- data/ext/ruby-cbc/install/include/coin/CoinPresolveUseless.hpp +0 -63
- data/ext/ruby-cbc/install/include/coin/CoinPresolveZeros.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CoinRational.hpp +0 -44
- data/ext/ruby-cbc/install/include/coin/CoinSearchTree.hpp +0 -465
- data/ext/ruby-cbc/install/include/coin/CoinShallowPackedVector.hpp +0 -148
- data/ext/ruby-cbc/install/include/coin/CoinSignal.hpp +0 -117
- data/ext/ruby-cbc/install/include/coin/CoinSimpFactorization.hpp +0 -431
- data/ext/ruby-cbc/install/include/coin/CoinSmartPtr.hpp +0 -528
- data/ext/ruby-cbc/install/include/coin/CoinSnapshot.hpp +0 -476
- data/ext/ruby-cbc/install/include/coin/CoinSort.hpp +0 -678
- data/ext/ruby-cbc/install/include/coin/CoinStructuredModel.hpp +0 -247
- data/ext/ruby-cbc/install/include/coin/CoinTime.hpp +0 -310
- data/ext/ruby-cbc/install/include/coin/CoinTypes.hpp +0 -64
- data/ext/ruby-cbc/install/include/coin/CoinUtility.hpp +0 -19
- data/ext/ruby-cbc/install/include/coin/CoinUtilsConfig.h +0 -34
- data/ext/ruby-cbc/install/include/coin/CoinWarmStart.hpp +0 -58
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartBasis.hpp +0 -456
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartDual.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartPrimalDual.hpp +0 -211
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartVector.hpp +0 -488
- data/ext/ruby-cbc/install/include/coin/Coin_C_defines.h +0 -115
- data/ext/ruby-cbc/install/include/coin/Idiot.hpp +0 -298
- data/ext/ruby-cbc/install/include/coin/OsiAuxInfo.hpp +0 -206
- data/ext/ruby-cbc/install/include/coin/OsiBranchingObject.hpp +0 -1005
- data/ext/ruby-cbc/install/include/coin/OsiCbcSolverInterface.hpp +0 -764
- data/ext/ruby-cbc/install/include/coin/OsiChooseVariable.hpp +0 -534
- data/ext/ruby-cbc/install/include/coin/OsiClpSolverInterface.hpp +0 -1509
- data/ext/ruby-cbc/install/include/coin/OsiColCut.hpp +0 -324
- data/ext/ruby-cbc/install/include/coin/OsiCollections.hpp +0 -35
- data/ext/ruby-cbc/install/include/coin/OsiConfig.h +0 -19
- data/ext/ruby-cbc/install/include/coin/OsiCut.hpp +0 -245
- data/ext/ruby-cbc/install/include/coin/OsiCuts.hpp +0 -474
- data/ext/ruby-cbc/install/include/coin/OsiPresolve.hpp +0 -252
- data/ext/ruby-cbc/install/include/coin/OsiRowCut.hpp +0 -331
- data/ext/ruby-cbc/install/include/coin/OsiRowCutDebugger.hpp +0 -187
- data/ext/ruby-cbc/install/include/coin/OsiSolverBranch.hpp +0 -152
- data/ext/ruby-cbc/install/include/coin/OsiSolverInterface.hpp +0 -2143
- data/ext/ruby-cbc/install/include/coin/OsiSolverParameters.hpp +0 -142
- data/ext/ruby-cbc/install/include/coin/OsiUnitTests.hpp +0 -374
- data/ext/ruby-cbc/install/lib/libCbc.la +0 -35
- data/ext/ruby-cbc/install/lib/libCbc.so +0 -0
- data/ext/ruby-cbc/install/lib/libCbc.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libCbc.so.3.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libCbcSolver.la +0 -35
- data/ext/ruby-cbc/install/lib/libCbcSolver.so +0 -0
- data/ext/ruby-cbc/install/lib/libCbcSolver.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libCbcSolver.so.3.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libCgl.la +0 -35
- data/ext/ruby-cbc/install/lib/libCgl.so +0 -0
- data/ext/ruby-cbc/install/lib/libCgl.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libCgl.so.1.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libClp.la +0 -35
- data/ext/ruby-cbc/install/lib/libClp.so +0 -0
- data/ext/ruby-cbc/install/lib/libClp.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libClp.so.1.13.9 +0 -0
- data/ext/ruby-cbc/install/lib/libClpSolver.la +0 -35
- data/ext/ruby-cbc/install/lib/libClpSolver.so +0 -0
- data/ext/ruby-cbc/install/lib/libClpSolver.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libClpSolver.so.1.13.9 +0 -0
- data/ext/ruby-cbc/install/lib/libCoinUtils.la +0 -35
- data/ext/ruby-cbc/install/lib/libCoinUtils.so +0 -0
- data/ext/ruby-cbc/install/lib/libCoinUtils.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libCoinUtils.so.3.10.11 +0 -0
- data/ext/ruby-cbc/install/lib/libOsi.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsi.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsi.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libOsi.so.1.12.6 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCbc.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsiCbc.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCbc.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCbc.so.3.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiClp.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsiClp.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsiClp.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiClp.so.1.13.9 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1.12.6 +0 -0
- data/ext/ruby-cbc/install/lib/pkgconfig/cbc.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/cgl.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/clp.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/coindatamiplib3.pc +0 -9
- data/ext/ruby-cbc/install/lib/pkgconfig/coindatasample.pc +0 -9
- data/ext/ruby-cbc/install/lib/pkgconfig/coinutils.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi-cbc.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi-clp.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi-unittests.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi.pc +0 -12
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
/* $Id: CbcTreeLocal.hpp 1573 2011-01-05 01:12:36Z lou $ */
|
|
2
|
-
// Copyright (C) 2004, International Business Machines
|
|
3
|
-
// Corporation and others. All Rights Reserved.
|
|
4
|
-
// This code is licensed under the terms of the Eclipse Public License (EPL).
|
|
5
|
-
|
|
6
|
-
#ifndef CbcTreeLocal_H
|
|
7
|
-
#define CbcTreeLocal_H
|
|
8
|
-
|
|
9
|
-
//#############################################################################
|
|
10
|
-
/* This implements (approximately) local branching as in the 2002 paper by
|
|
11
|
-
Matteo Fischetti and Andrea Lodi.
|
|
12
|
-
|
|
13
|
-
The very simple version of the algorithm for problems with
|
|
14
|
-
0-1 variables and continuous is as follows:
|
|
15
|
-
|
|
16
|
-
Obtain a feasible solution (one can be passed in).
|
|
17
|
-
|
|
18
|
-
Add a cut which limits search to a k neighborhood of this solution.
|
|
19
|
-
(At most k 0-1 variables may change value)
|
|
20
|
-
Do branch and bound on this problem.
|
|
21
|
-
|
|
22
|
-
If finished search and proven optimal then we can reverse cut so
|
|
23
|
-
any solutions must be at least k+1 away from solution and we can
|
|
24
|
-
add a new cut limiting search to a k neighborhood of new solution
|
|
25
|
-
repeat.
|
|
26
|
-
|
|
27
|
-
If finished search and no new solution then the simplest version
|
|
28
|
-
would reverse last cut and complete search. The version implemented
|
|
29
|
-
here can use time and node limits and can widen search (increase effective k)
|
|
30
|
-
.... and more
|
|
31
|
-
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
#include "CbcTree.hpp"
|
|
35
|
-
#include "CbcNode.hpp"
|
|
36
|
-
#include "OsiRowCut.hpp"
|
|
37
|
-
class CbcModel;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class CbcTreeLocal : public CbcTree {
|
|
41
|
-
|
|
42
|
-
public:
|
|
43
|
-
|
|
44
|
-
// Default Constructor
|
|
45
|
-
CbcTreeLocal ();
|
|
46
|
-
|
|
47
|
-
/* Constructor with solution.
|
|
48
|
-
If solution NULL no solution, otherwise must be integer
|
|
49
|
-
range is initial upper bound (k) on difference from given solution.
|
|
50
|
-
typeCuts -
|
|
51
|
-
0 means just 0-1 cuts and will need to refine 0-1 solution
|
|
52
|
-
1 uses weaker cuts on all integer variables
|
|
53
|
-
maxDiversification is maximum number of range widenings to try
|
|
54
|
-
timeLimit is seconds in subTree
|
|
55
|
-
nodeLimit is nodes in subTree
|
|
56
|
-
refine is whether to see if we can prove current solution is optimal
|
|
57
|
-
when we fix all 0-1 (in case typeCuts==0 and there are general integer variables)
|
|
58
|
-
if false then no refinement but reverse cuts weaker
|
|
59
|
-
*/
|
|
60
|
-
CbcTreeLocal (CbcModel * model, const double * solution , int range = 10,
|
|
61
|
-
int typeCuts = 0, int maxDiversification = 0,
|
|
62
|
-
int timeLimit = 1000000, int nodeLimit = 1000000, bool refine = true);
|
|
63
|
-
// Copy constructor
|
|
64
|
-
CbcTreeLocal ( const CbcTreeLocal & rhs);
|
|
65
|
-
|
|
66
|
-
// = operator
|
|
67
|
-
CbcTreeLocal & operator=(const CbcTreeLocal & rhs);
|
|
68
|
-
|
|
69
|
-
virtual ~CbcTreeLocal();
|
|
70
|
-
|
|
71
|
-
/// Clone
|
|
72
|
-
virtual CbcTree * clone() const;
|
|
73
|
-
/// Create C++ lines to get to current state
|
|
74
|
-
virtual void generateCpp( FILE * fp) ;
|
|
75
|
-
|
|
76
|
-
/*! \name Heap access and maintenance methods */
|
|
77
|
-
//@{
|
|
78
|
-
|
|
79
|
-
/// Return the top node of the heap
|
|
80
|
-
virtual CbcNode * top() const;
|
|
81
|
-
|
|
82
|
-
/// Add a node to the heap
|
|
83
|
-
virtual void push(CbcNode * x);
|
|
84
|
-
|
|
85
|
-
/// Remove the top node from the heap
|
|
86
|
-
virtual void pop() ;
|
|
87
|
-
|
|
88
|
-
//@}
|
|
89
|
-
/*! \name Other stuff */
|
|
90
|
-
//@{
|
|
91
|
-
|
|
92
|
-
/// Create cut - return -1 if bad, 0 if okay and 1 if cut is everything
|
|
93
|
-
int createCut(const double * solution, OsiRowCut & cut);
|
|
94
|
-
|
|
95
|
-
/// Test if empty *** note may be overridden
|
|
96
|
-
virtual bool empty() ;
|
|
97
|
-
|
|
98
|
-
/// We may have got an intelligent tree so give it one more chance
|
|
99
|
-
virtual void endSearch() ;
|
|
100
|
-
/// Other side of last cut branch (if bias==rhs_ will be weakest possible)
|
|
101
|
-
void reverseCut(int state, double bias = 0.0);
|
|
102
|
-
/// Delete last cut branch
|
|
103
|
-
void deleteCut(OsiRowCut & cut);
|
|
104
|
-
/// Pass in solution (so can be used after heuristic)
|
|
105
|
-
void passInSolution(const double * solution, double solutionValue);
|
|
106
|
-
// range i.e. k
|
|
107
|
-
inline int range() const {
|
|
108
|
-
return range_;
|
|
109
|
-
}
|
|
110
|
-
// setrange i.e. k
|
|
111
|
-
inline void setRange(int value) {
|
|
112
|
-
range_ = value;
|
|
113
|
-
}
|
|
114
|
-
// Type of cuts - 0=just 0-1, 1=all
|
|
115
|
-
inline int typeCuts() const {
|
|
116
|
-
return typeCuts_;
|
|
117
|
-
}
|
|
118
|
-
// Type of cuts - 0=just 0-1, 1=all
|
|
119
|
-
inline void setTypeCuts(int value) {
|
|
120
|
-
typeCuts_ = value;
|
|
121
|
-
}
|
|
122
|
-
// maximum number of diversifications
|
|
123
|
-
inline int maxDiversification() const {
|
|
124
|
-
return maxDiversification_;
|
|
125
|
-
}
|
|
126
|
-
// maximum number of diversifications
|
|
127
|
-
inline void setMaxDiversification(int value) {
|
|
128
|
-
maxDiversification_ = value;
|
|
129
|
-
}
|
|
130
|
-
// time limit per subtree
|
|
131
|
-
inline int timeLimit() const {
|
|
132
|
-
return timeLimit_;
|
|
133
|
-
}
|
|
134
|
-
// time limit per subtree
|
|
135
|
-
inline void setTimeLimit(int value) {
|
|
136
|
-
timeLimit_ = value;
|
|
137
|
-
}
|
|
138
|
-
// node limit for subtree
|
|
139
|
-
inline int nodeLimit() const {
|
|
140
|
-
return nodeLimit_;
|
|
141
|
-
}
|
|
142
|
-
// node limit for subtree
|
|
143
|
-
inline void setNodeLimit(int value) {
|
|
144
|
-
nodeLimit_ = value;
|
|
145
|
-
}
|
|
146
|
-
// Whether to do refinement step
|
|
147
|
-
inline bool refine() const {
|
|
148
|
-
return refine_;
|
|
149
|
-
}
|
|
150
|
-
// Whether to do refinement step
|
|
151
|
-
inline void setRefine(bool yesNo) {
|
|
152
|
-
refine_ = yesNo;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
//@}
|
|
156
|
-
private:
|
|
157
|
-
// Node for local cuts
|
|
158
|
-
CbcNode * localNode_;
|
|
159
|
-
// best solution
|
|
160
|
-
double * bestSolution_;
|
|
161
|
-
// saved solution
|
|
162
|
-
double * savedSolution_;
|
|
163
|
-
// solution number at start of pass
|
|
164
|
-
int saveNumberSolutions_;
|
|
165
|
-
/* Cut. If zero size then no solution yet. Otherwise is left hand branch */
|
|
166
|
-
OsiRowCut cut_;
|
|
167
|
-
// This cut fixes all 0-1 variables
|
|
168
|
-
OsiRowCut fixedCut_;
|
|
169
|
-
// Model
|
|
170
|
-
CbcModel * model_;
|
|
171
|
-
// Original lower bounds
|
|
172
|
-
double * originalLower_;
|
|
173
|
-
// Original upper bounds
|
|
174
|
-
double * originalUpper_;
|
|
175
|
-
// range i.e. k
|
|
176
|
-
int range_;
|
|
177
|
-
// Type of cuts - 0=just 0-1, 1=all
|
|
178
|
-
int typeCuts_;
|
|
179
|
-
// maximum number of diversifications
|
|
180
|
-
int maxDiversification_;
|
|
181
|
-
// current diversification
|
|
182
|
-
int diversification_;
|
|
183
|
-
// Whether next will be strong diversification
|
|
184
|
-
bool nextStrong_;
|
|
185
|
-
// Current rhs
|
|
186
|
-
double rhs_;
|
|
187
|
-
// Save allowable gap
|
|
188
|
-
double savedGap_;
|
|
189
|
-
// Best solution
|
|
190
|
-
double bestCutoff_;
|
|
191
|
-
// time limit per subtree
|
|
192
|
-
int timeLimit_;
|
|
193
|
-
// time when subtree started
|
|
194
|
-
int startTime_;
|
|
195
|
-
// node limit for subtree
|
|
196
|
-
int nodeLimit_;
|
|
197
|
-
// node count when subtree started
|
|
198
|
-
int startNode_;
|
|
199
|
-
// -1 not started, 0 == stop on first solution, 1 don't stop on first, 2 refinement step
|
|
200
|
-
int searchType_;
|
|
201
|
-
// Whether to do refinement step
|
|
202
|
-
bool refine_;
|
|
203
|
-
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
class CbcTreeVariable : public CbcTree {
|
|
207
|
-
|
|
208
|
-
public:
|
|
209
|
-
|
|
210
|
-
// Default Constructor
|
|
211
|
-
CbcTreeVariable ();
|
|
212
|
-
|
|
213
|
-
/* Constructor with solution.
|
|
214
|
-
If solution NULL no solution, otherwise must be integer
|
|
215
|
-
range is initial upper bound (k) on difference from given solution.
|
|
216
|
-
typeCuts -
|
|
217
|
-
0 means just 0-1 cuts and will need to refine 0-1 solution
|
|
218
|
-
1 uses weaker cuts on all integer variables
|
|
219
|
-
maxDiversification is maximum number of range widenings to try
|
|
220
|
-
timeLimit is seconds in subTree
|
|
221
|
-
nodeLimit is nodes in subTree
|
|
222
|
-
refine is whether to see if we can prove current solution is optimal
|
|
223
|
-
when we fix all 0-1 (in case typeCuts==0 and there are general integer variables)
|
|
224
|
-
if false then no refinement but reverse cuts weaker
|
|
225
|
-
*/
|
|
226
|
-
CbcTreeVariable (CbcModel * model, const double * solution , int range = 10,
|
|
227
|
-
int typeCuts = 0, int maxDiversification = 0,
|
|
228
|
-
int timeLimit = 1000000, int nodeLimit = 1000000, bool refine = true);
|
|
229
|
-
// Copy constructor
|
|
230
|
-
CbcTreeVariable ( const CbcTreeVariable & rhs);
|
|
231
|
-
|
|
232
|
-
// = operator
|
|
233
|
-
CbcTreeVariable & operator=(const CbcTreeVariable & rhs);
|
|
234
|
-
|
|
235
|
-
virtual ~CbcTreeVariable();
|
|
236
|
-
|
|
237
|
-
/// Clone
|
|
238
|
-
virtual CbcTree * clone() const;
|
|
239
|
-
/// Create C++ lines to get to current state
|
|
240
|
-
virtual void generateCpp( FILE * fp) ;
|
|
241
|
-
|
|
242
|
-
/*! \name Heap access and maintenance methods */
|
|
243
|
-
//@{
|
|
244
|
-
|
|
245
|
-
/// Return the top node of the heap
|
|
246
|
-
virtual CbcNode * top() const;
|
|
247
|
-
|
|
248
|
-
/// Add a node to the heap
|
|
249
|
-
virtual void push(CbcNode * x);
|
|
250
|
-
|
|
251
|
-
/// Remove the top node from the heap
|
|
252
|
-
virtual void pop() ;
|
|
253
|
-
|
|
254
|
-
//@}
|
|
255
|
-
/*! \name Other stuff */
|
|
256
|
-
//@{
|
|
257
|
-
|
|
258
|
-
/// Create cut - return -1 if bad, 0 if okay and 1 if cut is everything
|
|
259
|
-
int createCut(const double * solution, OsiRowCut & cut);
|
|
260
|
-
|
|
261
|
-
/// Test if empty *** note may be overridden
|
|
262
|
-
virtual bool empty() ;
|
|
263
|
-
|
|
264
|
-
/// We may have got an intelligent tree so give it one more chance
|
|
265
|
-
virtual void endSearch() ;
|
|
266
|
-
/// Other side of last cut branch (if bias==rhs_ will be weakest possible)
|
|
267
|
-
void reverseCut(int state, double bias = 0.0);
|
|
268
|
-
/// Delete last cut branch
|
|
269
|
-
void deleteCut(OsiRowCut & cut);
|
|
270
|
-
/// Pass in solution (so can be used after heuristic)
|
|
271
|
-
void passInSolution(const double * solution, double solutionValue);
|
|
272
|
-
// range i.e. k
|
|
273
|
-
inline int range() const {
|
|
274
|
-
return range_;
|
|
275
|
-
}
|
|
276
|
-
// setrange i.e. k
|
|
277
|
-
inline void setRange(int value) {
|
|
278
|
-
range_ = value;
|
|
279
|
-
}
|
|
280
|
-
// Type of cuts - 0=just 0-1, 1=all
|
|
281
|
-
inline int typeCuts() const {
|
|
282
|
-
return typeCuts_;
|
|
283
|
-
}
|
|
284
|
-
// Type of cuts - 0=just 0-1, 1=all
|
|
285
|
-
inline void setTypeCuts(int value) {
|
|
286
|
-
typeCuts_ = value;
|
|
287
|
-
}
|
|
288
|
-
// maximum number of diversifications
|
|
289
|
-
inline int maxDiversification() const {
|
|
290
|
-
return maxDiversification_;
|
|
291
|
-
}
|
|
292
|
-
// maximum number of diversifications
|
|
293
|
-
inline void setMaxDiversification(int value) {
|
|
294
|
-
maxDiversification_ = value;
|
|
295
|
-
}
|
|
296
|
-
// time limit per subtree
|
|
297
|
-
inline int timeLimit() const {
|
|
298
|
-
return timeLimit_;
|
|
299
|
-
}
|
|
300
|
-
// time limit per subtree
|
|
301
|
-
inline void setTimeLimit(int value) {
|
|
302
|
-
timeLimit_ = value;
|
|
303
|
-
}
|
|
304
|
-
// node limit for subtree
|
|
305
|
-
inline int nodeLimit() const {
|
|
306
|
-
return nodeLimit_;
|
|
307
|
-
}
|
|
308
|
-
// node limit for subtree
|
|
309
|
-
inline void setNodeLimit(int value) {
|
|
310
|
-
nodeLimit_ = value;
|
|
311
|
-
}
|
|
312
|
-
// Whether to do refinement step
|
|
313
|
-
inline bool refine() const {
|
|
314
|
-
return refine_;
|
|
315
|
-
}
|
|
316
|
-
// Whether to do refinement step
|
|
317
|
-
inline void setRefine(bool yesNo) {
|
|
318
|
-
refine_ = yesNo;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
//@}
|
|
322
|
-
private:
|
|
323
|
-
// Node for local cuts
|
|
324
|
-
CbcNode * localNode_;
|
|
325
|
-
// best solution
|
|
326
|
-
double * bestSolution_;
|
|
327
|
-
// saved solution
|
|
328
|
-
double * savedSolution_;
|
|
329
|
-
// solution number at start of pass
|
|
330
|
-
int saveNumberSolutions_;
|
|
331
|
-
/* Cut. If zero size then no solution yet. Otherwise is left hand branch */
|
|
332
|
-
OsiRowCut cut_;
|
|
333
|
-
// This cut fixes all 0-1 variables
|
|
334
|
-
OsiRowCut fixedCut_;
|
|
335
|
-
// Model
|
|
336
|
-
CbcModel * model_;
|
|
337
|
-
// Original lower bounds
|
|
338
|
-
double * originalLower_;
|
|
339
|
-
// Original upper bounds
|
|
340
|
-
double * originalUpper_;
|
|
341
|
-
// range i.e. k
|
|
342
|
-
int range_;
|
|
343
|
-
// Type of cuts - 0=just 0-1, 1=all
|
|
344
|
-
int typeCuts_;
|
|
345
|
-
// maximum number of diversifications
|
|
346
|
-
int maxDiversification_;
|
|
347
|
-
// current diversification
|
|
348
|
-
int diversification_;
|
|
349
|
-
// Whether next will be strong diversification
|
|
350
|
-
bool nextStrong_;
|
|
351
|
-
// Current rhs
|
|
352
|
-
double rhs_;
|
|
353
|
-
// Save allowable gap
|
|
354
|
-
double savedGap_;
|
|
355
|
-
// Best solution
|
|
356
|
-
double bestCutoff_;
|
|
357
|
-
// time limit per subtree
|
|
358
|
-
int timeLimit_;
|
|
359
|
-
// time when subtree started
|
|
360
|
-
int startTime_;
|
|
361
|
-
// node limit for subtree
|
|
362
|
-
int nodeLimit_;
|
|
363
|
-
// node count when subtree started
|
|
364
|
-
int startNode_;
|
|
365
|
-
// -1 not started, 0 == stop on first solution, 1 don't stop on first, 2 refinement step
|
|
366
|
-
int searchType_;
|
|
367
|
-
// Whether to do refinement step
|
|
368
|
-
bool refine_;
|
|
369
|
-
|
|
370
|
-
};
|
|
371
|
-
#endif
|
|
372
|
-
|
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
/* $Id: Cbc_C_Interface.h 2091 2014-10-03 00:46:49Z mlubin $ */
|
|
2
|
-
/*
|
|
3
|
-
Copyright (C) 2004 International Business Machines Corporation and others.
|
|
4
|
-
All Rights Reserved.
|
|
5
|
-
|
|
6
|
-
This code is licensed under the terms of the Eclipse Public License (EPL).
|
|
7
|
-
*/
|
|
8
|
-
#ifndef CbcModelC_H
|
|
9
|
-
#define CbcModelC_H
|
|
10
|
-
|
|
11
|
-
/* include all defines and ugly stuff */
|
|
12
|
-
#include "Coin_C_defines.h"
|
|
13
|
-
#include <stddef.h>
|
|
14
|
-
|
|
15
|
-
/*
|
|
16
|
-
* Original verison contributed by Bob Entriken,
|
|
17
|
-
* significantly updated by Miles Lubin.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#ifdef __cplusplus
|
|
22
|
-
extern "C" {
|
|
23
|
-
#endif
|
|
24
|
-
|
|
25
|
-
/**@name Constructors and destructor
|
|
26
|
-
This is a "C" interface to Cbc.
|
|
27
|
-
The user does not need to know structure of Cbc_Model.
|
|
28
|
-
*/
|
|
29
|
-
/*@{*/
|
|
30
|
-
|
|
31
|
-
/** Default Cbc_Model constructor */
|
|
32
|
-
COINLIBAPI Cbc_Model * COINLINKAGE
|
|
33
|
-
Cbc_newModel(void)
|
|
34
|
-
;
|
|
35
|
-
/** Cbc_Model Destructor */
|
|
36
|
-
COINLIBAPI void COINLINKAGE
|
|
37
|
-
Cbc_deleteModel(Cbc_Model * model)
|
|
38
|
-
;
|
|
39
|
-
/** Current version of Cbc */
|
|
40
|
-
COINLIBAPI const char* COINLINKAGE Cbc_getVersion(void)
|
|
41
|
-
;
|
|
42
|
-
/*@}*/
|
|
43
|
-
|
|
44
|
-
/**@name Getting and setting model data
|
|
45
|
-
Note that problem access and modification methods,
|
|
46
|
-
such as getColLower and setColLower,
|
|
47
|
-
are *not valid* after calling Cbc_solve().
|
|
48
|
-
Therefore it is not recommended to reuse a Cbc_Model
|
|
49
|
-
object for multiple solves. A workaround is to call Cbc_clone()
|
|
50
|
-
before solving.
|
|
51
|
-
* */
|
|
52
|
-
/*@{*/
|
|
53
|
-
/** Loads a problem (the constraints on the
|
|
54
|
-
rows are given by lower and upper bounds). If a pointer is NULL then the
|
|
55
|
-
following values are the default:
|
|
56
|
-
<ul>
|
|
57
|
-
<li> <code>colub</code>: all columns have upper bound infinity
|
|
58
|
-
<li> <code>collb</code>: all columns have lower bound 0
|
|
59
|
-
<li> <code>rowub</code>: all rows have upper bound infinity
|
|
60
|
-
<li> <code>rowlb</code>: all rows have lower bound -infinity
|
|
61
|
-
<li> <code>obj</code>: all variables have 0 objective coefficient
|
|
62
|
-
</ul>
|
|
63
|
-
|
|
64
|
-
The constraint matrix is
|
|
65
|
-
given in standard compressed sparse column (without gaps).
|
|
66
|
-
<ul>
|
|
67
|
-
<li> <code>start[i]</code> stores the starting index of the ith column
|
|
68
|
-
<li> <code>index[k]</code> stores the row index of the kth nonzero element
|
|
69
|
-
<li> <code>value[k]</code> stores the coefficient of the kth nonzero element
|
|
70
|
-
</ul>
|
|
71
|
-
*/
|
|
72
|
-
COINLIBAPI void COINLINKAGE
|
|
73
|
-
Cbc_loadProblem (Cbc_Model * model, const int numcols, const int numrows,
|
|
74
|
-
const CoinBigIndex * start, const int* index,
|
|
75
|
-
const double* value,
|
|
76
|
-
const double* collb, const double* colub,
|
|
77
|
-
const double* obj,
|
|
78
|
-
const double* rowlb, const double* rowub)
|
|
79
|
-
;
|
|
80
|
-
/** Read an mps file from the given filename */
|
|
81
|
-
COINLIBAPI int COINLINKAGE
|
|
82
|
-
Cbc_readMps(Cbc_Model * model, const char *filename)
|
|
83
|
-
;
|
|
84
|
-
/** Write an mps file from the given filename */
|
|
85
|
-
COINLIBAPI void COINLINKAGE
|
|
86
|
-
Cbc_writeMps(Cbc_Model * model, const char *filename)
|
|
87
|
-
;
|
|
88
|
-
/** Provide an initial feasible solution to accelerate branch-and-bound
|
|
89
|
-
Note that feasibility of the solution is *not* verified.
|
|
90
|
-
*/
|
|
91
|
-
COINLIBAPI void COINLINKAGE
|
|
92
|
-
Cbc_setInitialSolution(Cbc_Model *model, const double * sol)
|
|
93
|
-
;
|
|
94
|
-
/** Fills in array with problem name */
|
|
95
|
-
COINLIBAPI void COINLINKAGE
|
|
96
|
-
Cbc_problemName(Cbc_Model * model, int maxNumberCharacters, char * array)
|
|
97
|
-
;
|
|
98
|
-
/** Sets problem name.
|
|
99
|
-
|
|
100
|
-
\p array must be a null-terminated string.
|
|
101
|
-
*/
|
|
102
|
-
COINLIBAPI int COINLINKAGE
|
|
103
|
-
Cbc_setProblemName(Cbc_Model * model, const char * array)
|
|
104
|
-
;
|
|
105
|
-
|
|
106
|
-
/** Number of nonzero elements in constraint matrix */
|
|
107
|
-
COINLIBAPI int COINLINKAGE
|
|
108
|
-
Cbc_getNumElements(Cbc_Model * model)
|
|
109
|
-
;
|
|
110
|
-
/** "Column start" vector of constraint matrix. Same format as Cbc_loadProblem() */
|
|
111
|
-
COINLIBAPI const CoinBigIndex * COINLINKAGE
|
|
112
|
-
Cbc_getVectorStarts(Cbc_Model * model)
|
|
113
|
-
;
|
|
114
|
-
/** "Row index" vector of constraint matrix */
|
|
115
|
-
COINLIBAPI const int * COINLINKAGE
|
|
116
|
-
Cbc_getIndices(Cbc_Model * model)
|
|
117
|
-
;
|
|
118
|
-
/** Coefficient vector of constraint matrix */
|
|
119
|
-
COINLIBAPI const double * COINLINKAGE
|
|
120
|
-
Cbc_getElements(Cbc_Model * model)
|
|
121
|
-
;
|
|
122
|
-
|
|
123
|
-
/** Maximum lenght of a row or column name */
|
|
124
|
-
COINLIBAPI size_t COINLINKAGE
|
|
125
|
-
Cbc_maxNameLength(Cbc_Model * model)
|
|
126
|
-
;
|
|
127
|
-
/** Fill in first maxLength bytes of name array with a row name */
|
|
128
|
-
COINLIBAPI void COINLINKAGE
|
|
129
|
-
Cbc_getRowName(Cbc_Model * model, int iRow, char * name, size_t maxLength)
|
|
130
|
-
;
|
|
131
|
-
/** Fill in first maxLength bytes of name array with a column name */
|
|
132
|
-
COINLIBAPI void COINLINKAGE
|
|
133
|
-
Cbc_getColName(Cbc_Model * model, int iColumn, char * name, size_t maxLength)
|
|
134
|
-
;
|
|
135
|
-
/** Set the name of a column */
|
|
136
|
-
COINLIBAPI void COINLINKAGE
|
|
137
|
-
Cbc_setColName(Cbc_Model * model, int iColumn, const char * name)
|
|
138
|
-
;
|
|
139
|
-
/** Set the name of a row */
|
|
140
|
-
COINLIBAPI void COINLINKAGE
|
|
141
|
-
Cbc_setRowName(Cbc_Model * model, int iRow, const char * name)
|
|
142
|
-
;
|
|
143
|
-
/** Number of constraints in the model */
|
|
144
|
-
COINLIBAPI int COINLINKAGE
|
|
145
|
-
Cbc_getNumRows(Cbc_Model * model)
|
|
146
|
-
;
|
|
147
|
-
/** Number of variables in the model */
|
|
148
|
-
COINLIBAPI int COINLINKAGE
|
|
149
|
-
Cbc_getNumCols(Cbc_Model * model)
|
|
150
|
-
;
|
|
151
|
-
/** Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore) */
|
|
152
|
-
COINLIBAPI void COINLINKAGE
|
|
153
|
-
Cbc_setObjSense(Cbc_Model * model, double sense)
|
|
154
|
-
;
|
|
155
|
-
/** Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore) */
|
|
156
|
-
COINLIBAPI double COINLINKAGE
|
|
157
|
-
Cbc_getObjSense(Cbc_Model * model)
|
|
158
|
-
;
|
|
159
|
-
/** Constraint lower bounds */
|
|
160
|
-
COINLIBAPI const double* COINLINKAGE
|
|
161
|
-
Cbc_getRowLower(Cbc_Model * model)
|
|
162
|
-
;
|
|
163
|
-
/** Set the lower bound of a single constraint */
|
|
164
|
-
COINLIBAPI void COINLINKAGE
|
|
165
|
-
Cbc_setRowLower(Cbc_Model * model, int index, double value)
|
|
166
|
-
;
|
|
167
|
-
/** Constraint upper bounds */
|
|
168
|
-
COINLIBAPI const double* COINLINKAGE
|
|
169
|
-
Cbc_getRowUpper(Cbc_Model * model)
|
|
170
|
-
;
|
|
171
|
-
/** Set the upper bound of a single constraint */
|
|
172
|
-
COINLIBAPI void COINLINKAGE
|
|
173
|
-
Cbc_setRowUpper(Cbc_Model * model, int index, double value)
|
|
174
|
-
;
|
|
175
|
-
/** Objective vector */
|
|
176
|
-
COINLIBAPI const double * COINLINKAGE
|
|
177
|
-
Cbc_getObjCoefficients(Cbc_Model * model)
|
|
178
|
-
;
|
|
179
|
-
/** Set the objective coefficient of a single variable */
|
|
180
|
-
COINLIBAPI void COINLINKAGE
|
|
181
|
-
Cbc_setObjCoeff(Cbc_Model * model, int index, double value)
|
|
182
|
-
;
|
|
183
|
-
/** Variable lower bounds */
|
|
184
|
-
COINLIBAPI const double * COINLINKAGE
|
|
185
|
-
Cbc_getColLower(Cbc_Model * model)
|
|
186
|
-
;
|
|
187
|
-
/** Set the lower bound of a single variable */
|
|
188
|
-
COINLIBAPI void COINLINKAGE
|
|
189
|
-
Cbc_setColLower(Cbc_Model * model, int index, double value)
|
|
190
|
-
;
|
|
191
|
-
/** Variable upper bounds */
|
|
192
|
-
COINLIBAPI const double * COINLINKAGE
|
|
193
|
-
Cbc_getColUpper(Cbc_Model * model)
|
|
194
|
-
;
|
|
195
|
-
/** Set the upper bound of a single variable */
|
|
196
|
-
COINLIBAPI void COINLINKAGE
|
|
197
|
-
Cbc_setColUpper(Cbc_Model * model, int index, double value)
|
|
198
|
-
;
|
|
199
|
-
/** Determine whether the ith variable is integer restricted */
|
|
200
|
-
COINLIBAPI int COINLINKAGE
|
|
201
|
-
Cbc_isInteger(Cbc_Model * model, int i)
|
|
202
|
-
;
|
|
203
|
-
/** Set this variable to be continuous */
|
|
204
|
-
COINLIBAPI void COINLINKAGE
|
|
205
|
-
Cbc_setContinuous(Cbc_Model * model, int iColumn)
|
|
206
|
-
;
|
|
207
|
-
/** Set this variable to be integer */
|
|
208
|
-
COINLIBAPI void COINLINKAGE
|
|
209
|
-
Cbc_setInteger(Cbc_Model * model, int iColumn)
|
|
210
|
-
;
|
|
211
|
-
/** Add SOS constraints to the model using row-order matrix */
|
|
212
|
-
COINLIBAPI void COINLINKAGE
|
|
213
|
-
Cbc_addSOS(Cbc_Model * model, int numRows, const int * rowStarts,
|
|
214
|
-
const int * colIndices, const double * weights, const int type)
|
|
215
|
-
;
|
|
216
|
-
/** Print the model */
|
|
217
|
-
COINLIBAPI void COINLINKAGE
|
|
218
|
-
Cbc_printModel(Cbc_Model * model, const char * argPrefix)
|
|
219
|
-
;
|
|
220
|
-
/** Return a copy of this model */
|
|
221
|
-
COINLIBAPI Cbc_Model * COINLINKAGE
|
|
222
|
-
Cbc_clone(Cbc_Model * model)
|
|
223
|
-
;
|
|
224
|
-
/*@}*/
|
|
225
|
-
/**@name Solver parameters */
|
|
226
|
-
/*@{*/
|
|
227
|
-
/** Set parameter "name" to value "value". Note that this
|
|
228
|
-
* translates directly to using "-name value" as a
|
|
229
|
-
* command-line argument to Cbc.*/
|
|
230
|
-
COINLIBAPI void COINLINKAGE
|
|
231
|
-
Cbc_setParameter(Cbc_Model * model, const char * name, const char * value)
|
|
232
|
-
;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
/*@}*/
|
|
236
|
-
/**@name Message handling. Call backs are handled by ONE function */
|
|
237
|
-
/*@{*/
|
|
238
|
-
/** Pass in Callback function.
|
|
239
|
-
Message numbers up to 1000000 are Clp, Coin ones have 1000000 added */
|
|
240
|
-
COINLIBAPI void COINLINKAGE
|
|
241
|
-
Cbc_registerCallBack(Cbc_Model * model,
|
|
242
|
-
cbc_callback userCallBack)
|
|
243
|
-
;
|
|
244
|
-
/** Unset Callback function */
|
|
245
|
-
COINLIBAPI void COINLINKAGE
|
|
246
|
-
Cbc_clearCallBack(Cbc_Model * model)
|
|
247
|
-
;
|
|
248
|
-
|
|
249
|
-
/*@}*/
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
/**@name Solving the model */
|
|
253
|
-
/*@{*/
|
|
254
|
-
/* Solve the model with Cbc (using CbcMain1).
|
|
255
|
-
*/
|
|
256
|
-
COINLIBAPI int COINLINKAGE
|
|
257
|
-
Cbc_solve(Cbc_Model * model)
|
|
258
|
-
;
|
|
259
|
-
/*@}*/
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
/**@name Accessing the solution and solution status */
|
|
263
|
-
/*@{*/
|
|
264
|
-
|
|
265
|
-
/** Sum of primal infeasibilities */
|
|
266
|
-
COINLIBAPI double COINLINKAGE
|
|
267
|
-
Cbc_sumPrimalInfeasibilities(Cbc_Model * model)
|
|
268
|
-
;
|
|
269
|
-
/** Number of primal infeasibilities */
|
|
270
|
-
COINLIBAPI int COINLINKAGE
|
|
271
|
-
Cbc_numberPrimalInfeasibilities(Cbc_Model * model)
|
|
272
|
-
;
|
|
273
|
-
|
|
274
|
-
/** Just check solution (for external use) - sets sum of
|
|
275
|
-
infeasibilities etc */
|
|
276
|
-
COINLIBAPI void COINLINKAGE
|
|
277
|
-
Cbc_checkSolution(Cbc_Model * model)
|
|
278
|
-
;
|
|
279
|
-
|
|
280
|
-
/** Number of iterations */
|
|
281
|
-
COINLIBAPI int COINLINKAGE
|
|
282
|
-
Cbc_getIterationCount(Cbc_Model * model)
|
|
283
|
-
;
|
|
284
|
-
/** Are there a numerical difficulties? */
|
|
285
|
-
COINLIBAPI int COINLINKAGE
|
|
286
|
-
Cbc_isAbandoned(Cbc_Model * model)
|
|
287
|
-
;
|
|
288
|
-
/** Is optimality proven? */
|
|
289
|
-
COINLIBAPI int COINLINKAGE
|
|
290
|
-
Cbc_isProvenOptimal(Cbc_Model * model)
|
|
291
|
-
;
|
|
292
|
-
/** Is infeasiblity proven (or none better than cutoff)? */
|
|
293
|
-
COINLIBAPI int COINLINKAGE
|
|
294
|
-
Cbc_isProvenInfeasible(Cbc_Model * model)
|
|
295
|
-
;
|
|
296
|
-
/** Was continuous solution unbounded? */
|
|
297
|
-
COINLIBAPI int COINLINKAGE
|
|
298
|
-
Cbc_isContinuousUnbounded(Cbc_Model * model)
|
|
299
|
-
;
|
|
300
|
-
/** Node limit reached? */
|
|
301
|
-
COINLIBAPI int COINLINKAGE
|
|
302
|
-
Cbc_isNodeLimitReached(Cbc_Model * model)
|
|
303
|
-
;
|
|
304
|
-
/** Time limit reached? */
|
|
305
|
-
COINLIBAPI int COINLINKAGE
|
|
306
|
-
Cbc_isSecondsLimitReached(Cbc_Model * model)
|
|
307
|
-
;
|
|
308
|
-
/** Solution limit reached? */
|
|
309
|
-
COINLIBAPI int COINLINKAGE
|
|
310
|
-
Cbc_isSolutionLimitReached(Cbc_Model * model)
|
|
311
|
-
;
|
|
312
|
-
/** Are there numerical difficulties (for initialSolve) ? */
|
|
313
|
-
COINLIBAPI int COINLINKAGE
|
|
314
|
-
Cbc_isInitialSolveAbandoned(Cbc_Model * model)
|
|
315
|
-
;
|
|
316
|
-
/** Is optimality proven (for initialSolve) ? */
|
|
317
|
-
COINLIBAPI int COINLINKAGE
|
|
318
|
-
Cbc_isInitialSolveProvenOptimal(Cbc_Model * model)
|
|
319
|
-
;
|
|
320
|
-
/** Is primal infeasiblity proven (for initialSolve) ? */
|
|
321
|
-
COINLIBAPI int COINLINKAGE
|
|
322
|
-
Cbc_isInitialSolveProvenPrimalInfeasible(Cbc_Model * model)
|
|
323
|
-
;
|
|
324
|
-
/** "row" solution
|
|
325
|
-
* This is the vector A*x, where A is the constraint matrix
|
|
326
|
-
* and x is the current solution. */
|
|
327
|
-
COINLIBAPI const double * COINLINKAGE
|
|
328
|
-
Cbc_getRowActivity(Cbc_Model * model)
|
|
329
|
-
;
|
|
330
|
-
/** Best feasible solution vector */
|
|
331
|
-
COINLIBAPI const double * COINLINKAGE
|
|
332
|
-
Cbc_getColSolution(Cbc_Model * model)
|
|
333
|
-
;
|
|
334
|
-
/** Objective value of best feasible solution */
|
|
335
|
-
COINLIBAPI double COINLINKAGE
|
|
336
|
-
Cbc_getObjValue(Cbc_Model * model)
|
|
337
|
-
;
|
|
338
|
-
/** Best known bound on the optimal objective value */
|
|
339
|
-
COINLIBAPI double COINLINKAGE
|
|
340
|
-
Cbc_getBestPossibleObjValue(Cbc_Model * model)
|
|
341
|
-
;
|
|
342
|
-
/** Number of nodes explored in B&B tree */
|
|
343
|
-
COINLIBAPI int COINLINKAGE
|
|
344
|
-
Cbc_getNodeCount(Cbc_Model * model)
|
|
345
|
-
;
|
|
346
|
-
/** Print the solution */
|
|
347
|
-
COINLIBAPI void COINLINKAGE
|
|
348
|
-
Cbc_printSolution(Cbc_Model * model)
|
|
349
|
-
;
|
|
350
|
-
/** Final status of problem
|
|
351
|
-
Some of these can be found out by is...... functions
|
|
352
|
-
-1 before branchAndBound
|
|
353
|
-
0 finished - check isProvenOptimal or isProvenInfeasible to see if solution found
|
|
354
|
-
(or check value of best solution)
|
|
355
|
-
1 stopped - on maxnodes, maxsols, maxtime
|
|
356
|
-
2 difficulties so run was abandoned
|
|
357
|
-
(5 event user programmed event occurred)
|
|
358
|
-
*/
|
|
359
|
-
COINLIBAPI int COINLINKAGE
|
|
360
|
-
Cbc_status(Cbc_Model * model)
|
|
361
|
-
;
|
|
362
|
-
/** Secondary status of problem
|
|
363
|
-
-1 unset (status_ will also be -1)
|
|
364
|
-
0 search completed with solution
|
|
365
|
-
1 linear relaxation not feasible (or worse than cutoff)
|
|
366
|
-
2 stopped on gap
|
|
367
|
-
3 stopped on nodes
|
|
368
|
-
4 stopped on time
|
|
369
|
-
5 stopped on user event
|
|
370
|
-
6 stopped on solutions
|
|
371
|
-
7 linear relaxation unbounded
|
|
372
|
-
8 stopped on iteration limit
|
|
373
|
-
*/
|
|
374
|
-
COINLIBAPI int COINLINKAGE
|
|
375
|
-
Cbc_secondaryStatus(Cbc_Model * model)
|
|
376
|
-
;
|
|
377
|
-
/*@}*/
|
|
378
|
-
#ifdef __cplusplus
|
|
379
|
-
}
|
|
380
|
-
#endif
|
|
381
|
-
#endif
|