A dynamic programming approach to solving constrained linear–quadratic optimal control problems. (October 2020)