Exploiting Emergence, Heterogeneity, and Knowledge Transfer in Multi-Agent Systems