Agent-based modeling in social science, history, and philosophy