Rather than compute optimal utility values, policy iteration looks through the space of possible policies. We start from some initial policy and do:
- Policy evaluation: given a policy , calculate Given a policy, the choice of action in a given state is fixed so compute for every state:
Abstract
We have lots of simultaneous equations again, but this is now linear! (no max)
- Policy improvement: given , compute Calculate a new policy by applying:
for each state . (we do a one-step MEU lookahead)
We perform both of these until convergence, the iteration will terminate when there is no improvement in utility from one iteration to the next. (at this point the utility is a fixed point of the Bellman update and so must be optimal)