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.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/Rakefile +0 -2
  4. data/lib/ruby-cbc.rb +1 -1
  5. data/lib/ruby-cbc/problem.rb +6 -8
  6. data/lib/ruby-cbc/version.rb +1 -1
  7. data/ruby-cbc.gemspec +3 -2
  8. metadata +17 -287
  9. data/ext/ruby-cbc/cbc.i +0 -15
  10. data/ext/ruby-cbc/cbc_wrap.c +0 -4618
  11. data/ext/ruby-cbc/extconf.rb +0 -60
  12. data/ext/ruby-cbc/install/bin/cbc +0 -0
  13. data/ext/ruby-cbc/install/bin/clp +0 -0
  14. data/ext/ruby-cbc/install/include/coin/CbcBranchActual.hpp +0 -24
  15. data/ext/ruby-cbc/install/include/coin/CbcBranchAllDifferent.hpp +0 -62
  16. data/ext/ruby-cbc/install/include/coin/CbcBranchBase.hpp +0 -78
  17. data/ext/ruby-cbc/install/include/coin/CbcBranchCut.hpp +0 -183
  18. data/ext/ruby-cbc/install/include/coin/CbcBranchDecision.hpp +0 -129
  19. data/ext/ruby-cbc/install/include/coin/CbcBranchDefaultDecision.hpp +0 -100
  20. data/ext/ruby-cbc/install/include/coin/CbcBranchDynamic.hpp +0 -206
  21. data/ext/ruby-cbc/install/include/coin/CbcBranchLotsize.hpp +0 -242
  22. data/ext/ruby-cbc/install/include/coin/CbcBranchToFixLots.hpp +0 -94
  23. data/ext/ruby-cbc/install/include/coin/CbcBranchingObject.hpp +0 -236
  24. data/ext/ruby-cbc/install/include/coin/CbcClique.hpp +0 -303
  25. data/ext/ruby-cbc/install/include/coin/CbcCompare.hpp +0 -39
  26. data/ext/ruby-cbc/install/include/coin/CbcCompareActual.hpp +0 -14
  27. data/ext/ruby-cbc/install/include/coin/CbcCompareBase.hpp +0 -142
  28. data/ext/ruby-cbc/install/include/coin/CbcCompareDefault.hpp +0 -120
  29. data/ext/ruby-cbc/install/include/coin/CbcCompareDepth.hpp +0 -47
  30. data/ext/ruby-cbc/install/include/coin/CbcCompareEstimate.hpp +0 -48
  31. data/ext/ruby-cbc/install/include/coin/CbcCompareObjective.hpp +0 -49
  32. data/ext/ruby-cbc/install/include/coin/CbcConfig.h +0 -14
  33. data/ext/ruby-cbc/install/include/coin/CbcConsequence.hpp +0 -49
  34. data/ext/ruby-cbc/install/include/coin/CbcCountRowCut.hpp +0 -168
  35. data/ext/ruby-cbc/install/include/coin/CbcCutGenerator.hpp +0 -482
  36. data/ext/ruby-cbc/install/include/coin/CbcCutModifier.hpp +0 -57
  37. data/ext/ruby-cbc/install/include/coin/CbcCutSubsetModifier.hpp +0 -66
  38. data/ext/ruby-cbc/install/include/coin/CbcDummyBranchingObject.hpp +0 -83
  39. data/ext/ruby-cbc/install/include/coin/CbcEventHandler.hpp +0 -245
  40. data/ext/ruby-cbc/install/include/coin/CbcFathom.hpp +0 -137
  41. data/ext/ruby-cbc/install/include/coin/CbcFathomDynamicProgramming.hpp +0 -169
  42. data/ext/ruby-cbc/install/include/coin/CbcFeasibilityBase.hpp +0 -56
  43. data/ext/ruby-cbc/install/include/coin/CbcFixVariable.hpp +0 -67
  44. data/ext/ruby-cbc/install/include/coin/CbcFollowOn.hpp +0 -207
  45. data/ext/ruby-cbc/install/include/coin/CbcFullNodeInfo.hpp +0 -161
  46. data/ext/ruby-cbc/install/include/coin/CbcGeneral.hpp +0 -60
  47. data/ext/ruby-cbc/install/include/coin/CbcGeneralDepth.hpp +0 -279
  48. data/ext/ruby-cbc/install/include/coin/CbcHeuristic.hpp +0 -682
  49. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDINS.hpp +0 -96
  50. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDW.hpp +0 -309
  51. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDive.hpp +0 -192
  52. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveCoefficient.hpp +0 -52
  53. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveFractional.hpp +0 -52
  54. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveGuided.hpp +0 -55
  55. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveLineSearch.hpp +0 -52
  56. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDivePseudoCost.hpp +0 -60
  57. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveVectorLength.hpp +0 -52
  58. data/ext/ruby-cbc/install/include/coin/CbcHeuristicFPump.hpp +0 -340
  59. data/ext/ruby-cbc/install/include/coin/CbcHeuristicGreedy.hpp +0 -280
  60. data/ext/ruby-cbc/install/include/coin/CbcHeuristicLocal.hpp +0 -271
  61. data/ext/ruby-cbc/install/include/coin/CbcHeuristicPivotAndFix.hpp +0 -58
  62. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRENS.hpp +0 -77
  63. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRINS.hpp +0 -102
  64. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRandRound.hpp +0 -58
  65. data/ext/ruby-cbc/install/include/coin/CbcHeuristicVND.hpp +0 -94
  66. data/ext/ruby-cbc/install/include/coin/CbcLinked.hpp +0 -1406
  67. data/ext/ruby-cbc/install/include/coin/CbcMessage.hpp +0 -94
  68. data/ext/ruby-cbc/install/include/coin/CbcMipStartIO.hpp +0 -26
  69. data/ext/ruby-cbc/install/include/coin/CbcModel.hpp +0 -2952
  70. data/ext/ruby-cbc/install/include/coin/CbcNWay.hpp +0 -166
  71. data/ext/ruby-cbc/install/include/coin/CbcNode.hpp +0 -351
  72. data/ext/ruby-cbc/install/include/coin/CbcNodeInfo.hpp +0 -349
  73. data/ext/ruby-cbc/install/include/coin/CbcObject.hpp +0 -272
  74. data/ext/ruby-cbc/install/include/coin/CbcObjectUpdateData.hpp +0 -64
  75. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.cpp +0 -4134
  76. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.hpp +0 -532
  77. data/ext/ruby-cbc/install/include/coin/CbcParam.hpp +0 -324
  78. data/ext/ruby-cbc/install/include/coin/CbcPartialNodeInfo.hpp +0 -110
  79. data/ext/ruby-cbc/install/include/coin/CbcSOS.hpp +0 -279
  80. data/ext/ruby-cbc/install/include/coin/CbcSimpleInteger.hpp +0 -286
  81. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +0 -564
  82. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerPseudoCost.hpp +0 -114
  83. data/ext/ruby-cbc/install/include/coin/CbcSolver.hpp +0 -447
  84. data/ext/ruby-cbc/install/include/coin/CbcStrategy.hpp +0 -258
  85. data/ext/ruby-cbc/install/include/coin/CbcSubProblem.hpp +0 -83
  86. data/ext/ruby-cbc/install/include/coin/CbcTree.hpp +0 -490
  87. data/ext/ruby-cbc/install/include/coin/CbcTreeLocal.hpp +0 -372
  88. data/ext/ruby-cbc/install/include/coin/Cbc_C_Interface.h +0 -381
  89. data/ext/ruby-cbc/install/include/coin/Cgl012cut.hpp +0 -464
  90. data/ext/ruby-cbc/install/include/coin/CglAllDifferent.hpp +0 -115
  91. data/ext/ruby-cbc/install/include/coin/CglClique.hpp +0 -308
  92. data/ext/ruby-cbc/install/include/coin/CglConfig.h +0 -19
  93. data/ext/ruby-cbc/install/include/coin/CglCutGenerator.hpp +0 -121
  94. data/ext/ruby-cbc/install/include/coin/CglDuplicateRow.hpp +0 -189
  95. data/ext/ruby-cbc/install/include/coin/CglFlowCover.hpp +0 -371
  96. data/ext/ruby-cbc/install/include/coin/CglGMI.hpp +0 -364
  97. data/ext/ruby-cbc/install/include/coin/CglGMIParam.hpp +0 -313
  98. data/ext/ruby-cbc/install/include/coin/CglGomory.hpp +0 -204
  99. data/ext/ruby-cbc/install/include/coin/CglKnapsackCover.hpp +0 -310
  100. data/ext/ruby-cbc/install/include/coin/CglLandP.hpp +0 -306
  101. data/ext/ruby-cbc/install/include/coin/CglLandPValidator.hpp +0 -130
  102. data/ext/ruby-cbc/install/include/coin/CglLiftAndProject.hpp +0 -104
  103. data/ext/ruby-cbc/install/include/coin/CglMessage.hpp +0 -50
  104. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding.hpp +0 -429
  105. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding2.hpp +0 -427
  106. data/ext/ruby-cbc/install/include/coin/CglOddHole.hpp +0 -160
  107. data/ext/ruby-cbc/install/include/coin/CglParam.hpp +0 -93
  108. data/ext/ruby-cbc/install/include/coin/CglPreProcess.hpp +0 -492
  109. data/ext/ruby-cbc/install/include/coin/CglProbing.hpp +0 -543
  110. data/ext/ruby-cbc/install/include/coin/CglRedSplit.hpp +0 -448
  111. data/ext/ruby-cbc/install/include/coin/CglRedSplit2.hpp +0 -494
  112. data/ext/ruby-cbc/install/include/coin/CglRedSplit2Param.hpp +0 -495
  113. data/ext/ruby-cbc/install/include/coin/CglRedSplitParam.hpp +0 -272
  114. data/ext/ruby-cbc/install/include/coin/CglResidualCapacity.hpp +0 -240
  115. data/ext/ruby-cbc/install/include/coin/CglSimpleRounding.hpp +0 -174
  116. data/ext/ruby-cbc/install/include/coin/CglStored.hpp +0 -125
  117. data/ext/ruby-cbc/install/include/coin/CglTreeInfo.hpp +0 -180
  118. data/ext/ruby-cbc/install/include/coin/CglTwomir.hpp +0 -565
  119. data/ext/ruby-cbc/install/include/coin/CglZeroHalf.hpp +0 -133
  120. data/ext/ruby-cbc/install/include/coin/ClpAmplObjective.hpp +0 -113
  121. data/ext/ruby-cbc/install/include/coin/ClpCholeskyBase.hpp +0 -294
  122. data/ext/ruby-cbc/install/include/coin/ClpCholeskyDense.hpp +0 -162
  123. data/ext/ruby-cbc/install/include/coin/ClpConfig.h +0 -17
  124. data/ext/ruby-cbc/install/include/coin/ClpConstraint.hpp +0 -125
  125. data/ext/ruby-cbc/install/include/coin/ClpConstraintAmpl.hpp +0 -108
  126. data/ext/ruby-cbc/install/include/coin/ClpConstraintLinear.hpp +0 -110
  127. data/ext/ruby-cbc/install/include/coin/ClpConstraintQuadratic.hpp +0 -119
  128. data/ext/ruby-cbc/install/include/coin/ClpDualRowDantzig.hpp +0 -71
  129. data/ext/ruby-cbc/install/include/coin/ClpDualRowPivot.hpp +0 -129
  130. data/ext/ruby-cbc/install/include/coin/ClpDualRowSteepest.hpp +0 -153
  131. data/ext/ruby-cbc/install/include/coin/ClpDummyMatrix.hpp +0 -183
  132. data/ext/ruby-cbc/install/include/coin/ClpDynamicExampleMatrix.hpp +0 -186
  133. data/ext/ruby-cbc/install/include/coin/ClpDynamicMatrix.hpp +0 -381
  134. data/ext/ruby-cbc/install/include/coin/ClpEventHandler.hpp +0 -187
  135. data/ext/ruby-cbc/install/include/coin/ClpFactorization.hpp +0 -432
  136. data/ext/ruby-cbc/install/include/coin/ClpGubDynamicMatrix.hpp +0 -247
  137. data/ext/ruby-cbc/install/include/coin/ClpGubMatrix.hpp +0 -358
  138. data/ext/ruby-cbc/install/include/coin/ClpInterior.hpp +0 -570
  139. data/ext/ruby-cbc/install/include/coin/ClpLinearObjective.hpp +0 -103
  140. data/ext/ruby-cbc/install/include/coin/ClpMatrixBase.hpp +0 -524
  141. data/ext/ruby-cbc/install/include/coin/ClpMessage.hpp +0 -131
  142. data/ext/ruby-cbc/install/include/coin/ClpModel.hpp +0 -1307
  143. data/ext/ruby-cbc/install/include/coin/ClpNetworkMatrix.hpp +0 -229
  144. data/ext/ruby-cbc/install/include/coin/ClpNode.hpp +0 -349
  145. data/ext/ruby-cbc/install/include/coin/ClpNonLinearCost.hpp +0 -401
  146. data/ext/ruby-cbc/install/include/coin/ClpObjective.hpp +0 -134
  147. data/ext/ruby-cbc/install/include/coin/ClpPackedMatrix.hpp +0 -638
  148. data/ext/ruby-cbc/install/include/coin/ClpParameters.hpp +0 -126
  149. data/ext/ruby-cbc/install/include/coin/ClpPdcoBase.hpp +0 -103
  150. data/ext/ruby-cbc/install/include/coin/ClpPlusMinusOneMatrix.hpp +0 -290
  151. data/ext/ruby-cbc/install/include/coin/ClpPresolve.hpp +0 -299
  152. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnDantzig.hpp +0 -72
  153. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnPivot.hpp +0 -155
  154. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnSteepest.hpp +0 -247
  155. data/ext/ruby-cbc/install/include/coin/ClpQuadraticObjective.hpp +0 -155
  156. data/ext/ruby-cbc/install/include/coin/ClpSimplex.hpp +0 -1797
  157. data/ext/ruby-cbc/install/include/coin/ClpSimplexDual.hpp +0 -300
  158. data/ext/ruby-cbc/install/include/coin/ClpSimplexNonlinear.hpp +0 -117
  159. data/ext/ruby-cbc/install/include/coin/ClpSimplexOther.hpp +0 -277
  160. data/ext/ruby-cbc/install/include/coin/ClpSimplexPrimal.hpp +0 -244
  161. data/ext/ruby-cbc/install/include/coin/ClpSolve.hpp +0 -446
  162. data/ext/ruby-cbc/install/include/coin/Clp_C_Interface.h +0 -525
  163. data/ext/ruby-cbc/install/include/coin/CoinAlloc.hpp +0 -176
  164. data/ext/ruby-cbc/install/include/coin/CoinBuild.hpp +0 -149
  165. data/ext/ruby-cbc/install/include/coin/CoinDenseFactorization.hpp +0 -419
  166. data/ext/ruby-cbc/install/include/coin/CoinDenseVector.hpp +0 -383
  167. data/ext/ruby-cbc/install/include/coin/CoinDistance.hpp +0 -48
  168. data/ext/ruby-cbc/install/include/coin/CoinError.hpp +0 -257
  169. data/ext/ruby-cbc/install/include/coin/CoinFactorization.hpp +0 -2044
  170. data/ext/ruby-cbc/install/include/coin/CoinFileIO.hpp +0 -166
  171. data/ext/ruby-cbc/install/include/coin/CoinFinite.hpp +0 -34
  172. data/ext/ruby-cbc/install/include/coin/CoinFloatEqual.hpp +0 -177
  173. data/ext/ruby-cbc/install/include/coin/CoinHelperFunctions.hpp +0 -1111
  174. data/ext/ruby-cbc/install/include/coin/CoinIndexedVector.hpp +0 -1164
  175. data/ext/ruby-cbc/install/include/coin/CoinLpIO.hpp +0 -805
  176. data/ext/ruby-cbc/install/include/coin/CoinMessage.hpp +0 -96
  177. data/ext/ruby-cbc/install/include/coin/CoinMessageHandler.hpp +0 -666
  178. data/ext/ruby-cbc/install/include/coin/CoinModel.hpp +0 -1054
  179. data/ext/ruby-cbc/install/include/coin/CoinModelUseful.hpp +0 -441
  180. data/ext/ruby-cbc/install/include/coin/CoinMpsIO.hpp +0 -1056
  181. data/ext/ruby-cbc/install/include/coin/CoinOslFactorization.hpp +0 -280
  182. data/ext/ruby-cbc/install/include/coin/CoinPackedMatrix.hpp +0 -947
  183. data/ext/ruby-cbc/install/include/coin/CoinPackedVector.hpp +0 -657
  184. data/ext/ruby-cbc/install/include/coin/CoinPackedVectorBase.hpp +0 -269
  185. data/ext/ruby-cbc/install/include/coin/CoinParam.hpp +0 -644
  186. data/ext/ruby-cbc/install/include/coin/CoinPragma.hpp +0 -26
  187. data/ext/ruby-cbc/install/include/coin/CoinPresolveDoubleton.hpp +0 -73
  188. data/ext/ruby-cbc/install/include/coin/CoinPresolveDual.hpp +0 -85
  189. data/ext/ruby-cbc/install/include/coin/CoinPresolveDupcol.hpp +0 -226
  190. data/ext/ruby-cbc/install/include/coin/CoinPresolveEmpty.hpp +0 -116
  191. data/ext/ruby-cbc/install/include/coin/CoinPresolveFixed.hpp +0 -181
  192. data/ext/ruby-cbc/install/include/coin/CoinPresolveForcing.hpp +0 -61
  193. data/ext/ruby-cbc/install/include/coin/CoinPresolveImpliedFree.hpp +0 -60
  194. data/ext/ruby-cbc/install/include/coin/CoinPresolveIsolated.hpp +0 -51
  195. data/ext/ruby-cbc/install/include/coin/CoinPresolveMatrix.hpp +0 -1842
  196. data/ext/ruby-cbc/install/include/coin/CoinPresolveMonitor.hpp +0 -105
  197. data/ext/ruby-cbc/install/include/coin/CoinPresolvePsdebug.hpp +0 -166
  198. data/ext/ruby-cbc/install/include/coin/CoinPresolveSingleton.hpp +0 -112
  199. data/ext/ruby-cbc/install/include/coin/CoinPresolveSubst.hpp +0 -101
  200. data/ext/ruby-cbc/install/include/coin/CoinPresolveTighten.hpp +0 -55
  201. data/ext/ruby-cbc/install/include/coin/CoinPresolveTripleton.hpp +0 -66
  202. data/ext/ruby-cbc/install/include/coin/CoinPresolveUseless.hpp +0 -63
  203. data/ext/ruby-cbc/install/include/coin/CoinPresolveZeros.hpp +0 -60
  204. data/ext/ruby-cbc/install/include/coin/CoinRational.hpp +0 -44
  205. data/ext/ruby-cbc/install/include/coin/CoinSearchTree.hpp +0 -465
  206. data/ext/ruby-cbc/install/include/coin/CoinShallowPackedVector.hpp +0 -148
  207. data/ext/ruby-cbc/install/include/coin/CoinSignal.hpp +0 -117
  208. data/ext/ruby-cbc/install/include/coin/CoinSimpFactorization.hpp +0 -431
  209. data/ext/ruby-cbc/install/include/coin/CoinSmartPtr.hpp +0 -528
  210. data/ext/ruby-cbc/install/include/coin/CoinSnapshot.hpp +0 -476
  211. data/ext/ruby-cbc/install/include/coin/CoinSort.hpp +0 -678
  212. data/ext/ruby-cbc/install/include/coin/CoinStructuredModel.hpp +0 -247
  213. data/ext/ruby-cbc/install/include/coin/CoinTime.hpp +0 -310
  214. data/ext/ruby-cbc/install/include/coin/CoinTypes.hpp +0 -64
  215. data/ext/ruby-cbc/install/include/coin/CoinUtility.hpp +0 -19
  216. data/ext/ruby-cbc/install/include/coin/CoinUtilsConfig.h +0 -34
  217. data/ext/ruby-cbc/install/include/coin/CoinWarmStart.hpp +0 -58
  218. data/ext/ruby-cbc/install/include/coin/CoinWarmStartBasis.hpp +0 -456
  219. data/ext/ruby-cbc/install/include/coin/CoinWarmStartDual.hpp +0 -166
  220. data/ext/ruby-cbc/install/include/coin/CoinWarmStartPrimalDual.hpp +0 -211
  221. data/ext/ruby-cbc/install/include/coin/CoinWarmStartVector.hpp +0 -488
  222. data/ext/ruby-cbc/install/include/coin/Coin_C_defines.h +0 -115
  223. data/ext/ruby-cbc/install/include/coin/Idiot.hpp +0 -298
  224. data/ext/ruby-cbc/install/include/coin/OsiAuxInfo.hpp +0 -206
  225. data/ext/ruby-cbc/install/include/coin/OsiBranchingObject.hpp +0 -1005
  226. data/ext/ruby-cbc/install/include/coin/OsiCbcSolverInterface.hpp +0 -764
  227. data/ext/ruby-cbc/install/include/coin/OsiChooseVariable.hpp +0 -534
  228. data/ext/ruby-cbc/install/include/coin/OsiClpSolverInterface.hpp +0 -1509
  229. data/ext/ruby-cbc/install/include/coin/OsiColCut.hpp +0 -324
  230. data/ext/ruby-cbc/install/include/coin/OsiCollections.hpp +0 -35
  231. data/ext/ruby-cbc/install/include/coin/OsiConfig.h +0 -19
  232. data/ext/ruby-cbc/install/include/coin/OsiCut.hpp +0 -245
  233. data/ext/ruby-cbc/install/include/coin/OsiCuts.hpp +0 -474
  234. data/ext/ruby-cbc/install/include/coin/OsiPresolve.hpp +0 -252
  235. data/ext/ruby-cbc/install/include/coin/OsiRowCut.hpp +0 -331
  236. data/ext/ruby-cbc/install/include/coin/OsiRowCutDebugger.hpp +0 -187
  237. data/ext/ruby-cbc/install/include/coin/OsiSolverBranch.hpp +0 -152
  238. data/ext/ruby-cbc/install/include/coin/OsiSolverInterface.hpp +0 -2143
  239. data/ext/ruby-cbc/install/include/coin/OsiSolverParameters.hpp +0 -142
  240. data/ext/ruby-cbc/install/include/coin/OsiUnitTests.hpp +0 -374
  241. data/ext/ruby-cbc/install/lib/libCbc.la +0 -35
  242. data/ext/ruby-cbc/install/lib/libCbc.so +0 -0
  243. data/ext/ruby-cbc/install/lib/libCbc.so.3 +0 -0
  244. data/ext/ruby-cbc/install/lib/libCbc.so.3.9.7 +0 -0
  245. data/ext/ruby-cbc/install/lib/libCbcSolver.la +0 -35
  246. data/ext/ruby-cbc/install/lib/libCbcSolver.so +0 -0
  247. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3 +0 -0
  248. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3.9.7 +0 -0
  249. data/ext/ruby-cbc/install/lib/libCgl.la +0 -35
  250. data/ext/ruby-cbc/install/lib/libCgl.so +0 -0
  251. data/ext/ruby-cbc/install/lib/libCgl.so.1 +0 -0
  252. data/ext/ruby-cbc/install/lib/libCgl.so.1.9.7 +0 -0
  253. data/ext/ruby-cbc/install/lib/libClp.la +0 -35
  254. data/ext/ruby-cbc/install/lib/libClp.so +0 -0
  255. data/ext/ruby-cbc/install/lib/libClp.so.1 +0 -0
  256. data/ext/ruby-cbc/install/lib/libClp.so.1.13.9 +0 -0
  257. data/ext/ruby-cbc/install/lib/libClpSolver.la +0 -35
  258. data/ext/ruby-cbc/install/lib/libClpSolver.so +0 -0
  259. data/ext/ruby-cbc/install/lib/libClpSolver.so.1 +0 -0
  260. data/ext/ruby-cbc/install/lib/libClpSolver.so.1.13.9 +0 -0
  261. data/ext/ruby-cbc/install/lib/libCoinUtils.la +0 -35
  262. data/ext/ruby-cbc/install/lib/libCoinUtils.so +0 -0
  263. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3 +0 -0
  264. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3.10.11 +0 -0
  265. data/ext/ruby-cbc/install/lib/libOsi.la +0 -35
  266. data/ext/ruby-cbc/install/lib/libOsi.so +0 -0
  267. data/ext/ruby-cbc/install/lib/libOsi.so.1 +0 -0
  268. data/ext/ruby-cbc/install/lib/libOsi.so.1.12.6 +0 -0
  269. data/ext/ruby-cbc/install/lib/libOsiCbc.la +0 -35
  270. data/ext/ruby-cbc/install/lib/libOsiCbc.so +0 -0
  271. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3 +0 -0
  272. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3.9.7 +0 -0
  273. data/ext/ruby-cbc/install/lib/libOsiClp.la +0 -35
  274. data/ext/ruby-cbc/install/lib/libOsiClp.so +0 -0
  275. data/ext/ruby-cbc/install/lib/libOsiClp.so.1 +0 -0
  276. data/ext/ruby-cbc/install/lib/libOsiClp.so.1.13.9 +0 -0
  277. data/ext/ruby-cbc/install/lib/libOsiCommonTests.la +0 -35
  278. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so +0 -0
  279. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1 +0 -0
  280. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1.12.6 +0 -0
  281. data/ext/ruby-cbc/install/lib/pkgconfig/cbc.pc +0 -12
  282. data/ext/ruby-cbc/install/lib/pkgconfig/cgl.pc +0 -12
  283. data/ext/ruby-cbc/install/lib/pkgconfig/clp.pc +0 -12
  284. data/ext/ruby-cbc/install/lib/pkgconfig/coindatamiplib3.pc +0 -9
  285. data/ext/ruby-cbc/install/lib/pkgconfig/coindatasample.pc +0 -9
  286. data/ext/ruby-cbc/install/lib/pkgconfig/coinutils.pc +0 -12
  287. data/ext/ruby-cbc/install/lib/pkgconfig/osi-cbc.pc +0 -12
  288. data/ext/ruby-cbc/install/lib/pkgconfig/osi-clp.pc +0 -12
  289. data/ext/ruby-cbc/install/lib/pkgconfig/osi-unittests.pc +0 -12
  290. data/ext/ruby-cbc/install/lib/pkgconfig/osi.pc +0 -12
