Multi-Agent Systems and Agent-Based Simulation