Table of Contents

Chapter 6

6.1 Weighted Interval Scheduling: A Recursive Procedure

Designing a Recursive Algorithm

Memoizing the Recursion

Analyzing the Memoized Version

Computing a Solution in Addition to Its Value

Personal Thoughts

The actual algorithms in this section were a little bit difficult to follow, but the concept of memoization makes a lot of sense to me. I think this week's problem set will help me understand the concept of finding an optimal solution using dynamic programming better.

Readability: 6.0 Interesting: 6.0


6.2 Principles of Dynamic Programming: Memoization or Iteration over Subproblems

Designing the Algorithm

Analyzing the Algorithm

A Basic Outline of Dynamic Programming

Personal Thoughts

The section was short and easy to process, as the information was clear and not overly complicated. I think this section is a good set up for the section that follows, as it sets up a nice foundation. The next section will probably do a better job of applying this conceptual idea to a problem or problems.

Readability: 8.0 Interesting: 6.5


6.3 Segmented Least Squares: Multi-way Choices

The Problem

Designing the Algorithm

Analyzing the Algorithm

Personal Thoughts

The section did a really good job laying out the algorithms in a way that was easy to follow. I think the least squares problem is also inherently easier to understand because we have worked with similar problems in math classes before. Overall, I think the algorithms and the data structures needed to solve this problem are pretty intuitive.

Readability: 8.0 Interesting: 6.5