Algorytm będący przykładem Dynamic programming (RL). Polega na naprzemiennym stosowaniu dwóch kroków: Policy evaluation oraz Policy improvement.
Klasycznie w algorytmie stosujemy na przemian te kroki. Ogólnie jednak te kroki mogą się przeplatać niekoniecznie jeden-do-jednego. Takie podejście nazywa się generalized policy iteration (GPI).