An evacuation plan helps people move away from an area or a building. To assist rapid evacuation, we present an algorithm to compute the optimal route for each local region. The idea is to reduce congestion and maximize the number of evacuees arriving at exits in each time span. Our system considers crowd distribution, exit locations, and corridor widths when determining optimal routes. It also simulates crowd movements during route optimization. As a basis, we expect that neighboring crowds who take different evacuation routes should arrive at respective exits at nearly the same time. If this is not the case, our system updates the routes of the slower crowds. As crowd simulation is non-linear, the optimal route is computed in an iterative manner. The system repeats until an optimal state is achieved. In addition to directly computing optimal routes for a situation, our system allows the structure of the situation to be decomposed, and determines the routes in a hierarchical manner. This strategy not only reduces the computational cost but also enables crowds in different regions to evacuate with different priorities. Experimental results, with visualizations, demonstrate the feasibility of our evacuation route optimization method.