The Policy Improvement Algorithm for Markov Decision Processes