2

I was reading about the Maximum Weight Independent Set problem which is:

Input: An undirected graph G = (V, E)and a non-negative weight Wv for each vertex v ∈ V

Output: An independent set S ∈ V of G with the maximum-possible sum ∑Vw of vertex weights

and that same source (not the SO post) mentions that the problem can be solved by 4 recursive calls with a divide & conquer approach.
I googled but couldn't find such an algorithm. Does anyone have an idea how would this be solved by divide & conquer? I do understand that the running time is much worse than the Dynamic Programming I am just curious on the approach

Jim
  • 3,845
  • 3
  • 22
  • 47
  • 1
    Just for completeness: a maximum weight independent set in a graph `G` is a maximum weight clique in the [dual graph](https://en.wikipedia.org/wiki/Dual_graph) `G'` of `G`. – Codor Oct 09 '20 at 10:42
  • @Codor: Is dual the inverse? – Jim Oct 09 '20 at 10:56
  • Yes, in the sense that every non-edge becomes an edge and vice versa. – Codor Oct 09 '20 at 10:57
  • @Codor: That is very useful input, thank you for pointing it out. – Jim Oct 09 '20 at 11:01
  • Could you please reference the part that mentions the _4 recursive calls_ more precisely? I suspect there to be some mistunderstanding. – Codor Oct 09 '20 at 11:43
  • @Codor: Check here: http://www.algorithmsilluminated.org/won3sample.pdf page 107 footnote (1): `The problem can be solved inO(n2)time by a divide-and-conquer algorithmthat makesfourrecursive calls rather than two, wherenis the number of vertices.(Do you see how to do this?` – Jim Oct 09 '20 at 12:05
  • @Codor: Did that help? – Jim Oct 09 '20 at 12:55
  • Ok thanks, I thought you meant the Youtube videos. – Codor Oct 09 '20 at 12:59

1 Answers1

0

I understand the part in the manuscript in such a way that only line graphs are taken into consideration. In that case, I believe the footnote to mean the following.

If a larger line graph is taken as input and split (say at an edge which in incident with the nodes a and b), there are four cases to consider to have a proper combination step.

You would have to solve the "left" branch by solving for the cases

  • a is included in the maximum independent set
  • a is not included in the maximum independent set

and the same goes for the "right" branch. In total there are four possible ways to combine the results, out of which a maximal one is to be returned.

Codor
  • 17,447
  • 9
  • 29
  • 56
  • I am not really sure I understand the `split (say at an edge which in incident with the nodes a and b),` part. Could you please elaborate? – Jim Oct 09 '20 at 13:57
  • If an edge is adjacent to `a` and `b` and the split happens there, neither `a` nor `b` can be part of the solution since it invalidates the requirement of non-adjacency – Jim Oct 09 '20 at 16:15
  • Not quite; while a and b cannot be contained in an independent set simultaneously, both a and be may occur seperately however. – Codor Oct 09 '20 at 19:07
  • May be I didn't get the algorithm you describe. Because I thought that the edge the split happens would be part of the result during a merge step. Would it be possible to provide a bit more details on the algorithm you mention? – Jim Oct 09 '20 at 21:08
  • I think I got the idea. If we have e.g. `1-4-5-4` then the divide and conquer algorithm with return `4` from the left and `5` from the right. That is 2 recursive calls. Now since `4` and `5` are adjacent the union is not valid. So we do 1 recursive call to the left without `4` and 1 recursive call to the right without the 5. That makes 4 recursive calls in total. The result of these will be `1` and `4` and the union from these sets will combine `4` and `4`. Is that what you meant? Also is that really O(N^2) as the footnote mentions? – Jim Oct 10 '20 at 14:37