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,534 +0,0 @@
1
- // Copyright (C) 2006, International Business Machines
2
- // Corporation and others. All Rights Reserved.
3
- // This code is licensed under the terms of the Eclipse Public License (EPL).
4
-
5
- #ifndef OsiChooseVariable_H
6
- #define OsiChooseVariable_H
7
-
8
- #include <string>
9
- #include <vector>
10
-
11
- #include "CoinWarmStartBasis.hpp"
12
- #include "OsiBranchingObject.hpp"
13
-
14
- class OsiSolverInterface;
15
- class OsiHotInfo;
16
-
17
- /** This class chooses a variable to branch on
18
-
19
- The base class just chooses the variable and direction without strong branching but it
20
- has information which would normally be used by strong branching e.g. to re-enter
21
- having fixed a variable but using same candidates for strong branching.
22
-
23
- The flow is :
24
- a) initialize the process. This decides on strong branching list
25
- and stores indices of all infeasible objects
26
- b) do strong branching on list. If list is empty then just
27
- choose one candidate and return without strong branching. If not empty then
28
- go through list and return best. However we may find that the node is infeasible
29
- or that we can fix a variable. If so we return and it is up to user to call
30
- again (after fixing a variable).
31
- */
32
-
33
- class OsiChooseVariable {
34
-
35
- public:
36
-
37
- /// Default Constructor
38
- OsiChooseVariable ();
39
-
40
- /// Constructor from solver (so we can set up arrays etc)
41
- OsiChooseVariable (const OsiSolverInterface * solver);
42
-
43
- /// Copy constructor
44
- OsiChooseVariable (const OsiChooseVariable &);
45
-
46
- /// Assignment operator
47
- OsiChooseVariable & operator= (const OsiChooseVariable& rhs);
48
-
49
- /// Clone
50
- virtual OsiChooseVariable * clone() const;
51
-
52
- /// Destructor
53
- virtual ~OsiChooseVariable ();
54
-
55
- /** Sets up strong list and clears all if initialize is true.
56
- Returns number of infeasibilities.
57
- If returns -1 then has worked out node is infeasible!
58
- */
59
- virtual int setupList ( OsiBranchingInformation *info, bool initialize);
60
- /** Choose a variable
61
- Returns -
62
- -1 Node is infeasible
63
- 0 Normal termination - we have a candidate
64
- 1 All looks satisfied - no candidate
65
- 2 We can change the bound on a variable - but we also have a strong branching candidate
66
- 3 We can change the bound on a variable - but we have a non-strong branching candidate
67
- 4 We can change the bound on a variable - no other candidates
68
- We can pick up branch from bestObjectIndex() and bestWhichWay()
69
- We can pick up a forced branch (can change bound) from firstForcedObjectIndex() and firstForcedWhichWay()
70
- If we have a solution then we can pick up from goodObjectiveValue() and goodSolution()
71
- If fixVariables is true then 2,3,4 are all really same as problem changed
72
- */
73
- virtual int chooseVariable( OsiSolverInterface * solver, OsiBranchingInformation *info, bool fixVariables);
74
- /// Returns true if solution looks feasible against given objects
75
- virtual bool feasibleSolution(const OsiBranchingInformation * info,
76
- const double * solution,
77
- int numberObjects,
78
- const OsiObject ** objects);
79
- /// Saves a good solution
80
- void saveSolution(const OsiSolverInterface * solver);
81
- /// Clears out good solution after use
82
- void clearGoodSolution();
83
- /// Given a candidate fill in useful information e.g. estimates
84
- virtual void updateInformation( const OsiBranchingInformation *info,
85
- int branch, OsiHotInfo * hotInfo);
86
- #if 1
87
- /// Given a branch fill in useful information e.g. estimates
88
- virtual void updateInformation( int whichObject, int branch,
89
- double changeInObjective, double changeInValue,
90
- int status);
91
- #endif
92
- /// Objective value for feasible solution
93
- inline double goodObjectiveValue() const
94
- { return goodObjectiveValue_;}
95
- /// Estimate of up change or change on chosen if n-way
96
- inline double upChange() const
97
- { return upChange_;}
98
- /// Estimate of down change or max change on other possibilities if n-way
99
- inline double downChange() const
100
- { return downChange_;}
101
- /// Good solution - deleted by finalize
102
- inline const double * goodSolution() const
103
- { return goodSolution_;}
104
- /// Index of chosen object
105
- inline int bestObjectIndex() const
106
- { return bestObjectIndex_;}
107
- /// Set index of chosen object
108
- inline void setBestObjectIndex(int value)
109
- { bestObjectIndex_ = value;}
110
- /// Preferred way of chosen object
111
- inline int bestWhichWay() const
112
- { return bestWhichWay_;}
113
- /// Set preferred way of chosen object
114
- inline void setBestWhichWay(int value)
115
- { bestWhichWay_ = value;}
116
- /// Index of forced object
117
- inline int firstForcedObjectIndex() const
118
- { return firstForcedObjectIndex_;}
119
- /// Set index of forced object
120
- inline void setFirstForcedObjectIndex(int value)
121
- { firstForcedObjectIndex_ = value;}
122
- /// Preferred way of forced object
123
- inline int firstForcedWhichWay() const
124
- { return firstForcedWhichWay_;}
125
- /// Set preferred way of forced object
126
- inline void setFirstForcedWhichWay(int value)
127
- { firstForcedWhichWay_ = value;}
128
- /// Get the number of objects unsatisfied at this node - accurate on first pass
129
- inline int numberUnsatisfied() const
130
- {return numberUnsatisfied_;}
131
- /// Number of objects to choose for strong branching
132
- inline int numberStrong() const
133
- { return numberStrong_;}
134
- /// Set number of objects to choose for strong branching
135
- inline void setNumberStrong(int value)
136
- { numberStrong_ = value;}
137
- /// Number left on strong list
138
- inline int numberOnList() const
139
- { return numberOnList_;}
140
- /// Number of strong branches actually done
141
- inline int numberStrongDone() const
142
- { return numberStrongDone_;}
143
- /// Number of strong iterations actually done
144
- inline int numberStrongIterations() const
145
- { return numberStrongIterations_;}
146
- /// Number of strong branches which changed bounds
147
- inline int numberStrongFixed() const
148
- { return numberStrongFixed_;}
149
- /// List of candidates
150
- inline const int * candidates() const
151
- { return list_;}
152
- /// Trust results from strong branching for changing bounds
153
- inline bool trustStrongForBound() const
154
- { return trustStrongForBound_;}
155
- /// Set trust results from strong branching for changing bounds
156
- inline void setTrustStrongForBound(bool yesNo)
157
- { trustStrongForBound_ = yesNo;}
158
- /// Trust results from strong branching for valid solution
159
- inline bool trustStrongForSolution() const
160
- { return trustStrongForSolution_;}
161
- /// Set trust results from strong branching for valid solution
162
- inline void setTrustStrongForSolution(bool yesNo)
163
- { trustStrongForSolution_ = yesNo;}
164
- /// Set solver and redo arrays
165
- void setSolver (const OsiSolverInterface * solver);
166
- /** Return status -
167
- -1 Node is infeasible
168
- 0 Normal termination - we have a candidate
169
- 1 All looks satisfied - no candidate
170
- 2 We can change the bound on a variable - but we also have a strong branching candidate
171
- 3 We can change the bound on a variable - but we have a non-strong branching candidate
172
- 4 We can change the bound on a variable - no other candidates
173
- We can pick up branch from bestObjectIndex() and bestWhichWay()
174
- We can pick up a forced branch (can change bound) from firstForcedObjectIndex() and firstForcedWhichWay()
175
- If we have a solution then we can pick up from goodObjectiveValue() and goodSolution()
176
- */
177
- inline int status() const
178
- { return status_;}
179
- inline void setStatus(int value)
180
- { status_ = value;}
181
-
182
-
183
- protected:
184
- // Data
185
- /// Objective value for feasible solution
186
- double goodObjectiveValue_;
187
- /// Estimate of up change or change on chosen if n-way
188
- double upChange_;
189
- /// Estimate of down change or max change on other possibilities if n-way
190
- double downChange_;
191
- /// Good solution - deleted by finalize
192
- double * goodSolution_;
193
- /// List of candidates
194
- int * list_;
195
- /// Useful array (for sorting etc)
196
- double * useful_;
197
- /// Pointer to solver
198
- const OsiSolverInterface * solver_;
199
- /* Status -
200
- -1 Node is infeasible
201
- 0 Normal termination - we have a candidate
202
- 1 All looks satisfied - no candidate
203
- 2 We can change the bound on a variable - but we also have a strong branching candidate
204
- 3 We can change the bound on a variable - but we have a non-strong branching candidate
205
- 4 We can change the bound on a variable - no other candidates
206
- */
207
- int status_;
208
- /// Index of chosen object
209
- int bestObjectIndex_;
210
- /// Preferred way of chosen object
211
- int bestWhichWay_;
212
- /// Index of forced object
213
- int firstForcedObjectIndex_;
214
- /// Preferred way of forced object
215
- int firstForcedWhichWay_;
216
- /// The number of objects unsatisfied at this node.
217
- int numberUnsatisfied_;
218
- /// Number of objects to choose for strong branching
219
- int numberStrong_;
220
- /// Number left on strong list
221
- int numberOnList_;
222
- /// Number of strong branches actually done
223
- int numberStrongDone_;
224
- /// Number of strong iterations actually done
225
- int numberStrongIterations_;
226
- /// Number of bound changes due to strong branching
227
- int numberStrongFixed_;
228
- /// List of unsatisfied objects - first numberOnList_ for strong branching
229
- /// Trust results from strong branching for changing bounds
230
- bool trustStrongForBound_;
231
- /// Trust results from strong branching for valid solution
232
- bool trustStrongForSolution_;
233
- };
234
-
235
- /** This class is the placeholder for the pseudocosts used by OsiChooseStrong.
236
- It can also be used by any other pseudocost based strong branching
237
- algorithm.
238
- */
239
-
240
- class OsiPseudoCosts {
241
- protected:
242
- // Data
243
- /// Total of all changes up
244
- double * upTotalChange_;
245
- /// Total of all changes down
246
- double * downTotalChange_;
247
- /// Number of times up
248
- int * upNumber_;
249
- /// Number of times down
250
- int * downNumber_;
251
- /// Number of objects (could be found from solver)
252
- int numberObjects_;
253
- /// Number before we trust
254
- int numberBeforeTrusted_;
255
-
256
- private:
257
- void gutsOfDelete();
258
- void gutsOfCopy(const OsiPseudoCosts& rhs);
259
-
260
- public:
261
- OsiPseudoCosts();
262
- virtual ~OsiPseudoCosts();
263
- OsiPseudoCosts(const OsiPseudoCosts& rhs);
264
- OsiPseudoCosts& operator=(const OsiPseudoCosts& rhs);
265
-
266
- /// Number of times before trusted
267
- inline int numberBeforeTrusted() const
268
- { return numberBeforeTrusted_; }
269
- /// Set number of times before trusted
270
- inline void setNumberBeforeTrusted(int value)
271
- { numberBeforeTrusted_ = value; }
272
- /// Initialize the pseudocosts with n entries
273
- void initialize(int n);
274
- /// Give the number of objects for which pseudo costs are stored
275
- inline int numberObjects() const
276
- { return numberObjects_; }
277
-
278
- /** @name Accessor methods to pseudo costs data */
279
- //@{
280
- inline double* upTotalChange() { return upTotalChange_; }
281
- inline const double* upTotalChange() const { return upTotalChange_; }
282
-
283
- inline double* downTotalChange() { return downTotalChange_; }
284
- inline const double* downTotalChange() const { return downTotalChange_; }
285
-
286
- inline int* upNumber() { return upNumber_; }
287
- inline const int* upNumber() const { return upNumber_; }
288
-
289
- inline int* downNumber() { return downNumber_; }
290
- inline const int* downNumber() const { return downNumber_; }
291
- //@}
292
-
293
- /// Given a candidate fill in useful information e.g. estimates
294
- virtual void updateInformation(const OsiBranchingInformation *info,
295
- int branch, OsiHotInfo * hotInfo);
296
- #if 1
297
- /// Given a branch fill in useful information e.g. estimates
298
- virtual void updateInformation( int whichObject, int branch,
299
- double changeInObjective, double changeInValue,
300
- int status);
301
- #endif
302
- };
303
-
304
- /** This class chooses a variable to branch on
305
-
306
- This chooses the variable and direction with reliability strong branching.
307
-
308
- The flow is :
309
- a) initialize the process. This decides on strong branching list
310
- and stores indices of all infeasible objects
311
- b) do strong branching on list. If list is empty then just
312
- choose one candidate and return without strong branching. If not empty then
313
- go through list and return best. However we may find that the node is infeasible
314
- or that we can fix a variable. If so we return and it is up to user to call
315
- again (after fixing a variable).
316
- */
317
-
318
- class OsiChooseStrong : public OsiChooseVariable {
319
-
320
- public:
321
-
322
- /// Default Constructor
323
- OsiChooseStrong ();
324
-
325
- /// Constructor from solver (so we can set up arrays etc)
326
- OsiChooseStrong (const OsiSolverInterface * solver);
327
-
328
- /// Copy constructor
329
- OsiChooseStrong (const OsiChooseStrong &);
330
-
331
- /// Assignment operator
332
- OsiChooseStrong & operator= (const OsiChooseStrong& rhs);
333
-
334
- /// Clone
335
- virtual OsiChooseVariable * clone() const;
336
-
337
- /// Destructor
338
- virtual ~OsiChooseStrong ();
339
-
340
- /** Sets up strong list and clears all if initialize is true.
341
- Returns number of infeasibilities.
342
- If returns -1 then has worked out node is infeasible!
343
- */
344
- virtual int setupList ( OsiBranchingInformation *info, bool initialize);
345
- /** Choose a variable
346
- Returns -
347
- -1 Node is infeasible
348
- 0 Normal termination - we have a candidate
349
- 1 All looks satisfied - no candidate
350
- 2 We can change the bound on a variable - but we also have a strong branching candidate
351
- 3 We can change the bound on a variable - but we have a non-strong branching candidate
352
- 4 We can change the bound on a variable - no other candidates
353
- We can pick up branch from bestObjectIndex() and bestWhichWay()
354
- We can pick up a forced branch (can change bound) from firstForcedObjectIndex() and firstForcedWhichWay()
355
- If we have a solution then we can pick up from goodObjectiveValue() and goodSolution()
356
- If fixVariables is true then 2,3,4 are all really same as problem changed
357
- */
358
- virtual int chooseVariable( OsiSolverInterface * solver, OsiBranchingInformation *info, bool fixVariables);
359
-
360
- /** Pseudo Shadow Price mode
361
- 0 - off
362
- 1 - use if no strong info
363
- 2 - use if strong not trusted
364
- 3 - use even if trusted
365
- */
366
- inline int shadowPriceMode() const
367
- { return shadowPriceMode_;}
368
- /// Set Shadow price mode
369
- inline void setShadowPriceMode(int value)
370
- { shadowPriceMode_ = value;}
371
-
372
- /** Accessor method to pseudo cost object*/
373
- const OsiPseudoCosts& pseudoCosts() const
374
- { return pseudoCosts_; }
375
-
376
- /** Accessor method to pseudo cost object*/
377
- OsiPseudoCosts& pseudoCosts()
378
- { return pseudoCosts_; }
379
-
380
- /** A feww pass-through methods to access members of pseudoCosts_ as if they
381
- were members of OsiChooseStrong object */
382
- inline int numberBeforeTrusted() const {
383
- return pseudoCosts_.numberBeforeTrusted(); }
384
- inline void setNumberBeforeTrusted(int value) {
385
- pseudoCosts_.setNumberBeforeTrusted(value); }
386
- inline int numberObjects() const {
387
- return pseudoCosts_.numberObjects(); }
388
-
389
- protected:
390
-
391
- /** This is a utility function which does strong branching on
392
- a list of objects and stores the results in OsiHotInfo.objects.
393
- On entry the object sequence is stored in the OsiHotInfo object
394
- and maybe more.
395
- It returns -
396
- -1 - one branch was infeasible both ways
397
- 0 - all inspected - nothing can be fixed
398
- 1 - all inspected - some can be fixed (returnCriterion==0)
399
- 2 - may be returning early - one can be fixed (last one done) (returnCriterion==1)
400
- 3 - returning because max time
401
-
402
- */
403
- int doStrongBranching( OsiSolverInterface * solver,
404
- OsiBranchingInformation *info,
405
- int numberToDo, int returnCriterion);
406
-
407
- /** Clear out the results array */
408
- void resetResults(int num);
409
-
410
- protected:
411
- /** Pseudo Shadow Price mode
412
- 0 - off
413
- 1 - use and multiply by strong info
414
- 2 - use
415
- */
416
- int shadowPriceMode_;
417
-
418
- /** The pseudo costs for the chooser */
419
- OsiPseudoCosts pseudoCosts_;
420
-
421
- /** The results of the strong branching done on the candidates where the
422
- pseudocosts were not sufficient */
423
- OsiHotInfo* results_;
424
- /** The number of OsiHotInfo objetcs that contain information */
425
- int numResults_;
426
- };
427
-
428
- /** This class contains the result of strong branching on a variable
429
- When created it stores enough information for strong branching
430
- */
431
-
432
- class OsiHotInfo {
433
-
434
- public:
435
-
436
- /// Default Constructor
437
- OsiHotInfo ();
438
-
439
- /// Constructor from useful information
440
- OsiHotInfo ( OsiSolverInterface * solver,
441
- const OsiBranchingInformation *info,
442
- const OsiObject * const * objects,
443
- int whichObject);
444
-
445
- /// Copy constructor
446
- OsiHotInfo (const OsiHotInfo &);
447
-
448
- /// Assignment operator
449
- OsiHotInfo & operator= (const OsiHotInfo& rhs);
450
-
451
- /// Clone
452
- virtual OsiHotInfo * clone() const;
453
-
454
- /// Destructor
455
- virtual ~OsiHotInfo ();
456
-
457
- /** Fill in useful information after strong branch.
458
- Return status
459
- */
460
- int updateInformation( const OsiSolverInterface * solver, const OsiBranchingInformation * info,
461
- OsiChooseVariable * choose);
462
- /// Original objective value
463
- inline double originalObjectiveValue() const
464
- { return originalObjectiveValue_;}
465
- /// Up change - invalid if n-way
466
- inline double upChange() const
467
- { assert (branchingObject_->numberBranches()==2); return changes_[1];}
468
- /// Down change - invalid if n-way
469
- inline double downChange() const
470
- { assert (branchingObject_->numberBranches()==2); return changes_[0];}
471
- /// Set up change - invalid if n-way
472
- inline void setUpChange(double value)
473
- { assert (branchingObject_->numberBranches()==2); changes_[1] = value;}
474
- /// Set down change - invalid if n-way
475
- inline void setDownChange(double value)
476
- { assert (branchingObject_->numberBranches()==2); changes_[0] = value;}
477
- /// Change on way k
478
- inline double change(int k) const
479
- { return changes_[k];}
480
-
481
- /// Up iteration count - invalid if n-way
482
- inline int upIterationCount() const
483
- { assert (branchingObject_->numberBranches()==2); return iterationCounts_[1];}
484
- /// Down iteration count - invalid if n-way
485
- inline int downIterationCount() const
486
- { assert (branchingObject_->numberBranches()==2); return iterationCounts_[0];}
487
- /// Iteration count on way k
488
- inline int iterationCount(int k) const
489
- { return iterationCounts_[k];}
490
-
491
- /// Up status - invalid if n-way
492
- inline int upStatus() const
493
- { assert (branchingObject_->numberBranches()==2); return statuses_[1];}
494
- /// Down status - invalid if n-way
495
- inline int downStatus() const
496
- { assert (branchingObject_->numberBranches()==2); return statuses_[0];}
497
- /// Set up status - invalid if n-way
498
- inline void setUpStatus(int value)
499
- { assert (branchingObject_->numberBranches()==2); statuses_[1] = value;}
500
- /// Set down status - invalid if n-way
501
- inline void setDownStatus(int value)
502
- { assert (branchingObject_->numberBranches()==2); statuses_[0] = value;}
503
- /// Status on way k
504
- inline int status(int k) const
505
- { return statuses_[k];}
506
- /// Branching object
507
- inline OsiBranchingObject * branchingObject() const
508
- { return branchingObject_;}
509
- inline int whichObject() const
510
- { return whichObject_;}
511
-
512
- protected:
513
- // Data
514
- /// Original objective value
515
- double originalObjectiveValue_;
516
- /// Objective changes
517
- double * changes_;
518
- /// Iteration counts
519
- int * iterationCounts_;
520
- /** Status
521
- -1 - not done
522
- 0 - feasible and finished
523
- 1 - infeasible
524
- 2 - not finished
525
- */
526
- int * statuses_;
527
- /// Branching object
528
- OsiBranchingObject * branchingObject_;
529
- /// Which object on list
530
- int whichObject_;
531
- };
532
-
533
-
534
- #endif