Quantum computers get a lot of people excited because they solve problems in a manner that's fundamentally different from existing hardware. A certain class of mathematical problems, called NP-complete, can seemingly only be solved by exploring every possible solution, which conventional computers have to do one at a time. Quantum computers, by contrast, explore all possible solutions simultaneously, and so these can provide answers relatively rapidly.

This isn't just an intellectual curiosity; encryption schemes rely on it being too computationally challenging to decrypt a message.

But as you may have noticed, we don't yet have quantum computers, and the technical hurdles between us and them remain substantial. An international team recently decided to try a different approach, using biology to explore a large solution space in parallel. While their computational machine is limited, the basic approach works, and it's 10,000 times more energy-efficient than traditional computers.

The basic setup of their system is remarkably simple. They create a grid of channels with two types of intersections. One allows everything passing down a grid line to continue traveling in a straight line; the second divides things evenly between the two output lines. A mathematical problem can then be encoded in the pattern of these two types of switches on the grid.

One way to envision this is as a series of channels that balls can roll down. To solve the problem, you simply start a large population of balls rolling from the top. They can explore all the possible solution space on their way traveling toward the bottom and should end up collecting at the exits that correspond to any possible solutions.

Of course, doing this with something macroscopic would be rather space, time, and labor consuming. You want something small so that the switches can be placed close together, and you want something that traverses the channels relatively quickly. For this, the authors turned to biology.

Within a cell, there are networks of protein fibers that motor proteins can crawl across using ATP as an energy source. These move things around within the cell, allow the cell itself to move, and drive larger processes like the contraction of muscles. For their computations, the authors flipped this around: the channels of the grid were coated in the motor proteins, and the authors loaded fragments of the fibers at the top of the grid. As long as ATP was provided, the fibers were quickly shuffled down to the bottom of the grid, traveling at speeds of up to 10µm a second. They were tagged with fluorescent molecules, which made it easy to track their progress.

The process wasn't 100 percent precise; tubes didn't go straight through some of the straight junctions some 0.2 percent of the time. Still, when the authors set up the grid to solve an NP-complete problem (the subset sum problem) there was a statistically significant difference between the number of fiber fragments that ended up exiting at solutions vs. those that exited at an incorrect gate.

A computer could probably beat the system to a solution on small problem sets, since it takes time to load sufficient fiber fragments onto the grid and get them to traverse it. But provided the size of the grid can be kept reasonable, the time involved in producing a solution scales better. "Notably, once the device is loaded with the required number of agents," the authors write, "the effective computational time for NP-complete problems grows only polynomially."

It's also pretty energy-efficient. The authors estimate it would take an efficient computer about 10-10 Joules per operation; their system only requires about 10-14J.

Don't line up to buy a myosin-actin protein computer just yet, though. For one, the current version doesn't have reconfigurable gates on its grid, meaning that it can only solve one problem. That should be possible to overcome by changing the grid junctions. A more serious one is that adding too many more gates will cause the correct answer to be lost in the statistical noise. That may be a harder issue to fix, although the system is simple enough that it should be possible to test a lot of different conditions to find one that works better.

One thing that's not mentioned is how long it would take to determine the right configuration of the gates to solve a problem. If that adds a significant computational burden, then scaling the system will only help with extremely large problems—where noise should become a concern again. Plus there's the issue of how quickly you can load enough fibers onto the grid to get the computations started.

In any case, the authors envision a system where a traditional computer would split up a large NP-complete problem and configure the gates on multiple grids, after which proteins would do the computational work of exploring the full solution space. And since (as the authors put it) "all NP-complete problems can be converted to one another using a polynomial-time conversion," it would be a general-purpose problem solver.

I'm skeptical that it could save time except for in ludicrously large solution spaces—there are simply too many steps mentioned above that cost time. Still, the approach is a creative one, and one we can experiment with now.

PNAS, 2016. DOI: 10.1073/pnas.1510825113 (About DOIs).