Agent-Based and Individual-Based Modeling: A Practical Introduction