Applications of Dynamic Programming