Dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is applicable to problems exhibiting the properties of overlapping subproblems[1] and optimal substructure (described below). When applicable, the method takes far less time than naive methods that don't take advantage of the subproblem overlap (like depth-first search).
The following matlab project contains the source code and matlab examples used for dynamic programming.
The following Matlab project contains the source code and Matlab examples used for adaptive dynamic programming for uncertain continuous time linear systems.
This is the (improved) code used for simulation in the paper
Y.