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.

"The existing algorithm copies the whole network for each stage of the calculation and only changes one aspect of it each time," explains Frank van Bussel of the Max Planck Institute for Dynamics and Self-Organization (MPIDS). Increasing the number of nodes dramatically increases the calculation time. For a square lattice the size of a chess board, this is estimated to be many billions of years. The new algorithm developed by the Göttingen-based scientists is significantly faster. "Our calculation for the chess board lattice only takes seven seconds," explains Denny Fliegner from MPIDS.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

## magpies

## Husky

## Adriab

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

## h0dges

## Soylent

Doesn'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.

## KBK

256 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...

## mogmich

## Damon_Hastings

I 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_Hastings

That 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.

## paulcurran

I 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.