def maxPar2Approx(V): tree = {} for i in V: final.append(i) V = range(0, len(final)) head = 0 G = fullyConnectedGraph(V) T = nx.minimum_spanning_tree(G) addToTree(tree, T, head) # adjust nodes to add transition of generations for node in tree: final.append(final[node]) tree[node].append(node) return head, tree
def maxPar(V): tree = {} for i in V: final.append(i) V = range(0, len(final)) head = None while len(V) > 1: G = fullyConnectedGraph(V) T = nx.minimum_spanning_tree(G) A = [] while T.number_of_edges() > 0: u,v = cheapestEdge(T) A.append( (u,v) ) if T.number_of_nodes() == 2: head = len(final) T.remove_node(u) T.remove_node(v) V = T.nodes() ObtainAnc(A,tree, V) return head, tree