Dynamic Programming in Reinforcement Learning