How to plan your visit as a tourist using OR?
Alireza Soroudi, PhD
Lead Data Scientist @ bluecrux || SMIEEE || Optimization expert in Supply chain management|| Healthcare management || Lab Digitalization || Power and Energy systems || Developer || Author / Speaker || (views are mine)
I planned to visit city X, which is known for its numerous attractions, including museums, markets, theaters, churches, and castles. To make things easier, I identified the top 50 attractions in the city. My hotel is located at node 1.
The dictionary contains information for each node in the form (x, y, T). Here, x and y denote the location coordinates of the node, and T represents the time required for visiting.
{1: (0.5, 0.5, 0),
2: (0.603, 0.756, 20),
3: (0.075, 0.739, 18),
4: (0.225, 0.202, 13),
5: (0.377, 0.994, 16),
6: (0.997, 0.652, 7),
7: (0.014, 0.246, 3),
8: (0.455, 0.788, 13),
9: (0.557, 0.667, 14),
10: (0.371, 0.799, 1),
11: (0.131, 0.149, 3),
12: (0.179, 0.283, 10),
13: (0.646, 0.341, 19),
14: (0.792, 0.566, 12),
15: (0.255, 0.158, 14),
16: (0.311, 0.65, 13),
17: (0.721, 0.707, 9),
18: (0.974, 0.995, 7),
19: (0.345, 0.047, 6),
20: (0.287, 0.139, 3),
21: (0.736, 0.618, 18),
22: (0.056, 0.752, 18),
23: (0.469, 0.232, 19),
24: (0.067, 0.934, 4),
25: (0.379, 0.508, 19),
26: (0.213, 0.954, 3),
27: (0.283, 0.308, 16),
28: (0.589, 0.868, 10),
29: (0.967, 0.832, 5),
30: (0.803, 0.073, 20),
31: (0.937, 0.226, 4),
32: (0.607, 0.376, 10),
33: (0.469, 0.324, 5),
34: (0.409, 0.176, 16),
35: (0.63, 0.638, 10),
36: (0.394, 0.249, 19),
37: (0.556, 0.88, 20),
38: (0.438, 0.86, 14),
39: (0.828, 0.659, 1),
40: (0.132, 0.047, 5),
41: (0.695, 0.556, 5),
42: (0.825, 0.208, 19),
43: (0.731, 0.797, 19),
44: (0.872, 0.081, 15),
45: (0.97, 0.286, 4),
46: (0.899, 0.608, 1),
47: (0.706, 0.317, 2),
48: (0.413, 0.051, 13),
49: (0.498, 0.919, 16),
50: (0.998, 0.53, 8)}
TTP approach
Initially I decided to visit all these beautiful places in one day. The question I had to answer was how should this be done? Obviousley it's a traveling tourist problem !
I used ORTools to find the optimal path.
Result
The OF (total path) is 582.
TRP approach
I realized that visiting all these places in one day would be extremely tiring, so I decided to tackle the Tourist Routing Problem by dividing my visits over 4 days. For each day, I dedicated a limited amount of time as follows:
Time limit = {0:150, 1:190, 2:130, 3:170}
I used ORTools to find the optimal path in each day.
领英推荐
The coding concept is to assign each node to one day and find the tour for each day.
results:
Tired Tourist Problem:
Upon reviewing the path obtained from my previous approach, I realized that on some days, I would need to visit 10-12 nodes, which is beyond my limits. However, I still wanted to visit these locations and check them off my list. Then I thought, what if I visit most of them and just pass very close to some of them?
So, I decided that each day I would visit at most 7 locations. These locations would be carefully selected to ensure that the non-visited locations are close enough to them.
so each node is eigther visisted or it is close to a visited node.
Results:
We can also limit the daily visit time
Some observations:
Sustainability || Industry 4.0 || Manufacturing Systems
5 个月Interesting
I like it. We try to motivate our Operations Management lectures by showing a Route Inspection Problem (also called Chinese Postman Problem) for Downtown Manhattan ?? br, Stefan
International vagabond and vagrant at sprachspiegel.com, Economist and translator - Fisheries Economics Advisor
5 个月Every tourist should know and use OR before they book a trip.
Doctoral Researcher in Infrastructures and Transportation engineering at the Sapienza University of Rome
5 个月As always so interesting!