Maximum-weight independent set problem for a path graph

跟風遠走 提交于 2020-12-26 04:00:42

问题


While taking the Algorithms: Design and Analysis II class, one of the questions asks about the maximum-weight independent set problem for a path graph. shown below is a (blurry) screenshot of the problem statement, and the corresponding lecture videos are on YouTube:

https://www.youtube.com/watch?v=0awkct8SkxA

https://www.youtube.com/watch?v=pLOkbHGRsv0

https://www.youtube.com/watch?v=Im_zjFkZDCY

This problem can be elegantly solved by dynamic programming, with literally one line of code.

a[i] = max(a[i - 1], a[i - 2] + w[i])

The question is as follows:

Which of the following is true for our dynamic programming algorithm for computing a maximum-weight independent set of a path graph? (Assume there are no ties.)

  • As long as the input graph has at least two vertices, the algorithm never selects the minimum-weight vertex.
  • The algorithm always selects the maximum-weight vertex.
  • If a vertex is excluded from the optimal solution of two consecutive subproblems, then it is excluded from the optimal solutions of all bigger subproblems.
  • If a vertex is excluded from the optimal solution of a subproblem, then it is excluded from the optimal solutions of all bigger subproblems.

Turns out, the correct answer is #3, which is somewhat intuitive, since the optimal solution to a subproblem depends only on the solutions of the previous two subproblems. But it's not clear to me why options 1 and 2 are incorrect. Since the algorithm looks at all the vertices, it seems both of those options should be correct too.


回答1:


the algorithm never selects the minimum-weight vertex.

Consider: **3-100-4-1-5-100-6 it makes sense to choose 1, the minimum, since we want to choose the two 100's

The algorithm always selects the maximum-weight vertex.

Consider: 5-99-100-99-7

It makes sense to exclude the maximum in favour of the to 99's

For both these examples, try see what the algorithm would do and why it works.

A good way of reasoning about these types of problems is to try all permutations of (0,0,0,1,1,1,2,2,2,3,3,3,99,99,99,100,100,100) and it should give you most of the posibilities.




回答2:


OP here: Here's a full answer for completeness sake, inspired by @robert-king's answer.

Consider the path 10-2-1-4. The vertices selected by the algorithm are 10, 1, where 1, the minimum, is selected. Thus, option 1 is incorrect.

Consider the path 1-3-10-9. The vertices selected by the algorithm are 3, 9, where the maximum 10 isn't selected. Thus, option 2 is incorrect.

Consider the path 1-9-7-1-5. The vertices selected by the algorithm are 1, 7, 5. However, 7 was not included in the optimal solution of the subproblem 1-9-7. Note that, 7 was not included in the optimal solution of the subproblem 1-9-7-1 either, because the its previous vertex was "heavier", and since all weights are positive, the sum of the next weight and the heavier vertex is certainly greater than 7. Thus, option 4 is incorrect.

Option 3 is correct. This follows from induction, since the optimal solution to a subproblem depends only on the solutions of the previous two subproblems.



来源:https://stackoverflow.com/questions/53918468/maximum-weight-independent-set-problem-for-a-path-graph

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!