Exercise 1. A connected component in an undirected graph is a subgraph C with these two properties: C is connected, and no edges exist between nodes in C and nodes outside C. We consider the following problem of splitting a graph into small pieces by deleting some nodes: Given a graph G = (V, E) and an integer c, delete a subset UCV of nodes (and all their incident edges) from G such that, in the remaining graph, every connected component has at most c nodes, and the size [U] is as small as possible. The problem appears, e.g., in data analysis, where the nodes represent data items, an edge means similarity, and the data shall be partitioned into small clusters, thereby neglecting as few data as possible. Give a polynomial-time algorithm with approximation ratio no worse than c+1. That is, if there exists a solution U with |U| = k, your algorithm should delete at most (c+1)k nodes. The approximation ratio is generous, but make sure that you accurately prove it, and argue why you need only polynomial time. Advice: It is tempting to iteratively delete nodes with highest degrees in a greedy fashion, since this deletes many edges. However, this approach will fail, since the number of deleted edges is not quite related to the sizes of the remaining connected components. (This trap is not obvious, therefore we mention it here, to avoid frustration.) Instead, the following way is recommended: First study the special case c = 1 for a while, and then try to generalize your observations.
Exercise 1. A connected component in an undirected graph is a subgraph C with these two properties: C is connected, and no edges exist between nodes in C and nodes outside C. We consider the following problem of splitting a graph into small pieces by deleting some nodes: Given a graph G = (V, E) and an integer c, delete a subset UCV of nodes (and all their incident edges) from G such that, in the remaining graph, every connected component has at most c nodes, and the size [U] is as small as possible. The problem appears, e.g., in data analysis, where the nodes represent data items, an edge means similarity, and the data shall be partitioned into small clusters, thereby neglecting as few data as possible. Give a polynomial-time algorithm with approximation ratio no worse than c+1. That is, if there exists a solution U with |U| = k, your algorithm should delete at most (c+1)k nodes. The approximation ratio is generous, but make sure that you accurately prove it, and argue why you need only polynomial time. Advice: It is tempting to iteratively delete nodes with highest degrees in a greedy fashion, since this deletes many edges. However, this approach will fail, since the number of deleted edges is not quite related to the sizes of the remaining connected components. (This trap is not obvious, therefore we mention it here, to avoid frustration.) Instead, the following way is recommended: First study the special case c = 1 for a while, and then try to generalize your observations.
Related questions
Question
Can you help me solve this exercise? Please note that the greedy approach described in the advice paragraph does not work.
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 3 steps