Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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) )
Exemplo n.º 4
0
 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))
Exemplo n.º 5
0
    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)