Approximate Dynamic Programming: Solving the Curses of Dimensionality