
Algorithm Solves Graph Isomorphism in Record Time (2015) - howard941
https://www.quantamagazine.org/algorithm-solves-graph-isomorphism-in-record-time-20151214/
======
aDfbrtVt
Here's the updated paper with some significant corrections
[http://people.cs.uchicago.edu/~laci/upcc-
fix.pdf](http://people.cs.uchicago.edu/~laci/upcc-fix.pdf)

~~~
chmod775
Those are just the corrections, not the full paper.

~~~
dmix
This is the full paper the OP was referring to:
[http://people.cs.uchicago.edu/~laci/17groups/version2.1.pdf](http://people.cs.uchicago.edu/~laci/17groups/version2.1.pdf)

The fixes linked above are mentioned in the WARNING below the abstract and
explained at 18.1.

------
jmmcd
Slightly off-topic, this article has one of the best expositions I've seen
(the Arthur-Merlin stuff) of P, NP, NP-complete, witnesses, and the idea of
"evidence" for what complexity class the problem is in.

~~~
mpoteat
Unfortunately I found all of the story-like exposition infuriating: they never
even say what the new conjectured lower bound is.

~~~
nine_k
Likely it's the lower bound (of something) that an important conjecture in the
paper gives? That is, it's not some new kind of a lower bound, but a way to
refer to it?

------
skunkworker
"That would be the most interesting possibility, Trevisan said, since it would
make graph isomorphism the first natural problem to have a quasi-polynomial
algorithm but no polynomial algorithm. "

"Proving it would amount to solving the P versus NP problem, since it would
mean that graph isomorphism separates the problems in P from the NP-complete
problems."

(exp((log n)^O(1)))

Interesting that there could be a much more varied landscape than was
previously thought.

~~~
mehrdadn
One thing that's bothered me ever since I heard about complexity theory is why
there is no explanation given as to why polynomial and exponential
complexities are given such special status. It's just taken for granted that
polynomials and exponential are the 2 classes you care about... with no
explanation as to why the rest aren't interesting.

EDIT: Edited to clarify, sorry the question was unclear. Thanks for all the
replies, but yes, I know the basics :-) I'm not asking about why polynomial
complexities themselves are special. Rather, I was trying to ask why we only
ever talk about _polynomials and exponentials_. The only thing that's ever
justified is polynomial-time _reducibility_ within a class (which also
inherently defines the P class itself). That part is fine. But then once
that's established, people suddenly start talking about exponentials. Sorry,
but what just happened? There are an infinite number of complexities in
between to consider! Why should I suddenly not care about everything in
between? Why am I not taught a _single_ algorithm whose complexity is between
these? is my question.

~~~
xorand
Well in mathematics there is a somewhat similar phenomenon concerning the
growth of finitely generated groups. If you have a finitely generated group,
pick a generating set as an alphabet and a natural n, then ask how many
elements of the group you can build by using only words of length at most n.
This is the growth function, whose growth does not change if you pick another
generating set.

See [1] the Tits alternative which implies that if your group is linear (huh)
then the growth function is either polynomial or exponential. Then there is a
result by Gromov [2] which says that if the growth is polynomial then the
group is virtually nilpotent. There was a long standing question if there
exist finitely generated groups with an intermediate growth and the first
example was found [3].

So it's not interesting until it becomes interesting due to a newly discovered
fact.

[1]
[https://en.wikipedia.org/wiki/Tits_alternative](https://en.wikipedia.org/wiki/Tits_alternative)

[2]
[https://en.wikipedia.org/wiki/Gromov%27s_theorem_on_groups_o...](https://en.wikipedia.org/wiki/Gromov%27s_theorem_on_groups_of_polynomial_growth)

[3]
[https://en.wikipedia.org/wiki/Grigorchuk_group](https://en.wikipedia.org/wiki/Grigorchuk_group)

~~~
mehrdadn
Wow that's definitely interesting :-) thanks for sharing this! Makes you
wonder if there's a deeper connection between these two areas!

------
rsp1984
_even small graphs can be made to look very different just by moving their
nodes around_

I'm curious: for the graph isomorphism problem, how are the graphs defined
then? It seems there must be a geometric component in there because if they
were defined just in terms of abstract sets of vertices and edges between
them, it would be rather trivial to show if two graphs are the same, wouldn't
it?

~~~
DominikPeters
Graphs are given as abstract sets of vertices and sets of edges (as adjacency
lists or matrices). The problem is that corresponding vertices in the two
graphs may not have the same label, so to solve graph isomorphism naively, one
would need to try all n! possible bijections between the vertex sets (where n
is the number of vertices).

~~~
sischoel
Wikipedia has a nice picture of two graphs that are isomorph:
[https://en.wikipedia.org/wiki/Graph_isomorphism](https://en.wikipedia.org/wiki/Graph_isomorphism).

It should be noted than one of the common used algorithms, called VF2, and
descendants of it basically just check all possible bijections, although they
use some heuristics to prune the search tree.

~~~
shawnz
I think pictorial representations are what is confusing the grandparent. The
problem isn't about comparing two graphs that look different visually, it's
about comparing two graphs which have differently named labels (but might
still have the same structure). The graph isomorphism algorithm doesn't know
anything about where on the page you drew the nodes, just what is connected to
what

------
B3QL
Explanation of the current state of review:
[https://cstheory.stackexchange.com/a/40373](https://cstheory.stackexchange.com/a/40373)

------
penguin_booze
"Monads are monoids in the category of endofunctors. What's the problem?" \--
that's how every paper looks at me!

------
kzrdude
Is the algo practical, implemented by say major generic graph libraries?

~~~
sischoel
No, graph libraries usually relay on some variation of VF2 and maybe (but I
haven't checked) in some cases on the more complicated nauty/traces
algorithms.

~~~
CJefferson
(basically speaking) no-one does Graph Isomorphism with VF2, they use (as you
say) Nauty, or some system which derives from that.

Things like VF2 can be used for sub-graph isomorphism (and various variants of
that problem). Nauty (and this paper) are useless for solving that problem.

I work in this area, and it's interesting (to me at least) that you would
imagine the algorithms for graph isomorphism and sub-graph isomorphism would
be quite similar and they really aren't.

~~~
sischoel
Still, the more well known graph libraries seem to avoid Nauty, probably
because it is not that easy to implement. From a quick search: \- NetworkX:
VF2 \- JGraphT: VF2 and some newer algorithm called "color refinement
algorithm" \- seems to resemble Nauty \- BGL: VF2 \- SnapGraph: Does not seem
to contain graph isomporphism \- Igaph: Bliss and VF2

So are you convinced that Nauty is still the best thing that we have nowadays?
I was looking at the paper last summer with the intention to implement it for
Julia, but then got sidetracked with other stuff. Maybe I should resume that.

~~~
CJefferson
Nauty is I think the best trade-off. The improvements in Saucy and Bliss
(which have mostly been added to Nauty now) are useful.

The basic algorithm isn't that hard -- I have a few implementations lying
around (nothing in Julia). Traces is better, but is much harder to implement
and it isn't clear the improvement is worth it for someone implementing from
scratch.

There are some improvements, particularly for graph isomorphism (as opposed to
automorphism), but the basic algorithm framework is the same.

------
ggggtez
(2017). This is old news, I thought for a moment he had a new paper. Please
add the year.

~~~
howard941
OK

------
wolfgke
(2015)

~~~
aDfbrtVt
Technically 2017 was the latest update to the paper, but still not as
groundbreaking as the submission title.

