Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def kVertexCover(G, n):
- rec = rec_kVertexCover(G, n, set())
- return set(rec)
- def rec_kVertexCover(graph, k, visited):
- edgess = [a for y in graph.values() for a in y]
- edges = set(filter(lambda x: x not in visited, edgess))
- print(edgess)
- print(edges)
- print()
- if len(edges) == 0:
- print("GEVONDEN")
- return []
- if len(edges) / 2 > k:
- return None
- edge = None
- for key in graph.keys:
- for el in graph[key]:
- if key not in visited and el not in visited:
- edge = (key, el)
- break
- visited.add(edge[0])
- cover1 = rec_kVertexCover(graph, k - 1, visited)
- if cover1 is None:
- visited.remove(edge[0])
- visited.add(edge[1])
- cover2 = rec_kVertexCover(graph, k - 1, visited)
- if cover2 is None:
- visited.remove(edge[1])
- return None
- else:
- return cover2 + [edge[1]]
- else:
- return cover1 + [edge[0]]
- # print(
- # kVertexCover({'A': ['B', 'E'], 'B': ['A', 'C', 'D', 'E', 'F'], 'C': ['B'], 'D': ['B'], 'E': ['A', 'B'], 'F': ['B']},
- # 2)
- # )
- print(kVertexCover({'A': ['B'], 'B': ['A', 'C'], 'C': ['B']}, 1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement