Co-ordination in Artificial Agent Societies