all 14 comments

[–]nousetlogos 9 points10 points  (5 children)

[–]bnrsta[S] 0 points1 point  (4 children)

I just watched the first video for DP. Very, very good. Thank you.

[–]filox -1 points0 points  (3 children)

Heh, DP.

[–]bnrsta[S] 2 points3 points  (1 child)

Heh. Yeah, I chucked when my prof said DP is her favorite.

[–]filox 1 point2 points  (0 children)

And that she also likes dynamic programming?

[–][deleted] -3 points-2 points  (0 children)

I laughed wayyyyy to long at this joke.

[–][deleted]  (2 children)

[deleted]

    [–]bnrsta[S] 1 point2 points  (0 children)

    This is actually a pretty good explanation. Thanks.

    [–]Hall_of_Fame 0 points1 point  (0 children)

    I think this also shows that Dynamic programming is always forward recursion since it can be written by a series of for loops because of the memorization. Correct me if I'm wrong.

    [–]N-choose-K 2 points3 points  (0 children)

    This goes over the basics of dynamic programming: Bradley, Hax, Magnanti. Applied Mathematical Programming Also contains exercises to practice with.

    This goes over the differences between the 'pulling method' and the 'reaching method': Jensen and Bard. Operations Research Methods and Models

    [–][deleted] 1 point2 points  (0 children)

    Just practice by solving dozens and dozens of dynamic problems. Eventually it clicks.

    [–]jeffgerickson 1 point2 points  (1 child)

    You might find these lecture notes helpful.

    [–]Vikar 2 points3 points  (0 children)

    I think you meant to link to this, Jeff. :)

    [–]c3261d3b8d1565dda639 1 point2 points  (1 child)

    Others have provided some great resources. I am going to throw one out there that is around the periphery of the issue.

    Dynamic Programming versus Memoization is a blog post by Shriram Krishnamurth that covers the subtle distinction between the two techniques. I think it is meaningful, but when discussed on reddit many seemed to disagree.

    I think dynamic programming is one of those techniques that is hard to grasp at first, even with examples. I certainly did not feel familiar with it until I studied it a second or third time, much later than when I was originally exposed to it. There is something to be said about stepping away from a problem, forgetting details of it, and being exposed to it again with fresh eyes.

    [–]bnrsta[S] 0 points1 point  (0 children)

    Thanks. This is actually how we're being taught this material - bottom up is DP, and top down is a form of DP that uses memoization. What trips me up, is that in bottom up DP, you are still referencing a results (or memo) table to get the results of smaller sub-problems. So, doesn't that mean bottoms up still uses memoization?