Dynamic Programming With Python

Gurram Sunitha, Arman Abouali, Mohammad Gouse Galety, A. V. Sriharsha · Advances in systems analysis, software engineering, and high performance computing book series · 2023

Algorithms are at the heart of computer programming. They form the basis of all software applications and help to solve complex computational problems. Various problem-solving strategies involve divide and conquer, greedy, recursion, dynamic programming, backtracking, etc. This can be used to solve optimization problems that have overlapping subproblems. It aims to find an optimal solution by breaking down a problem into sub-problems in order to manage the complexity of the problem-solving and remembering their solutions in order to avoid repeating computation time in future steps. Mathematical optimization is a crucial component of dynamic programming, and it allows us to efficiently solve a wide range of problems that involve making decisions over time. This chapter discusses dynamic programming's relevance, mathematical optimization, ability to solve a wide range of issues, important qualities, and top-down and bottom-up problem-solving methodologies. Dynamic programming solves some typical computational problems effectively, and Python code is supplied for reference.

Read the paper · More papers on PaperTik