# A new kind of counting: Scientists develop computer algorithm to solve previously unsolvable counting problems

In principle, there has always been a way to solve them. However, computers were unable to find the solution as the calculations took too long. With the new method, the scientists look at separate sections of the problem and work through them one at a time. Up to now, each stage of the calculation has involved the whole map or the whole sudoku. The answers to many problems in physics, mathematics and computer science can be provided in this way for the first time. (*New Journal of Physics*, February 4, 2009)

Whether sudoku, a map of Germany or solid bodies - in all of these cases, it’s all about counting possibilities. In the sudoku, it is the permitted solutions; in the solid body, it is the possible arrangements of atoms. In the map, the question is how many ways the map can be colored so that adjacent countries are always shown in a different color. Scientists depict these counting problems as a network of lines and nodes. Consequently, they need to answer just one question: How many different ways are there to color in the nodes with a certain number of colors? The only condition: nodes joined by a line may not have the same color. Depending on the application, the color of a node is given a completely new significance. In the case of the map, "color" actually means color; with sudoku the "colors" represent different figures.

This is how it’s done: With the new method, the researchers move through the network node by node. As if the computer program were short-sighted, it only ever looks at the next node point and not at the whole network. At the first node point, it cannot finalize the color selection as it would have to know how all the other nodes are connected to each other. However, instead of answering this question, the program notes down a formula for the first lattice point which contains this uncertainty as an unknown quantity. As it progresses through the network, all the connections become visible and the unknown quantities are eliminated. Having arrived at the final node point, the program’s knowledge of the network is complete.

This new method can be used on much more complicated cases than the existing standard algorithm. "We can now answer many questions in physics, graph theory and computer science that have hitherto been practically unsolvable," says Marc Timme from MPIDS. "For example, our method can be applied to antiferromagnetic solids," he adds. In these solid bodies, every atom has an internal rotational pulse, called spin, which can have different values. Usually, adjacent atoms exhibit different spins. It is now possible to calculate the number of possible spin arrangements, which will allow physicists to draw conclusions about the fundamental characteristics of the thermodynamics of solid bodies.

__More information__: Marc Timme, Frank van Bussel, Denny Fliegner, and Sebastian Stolzenberg, Counting Complex Disordered States by Effiecient Pattern Matching: Chromatic Polynomials and Potts Partition Functions, *New Journal of Physics* 11 (2009), 023001, February 4th, 2009, www.iop.org/EJ/abstract/1367-2630/11/2/023001/

Provided by Max-Planck-Institute

**Citation**: A new kind of counting: Scientists develop computer algorithm to solve previously unsolvable counting problems (2009, February 11) retrieved 19 May 2019 from https://phys.org/news/2009-02-kind-scientists-algorithm-previously-unsolvable.html

## User comments

magpiesHuskyAdriabTrading storage for speed is a viable option now that memory is cheap.

SoylentDoesn't always work well; memory grows ever more distant from the processor(with the exception of integrated memory controllers).

When you're doing something that defeats the usual tricks of caching, out of order execution, speculative reads etc. (like pointer chasing or something) it's going to take upwards of 100-200 clock cycles to get the requested piece of data and you could have executed a lot of instructions in that time.

KBK256 bit? Not good enough........

That's the way the essence of 'reality' tends to be. You can't have one side of the coin-without the other. Both situations emerge, relatively speaking-at the same time.

Sorry. That's the way she goes...

mogmichDamon_HastingsI don't see any explanation of how this new algorithm differs from the standard backtracking (node-by-node) algorithm which was given in my computer science textbook in college 20 years ago, and which does *not* copy the entire matrix at each step, and which was quite slow anyway. Could the author of this article please explain the difference? The article refers to "looking at separate sections of the problem" which sounds tantalizingly like parallelization (which would indeed be a real improvement) -- but then goes on to describe what sounds like a standard backtracking algorithm with no parallelization.

The standard backtracking algorithm is listed as the first result from a google search on "map coloring backtracking algorithm". (Okay, well, that implementation does copy the entire matrix each time, but it would be rather trivial to add in an "undo" stack to allow undoing modifications which were made directly to the original matrix rather than a copy. They only left that optimization out of this example for simplicity, since this is a teaching manual for an introductory programming class.)

BeastOfBodmin> Why is this new?

From Damon_Hastings:

> I don't see any explanation of how this new algorithm differs from the standard backtracking ...

Have you read the actual paper linked to at the bottom of the article?

Damon_HastingsThat article is not written for even a well-educated computer programmer. It dives quickly and deeply into quantum mechanics, of all things. The "zero-temperature partition function of the Potts antiferromagnet" (whatever that is) seems to be the key to the whole thing.

To understand the dense, narrow-niche jargon would require several years of training in QM and apparently a few exotic fields of math, as well. But I don't really need a deep understanding anyway, just a basic overview. For that, a more efficient way to get a basic overview would be to just call the author and interview him. And then maybe I could summarize my basic overview into an article which I could publish on, oh, I don't know, maybe some popular science news website where others could benefit from my work without having to call the author themselves.

Personally, I don't think I should have to take a course in quantum mechanics to understand a new computer algorithm on map-coloring. But I don't know, maybe the author decided that no one without a QM degree could even understand a basic overview of this new algorithm, and that's why he left it out and instead gave a basic overview of *all* backtracking map-coloring algorithms.

paulcurranI read the article and while hard at times I was able to follow it. Granted I had some courses in QM, but that was over 20 years ago.

If this type of material is to become critical one day for programmers, one really doesn't need to study quantum mechanics. However I can see where studying the methods of QM would be very advantageous. But at one time calculus was seen as a rather esoteric topic but it is now seen as a topic that many need to know. Perhaps one day the mathematics of QM would be seen in the same light.

Please sign in to add a comment. Registration is free, and takes less than a minute. Read more