def solve(self): repo = Repository(self.domains.keys(), self.domains, self.get_constraints()) solver = Solver(printer=self.printer) # used for timing # import time # t0=time.time() sols = solver.solve(repo, verbose=(True or self.debug)) # print("RUNTIME:", time.time()-t0) return sols
def solve_repo1(self, constraints): dom1 = FiniteIntervalDomain(0, 15, 5) dom2 = FiniteIntervalDomain(0, 15, 5) dom3 = FiniteIntervalDomain(0, 15, 5) repo = Repository( ['A','B','C'], { 'A': dom1, 'B': dom2, 'C': dom3 }, constraints, printer=quiet_printer) s = Solver( self.d, printer=quiet_printer) answers = list(s.solve_all(repo,verbose=self.verbose)) self.assertEqual(len(answers), 2)
def solve_repo2(self, constraints): dom1 = FiniteIntervalDomain(0, 20, 5) dom2 = FiniteIntervalDomain(0, 20, 5) dom3 = FiniteIntervalDomain(0, 20, 10) dom4 = FiniteIntervalDomain(0, 20, 5) repo = Repository( ['A','B','C', 'D'], { 'A': dom1, 'B': dom2, 'C': dom3, 'D': dom4 }, constraints ) s = Solver( self.d ) answers = list(s.solve_all(repo,verbose=1)) import pprint pprint.pprint( list(answers) )
def solve_repo2(self, constraints): dom1 = FiniteIntervalDomain(0, 20, 5) dom2 = FiniteIntervalDomain(0, 20, 5) dom3 = FiniteIntervalDomain(0, 20, 10) dom4 = FiniteIntervalDomain(0, 20, 5) repo = Repository(['A', 'B', 'C', 'D'], { 'A': dom1, 'B': dom2, 'C': dom3, 'D': dom4 }, constraints) s = Solver(self.d) answers = list(s.solve_all(repo, verbose=1)) import pprint pprint.pprint(list(answers))
def solve_repo2(self, constraints): dom1 = FiniteIntervalDomain(0, 20, 5) dom2 = FiniteIntervalDomain(0, 20, 5) dom3 = FiniteIntervalDomain(0, 20, 10) dom4 = FiniteIntervalDomain(0, 20, 5) repo = Repository( ['A','B','C', 'D'], { 'A': dom1, 'B': dom2, 'C': dom3, 'D': dom4 }, constraints, printer=quiet_printer) s = Solver( self.d, printer=quiet_printer) answers = list(s.solve_all(repo,verbose=1)) self.assertEqual(len(answers), 6) expected = [ {'A': Interval( 0.00, 5.00), 'B': Interval( 5.00, 10.00), 'C': Interval( 5.00, 15.00), 'D': Interval(15.00, 20.00)}, {'A': Interval( 0.00, 5.00), 'B': Interval( 6.00, 11.00), 'C': Interval( 5.00, 15.00), 'D': Interval(15.00, 20.00)}, {'A': Interval( 0.00, 5.00), 'B': Interval( 7.00, 12.00), 'C': Interval( 5.00, 15.00), 'D': Interval(15.00, 20.00)}, {'A': Interval( 0.00, 5.00), 'B': Interval( 8.00, 13.00), 'C': Interval( 5.00, 15.00), 'D': Interval(15.00, 20.00)}, {'A': Interval( 0.00, 5.00), 'B': Interval( 9.00, 14.00), 'C': Interval( 5.00, 15.00), 'D': Interval(15.00, 20.00)}, {'A': Interval( 0.00, 5.00), 'B': Interval(10.00, 15.00), 'C': Interval( 5.00, 15.00), 'D': Interval(15.00, 20.00)}] self.assertEqual(expected, answers)