def simpleGraphs(): a = Node("a") b = Node("b") c = Node("c") d = Node("d") e = Node("e") f = Node("f") g = Node("g") h = Node("h") i = Node("i") j = Node("j") k = Node("k") l = Node("l") Edge(a, b) Edge(a, k) Edge(b, c) Edge(k, l) Edge(j, i) Edge(h, g) Edge(f, g) Edge(e, b) Edge(d, e) Edge(k, j) Edge(k, g) part_a = set([a, c, e, g, i, k]) part_b = set([b, d, f, h, j, l]) print "Running KL with initial partition", part_a, part_b, "cut size: ", cut_size(part_a, part_b) (new_a, new_b) = kernighan_lin(part_a, part_b) print "KL returned new partition", new_a, new_b print "New cut size: ", cut_size(new_a, new_b) part_a = set([a, h, f, g, l, k]) part_b = set([b, d, e, c, j, i]) print "Running KL with initial partition", part_a, part_b, "cut size: ", cut_size(part_a, part_b) (new_a, new_b) = kernighan_lin(part_a, part_b) print "KL returned new partition", new_a, new_b print "New cut size: ", cut_size(new_a, new_b)
def run(): part_a = set(val[:len(val)/2]) part_b = set(val[len(val)/2:]) (new_a, new_b) = kernighan_lin(part_a, part_b)
part_b = set(val[len(val)/2:]) # origs = [] # news = [] # for i in range(0, 100): # shuffle(val) # part_a = set(val[:len(val)/2]) # part_b = set(val[len(val)/2:]) # sz = cut_size(part_a, part_b) # origs.append(sz) # (new_a, new_b) = kernighan_lin(part_a, part_b) # sz = cut_size(new_a, new_b) # news.append(sz) # print i # for o in origs: # print o # for n in news: # print n print "Running KL with initial partition (found by taking every second element) cut size: ", cut_size(part_a, part_b) (new_a, new_b) = kernighan_lin(part_a, part_b) print "KL returned new partition with cut size: ", cut_size(new_a, new_b) print timeit.Timer("run()","from __main__ import run").timeit(100)