A model and an algorithm for the dynamic user-optimal route choice problem