Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. def kVertexCover(G, n):
  2. rec = rec_kVertexCover(G, n, set())
  3. return set(rec)
  4.  
  5.  
  6. def rec_kVertexCover(graph, k, visited):
  7. edgess = [a for y in graph.values() for a in y]
  8. edges = set(filter(lambda x: x not in visited, edgess))
  9. print(edgess)
  10. print(edges)
  11. print()
  12. if len(edges) == 0:
  13. print("GEVONDEN")
  14. return []
  15. if len(edges) / 2 > k:
  16. return None
  17. edge = None
  18. for key in graph.keys:
  19. for el in graph[key]:
  20. if key not in visited and el not in visited:
  21. edge = (key, el)
  22. break
  23.  
  24. visited.add(edge[0])
  25.  
  26. cover1 = rec_kVertexCover(graph, k - 1, visited)
  27. if cover1 is None:
  28. visited.remove(edge[0])
  29. visited.add(edge[1])
  30. cover2 = rec_kVertexCover(graph, k - 1, visited)
  31. if cover2 is None:
  32. visited.remove(edge[1])
  33. return None
  34. else:
  35. return cover2 + [edge[1]]
  36. else:
  37. return cover1 + [edge[0]]
  38.  
  39.  
  40. # print(
  41. # kVertexCover({'A': ['B', 'E'], 'B': ['A', 'C', 'D', 'E', 'F'], 'C': ['B'], 'D': ['B'], 'E': ['A', 'B'], 'F': ['B']},
  42. # 2)
  43. # )
  44. print(kVertexCover({'A': ['B'], 'B': ['A', 'C'], 'C': ['B']}, 1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement