Complex Systems and Agent Based Models