Comparison
As you see, the first solution visits all stadiums in 12 days, 23 hours. The second solution almost doubles the total trip time; however, it reduces the cost by more than half. After we focus on our CO2e emission, we reduced it very significantly to 592 kg, an 81% reduction compared to the first solution. Using an electric car instead of trains gives the lowest emissions with a trip of 20 days and four hours, but this solution reduces emissions by 97% compared to the first solution. Unfortunately, though, the data shows that such eco-friendly travel options will cost you (the fan) more, due to higher costs of train or ferry fees compared to airplane tickets.
It might be difficult to make up your mind when it comes to the actual decision. There are several aspects of travel you will also need to sort out, like accommodations and obtaining visas. Our purpose in this analysis was highlighting the optimisation capabilities of SAS through Python making use of the available data on different transportation modes.
Leave a comment to share your optimal path for the tournament!
Technical Details
The data we used in the problem is obtained through several resources. We have used Python package geopy, routingpy and ipyleaflet to collect stadium coordinates and generate animated maps. Duration and estimated prices of all modes of transportation are provided by Rome2Rio.com. Their site provides several transportation alternatives for each destination.
Mathematical model
We have modelled the optimisation problem using our Python interface to SAS Optimization, called sasoptpy. The model in mathematical form is as follows:
Our first decision variable is UseArc, which takes value 1 if we watch game g2 right after game g1:
Second decision variable is UseMethod, which decides the mode of transportation between games.
Finally, the optimisation model (for the shortest path) is written as follows:
Here, we decide which arc and mode of transportation to use at each step. We use the auxiliary source and sink nodes to complete the model. This optimisation formulation is based on our previous work to find the optimal tour for visiting all 30 MLB stadiums in the US. The first constraint satisfies balance between in and out connections, the second constraint ensures we visit each venue exactly once, the third constraint forces to use a single mode of transportation for each arc and the last constraint checks if we can catch a game using the chosen mode of transportation.
Python formulation
See below for a short summary of the optimisation model in Python:
We have used different objectives for the shortest path and the least emissions objectives. See our GitHub repository if you would like to learn more.
To learn more about Python interfaces SAS provides, check our developer website and GitHub page.