  Given the counters of vehicles that traverse the roads of a traffic network,
we reconstruct the travel demand that generated them expressed in terms of the
number of origin-destination trips made by users. We model the problem as a
bi-level optimization problem. At the inner-level, given a tentative demand, we
solve a Dynamic Traffic Assignment (DTA) problem to decide the routing of the
users between their origins and destinations. Finally, we adjust the number of
trips and their origins and destinations at the outer-level to minimize the
discrepancy between the counters generated at the inner-level and the given
vehicle counts measured by sensors in the traffic network. We solve the DTA
problem by employing a mesoscopic model implemented by the traffic simulator
SUMO. Thus, the outer problem becomes an optimization problem that minimizes a
black-box Objective Function (OF) determined by the results of the simulation,
which is a costly computation. We study different approaches to the outer-level
problem categorized as gradient-based and derivative-free approaches. Among the
gradient-based approaches, we look at an assignment matrix-based approach and
an assignment matrix-free approach that uses the Simultaneous Perturbation
Stochastic Approximation (SPSA) algorithm. Among the derivative-free
approaches, we investigate Machine Learning (ML) algorithms to learn a model of
the simulator that can then be used as a surrogate OF in the optimization
problem. We compare these approaches computationally on an artificial network.
The gradient-based approaches perform the best in terms of solution quality and
computational requirements. In contrast, the results obtained by the ML
approach are currently less satisfactory but provide an interesting avenue for
future research.
