**Exercise 16.1-1**

- 1.
- Optimal substructure (already proven)
- 2.
- Recursive, overlapping problems (need to show this)
- 3.
- Bottom-up algorithm
- 4.
- Compute solution

Recursive Algorithm -- find all possible compatible subsets, notice repeated subproblems.

The number of distinct subproblems is exponential (the power set), so Dynamic Programming is not a good idea.