Пример #1
0
 def __init__(self,
              n,
              rootName,
              verbose=False,
              includeCorners=False,
              m=None,
              fixedPoint=False):
     self.n = n
     self.m = self.n if m is None else m
     self.fixedPoint = fixedPoint
     variableCount = self.m * (self.n - 1) + self.n * (self.m - 1)
     if not includeCorners:
         if self.fixedPoint:
             variableCount -= 2
         else:
             variableCount -= 4
     self.verbose = verbose
     self.includeCorners = includeCorners
     self.cnfWriter = writer.CnfWriter(variableCount, rootName,
                                       self.verbose)
     self.scheduleWriter = writer.ScheduleWriter(variableCount, rootName,
                                                 self.verbose)
     self.orderWriter = writer.OrderWriter(variableCount, rootName,
                                           self.verbose)
     self.idDict = {}
     self.squares = {}
     self.variableCount = 0
Пример #2
0
 def __init__(self,
              n,
              rootName,
              verbose=False,
              includeCorners=False,
              bucketMode=1):
     self.n = n
     variableCount = 2 * n * (n - 1)
     if not includeCorners:
         variableCount -= 4
     self.verbose = verbose
     self.includeCorners = includeCorners
     self.bucketMode = bucketMode
     self.cnfWriter = writer.CnfWriter(variableCount, rootName,
                                       self.verbose)
     self.scheduleWriter = writer.ScheduleWriter(variableCount, rootName,
                                                 self.verbose)
     self.bucketWriter = writer.OrderWriter(variableCount,
                                            rootName,
                                            self.verbose,
                                            suffix="buckets")
     self.orderWriter = writer.OrderWriter(variableCount, rootName,
                                           self.verbose)
     self.idDict = {}
     self.squares = {}
     self.variableCount = 0
     self.idList = []
Пример #3
0
 def __init__(self, n, rootName, verbose=False):
     self.n = n
     variableCount = (n + 1) * n + n * n
     self.verbose = verbose
     self.cnfWriter = writer.CnfWriter(variableCount, rootName,
                                       self.verbose)
     self.scheduleWriter = writer.ScheduleWriter(variableCount, rootName,
                                                 self.verbose)
     self.orderWriter = writer.OrderWriter(variableCount, rootName,
                                           self.verbose)
     self.idDict = {}
     self.positions = {}
     self.variableCount = 0
Пример #4
0
 def __init__(self, count, rootName, verbose=False):
     self.verbose = verbose
     self.inputCount = count
     # Leaves + 2 binary trees
     fullCount = 3 * count - 2
     self.leafTrees = [Node(v) for v in range(1, count + 1)]
     self.variableCount = count
     self.roots = []
     self.modes = []
     self.cnfWriter = writer.CnfWriter(fullCount, rootName, self.verbose)
     self.scheduleWriter = writer.ScheduleWriter(fullCount, rootName,
                                                 self.verbose)
     self.orderWriter = writer.OrderWriter(fullCount, rootName,
                                           self.verbose)
Пример #5
0
 def __init__(self, n, rootName, verbose = False):
     self.n = n
     if self.n > 2:
         tvarPerHole = int((n-2)/2 if n%2== 0 else (n-1)/2)
     else:
         tvarPerHole = 0
     variableCount = n*(n+1) + tvarPerHole * n
     self.verbose = verbose
     self.cnfWriter = writer.CnfWriter(variableCount, rootName, self.verbose)
     self.scheduleWriter = writer.ScheduleWriter(variableCount, rootName, self.verbose)
     self.orderWriter = writer.OrderWriter(variableCount, rootName, self.verbose)
     self.idDict = {}
     self.positions = {}
     self.pindexList = [p for p in range(self.n) if p % 2 == 0]
     self.variableCount = 0