Dynamic programming is a methodological framework for solving optimisation problems that evolve over time by breaking them into simpler subproblems. Central to this approach is the principle of ...