Example #1
0
def graph_to_int(graph):
	"""Encode a graph as an integer."""
	max_node = len(graph.nodes)
	encoded = 0
	k = 1
	for i, edge in enumerate(g.complete_graph_edges(max_node)):
		if edge in graph.edges:
			encoded |= k
		k <<= 1
	return encoded
Example #2
0
def int_to_graph(i, n=1):
	"""Decode an integer as a graph."""
	while 1 << g.choose(n, 2) <= i:
		n += 1
	graph = g.Graph()
	graph.add_nodes(xrange(1, n + 1))
	k = 1	
	for edge in g.complete_graph_edges(n):
		if i & k:
			graph.add_edge(*edge)
		k <<= 1
	return graph