This book provides a practical introduction to computationally solving discrete optimization problems using dynamic programming. From the unusually numerous and varied examples presented, readers should more easily be able to formulate dynamic programming solutions to their own problems of interest.
We also provide and describe the design, implementation, and use of a software tool, named DP2PN2Solver, that has been used to numerically solve all of the problems presented earlier in the book. This computational tool can be used by students to solve academic problems if this book is used in coursework, and by practitioners to solve many real-world problems if the state space is not too large.
Finally, this book is also a research monograph that describes a novel application of Petri net theory. DP2PN2Solver takes user input in the form of the DP functional equation for a problem, automatically constructs a Petri net model, called a Bellman net, as an internal computer representation for the DP problem, and then generates from the Bellman net the numerical solution for the DP problem. This solution can be obtained using Java, a spreadsheet, a Petri net tool, and other systems.