Definition (Dynamic Programming)
Consider the problem of minimizing J(t0,x0,u)=J(u)=t0∫t1L(t,x(t),u(t))dt+Q(x(t1))where u:R→U,(U⊆Rm), L:R×Rn×Rm→R is the running cost (o/w referred to as the Lagrangian), Q:Rn→R is the terminal cost, all subject to the following dynamics x˙(t)x(t0)=f(x(t),u(t),t)=x0∀t≥t0 where f:Rn×Rm×R→Rn. The goal of dynamic programming is to consider a family of minimization problems J(t,X,u)=t∫t1L(τ,x(τ),u(τ))dτ+Q(x(t1))∀t∈[t0,t1)where X∈Rn and x(t)=X. Our goal is to derive a dynamic relationship among these problems and solve all of them. To do this we introduce the Value Function V(t,X)=u[t,t1]inf{J(t,X,u)}where the control is restricted to future time. We also wish to have V(t1,X)=Q(X)∀X∈Rn