Main Features of Dynamic Programming