← Dynamic Programming · guided lesson

Dynamic Programming

1 / 20 · story

the story

Dynamic programming

Every tool here exists because something was too slow or broke without it. Here is what.

1952–57 · Richard Bellman (RAND Corporation)

Richard Bellman studied multistage decision problems at the RAND Corporation; his 1952 PNAS paper is titled "On the Theory of Dynamic Programming", and his 1957 book Dynamic Programming spread the method. In his 1984 autobiography he recalled choosing the name to shield the work: the Secretary of Defense, Wilson, had "a pathological fear and hatred of the word, research", while "dynamic" was a word even a Congressman couldn't object to. The dates don't quite fit — Charles Wilson took office in January 1953, after the 1952 paper already used the name — so read it as Bellman's own recollection.

the problem it solved

Multistage decisions — choosing a sequence of actions over time — where trying every sequence is hopeless, but each stage depends only on the state you are in.

why it matters: without it

Every "best way" or "how many ways" question with a choice at each step — routes, edits, budgets — would stay exponential: 45 stairs already needs billions of calls.

sources: Dreyfus — Richard Bellman on the Birth of Dynamic Programming (Operations Research, 2002), quoting Eye of the Hurricane (1984) ↗ · Bellman — On the Theory of Dynamic Programming (PNAS, 1952) ↗ · U.S. Department of Defense — Charles E. Wilson, Secretary of Defense 1953–1957 ↗

also in this chapter: Bottom-up tables and rolling rows · 0/1 and unbounded knapsack · Two-string DP: edit distance and LCS · Longest increasing subsequence (patience sorting)