Forecasting travel: An agent-based approach