Learning and adaption in distributed artificial intelligence