An improved algorithm for solving communicating average reward Markov decision processes