コード例 #1
0
def combine(ddir, first, second, combined):
    C = N.loadPajek(ddir + '/' + first)
    R = N.loadPajek(ddir + '/' + second)
    nC = len(C._nodes)
    mC = len(C._links)
    nR = len(R._nodes)
    mR = len(R._links)
    Rlist = {R._nodes[i][3]['lab']: (i, 0) for i in range(1, nR + 1)}
    for i in range(1, nC + 1):
        name = C._nodes[i][3]['lab']
        if name in Rlist:
            (a, b) = Rlist[name]
            Rlist[name] = (a, i)
        else:
            Rlist[name] = (len(Rlist) + 1, i)  # !!! ???
    nL = len(Rlist)
    I = [0] * (nC + 1)
    for (a, b) in Rlist.values():
        if b > 0: I[b] = a

    net = open(combined, "w", encoding='utf-8')
    s = net.write('\ufeff% Combine: ' + first + ' + ' + second + ' / ' +
                  str(datetime.datetime.now()) + '\n*vertices ' + str(nL) +
                  '\n')
    for i, v in enumerate(Rlist):
        s = net.write(str(i + 1) + ' "' + v + '"\n')
    s = net.write('*arcs :1 "relation 1"\n')
    for e in C._links:
        u = C._links[e][0]
        v = C._links[e][1]
        w = C._links[e][4]['w']
        s = net.write(str(I[u]) + " " + str(I[v]) + " " + str(w) + "\n")
    s = net.write('*arcs :2 "relation 2"\n')
    for e in R._links:
        u = R._links[e][0]
        v = R._links[e][1]
        w = R._links[e][4]['w']
        s = net.write(str(u) + " " + str(v) + " " + str(w) + "\n")
    net.close()
コード例 #2
0
            for CB in Cbest:
                if np.all(CC == CB):
                    newC = False
                    break
            if newC: Cbest.append(CC)
            if trace > 0:
                if n > 50: print(k + 1, j, Er)
                else: print(k + 1, j, Er, "\n  C :", C, "\n  C*:", CC)
    end = timer()
    print("time:", round(end - start, 2), "s")
    if bad > 0: print(bad, "bad initial partitions")
    if found: return (Pbest, nBest, Cbest)


# net = N.loadPajek(ddir+"/kite.net"); net.Info()
net = N.loadPajek(ddir + "/class.net")
net.Info()
# net = N.loadPajek(ddir+"/dolphins.net"); net.Info()
# net = N.loadPajek(ddir+"/USAir97.net"); net.Info()

XXX = 0
NUL = 1
COM = 2
REG = 3
RRE = 4
CRE = 5
DEN = 6
n = net._info['nNodes']
nC = 3
Q = [3, 3, 9]
dProp = 0.5