def solve(filename, method): s = CyClpSimplex() s.readMps(filename) s.preSolve(feasibilityTolerance=10 ** -8) #s.useCustomPrimal(1) if method == 'd': pivot = DantzigPivot(s) elif method == 'l': pivot = LIFOPivot(s) elif method == 'm': pivot = MostFrequentPivot(s) elif method == 'p': pivot = PositiveEdgePivot(s) else: print('Unkown solution method.') sys.exit(1) s.setPivotMethod(pivot) #s.setPerturbation(50) start = clock() s.primal() print('Problem solved in %g seconds.' % (clock() - start)) return s.objectiveValue
def solve(filename, method): s = CyClpSimplex() s.readMps(filename) s.preSolve(feasibilityTolerance=10 ** -8) #s.useCustomPrimal(1) if method == 'd': pivot = DantzigPivot(s) elif method == 'l': pivot = LIFOPivot(s) elif method == 'm': pivot = MostFrequentPivot(s) elif method == 'p': pivot = PositiveEdgePivot(s) else: print 'Unkown solution method.' sys.exit(1) s.setPivotMethod(pivot) #s.setPerturbation(50) start = clock() s.primal() print 'Problem solved in %g seconds.' % (clock() - start) return s.objectiveValue
def test_1(self): """simplest QP test""" s = CyClpSimplex() s.readMps(join(currentFilePath, '../input/hs35.qps')) #self.assertTrue(abs(cbcModel.objectiveValue - 3089.0) < 10 ** -6) #print s.Hessian.todense() p = WolfePivot(s) s.setPivotMethod(p) s.primal() print s.primalVariableSolution print s.objectiveValue
class TestCyClpSimplex(unittest.TestCase): def setUp(self): self.s = CyClpSimplex() self.s.readMps(join(currentFilePath, '../input/p0033.mps')) def test_PE(self): #pivot = PositiveEdgePivot(self.s) self.s.setPivotMethod(PositiveEdgePivot(self.s)) self.s.primal() self.assertEqual(round(self.s.objectiveValue, 4), 2520.5717) def test_Dantzig(self): #pivot = DantzigPivot(self.s) self.s.setPivotMethod(DantzigPivot(self.s)) self.s.primal() self.assertEqual(round(self.s.objectiveValue, 4), 2520.5717) def test_LIFO(self): #pivot = LIFOPivot(self.s) self.s.setPivotMethod(LIFOPivot(self.s)) self.s.primal() self.assertEqual(round(self.s.objectiveValue, 4), 2520.5717) def test_MostFrequent(self): #pivot = MostFrequentPivot(self.s) self.s.setPivotMethod(MostFrequentPivot(self.s)) self.s.primal() self.assertEqual(round(self.s.objectiveValue, 4), 2520.5717) def test_initialSolve(self): self.s.initialSolve() self.assertEqual(round(self.s.objectiveValue, 4), 2520.5717) def test_initialPrimalSolve(self): self.s.initialPrimalSolve() self.assertEqual(round(self.s.objectiveValue, 4), 2520.5717) def test_initialDualSolve(self): self.s.initialDualSolve() self.assertEqual(round(self.s.objectiveValue, 4), 2520.5717) def test_direction(self): self.assertEqual(self.s.optimizationDirection, 'min') self.s.optimizationDirection = 'max' self.assertEqual(self.s.optimizationDirection, 'max')
#del rc2 return indicesToConsider[ind] return -1 def saveWeights(self, model, mode): self.clpModel = model def isPivotAcceptable(self): return True def getMpsExample(): import os import inspect cylpDir = os.environ['CYLP_SOURCE_DIR'] return os.path.join(cylpDir, 'cylp', 'input', 'p0033.mps') if __name__ == "__main__": if len(sys.argv) == 1: import doctest doctest.testmod() else: from cylp.cy import CyClpSimplex from cylp.py.pivots import DantzigPivot s = CyClpSimplex() s.readMps(sys.argv[1]) pivot = DantzigPivot(s) s.setPivotMethod(pivot) s.primal()