@@ -1,258 +0,0 @@
1
- /* $Id: CbcStrategy.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 CbcStrategy_H
7
- #define CbcStrategy_H
8
-
9
- #include "CbcModel.hpp"
10
- class CglPreProcess;
11
- class CbcNodeInfo;
12
- class CbcNode;
13
- class CoinWarmStartDiff;
14
-
15
- //#############################################################################
16
- /** Strategy base class */
17
-
18
- class CbcStrategy {
19
- public:
20
- // Default Constructor
21
- CbcStrategy ();
22
-
23
- virtual ~CbcStrategy();
24
-
25
- /// Clone
26
- virtual CbcStrategy * clone() const = 0;
27
-
28
- /// Setup cut generators
29
- virtual void setupCutGenerators(CbcModel & model) = 0;
30
- /// Setup heuristics
31
- virtual void setupHeuristics(CbcModel & model) = 0;
32
- /// Do printing stuff
33
- virtual void setupPrinting(CbcModel & model, int modelLogLevel) = 0;
34
- /// Other stuff e.g. strong branching and preprocessing
35
- virtual void setupOther(CbcModel & model) = 0;
36
- /// Set model depth (i.e. how nested)
37
- inline void setNested(int depth) {
38
- depth_ = depth;
39
- }
40
- /// Get model depth (i.e. how nested)
41
- inline int getNested() const {
42
- return depth_;
43
- }
44
- /// Say preProcessing done
45
- inline void setPreProcessState(int state) {
46
- preProcessState_ = state;
47
- }
48
- /// See what sort of preprocessing was done
49
- inline int preProcessState() const {
50
- return preProcessState_;
51
- }
52
- /// Pre-processing object
53
- inline CglPreProcess * process() const {
54
- return process_;
55
- }
56
- /// Delete pre-processing object to save memory
57
- void deletePreProcess();
58
- /// Return a new Full node information pointer (descendant of CbcFullNodeInfo)
59
- virtual CbcNodeInfo * fullNodeInfo(CbcModel * model, int numberRowsAtContinuous) const;
60
- /// Return a new Partial node information pointer (descendant of CbcPartialNodeInfo)
61
- virtual CbcNodeInfo * partialNodeInfo(CbcModel * model, CbcNodeInfo * parent, CbcNode * owner,
62
- int numberChangedBounds, const int * variables,
63
- const double * boundChanges,
64
- const CoinWarmStartDiff *basisDiff) const;
65
- /// Create C++ lines to get to current state
66
- virtual void generateCpp( FILE * ) {}
67
- /** After a CbcModel::resolve this can return a status
68
- -1 no effect
69
- 0 treat as optimal
70
- 1 as 0 but do not do any more resolves (i.e. no more cuts)
71
- 2 treat as infeasible
72
- */
73
- virtual int status(CbcModel * model, CbcNodeInfo * parent, int whereFrom);
74
- private:
75
-
76
- /// Illegal Assignment operator
77
- CbcStrategy & operator=(const CbcStrategy& rhs);
78
- protected:
79
- // Data
80
- /// Model depth
81
- int depth_;
82
- /** PreProcessing state -
83
- -1 infeasible
84
- 0 off
85
- 1 was done (so need post-processing)
86
- */
87
- int preProcessState_;
88
- /// If preprocessing then this is object
89
- CglPreProcess * process_;
90
- };
91
-
92
- /** Null class
93
- */
94
-
95
- class CbcStrategyNull : public CbcStrategy {
96
- public:
97
-
98
- // Default Constructor
99
- CbcStrategyNull () {}
100
-
101
- // Copy constructor
102
- CbcStrategyNull ( const CbcStrategyNull & rhs) : CbcStrategy(rhs) {}
103
-
104
- // Destructor
105
- ~CbcStrategyNull () {}
106
-
107
- /// Clone
108
- virtual CbcStrategy * clone() const {
109
- return new CbcStrategyNull(*this);
110
- }
111
-
112
- /// Setup cut generators
113
- virtual void setupCutGenerators(CbcModel & ) {}
114
- /// Setup heuristics
115
- virtual void setupHeuristics(CbcModel & ) {}
116
- /// Do printing stuff
117
- virtual void setupPrinting(CbcModel & , int ) {}
118
- /// Other stuff e.g. strong branching
119
- virtual void setupOther(CbcModel & ) {}
120
-
121
- protected:
122
- // Data
123
- private:
124
- /// Illegal Assignment operator
125
- CbcStrategyNull & operator=(const CbcStrategyNull& rhs);
126
- };
127
-
128
- /** Default class
129
- */
130
-
131
- class CbcStrategyDefault : public CbcStrategy {
132
- public:
133
-
134
- // Default Constructor
135
- CbcStrategyDefault (int cutsOnlyAtRoot = 1,
136
- int numberStrong = 5,
137
- int numberBeforeTrust = 0,
138
- int printLevel = 0);
139
-
140
- // Copy constructor
141
- CbcStrategyDefault ( const CbcStrategyDefault &);
142
-
143
- // Destructor
144
- ~CbcStrategyDefault ();
145
-
146
- /// Clone
147
- virtual CbcStrategy * clone() const;
148
-
149
- /// Setup cut generators
150
- virtual void setupCutGenerators(CbcModel & model);
151
- /// Setup heuristics
152
- virtual void setupHeuristics(CbcModel & model);
153
- /// Do printing stuff
154
- virtual void setupPrinting(CbcModel & model, int modelLogLevel) ;
155
- /// Other stuff e.g. strong branching
156
- virtual void setupOther(CbcModel & model);
157
- /// Set up preProcessing - see below
158
- inline void setupPreProcessing(int desired = 1, int passes = 10) {
159
- desiredPreProcess_ = desired;
160
- preProcessPasses_ = passes;
161
- }
162
- /// See what sort of preprocessing wanted
163
- inline int desiredPreProcess() const {
164
- return desiredPreProcess_;
165
- }
166
- /// See how many passes wanted
167
- inline int preProcessPasses() const {
168
- return preProcessPasses_;
169
- }
170
- /// Create C++ lines to get to current state
171
- virtual void generateCpp( FILE * fp) ;
172
-
173
- protected:
174
- // Data
175
-
176
- // Whether to do cuts only at root (-1 -> switch off totally)
177
- int cutsOnlyAtRoot_;
178
-
179
- // How much strong branching to do
180
- int numberStrong_;
181
-
182
- // Number branches needed to trust with dynamic pseudo costs
183
- int numberBeforeTrust_;
184
-
185
- // Print level 0 little, 1 medium
186
- int printLevel_;
187
-
188
- /** Desired pre-processing
189
- 0 - none
190
- 1 - ordinary
191
- 2 - find sos
192
- 3 - find cliques
193
- 4 - more aggressive sos
194
- 5 - add integer slacks
195
- */
196
- int desiredPreProcess_;
197
- /// Number of pre-processing passes
198
- int preProcessPasses_;
199
-
200
- private:
201
- /// Illegal Assignment operator
202
- CbcStrategyDefault & operator=(const CbcStrategyDefault& rhs);
203
- };
204
-
205
-
206
- /** Default class for sub trees
207
- */
208
-
209
- class CbcStrategyDefaultSubTree : public CbcStrategy {
210
- public:
211
-
212
- // Default Constructor
213
- CbcStrategyDefaultSubTree (CbcModel * parent = NULL, int cutsOnlyAtRoot = 1,
214
- int numberStrong = 5,
215
- int numberBeforeTrust = 0,
216
- int printLevel = 0);
217
-
218
- // Copy constructor
219
- CbcStrategyDefaultSubTree ( const CbcStrategyDefaultSubTree &);
220
-
221
- // Destructor
222
- ~CbcStrategyDefaultSubTree ();
223
-
224
- /// Clone
225
- virtual CbcStrategy * clone() const;
226
-
227
- /// Setup cut generators
228
- virtual void setupCutGenerators(CbcModel & model);
229
- /// Setup heuristics
230
- virtual void setupHeuristics(CbcModel & model);
231
- /// Do printing stuff
232
- virtual void setupPrinting(CbcModel & model, int modelLogLevel) ;
233
- /// Other stuff e.g. strong branching
234
- virtual void setupOther(CbcModel & model);
235
- protected:
236
- // Data
237
- // Parent model
238
- CbcModel * parentModel_;
239
- // Whether to do cuts only at root (-1 -> switch off totally)
240
- int cutsOnlyAtRoot_;
241
-
242
- // How much strong branching to do
243
- int numberStrong_;
244
-
245
- // Number branches needed to trust with dynamic pseudo costs
246
- int numberBeforeTrust_;
247
-
248
- // Print level 0 little, 1 medium
249
- int printLevel_;
250
-
251
- private:
252
- /// Illegal Assignment operator
253
- CbcStrategyDefaultSubTree & operator=(const CbcStrategyDefaultSubTree& rhs);
254
- };
255
-
256
-
257
- #endif
258
-
@@ -1,83 +0,0 @@
1
- // $Id: CbcSubProblem.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 CbcSubProblem_H
9
- #define CbcSubProblem_H
10
-
11
- #ifdef COIN_HAS_CLP
12
- #include "ClpSimplex.hpp"
13
- #include "ClpNode.hpp"
14
-
15
- /** Defines a general subproblem
16
- Basis will be made more compact later
17
- */
18
- class CoinWarmStartDiff;
19
- class CbcSubProblem {
20
-
21
- public:
22
-
23
- /// Default constructor
24
- CbcSubProblem ();
25
-
26
- /// Constructor from model
27
- CbcSubProblem (const OsiSolverInterface * solver,
28
- const double * lowerBefore,
29
- const double * upperBefore,
30
- const unsigned char * status,
31
- int depth);
32
-
33
- /// Copy constructor
34
- CbcSubProblem ( const CbcSubProblem &);
35
-
36
- /// Assignment operator
37
- CbcSubProblem & operator= (const CbcSubProblem& rhs);
38
-
39
- /// Destructor
40
- virtual ~CbcSubProblem ();
41
-
42
- /// Take over
43
- void takeOver ( CbcSubProblem &, bool cleanup);
44
- /// Apply subproblem (1=bounds, 2=basis, 3=both)
45
- void apply(OsiSolverInterface * model, int what = 3) const;
46
-
47
- public:
48
- /// Value of objective
49
- double objectiveValue_;
50
- /// Sum of infeasibilities
51
- double sumInfeasibilities_;
52
- /// Branch value
53
- double branchValue_;
54
- /// Dj on branching variable at end
55
- double djValue_;
56
- /** Which variable (top bit if upper bound changing)
57
- next bit if changing on down branch only */
58
- int * variables_;
59
- /// New bound
60
- double * newBounds_;
61
- /// Status
62
- mutable CoinWarmStartBasis * status_;
63
- /// Depth
64
- int depth_;
65
- /// Number of Extra bound changes
66
- int numberChangedBounds_;
67
- /// Number of infeasibilities
68
- int numberInfeasibilities_;
69
- /** Status 1 bit going up on first, 2 bit set first branch infeasible on second, 4 bit redundant branch,
70
- bits after 256 give reason for stopping (just last node)
71
- 0 - solution
72
- 1 - infeasible
73
- 2 - maximum depth
74
- >2 - error or max time or something
75
- */
76
- int problemStatus_;
77
- /// Variable branched on
78
- int branchVariable_;
79
- };
80
-
81
- #endif //COIN_HAS_CLP
82
- #endif
83
-
@@ -1,490 +0,0 @@
1
- /* $Id: CbcTree.hpp 1943 2013-07-21 09:05:45Z forrest $ */
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 CbcTree_H
7
- #define CbcTree_H
8
-
9
- #include <vector>
10
- #include <algorithm>
11
- #include <cmath>
12
-
13
- #include "CoinHelperFunctions.hpp"
14
- #include "CbcCompare.hpp"
15
-
16
- /*! \brief Using MS heap implementation
17
-
18
- It's unclear if this is needed any longer, or even if it should be allowed.
19
- Cbc occasionally tries to do things to the tree (typically tweaking the
20
- comparison predicate) that can cause a violation of the heap property (parent better
21
- than either child). In a debug build, Microsoft's heap implementation does checks that
22
- detect this and fail. This symbol switched to an alternate implementation of CbcTree,
23
- and there are clearly differences, but no explanation as to why or what for.
24
-
25
- As of 100921, the code is cleaned up to make it through `cbc -unitTest' without
26
- triggering `Invalid heap' in an MSVS debug build. The method validateHeap() can
27
- be used for debugging if this turns up again.
28
- */
29
- //#define CBC_DUBIOUS_HEAP
30
- #if defined(_MSC_VER) || defined(__MNO_CYGWIN)
31
- //#define CBC_DUBIOUS_HEAP
32
- #endif
33
- #if 1 //ndef CBC_DUBIOUS_HEAP
34
-
35
- /*! \brief Controls search tree debugging
36
-
37
- In order to have validateHeap() available, set CBC_DEBUG_HEAP
38
- to 1 or higher.
39
-
40
- - 1 calls validateHeap() after each change to the heap
41
- - 2 will print a line for major operations (clean, set comparison, etc.)
42
- - 3 will print information about each push and pop
43
-
44
- #define CBC_DEBUG_HEAP 1
45
- */
46
-
47
-
48
- /*! \class CbcTree
49
- \brief Implementation of the live set as a heap.
50
-
51
- This class is used to hold the set of live nodes in the search tree.
52
- */
53
- class CbcTree {
54
-
55
- public:
56
- /*! \name Constructors and related */
57
- //@{
58
- /// Default Constructor
59
- CbcTree ();
60
-
61
- /// Copy constructor
62
- CbcTree (const CbcTree &rhs);
63
-
64
- /// = operator
65
- CbcTree & operator=(const CbcTree &rhs);
66
-
67
- /// Destructor
68
- virtual ~CbcTree();
69
-
70
- /// Clone
71
- virtual CbcTree * clone() const;
72
-
73
- /// Create C++ lines to get to current state
74
- virtual void generateCpp(FILE *) {}
75
- //@}
76
-
77
- /*! \name Heap access and maintenance methods */
78
- //@{
79
- /// Set comparison function and resort heap
80
- void setComparison(CbcCompareBase &compare);
81
-
82
- /// Return the top node of the heap
83
- virtual CbcNode * top() const;
84
-
85
- /// Add a node to the heap
86
- virtual void push(CbcNode *x);
87
-
88
- /// Remove the top node from the heap
89
- virtual void pop() ;
90
-
91
- /*! \brief Gets best node and takes off heap
92
-
93
- Before returning the node from the top of the heap, the node
94
- is offered an opportunity to reevaluate itself. Callers should
95
- be prepared to check that the node returned is suitable for use.
96
- */
97
- virtual CbcNode * bestNode(double cutoff);
98
-
99
- /*! \brief Rebuild the heap */
100
- virtual void rebuild() ;
101
- //@}
102
-
103
- /*! \name Direct node access methods */
104
- //@{
105
- /// Test for an empty tree
106
- virtual bool empty() ;
107
-
108
- /// Return size
109
- virtual int size() const { return static_cast<int>(nodes_.size()); }
110
-
111
- /// Return a node pointer
112
- inline CbcNode * operator [] (int i) const { return nodes_[i]; }
113
-
114
- /// Return a node pointer
115
- inline CbcNode * nodePointer (int i) const { return nodes_[i]; }
116
- void realpop();
117
- /** After changing data in the top node, fix the heap */
118
- void fixTop();
119
- void realpush(CbcNode * node);
120
- //@}
121
-
122
- /*! \name Search tree maintenance */
123
- //@{
124
- /*! \brief Prune the tree using an objective function cutoff
125
-
126
- This routine removes all nodes with objective worse than the
127
- specified cutoff value. It also sets bestPossibleObjective to
128
- the best objective over remaining nodes.
129
- */
130
- virtual void cleanTree(CbcModel * model, double cutoff, double & bestPossibleObjective);
131
-
132
- /// Get best on list using alternate method
133
- CbcNode * bestAlternate();
134
-
135
- /// We may have got an intelligent tree so give it one more chance
136
- virtual void endSearch() {}
137
-
138
- /// Get best possible objective function in the tree
139
- virtual double getBestPossibleObjective();
140
-
141
- /// Reset maximum node number
142
- inline void resetNodeNumbers() { maximumNodeNumber_ = 0; }
143
-
144
- /// Get maximum node number
145
- inline int maximumNodeNumber() const { return maximumNodeNumber_; }
146
-
147
- /// Set number of branches
148
- inline void setNumberBranching(int value) { numberBranching_ = value; }
149
-
150
- /// Get number of branches
151
- inline int getNumberBranching() const { return numberBranching_; }
152
-
153
- /// Set maximum branches
154
- inline void setMaximumBranching(int value) { maximumBranching_ = value; }
155
-
156
- /// Get maximum branches
157
- inline int getMaximumBranching() const { return maximumBranching_; }
158
-
159
- /// Get branched variables
160
- inline unsigned int * branched() const { return branched_; }
161
-
162
- /// Get bounds
163
- inline int * newBounds() const { return newBound_; }
164
-
165
- /// Last objective in branch-and-cut search tree
166
- inline double lastObjective() const {
167
- return lastObjective_;
168
- }
169
- /// Last depth in branch-and-cut search tree
170
- inline int lastDepth() const {
171
- return lastDepth_;
172
- }
173
- /// Last number of objects unsatisfied
174
- inline int lastUnsatisfied() const {
175
- return lastUnsatisfied_;
176
- }
177
- /// Adds branching information to complete state
178
- void addBranchingInformation(const CbcModel * model, const CbcNodeInfo * nodeInfo,
179
- const double * currentLower,
180
- const double * currentUpper);
181
- /// Increase space for data
182
- void increaseSpace();
183
- //@}
184
-
185
- # if CBC_DEBUG_HEAP > 0
186
- /*! \name Debugging methods */
187
- //@{
188
- /*! \brief Check that the heap property is satisfied. */
189
- void validateHeap() ;
190
- //@}
191
- # endif
192
-
193
- protected:
194
- /// Storage vector for the heap
195
- std::vector <CbcNode *> nodes_;
196
- /// Sort predicate for heap ordering.
197
- CbcCompare comparison_;
198
- /// Maximum "node" number so far to split ties
199
- int maximumNodeNumber_;
200
- /// Size of variable list
201
- int numberBranching_;
202
- /// Maximum size of variable list
203
- int maximumBranching_;
204
- /// Objective of last node pushed on tree
205
- double lastObjective_;
206
- /// Depth of last node pushed on tree
207
- int lastDepth_;
208
- /// Number unsatisfied of last node pushed on tree
209
- int lastUnsatisfied_;
210
- /** Integer variables branched or bounded
211
- top bit set if new upper bound
212
- next bit set if a branch
213
- */
214
- unsigned int * branched_;
215
- /// New bound
216
- int * newBound_;
217
- };
218
-
219
- #ifdef JJF_ZERO // not used
220
- /*! \brief Implementation of live set as a managed array.
221
-
222
- This class is used to hold the set of live nodes in the search tree.
223
- */
224
- class CbcTreeArray : public CbcTree {
225
-
226
- public:
227
-
228
- // Default Constructor
229
- CbcTreeArray ();
230
-
231
- // Copy constructor
232
- CbcTreeArray ( const CbcTreeArray & rhs);
233
- // = operator
234
- CbcTreeArray & operator=(const CbcTreeArray & rhs);
235
-
236
- virtual ~CbcTreeArray();
237
-
238
- /// Clone
239
- virtual CbcTree * clone() const;
240
- /// Create C++ lines to get to current state
241
- virtual void generateCpp( FILE * ) {}
242
-
243
- /*! \name Heap access and maintenance methods */
244
- //@{
245
-
246
- /// Set comparison function and resort heap
247
- void setComparison(CbcCompareBase &compare);
248
-
249
- /// Add a node to the heap
250
- virtual void push(CbcNode * x);
251
-
252
- /// Gets best node and takes off heap
253
- virtual CbcNode * bestNode(double cutoff);
254
-
255
- //@}
256
- /*! \name vector methods */
257
- //@{
258
-
259
- /// Test if empty *** note may be overridden
260
- virtual bool empty() ;
261
-
262
- //@}
263
-
264
- /*! \name Search tree maintenance */
265
- //@{
266
-
267
- /*! \brief Prune the tree using an objective function cutoff
268
-
269
- This routine removes all nodes with objective worst than the
270
- specified cutoff value.
271
- It also sets bestPossibleObjective to best
272
- of all on tree before deleting.
273
- */
274
-
275
- void cleanTree(CbcModel * model, double cutoff, double & bestPossibleObjective);
276
- /// Get best possible objective function in the tree
277
- virtual double getBestPossibleObjective();
278
- //@}
279
- protected:
280
- /// Returns
281
- /// Last node
282
- CbcNode * lastNode_;
283
- /// Last node popped
284
- CbcNode * lastNodePopped_;
285
- /// Not used yet
286
- int switches_;
287
-
288
- };
289
-
290
- /// New style
291
- #include "CoinSearchTree.hpp"
292
- /*! \class tree
293
- \brief Implementation of live set as a heap.
294
-
295
- This class is used to hold the set of live nodes in the search tree.
296
- */
297
-
298
- class CbcNewTree : public CbcTree, public CoinSearchTreeManager {
299
-
300
- public:
301
-
302
- // Default Constructor
303
- CbcNewTree ();
304
-
305
- // Copy constructor
306
- CbcNewTree ( const CbcNewTree & rhs);
307
- // = operator
308
- CbcNewTree & operator=(const CbcNewTree & rhs);
309
-
310
- virtual ~CbcNewTree();
311
-
312
- /// Clone
313
- virtual CbcNewTree * clone() const;
314
- /// Create C++ lines to get to current state
315
- virtual void generateCpp( FILE * ) {}
316
-
317
- /*! \name Heap access and maintenance methods */
318
- //@{
319
-
320
- /// Set comparison function and resort heap
321
- void setComparison(CbcCompareBase &compare);
322
-
323
- /// Return the top node of the heap
324
- virtual CbcNode * top() const;
325
-
326
- /// Add a node to the heap
327
- virtual void push(CbcNode * x);
328
-
329
- /// Remove the top node from the heap
330
- virtual void pop() ;
331
- /// Gets best node and takes off heap
332
- virtual CbcNode * bestNode(double cutoff);
333
-
334
- //@}
335
- /*! \name vector methods */
336
- //@{
337
-
338
- /// Test if empty *** note may be overridden
339
- virtual bool empty() ;
340
-
341
- /// Return size
342
- inline int size() const {
343
- return nodes_.size();
344
- }
345
-
346
- /// [] operator
347
- inline CbcNode * operator [] (int i) const {
348
- return nodes_[i];
349
- }
350
-
351
- /// Return a node pointer
352
- inline CbcNode * nodePointer (int i) const {
353
- return nodes_[i];
354
- }
355
-
356
- //@}
357
-
358
- /*! \name Search tree maintenance */
359
- //@{
360
-
361
- /*! \brief Prune the tree using an objective function cutoff
362
-
363
- This routine removes all nodes with objective worst than the
364
- specified cutoff value.
365
- It also sets bestPossibleObjective to best
366
- of all on tree before deleting.
367
- */
368
-
369
- void cleanTree(CbcModel * model, double cutoff, double & bestPossibleObjective);
370
-
371
- /// Get best on list using alternate method
372
- CbcNode * bestAlternate();
373
-
374
- /// We may have got an intelligent tree so give it one more chance
375
- virtual void endSearch() {}
376
- //@}
377
- protected:
378
-
379
-
380
- };
381
- #endif
382
- #else
383
- /* CBC_DUBIOUS_HEAP is defined
384
-
385
- See note at top of file. This code is highly suspect.
386
- -- lh, 100921 --
387
- */
388
- class CbcTree {
389
-
390
- public:
391
-
392
- // Default Constructor
393
- CbcTree ();
394
-
395
- // Copy constructor
396
- CbcTree ( const CbcTree & rhs);
397
- // = operator
398
- CbcTree & operator=(const CbcTree & rhs);
399
-
400
- virtual ~CbcTree();
401
-
402
- /// Clone
403
- virtual CbcTree * clone() const;
404
- /// Create C++ lines to get to current state
405
- virtual void generateCpp( FILE * fp) {}
406
-
407
- /*! \name Heap access and maintenance methods */
408
- //@{
409
-
410
- /// Set comparison function and resort heap
411
- void setComparison(CbcCompareBase &compare);
412
-
413
- /// Return the top node of the heap
414
- virtual CbcNode * top() const;
415
-
416
- /// Add a node to the heap
417
- virtual void push(CbcNode * x);
418
-
419
- /// Remove the top node from the heap
420
- virtual void pop() ;
421
- /// Gets best node and takes off heap
422
- virtual CbcNode * bestNode(double cutoff);
423
-
424
- //@}
425
- /*! \name vector methods */
426
- //@{
427
-
428
- /// Test if empty *** note may be overridden
429
- //virtual bool empty() ;
430
-
431
- /// Return size
432
- inline int size() const {
433
- return nodes_.size();
434
- }
435
-
436
- /// [] operator
437
- inline CbcNode * operator [] (int i) const {
438
- return nodes_[i];
439
- }
440
-
441
- /// Return a node pointer
442
- inline CbcNode * nodePointer (int i) const {
443
- return nodes_[i];
444
- }
445
-
446
- virtual bool empty();
447
- //inline int size() const { return size_; }
448
- void realpop();
449
- /** After changing data in the top node, fix the heap */
450
- void fixTop();
451
- void realpush(CbcNode * node);
452
- //@}
453
-
454
- /*! \name Search tree maintenance */
455
- //@{
456
-
457
- /*! \brief Prune the tree using an objective function cutoff
458
-
459
- This routine removes all nodes with objective worst than the
460
- specified cutoff value.
461
- It also sets bestPossibleObjective to best
462
- of all on tree before deleting.
463
- */
464
-
465
- void cleanTree(CbcModel * model, double cutoff, double & bestPossibleObjective);
466
-
467
- /// Get best on list using alternate method
468
- CbcNode * bestAlternate();
469
-
470
- /// We may have got an intelligent tree so give it one more chance
471
- virtual void endSearch() {}
472
- /// Reset maximum node number
473
- inline void resetNodeNumbers() {
474
- maximumNodeNumber_ = 0;
475
- }
476
-
477
- /// Get maximum node number
478
- inline int maximumNodeNumber() const { return maximumNodeNumber_; }
479
- //@}
480
- protected:
481
- std::vector <CbcNode *> nodes_;
482
- CbcCompare comparison_; ///> Sort function for heap ordering.
483
- /// Maximum "node" number so far to split ties
484
- int maximumNodeNumber_;
485
-
486
-
487
- };
488
- #endif
489
- #endif
490
-