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
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 = []
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
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)
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