The human mind is a path-planning wizard. Think back to pre-lockdown days when we all ran multiple errands back to back across town. There was always a mental dance in the back of your head to make sense of how you planned the day. It might go something like “first to the bank, then to drop off the dry-cleaning. Since the post office is on the way to the grocery store, I’ll pop by and send that box that’s been sitting in the trunk for a week.”
This sort of mental gymnastics doesn’t come naturally to machines — it’s actually a famous problem in computer science known as the traveling salesman problem. While it is classified in the industry as an NP-hard problem in combinatorial optimization, a more succinct and understandable definition would be: given a list of destinations, what’s the best round-trip route that visits every location?
This summer brought news that the 44-year old record for solving the problem has been broken. Let’s take a look at why this is a hard problem, and how the research team from the University of Washington took a different approach to achieve the speed up.
Continue reading “Taking A Crack At The Traveling Salesman Problem”
It is a staple of science fiction to see a brain in a jar or other container, maybe used as some sort of computer device. You are probably imagining a brain-powered supercomputer with a room full of humans with electrodes in their heads, or maybe some other primate. The reality though is it might be just a small dish full of single-celled amoeba.
Researchers from China and Japan have successfully made a lowly amoeba solve the traveling salesman problem for 8 cities. We’ll be honest. We don’t totally understand the value to it over traditional methods, but it does prove that you can compute with organic matter. This isn’t just any amoeba, though. It is a particular kind, Physarum polycephalum, that has an unusual property — it can shapeshift, at least to a limited degree. The tiny creature is just like us in that it tries to get things it likes and avoid things it doesn’t like. It likes food, but it doesn’t like light.
Provide food, and the tiny creature will spread out. Shine light on it, and it will retract. That’s the property used to solve the thorny problem, but before we look at how that works it helps to understand the problem it is trying to solve.
Continue reading “Excuse Me, I Have To Feed The Computer”
If you’re headed over to mainland China as a tourist, it’s possible to get to most of the country by rail. China is huge though, about the same size as the United States and more than twice the size of the European Union. Traveling that much area isn’t particularly easy. There are over 300 train terminals in China, and finding the quickest route somewhere is not obvious at all. This is an engineering challenge waiting to be solve, and luckily some of the students at Cornell Engineering have taken a stab at efficiently navigating China’s rail system using an FPGA.
The FPGA runs an algorithm for finding the shortest route between two points, called Dijkstra’s algorithm. With so many nodes this can get cumbersome for a computer to calculate, but the parallel processing of a dedicated FPGA speeds up the process significantly. The FPGA also includes something called a “hard processor system“, or HPS. This is not a soft-core, but dedicated computing hardware in the form of an ARM Cortex-A9. Testing showed that utilizing both the HPS and the FPGA can speed up the computation by up to ten times over a microcontroller alone.
This project goes into extreme detail on the methodology and the background of the math and coding involved, and is definitely worth a read if you’re interested in FPGAs or traveling salesman-esque problems. FPGAs aren’t the only dedicated hardware you can use to solve these kinds of problems though, if you have a big enough backpack while you’re traveling around China you could also use a different kind of computer.
Continue reading “Using An FPGA To Navigate China’s Railroads”