Starting out as an explanation of the traveling salesman problem, this article goes on to also be an excellent, and I think understandable, explanation of what an algorithm is and computational complexity. If you want to get a quick sense of what computer science is concerned about that goes beyond just “how to program”, and is more the “how to solve problems” side of things, this is a good read.
In 2006, for example, an optimal tour was produced by a team led by Cook for a 85,900-city tour. It did not, of course, given the computing constraints mentioned above, involve checking each route individually. “There is no hope to actually list all the road trips between New York and Los Angeles,” he says. Instead, almost all of the computation went into proving that there is no tour shorter than the one his team found. In essence, there is an answer, but there is not a solution. “By solution,” writes Cook, “we mean an algorithm, that is a step-by-step recipe for producing an optimal tour for any example we may now throw at it.”
The second half of the article also has some nice details about how the messy ways that people behave make the route planning problem for a company like UPS a lot more complicated than the pure traveling salesman problem:
People are also emotional, and it turns out an unhappy truck driver can be trouble. Modern routing models incorporate whether a truck driver is happy or not—something he may not know about himself. For example, one major trucking company that declined to be named does “predictive analysis” on when drivers are at greater risk of being involved in a crash. Not only does the company have information on how the truck is being driven—speeding, hard-braking events, rapid lane changes—but on the life of the driver.
This loops back to talking about (informally again) algorithms, solutions, optimization, and the idea of a heuristic approach. I’m wondering if this would also be a nice way to illustrate the idea of modeling – I’ve found that it’s a phrase we use a lot that it’s easy to nod and say “sure, a model”, but things can get confusing as you start to slip between our informal, day-to-day usage of the word model and a more technical or formal meaning. This might help bridge the gap, particularly as it starts to touch on the idea of good versus bad models.