Learning and Adaption in Multi-Agent Systems