When he's not designing software for a living, Todd Schneider makes weird and wonderful apps for fun. In his latest effort, if you enter any list of cities—in the U.S. or anywhere in the world—the app will solve the famous "traveling salesman problem", which you may remember from your college math courses. It asks: what's the shortest route, if you're visiting each city exactly once and then returning to the point of origin?
"I don't think there is any practical application (for the app)," Schneider says. It's just something cool for people, especially math students, to play around and have some fun with, he says.
The app uses "simulated annealing," a method that finds answers to problems that have a really, really large number of possible solutions—so many, that it would take forever to try every single possibility on your own.
The first phase of calculations (called "high temperature") tries only a few solutions. In this phase, the app is trying possibilities randomly. Sometimes, it accepts a solution that may take it further from the right answer. As more and more tries go by, or "temperature" gets lower, the simulation starts choosing only those possible solutions that help it find the shortest route.
It sounds counter-intuitive and confusing. But picture a marble rolling down a hilly landscape, Schneider explains. To get to the lowest point in the valley, it may have to climb up a hill first. Similarly, to get to the shortest route, it has to try the longer routes first.
Invoking the wisdom of Chief Wiggum, Schneider explains that behind the complicated math is a very simple idea: sometimes things have to get worse before they get better.