A Column Generation Algorithm for Optimal Traffic Assignment