Originally introduced by Richard E. Bellman in (Bellman 1957), stochastic dynamic programming (SDP) is a technique for modelling and solving problems of decision making under uncertainty. Closely related to stochastic programming and dynamic programming, stochastic dynamic programming represents the problem under scrutiny in the form of a Bellman equation. The aim is to compute a policy prescribing how to act optimally in the face of uncertainty.
A motivating example: Gambling game A gambler has $2, she is allowed to play a game of chance 4 times and her goal is to maximize her probability of ending up with a least $6. If the gambler bets $ b {\displaystyle b} on a play of the game, then with probability 0.4 she wins the game, recoups the initial bet, and she increases her capital position by $ b {\displaystyle b} ; with probability 0.6, she loses the bet amount $ b {\displaystyle b} ; all plays are pairwise independent. On any play of the game, the gambler may not bet more money than she has available at the beginning of that play. Stochastic dynamic programming can be employed to model this problem and determine a betting strategy that, for instance, maximizes the gambler's probability of attaining a wealth of at least $6 by the end of the betting horizon. Note that if there is no limit to the number of games that can be played, the problem becomes a variant of the well known St. Petersburg paradox.
Formal background Consider a discrete system defined on n {\displaystyle n} stages in which each stage t = 1 , … , n {\displaystyle t=1,\ldots ,n} is characterized by
an initial state s t ∈ S t {\displaystyle s_{t}\in S_{t}} , where S t {\displaystyle S_{t}} is the set of feasible states at the beginning of stage t {\displaystyle t} ; a decision variable x t ∈ X t {\displaystyle x_{t}\in X_{t}} , where X t {\displaystyle X_{t}} is the set of feasible actions at stage t {\displaystyle t} – note that X t {\displaystyle X_{t}} may be a function of the initial state s t {\displaystyle s_{t}} ; an immediate cost/reward function p t ( s t , x t ) {\displaystyle p_{t}(s_{t},x_{t})} , representing the cost/reward at stage t {\displaystyle t} if s t {\displaystyle s_{t}} is the initial state and x t {\displaystyle x_{t}} the action selected; a state transition function g t ( s t , x t ) {\displaystyle g_{t}(s_{t},x_{t})} that leads the system towards state s t + 1 = g t ( s t , x t ) {\displaystyle s_{t+1}=g_{t}(s_{t},x_{t})} . Let f t ( s t ) {\displaystyle f_{t}(s_{t})} represent the optimal cost/reward obtained by following an optimal policy over stages t , t + 1 , … , n {\displaystyle t,t+1,\ldots ,n} . Without loss of generality in what follow we will consider a reward maximisation setting. In deterministic dynamic programming one usually deals with functional equations taking the following structure
f t ( s t ) = max x t ∈ X t { p t ( s t , x t ) + f t + 1 ( s t + 1 ) } {\displaystyle f_{t}(s_{t})=\max _{x_{t}\in X_{t}}\{p_{t}(s_{t},x_{t})+f_{t+1}(s_{t+1})\}}
… excerpt ends here. Continue reading the full article.

