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,137 +0,0 @@
|
|
|
1
|
-
/* $Id: CbcFathom.hpp 1889 2013-04-07 13:46:46Z stefan $ */
|
|
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 CbcFathom_H
|
|
7
|
-
#define CbcFathom_H
|
|
8
|
-
#include "CbcConfig.h"
|
|
9
|
-
|
|
10
|
-
/*
|
|
11
|
-
This file contains two classes, CbcFathom and CbcOsiSolver. It's unclear why
|
|
12
|
-
they're in the same file. CbcOsiSolver is a base class for CbcLinked.
|
|
13
|
-
|
|
14
|
-
--lh, 071031 --
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class CbcModel;
|
|
19
|
-
|
|
20
|
-
//#############################################################################
|
|
21
|
-
/** Fathom base class.
|
|
22
|
-
|
|
23
|
-
The idea is that after some branching the problem will be effectively smaller than
|
|
24
|
-
the original problem and maybe there will be a more specialized technique which can completely
|
|
25
|
-
fathom this branch quickly.
|
|
26
|
-
|
|
27
|
-
One method is to presolve the problem to give a much smaller new problem and then do branch
|
|
28
|
-
and cut on that. Another might be dynamic programming.
|
|
29
|
-
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
class CbcFathom {
|
|
33
|
-
public:
|
|
34
|
-
// Default Constructor
|
|
35
|
-
CbcFathom ();
|
|
36
|
-
|
|
37
|
-
// Constructor with model - assumed before cuts
|
|
38
|
-
CbcFathom (CbcModel & model);
|
|
39
|
-
|
|
40
|
-
virtual ~CbcFathom();
|
|
41
|
-
|
|
42
|
-
/// update model (This is needed if cliques update matrix etc)
|
|
43
|
-
virtual void setModel(CbcModel * model);
|
|
44
|
-
|
|
45
|
-
/// Clone
|
|
46
|
-
virtual CbcFathom * clone() const = 0;
|
|
47
|
-
|
|
48
|
-
/// Resets stuff if model changes
|
|
49
|
-
virtual void resetModel(CbcModel * model) = 0;
|
|
50
|
-
|
|
51
|
-
/** returns 0 if no fathoming attempted, 1 fully fathomed,
|
|
52
|
-
2 incomplete search, 3 incomplete search but treat as complete.
|
|
53
|
-
If solution then newSolution will not be NULL and
|
|
54
|
-
will be freed by CbcModel. It is expected that the solution is better
|
|
55
|
-
than best so far but CbcModel will double check.
|
|
56
|
-
|
|
57
|
-
If returns 3 then of course there is no guarantee of global optimum
|
|
58
|
-
*/
|
|
59
|
-
virtual int fathom(double *& newSolution) = 0;
|
|
60
|
-
|
|
61
|
-
// Is this method possible
|
|
62
|
-
inline bool possible() const {
|
|
63
|
-
return possible_;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
protected:
|
|
67
|
-
|
|
68
|
-
/// Model
|
|
69
|
-
CbcModel * model_;
|
|
70
|
-
/// Possible - if this method of fathoming can be used
|
|
71
|
-
bool possible_;
|
|
72
|
-
private:
|
|
73
|
-
|
|
74
|
-
/// Illegal Assignment operator
|
|
75
|
-
CbcFathom & operator=(const CbcFathom& rhs);
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
#include "OsiClpSolverInterface.hpp"
|
|
80
|
-
|
|
81
|
-
//#############################################################################
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
|
|
85
|
-
This is for codes where solver needs to know about CbcModel
|
|
86
|
-
Seems to provide only one value-added feature, a CbcModel object.
|
|
87
|
-
|
|
88
|
-
*/
|
|
89
|
-
|
|
90
|
-
class CbcOsiSolver : public OsiClpSolverInterface {
|
|
91
|
-
|
|
92
|
-
public:
|
|
93
|
-
|
|
94
|
-
/**@name Constructors and destructors */
|
|
95
|
-
//@{
|
|
96
|
-
/// Default Constructor
|
|
97
|
-
CbcOsiSolver ();
|
|
98
|
-
|
|
99
|
-
/// Clone
|
|
100
|
-
virtual OsiSolverInterface * clone(bool copyData = true) const;
|
|
101
|
-
|
|
102
|
-
/// Copy constructor
|
|
103
|
-
CbcOsiSolver (const CbcOsiSolver &);
|
|
104
|
-
|
|
105
|
-
/// Assignment operator
|
|
106
|
-
CbcOsiSolver & operator=(const CbcOsiSolver& rhs);
|
|
107
|
-
|
|
108
|
-
/// Destructor
|
|
109
|
-
virtual ~CbcOsiSolver ();
|
|
110
|
-
|
|
111
|
-
//@}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
/**@name Sets and Gets */
|
|
115
|
-
//@{
|
|
116
|
-
/// Set Cbc Model
|
|
117
|
-
inline void setCbcModel(CbcModel * model) {
|
|
118
|
-
cbcModel_ = model;
|
|
119
|
-
}
|
|
120
|
-
/// Return Cbc Model
|
|
121
|
-
inline CbcModel * cbcModel() const {
|
|
122
|
-
return cbcModel_;
|
|
123
|
-
}
|
|
124
|
-
//@}
|
|
125
|
-
|
|
126
|
-
//---------------------------------------------------------------------------
|
|
127
|
-
|
|
128
|
-
protected:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
/**@name Private member data */
|
|
132
|
-
//@{
|
|
133
|
-
/// Pointer back to CbcModel
|
|
134
|
-
CbcModel * cbcModel_;
|
|
135
|
-
//@}
|
|
136
|
-
};
|
|
137
|
-
#endif
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/* $Id: CbcFathomDynamicProgramming.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 CbcFathomDynamicProgramming_H
|
|
7
|
-
#define CbcFathomDynamicProgramming_H
|
|
8
|
-
|
|
9
|
-
#include "CbcFathom.hpp"
|
|
10
|
-
|
|
11
|
-
//#############################################################################
|
|
12
|
-
/** FathomDynamicProgramming class.
|
|
13
|
-
|
|
14
|
-
The idea is that after some branching the problem will be effectively smaller than
|
|
15
|
-
the original problem and maybe there will be a more specialized technique which can completely
|
|
16
|
-
fathom this branch quickly.
|
|
17
|
-
|
|
18
|
-
This is a dynamic programming implementation which is very fast for some
|
|
19
|
-
specialized problems. It expects small integral rhs, an all integer problem
|
|
20
|
-
and positive integral coefficients. At present it can not do general set covering
|
|
21
|
-
problems just set partitioning. It can find multiple optima for various rhs
|
|
22
|
-
combinations.
|
|
23
|
-
|
|
24
|
-
The main limiting factor is size of state space. Each 1 rhs doubles the size of the problem.
|
|
25
|
-
2 or 3 rhs quadruples, 4,5,6,7 by 8 etc.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
class CbcFathomDynamicProgramming : public CbcFathom {
|
|
29
|
-
public:
|
|
30
|
-
// Default Constructor
|
|
31
|
-
CbcFathomDynamicProgramming ();
|
|
32
|
-
|
|
33
|
-
// Constructor with model - assumed before cuts
|
|
34
|
-
CbcFathomDynamicProgramming (CbcModel & model);
|
|
35
|
-
// Copy constructor
|
|
36
|
-
CbcFathomDynamicProgramming(const CbcFathomDynamicProgramming & rhs);
|
|
37
|
-
|
|
38
|
-
virtual ~CbcFathomDynamicProgramming();
|
|
39
|
-
|
|
40
|
-
/// update model (This is needed if cliques update matrix etc)
|
|
41
|
-
virtual void setModel(CbcModel * model);
|
|
42
|
-
|
|
43
|
-
/// Clone
|
|
44
|
-
virtual CbcFathom * clone() const;
|
|
45
|
-
|
|
46
|
-
/// Resets stuff if model changes
|
|
47
|
-
virtual void resetModel(CbcModel * model);
|
|
48
|
-
|
|
49
|
-
/** returns 0 if no fathoming attempted, 1 fully fathomed ,
|
|
50
|
-
2 incomplete search, 3 incomplete search but treat as complete.
|
|
51
|
-
If solution then newSolution will not be NULL and
|
|
52
|
-
will be freed by CbcModel. It is expected that the solution is better
|
|
53
|
-
than best so far but CbcModel will double check.
|
|
54
|
-
|
|
55
|
-
If returns 3 then of course there is no guarantee of global optimum
|
|
56
|
-
*/
|
|
57
|
-
virtual int fathom(double *& newSolution);
|
|
58
|
-
|
|
59
|
-
/// Maximum size allowed
|
|
60
|
-
inline int maximumSize() const {
|
|
61
|
-
return maximumSizeAllowed_;
|
|
62
|
-
}
|
|
63
|
-
inline void setMaximumSize(int value) {
|
|
64
|
-
maximumSizeAllowed_ = value;
|
|
65
|
-
}
|
|
66
|
-
/// Returns type of algorithm and sets up arrays
|
|
67
|
-
int checkPossible(int allowableSize = 0);
|
|
68
|
-
// set algorithm
|
|
69
|
-
inline void setAlgorithm(int value) {
|
|
70
|
-
algorithm_ = value;
|
|
71
|
-
}
|
|
72
|
-
/** Tries a column
|
|
73
|
-
returns true if was used in making any changes.
|
|
74
|
-
*/
|
|
75
|
-
bool tryColumn(int numberElements, const int * rows,
|
|
76
|
-
const double * coefficients, double cost,
|
|
77
|
-
int upper = COIN_INT_MAX);
|
|
78
|
-
/// Returns cost array
|
|
79
|
-
inline const double * cost() const {
|
|
80
|
-
return cost_;
|
|
81
|
-
}
|
|
82
|
-
/// Returns back array
|
|
83
|
-
inline const int * back() const {
|
|
84
|
-
return back_;
|
|
85
|
-
}
|
|
86
|
-
/// Gets bit pattern for target result
|
|
87
|
-
inline int target() const {
|
|
88
|
-
return target_;
|
|
89
|
-
}
|
|
90
|
-
/// Sets bit pattern for target result
|
|
91
|
-
inline void setTarget(int value) {
|
|
92
|
-
target_ = value;
|
|
93
|
-
}
|
|
94
|
-
private:
|
|
95
|
-
/// Does deleteions
|
|
96
|
-
void gutsOfDelete();
|
|
97
|
-
|
|
98
|
-
/** Adds one attempt of one column of type 0,
|
|
99
|
-
returns true if was used in making any changes
|
|
100
|
-
*/
|
|
101
|
-
bool addOneColumn0(int numberElements, const int * rows,
|
|
102
|
-
double cost);
|
|
103
|
-
/** Adds one attempt of one column of type 1,
|
|
104
|
-
returns true if was used in making any changes.
|
|
105
|
-
At present the user has to call it once for each possible value
|
|
106
|
-
*/
|
|
107
|
-
bool addOneColumn1(int numberElements, const int * rows,
|
|
108
|
-
const int * coefficients, double cost);
|
|
109
|
-
/** Adds one attempt of one column of type 1,
|
|
110
|
-
returns true if was used in making any changes.
|
|
111
|
-
At present the user has to call it once for each possible value.
|
|
112
|
-
This version is when there are enough 1 rhs to do faster
|
|
113
|
-
*/
|
|
114
|
-
bool addOneColumn1A(int numberElements, const int * rows,
|
|
115
|
-
const int * coefficients, double cost);
|
|
116
|
-
/// Gets bit pattern from original column
|
|
117
|
-
int bitPattern(int numberElements, const int * rows,
|
|
118
|
-
const int * coefficients);
|
|
119
|
-
/// Gets bit pattern from original column
|
|
120
|
-
int bitPattern(int numberElements, const int * rows,
|
|
121
|
-
const double * coefficients);
|
|
122
|
-
/// Fills in original column (dense) from bit pattern - returning number nonzero
|
|
123
|
-
int decodeBitPattern(int bitPattern, int * values, int numberRows);
|
|
124
|
-
|
|
125
|
-
protected:
|
|
126
|
-
|
|
127
|
-
/// Size of states (power of 2 unless just one constraint)
|
|
128
|
-
int size_;
|
|
129
|
-
/** Type - 0 coefficients and rhs all 1,
|
|
130
|
-
1 - coefficients > 1 or rhs > 1
|
|
131
|
-
*/
|
|
132
|
-
int type_;
|
|
133
|
-
/// Space for states
|
|
134
|
-
double * cost_;
|
|
135
|
-
/// Which state produced this cheapest one
|
|
136
|
-
int * back_;
|
|
137
|
-
/// Some rows may be satisified so we need a lookup
|
|
138
|
-
int * lookup_;
|
|
139
|
-
/// Space for sorted indices
|
|
140
|
-
int * indices_;
|
|
141
|
-
/// Number of active rows
|
|
142
|
-
int numberActive_;
|
|
143
|
-
/// Maximum size allowed
|
|
144
|
-
int maximumSizeAllowed_;
|
|
145
|
-
/// Start bit for each active row
|
|
146
|
-
int * startBit_;
|
|
147
|
-
/// Number bits for each active row
|
|
148
|
-
int * numberBits_;
|
|
149
|
-
/// Effective rhs
|
|
150
|
-
int * rhs_;
|
|
151
|
-
/// Space for sorted coefficients
|
|
152
|
-
int * coefficients_;
|
|
153
|
-
/// Target pattern
|
|
154
|
-
int target_;
|
|
155
|
-
/// Number of Non 1 rhs
|
|
156
|
-
int numberNonOne_;
|
|
157
|
-
/// Current bit pattern
|
|
158
|
-
int bitPattern_;
|
|
159
|
-
/// Current algorithm
|
|
160
|
-
int algorithm_;
|
|
161
|
-
private:
|
|
162
|
-
|
|
163
|
-
/// Illegal Assignment operator
|
|
164
|
-
CbcFathomDynamicProgramming & operator=(const CbcFathomDynamicProgramming& rhs);
|
|
165
|
-
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
#endif
|
|
169
|
-
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/* $Id: CbcFeasibilityBase.hpp 1573 2011-01-05 01:12:36Z lou $ */
|
|
2
|
-
// Copyright (C) 2005, 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 CbcFeasibilityBase_H
|
|
7
|
-
#define CbcFeasibilityBase_H
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//#############################################################################
|
|
11
|
-
/* There are cases where the user wants to control how CBC sees the problems feasibility.
|
|
12
|
-
The user may want to examine the problem and say :
|
|
13
|
-
a) The default looks OK
|
|
14
|
-
b) Pretend this problem is Integer feasible
|
|
15
|
-
c) Pretend this problem is infeasible even though it looks feasible
|
|
16
|
-
|
|
17
|
-
This simple class allows user to do that.
|
|
18
|
-
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
class CbcModel;
|
|
22
|
-
class CbcFeasibilityBase {
|
|
23
|
-
public:
|
|
24
|
-
// Default Constructor
|
|
25
|
-
CbcFeasibilityBase () {}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
On input mode:
|
|
29
|
-
0 - called after a solve but before any cuts
|
|
30
|
-
-1 - called after strong branching
|
|
31
|
-
Returns :
|
|
32
|
-
0 - no opinion
|
|
33
|
-
-1 pretend infeasible
|
|
34
|
-
1 pretend integer solution
|
|
35
|
-
*/
|
|
36
|
-
virtual int feasible(CbcModel * , int ) {
|
|
37
|
-
return 0;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
virtual ~CbcFeasibilityBase() {}
|
|
41
|
-
|
|
42
|
-
// Copy constructor
|
|
43
|
-
CbcFeasibilityBase ( const CbcFeasibilityBase & ) {}
|
|
44
|
-
|
|
45
|
-
// Assignment operator
|
|
46
|
-
CbcFeasibilityBase & operator=( const CbcFeasibilityBase& ) {
|
|
47
|
-
return *this;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/// Clone
|
|
51
|
-
virtual CbcFeasibilityBase * clone() const {
|
|
52
|
-
return new CbcFeasibilityBase(*this);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
#endif
|
|
56
|
-
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// $Id: CbcFixVariable.hpp 1899 2013-04-09 18:12:08Z stefan $
|
|
2
|
-
// Copyright (C) 2002, 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
|
-
// Edwin 11/10/2009-- carved out of CbcBranchActual
|
|
7
|
-
|
|
8
|
-
#ifndef CbcFixVariable_H
|
|
9
|
-
#define CbcFixVariable_H
|
|
10
|
-
|
|
11
|
-
#include "CbcBranchBase.hpp"
|
|
12
|
-
/** Class for consequent bounds.
|
|
13
|
-
When a variable is branched on it normally interacts with other variables by
|
|
14
|
-
means of equations. There are cases where we want to step outside LP and do something
|
|
15
|
-
more directly e.g. fix bounds. This class is for that.
|
|
16
|
-
|
|
17
|
-
A state of -9999 means at LB, +9999 means at UB,
|
|
18
|
-
others mean if fixed to that value.
|
|
19
|
-
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
class CbcFixVariable : public CbcConsequence {
|
|
23
|
-
|
|
24
|
-
public:
|
|
25
|
-
|
|
26
|
-
// Default Constructor
|
|
27
|
-
CbcFixVariable ();
|
|
28
|
-
|
|
29
|
-
// One useful Constructor
|
|
30
|
-
CbcFixVariable (int numberStates, const int * states, const int * numberNewLower, const int ** newLowerValue,
|
|
31
|
-
const int ** lowerColumn,
|
|
32
|
-
const int * numberNewUpper, const int ** newUpperValue,
|
|
33
|
-
const int ** upperColumn);
|
|
34
|
-
|
|
35
|
-
// Copy constructor
|
|
36
|
-
CbcFixVariable ( const CbcFixVariable & rhs);
|
|
37
|
-
|
|
38
|
-
// Assignment operator
|
|
39
|
-
CbcFixVariable & operator=( const CbcFixVariable & rhs);
|
|
40
|
-
|
|
41
|
-
/// Clone
|
|
42
|
-
virtual CbcConsequence * clone() const;
|
|
43
|
-
|
|
44
|
-
/// Destructor
|
|
45
|
-
virtual ~CbcFixVariable ();
|
|
46
|
-
|
|
47
|
-
/** Apply to an LP solver. Action depends on state
|
|
48
|
-
*/
|
|
49
|
-
virtual void applyToSolver(OsiSolverInterface * solver, int state) const;
|
|
50
|
-
|
|
51
|
-
protected:
|
|
52
|
-
/// Number of states
|
|
53
|
-
int numberStates_;
|
|
54
|
-
/// Values of integers for various states
|
|
55
|
-
int * states_;
|
|
56
|
-
/// Start of information for each state (setting new lower)
|
|
57
|
-
int * startLower_;
|
|
58
|
-
/// Start of information for each state (setting new upper)
|
|
59
|
-
int * startUpper_;
|
|
60
|
-
/// For each variable new bounds
|
|
61
|
-
double * newBound_;
|
|
62
|
-
/// Variable
|
|
63
|
-
int * variable_;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
#endif
|
|
67
|
-
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
// $Id: CbcFollowOn.hpp 1899 2013-04-09 18:12:08Z stefan $
|
|
2
|
-
// Copyright (C) 2002, 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
|
-
// Edwin 11/10/2009-- carved out of CbcBranchActual
|
|
7
|
-
|
|
8
|
-
#ifndef CbcFollowOn_H
|
|
9
|
-
#define CbcFollowOn_H
|
|
10
|
-
|
|
11
|
-
#include "CbcBranchBase.hpp"
|
|
12
|
-
#include "OsiRowCut.hpp"
|
|
13
|
-
#include "CoinHelperFunctions.hpp"
|
|
14
|
-
#include "CoinPackedMatrix.hpp"
|
|
15
|
-
|
|
16
|
-
/** Define a follow on class.
|
|
17
|
-
The idea of this is that in air-crew scheduling problems crew may fly in on flight A
|
|
18
|
-
and out on flight B or on some other flight. A useful branch is one which on one side
|
|
19
|
-
fixes all which go out on flight B to 0, while the other branch fixes all those that do NOT
|
|
20
|
-
go out on flight B to 0.
|
|
21
|
-
|
|
22
|
-
This branching rule should be in addition to normal rules and have a high priority.
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
class CbcFollowOn : public CbcObject {
|
|
26
|
-
|
|
27
|
-
public:
|
|
28
|
-
|
|
29
|
-
// Default Constructor
|
|
30
|
-
CbcFollowOn ();
|
|
31
|
-
|
|
32
|
-
/** Useful constructor
|
|
33
|
-
*/
|
|
34
|
-
CbcFollowOn (CbcModel * model);
|
|
35
|
-
|
|
36
|
-
// Copy constructor
|
|
37
|
-
CbcFollowOn ( const CbcFollowOn &);
|
|
38
|
-
|
|
39
|
-
/// Clone
|
|
40
|
-
virtual CbcObject * clone() const;
|
|
41
|
-
|
|
42
|
-
// Assignment operator
|
|
43
|
-
CbcFollowOn & operator=( const CbcFollowOn& rhs);
|
|
44
|
-
|
|
45
|
-
// Destructor
|
|
46
|
-
~CbcFollowOn ();
|
|
47
|
-
|
|
48
|
-
/// Infeasibility - large is 0.5
|
|
49
|
-
virtual double infeasibility(const OsiBranchingInformation * info,
|
|
50
|
-
int &preferredWay) const;
|
|
51
|
-
|
|
52
|
-
using CbcObject::feasibleRegion ;
|
|
53
|
-
/// This looks at solution and sets bounds to contain solution
|
|
54
|
-
virtual void feasibleRegion();
|
|
55
|
-
|
|
56
|
-
/// Creates a branching object
|
|
57
|
-
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
|
|
58
|
-
/// As some computation is needed in more than one place - returns row
|
|
59
|
-
virtual int gutsOfFollowOn(int & otherRow, int & preferredWay) const;
|
|
60
|
-
|
|
61
|
-
protected:
|
|
62
|
-
/// data
|
|
63
|
-
/// Matrix
|
|
64
|
-
CoinPackedMatrix matrix_;
|
|
65
|
-
/// Matrix by row
|
|
66
|
-
CoinPackedMatrix matrixByRow_;
|
|
67
|
-
/// Possible rhs (if 0 then not possible)
|
|
68
|
-
int * rhs_;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
/** General Branching Object class.
|
|
72
|
-
Each way fixes some variables to lower bound
|
|
73
|
-
*/
|
|
74
|
-
class CbcFixingBranchingObject : public CbcBranchingObject {
|
|
75
|
-
|
|
76
|
-
public:
|
|
77
|
-
|
|
78
|
-
// Default Constructor
|
|
79
|
-
CbcFixingBranchingObject ();
|
|
80
|
-
|
|
81
|
-
// Useful constructor
|
|
82
|
-
CbcFixingBranchingObject (CbcModel * model,
|
|
83
|
-
int way,
|
|
84
|
-
int numberOnDownSide, const int * down,
|
|
85
|
-
int numberOnUpSide, const int * up);
|
|
86
|
-
|
|
87
|
-
// Copy constructor
|
|
88
|
-
CbcFixingBranchingObject ( const CbcFixingBranchingObject &);
|
|
89
|
-
|
|
90
|
-
// Assignment operator
|
|
91
|
-
CbcFixingBranchingObject & operator=( const CbcFixingBranchingObject& rhs);
|
|
92
|
-
|
|
93
|
-
/// Clone
|
|
94
|
-
virtual CbcBranchingObject * clone() const;
|
|
95
|
-
|
|
96
|
-
// Destructor
|
|
97
|
-
virtual ~CbcFixingBranchingObject ();
|
|
98
|
-
|
|
99
|
-
using CbcBranchingObject::branch ;
|
|
100
|
-
/// Does next branch and updates state
|
|
101
|
-
virtual double branch();
|
|
102
|
-
|
|
103
|
-
#ifdef JJF_ZERO
|
|
104
|
-
// No need to override. Default works fine.
|
|
105
|
-
/** Reset every information so that the branching object appears to point to
|
|
106
|
-
the previous child. This method does not need to modify anything in any
|
|
107
|
-
solver. */
|
|
108
|
-
virtual void previousBranch();
|
|
109
|
-
#endif
|
|
110
|
-
|
|
111
|
-
using CbcBranchingObject::print ;
|
|
112
|
-
/** \brief Print something about branch - only if log level high
|
|
113
|
-
*/
|
|
114
|
-
virtual void print();
|
|
115
|
-
|
|
116
|
-
/** Return the type (an integer identifier) of \c this */
|
|
117
|
-
virtual CbcBranchObjType type() const {
|
|
118
|
-
return FollowOnBranchObj;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/** Compare the original object of \c this with the original object of \c
|
|
122
|
-
brObj. Assumes that there is an ordering of the original objects.
|
|
123
|
-
This method should be invoked only if \c this and brObj are of the same
|
|
124
|
-
type.
|
|
125
|
-
Return negative/0/positive depending on whether \c this is
|
|
126
|
-
smaller/same/larger than the argument.
|
|
127
|
-
*/
|
|
128
|
-
virtual int compareOriginalObject(const CbcBranchingObject* brObj) const;
|
|
129
|
-
|
|
130
|
-
/** Compare the \c this with \c brObj. \c this and \c brObj must be os the
|
|
131
|
-
same type and must have the same original object, but they may have
|
|
132
|
-
different feasible regions.
|
|
133
|
-
Return the appropriate CbcRangeCompare value (first argument being the
|
|
134
|
-
sub/superset if that's the case). In case of overlap (and if \c
|
|
135
|
-
replaceIfOverlap is true) replace the current branching object with one
|
|
136
|
-
whose feasible region is the overlap.
|
|
137
|
-
*/
|
|
138
|
-
virtual CbcRangeCompare compareBranchingObject
|
|
139
|
-
(const CbcBranchingObject* brObj, const bool replaceIfOverlap = false);
|
|
140
|
-
|
|
141
|
-
private:
|
|
142
|
-
/// data
|
|
143
|
-
/// Number on down list
|
|
144
|
-
int numberDown_;
|
|
145
|
-
/// Number on up list
|
|
146
|
-
int numberUp_;
|
|
147
|
-
/// downList - variables to fix to lb on down branch
|
|
148
|
-
int * downList_;
|
|
149
|
-
/// upList - variables to fix to lb on up branch
|
|
150
|
-
int * upList_;
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
/** Define an idiotic idea class.
|
|
154
|
-
The idea of this is that we take some integer variables away from integer and
|
|
155
|
-
sum them with some randomness to get signed sum close to 0.5. We then can
|
|
156
|
-
branch to exclude that gap.
|
|
157
|
-
|
|
158
|
-
This branching rule should be in addition to normal rules and have a high priority.
|
|
159
|
-
*/
|
|
160
|
-
|
|
161
|
-
class CbcIdiotBranch : public CbcObject {
|
|
162
|
-
|
|
163
|
-
public:
|
|
164
|
-
|
|
165
|
-
// Default Constructor
|
|
166
|
-
CbcIdiotBranch ();
|
|
167
|
-
|
|
168
|
-
/** Useful constructor
|
|
169
|
-
*/
|
|
170
|
-
CbcIdiotBranch (CbcModel * model);
|
|
171
|
-
|
|
172
|
-
// Copy constructor
|
|
173
|
-
CbcIdiotBranch ( const CbcIdiotBranch &);
|
|
174
|
-
|
|
175
|
-
/// Clone
|
|
176
|
-
virtual CbcObject * clone() const;
|
|
177
|
-
|
|
178
|
-
// Assignment operator
|
|
179
|
-
CbcIdiotBranch & operator=( const CbcIdiotBranch& rhs);
|
|
180
|
-
|
|
181
|
-
// Destructor
|
|
182
|
-
~CbcIdiotBranch ();
|
|
183
|
-
|
|
184
|
-
/// Infeasibility - large is 0.5
|
|
185
|
-
virtual double infeasibility(const OsiBranchingInformation * info,
|
|
186
|
-
int &preferredWay) const;
|
|
187
|
-
|
|
188
|
-
using CbcObject::feasibleRegion ;
|
|
189
|
-
/// This looks at solution and sets bounds to contain solution
|
|
190
|
-
virtual void feasibleRegion();
|
|
191
|
-
|
|
192
|
-
/// Creates a branching object
|
|
193
|
-
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
|
|
194
|
-
/// Initialize for branching
|
|
195
|
-
virtual void initializeForBranching(CbcModel * );
|
|
196
|
-
protected:
|
|
197
|
-
/// Build "cut"
|
|
198
|
-
OsiRowCut buildCut(const OsiBranchingInformation * info,int type,int & preferredWay) const;
|
|
199
|
-
/// data
|
|
200
|
-
/// Thread specific random number generator
|
|
201
|
-
mutable CoinThreadRandom randomNumberGenerator_;
|
|
202
|
-
/// Saved version of thread specific random number generator
|
|
203
|
-
mutable CoinThreadRandom savedRandomNumberGenerator_;
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
#endif
|
|
207
|
-
|