code: def best_policy(mdp, U):
      
      pi = {}
      for s in mdp.states:
          pi[s] = argmax(mdp.actions(s), lambda a:expected_utility(a, s, U, mdp))
      return pi
docs: Given an MDP and a utility function U, determine the best policy,
      as a mapping from state to action. (Equation 17.4)