The hardest part of this baseball road trip so far has been to figure out how to map it out. We finally succeeded! Read on to find out how – and to see the final outcome.
Constraints We Factored into our Baseball Road Trip Map
In my last post, I reviewed some of the constraints we outlined for the schedule:
- We want to optimize mileage while meeting our other constraints.
- We need to start in Tualatin, Oregon, after Ryan’s last baseball tournament of the season. We don’t know when the last game will be, but it is likely to be on July 24th, and could be as late as 6:00 p.m..
- We need to end in Seattle no later than September 10th. We will plan to see the Mariners play in Seattle on September 11th.
- We want to see one game in each of the other 29 stadiums between our start and end dates, which gives us about 50 days to finish the Baseball Fan Grand Slam.
- We also want to visit The Field of Dreams, the Negro Leagues Baseball Museum, the National Baseball Hall of Fame, and the Louisville Slugger Museum and Factory.
- We don’t want to drive all night and prefer to drive eight or less hours per day.
- We used 50 miles per hour as our travel speed average when calculating route times.
So, how did we map out a baseball road trip with all of these constraints?
We tried a bunch of different approaches.
Building a Traveling Salesman Problem Model
This seems like a classic “Traveling Salesman Problem,” so Brad set out to work on a model to calculate the optimal baseball road trip. If you’re a bit rusty on your linear regression modeling, a Traveling Salesman Model calculates the shortest possible route between cities in a route that begins and ends at the same point.
Of course, this model is more difficult. In addition to the constraints of distances between cities, the data sets also need to include the days on which there are home games and the times of those games.
Brad decided to use Python (and R) to create his model, mostly because he has used it quite a bit in the past. However, you could use other programming tools. For example, this article outlines how to create a model using Python and Pyomo. This article uses SAS to create a salesman model and uses the baseball fan problem as an example! This article uses ompr to solve a ‘footballer’s’ version of the same puzzle.
Unfortunately, he ran into challenges with the number of constraints I provided, so he finally abandoned that approach and tried building a custom program in JavaScript.
Creating a Custom Program to Map Out Our Baseball Road Trip
Brad spent all his spare time over the course of a couple of weeks building a computer program that would optimize the route assuming a start at each of the 30 stadiums. Unfortunately, he kept running into glitches.
None of the routes seemed to completely capture the constraints we had. Or perhaps there were constraints that weren’t well articulated, like the need to have the preference to stay two nights in one location if at all possible, and the desire to have a few extra hours in some cities where we have friends!
Using Google Maps and the MLB Schedule to Map Out the Trip
While Brad was using computer programs to find an answer, I tried the old-fashioned way. I pulled out a map and the MLB schedule for 2023, and began mapping out a route one city at a time.
I tried a few different methods, but the one that worked the best started by looking at when teams in the same city played back to back. Next, I looked at groupings of teams that are near each other, like Saint Louis, Kansas City, Colorado and Cincinnati. Then I pulled the schedules of the teams that are a bit distant from others, like Colorado. Using Excel, I made a visual map to help me figure out which teams played at which times.
I used Google Maps to figure out distances between locations. Several of the attempts failed because the travel between destinations was simply too long. Finally, after several (dozen) attempts, I came up with three schedules. Two started in Minneapolis and the third started in Los Angeles.
The three that I created had the following attributes:
Of these, the best itinerary appears to be Route 3. While it does have some 4:00 a.m. starts, it doesn’t have any exceptionally short nights, has fewer long driving days in general, and has less miles to drive than the other routes. It gets us to all the games and the four other destinations on our list, and it meets most of the other constraints.
What’s the Best Way to Map Out Your Baseball Road Trip?
Whichever way actually works! Here’s our final schedule, mapped out manually:
Of course, my manual approach doesn’t tell me whether the third route is actually the optimal route, just that it will work. If someone figures out a better way to calculate the route, please share!
UGH, Well you will be in DC on the eve of my son Ryan’s wedding so we will not be able to catch up!
Oh!! I’m so bummed! I was looking forward to catching up. Congratulations on the upcoming nuptials. I hope we’ll have another excuse to get together.