ruby-cbc 0.1.9 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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
-