This repository contains the project for the course of "Mathematical Optimisation" @ UniTS, consisting in the realisation of the paper Dynamic wireless charging lanes location model in urban networks considering route choices by Tran et al. (2022).
In particular, it contains:
- a script
vehicles.pydefining vehicles' parameters - a file
test.pywhere the proposed algorithm is executed on a small instance, in this case the Braess Network - a file
scalability.pyto be used for the scalability analysis of the algorithm - a presentation explaining the project and some of our changes, also performing scalability and parameters analysis through plots (of which code can be found in
plots.py).
Wireless charging technologies have now made it possible to charge while driving, which offers the opportunity to stimulate the market penetration of electric vehicles.
This paper aims to support the system planner in optimally deploying the wireless charging lanes on the network, considering traffic dynamics and congestion under multiple vehicle classes.
The overall objective is to maximise network performance while providing insights into traffic propagation patterns over the network. A multi-class dynamic system optimal model is adopted to compute an approximate representation of the dynamic traffic flow.
As a result, the problem is formulated as a mixed-integer linear program by integrating the dynamic routing behaviour into the charging location problem.
Finally, the proposed framework has been tested on different sized test-bed networks to examine the solution quality and illustrate the model’s efficacy.
The scalability analysis is performed on grid networks composed of 10, 28, 42, 51 and 82 links. Therefore, the user can provide the size of the grid as parsed parameter; for example:
python scalability.py --grid-size 42The following plot shows the scalability of compilation time versus the dimension of the problem, where all instances are solved on a computer MacBook Air with Apple M1 processor (8-core, 8-thread, ARM64) and usable 8 GB RAM.
The algorithm is performed using a Gurobi solver, thus an active Gurobi license is needed.
The following Python packages - installable with pip install [names] --user - are used:
- MatPlotLib for the plots in
test.pyandplots.py - NumPy for performing the cumulative sum in
test.py - networkx for automatical generation of paths from edges
