Beispiel #1
0
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)
Beispiel #2
0
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)