A mathematical programming based approach to macroscopic traffic assignment in a dynamic network with queues