def __init__(self, solver, n, incrset1, incrset2): """Creates an incremental set of all pairs frozetset([c1, c2]) from incrset1 and incrset2 respectively, that are connected with N variables, according to solver""" # defining variables self._solver = solver self._incrset1 = incrset1 self._incrset2 = incrset2 self._n = n # map from objects to sets of pairs self._map = {} # super init IncrementalSet.__init__(self, [incrset1, incrset2])
def __init__(self, pattern, solver): self._solver = solver # convert pattern to a set of tuples listoftuples = [] for clusterpattern in pattern: (kind, clustername, pointnames) = clusterpattern listoftuples.append(tuple([kind, clustername, tuple(pointnames)])) setoftuples = frozenset(listoftuples) self._pattern = setoftuples # create sub-sets for correct type of input clusters self._subs = [] # NOTE: we cannot use source like this to link it to a pattern, because sources may be equal! self._source2pattern = {} for clusterpattern in self._pattern: (kind, clustername, pointnames) = clusterpattern sub = KindFilter(kind, len(pointnames), self._solver.top_level()) self._subs.append(sub) # NOTE: we cannot use source like this to link it to a pattern, because sources may be equal! self._source2pattern[sub] = [clusterpattern] print "creating", sub, "for", self._source2pattern[sub] #rof # create sub-sets for all pairs of clusters listoftuples = list(setoftuples) l = len(listoftuples) for i in range(l): for j in range(i + 1, l): cp1 = listoftuples[i] cp2 = listoftuples[j] (kind1, clustername1, pointnames1) = cp1 (kind2, clustername2, pointnames2) = cp2 shared = set(pointnames1).intersection(set(pointnames2)) n = len(shared) if n > 0: kindfilter1 = KindFilter(kind1, len(pointnames1), self._solver.top_level()) kindfilter2 = KindFilter(kind2, len(pointnames2), self._solver.top_level()) sub = NConnectedPairs(solver, n, kindfilter1, kindfilter2) self._subs.append(sub) # NOTE: we cannot use source like this to link it to a pattern, because sources may be equal! self._source2pattern[sub] = [cp1, cp2] print "creating", sub, "for", self._source2pattern[sub] IncrementalSet.__init__(self, self._subs)
def __init__(self, kind, minpoints, incrset): kind2class = {} kind2class["rigid"]=Rigid kind2class["hog"]=Hedgehog kind2class["balloon"]=Balloon kind2class["distance"]=Rigid kind2class["point"]=Rigid kind2maxpoints = {} kind2maxpoints["rigid"]=0 kind2maxpoints["hog"]=0 kind2maxpoints["balloon"]=0 kind2maxpoints["distance"]=2 kind2maxpoints["point"]=1 self._kind = kind self._classobj = kind2class[kind] self._maxpoints = kind2maxpoints[kind] self._input = incrset self._minpoints = minpoints IncrementalSet.__init__(self,[incrset])
def __init__(self, kind, minpoints, incrset): kind2class = {} kind2class["rigid"] = Rigid kind2class["hog"] = Hedgehog kind2class["balloon"] = Balloon kind2class["distance"] = Rigid kind2class["point"] = Rigid kind2maxpoints = {} kind2maxpoints["rigid"] = 0 kind2maxpoints["hog"] = 0 kind2maxpoints["balloon"] = 0 kind2maxpoints["distance"] = 2 kind2maxpoints["point"] = 1 self._kind = kind self._classobj = kind2class[kind] self._maxpoints = kind2maxpoints[kind] self._input = incrset self._minpoints = minpoints IncrementalSet.__init__(self, [incrset])
def __init__(self, pattern, solver): self._solver = solver # convert pattern to a set of tuples listoftuples = [] for clusterpattern in pattern: (kind, clustername, pointnames) = clusterpattern listoftuples.append(tuple([kind, clustername, tuple(pointnames)])) setoftuples = frozenset(listoftuples) self._pattern = setoftuples # create sub-sets for correct type of input clusters self._subs = [] # NOTE: we cannot use source like this to link it to a pattern, because sources may be equal! self._source2pattern = {} for clusterpattern in self._pattern: (kind, clustername, pointnames) = clusterpattern sub = KindFilter(kind, len(pointnames),self._solver.top_level()) self._subs.append(sub) # NOTE: we cannot use source like this to link it to a pattern, because sources may be equal! self._source2pattern[sub]=[clusterpattern] print "creating",sub,"for",self._source2pattern[sub] #rof # create sub-sets for all pairs of clusters listoftuples = list(setoftuples) l = len(listoftuples) for i in range(l): for j in range(i+1,l): cp1 = listoftuples[i] cp2 = listoftuples[j] (kind1, clustername1, pointnames1) = cp1 (kind2, clustername2, pointnames2) = cp2 shared = set(pointnames1).intersection(set(pointnames2)) n = len(shared) if n > 0: kindfilter1 = KindFilter(kind1, len(pointnames1),self._solver.top_level()) kindfilter2 = KindFilter(kind2, len(pointnames2),self._solver.top_level()) sub = NConnectedPairs(solver, n, kindfilter1,kindfilter2) self._subs.append(sub) # NOTE: we cannot use source like this to link it to a pattern, because sources may be equal! self._source2pattern[sub]=[cp1,cp2] print "creating",sub,"for",self._source2pattern[sub] IncrementalSet.__init__(self, self._subs)