Dynamic simulation of Shanghai urban expansion based on multi-agent system and cellular automata models