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()
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