Re: (Probably flawed) Polynomial time Graph Isomorphism
- From: Patricia Shanahan <pats@xxxxxxx>
- Date: Fri, 22 Sep 2006 18:36:37 GMT
Bill Cox wrote:
I don't understand the modified hash phase.
Suppose G1 and G2 have the same initial hashes.
I pick a node in G1 to modify. Now what do I do? Try modifying each node
in G2 the same way to see if the hashes now match? Then what, if I get
multiple matches?
Patricia
Thanks for the reply!
I didn't describe the fix to the algorithm well at all. I'll reword it
on the blog. Basically, the problem in the first version of the
algorithm was that if we have graphs with the same number of vertices
and when every vertex in both graphs have the same degree, then there's
no initial difference in the hash values, and they stay in sync. The
original algorithm failed in this case.
To get around this problem, I ran the algorithm once per vertex in the
graph. Each time, I started with vertex hash values equal to its
degree, except for the one vertex chosen as the start-point for that
iteration. That vertex would start with a different hash value than
the rest, for example it could be a large fixed constant. Then, hash
values change throughout the graph and settle to unique values on each
node, unless the graph is automorphic, or in the unlikely case of a
hash collision.
A polynomial time algorithm must get the right answer, within the time
bound, even for the worst possible input. That means, for example, that
you would need to show both correctness and the time bound for the worst
possible combination of hash collisions.
To generate a label for a vertex, I XOR the hash results from each
iteration together. Thus, it doesn't matter what order I do the hash
iterations in either graph, and matching vertices should wind up with
the same hash values.
But can't non-matching vertices also end up with the same value? What
happens if, when you do the XOR, both graphs contain the same large
number of vertices all with the same hash code? Can you show that it
won't happen?
Also, if you apply different adjustments to different vertices, you
could end up with different hash codes for matching vertices in
isomorphic graphs, just because the adjustments you applied to the
matching vertices were different between G1 and G2?
I'm afraid I'm failing to see any way of adjusting the hash codes avoids
both problems.
Patricia
.
- Follow-Ups:
- Re: (Probably flawed) Polynomial time Graph Isomorphism
- From: Bill Cox
- Re: (Probably flawed) Polynomial time Graph Isomorphism
- References:
- (Probably flawed) Polynomial time Graph Isomorphism
- From: Bill Cox
- Re: (Probably flawed) Polynomial time Graph Isomorphism
- From: Patricia Shanahan
- Re: (Probably flawed) Polynomial time Graph Isomorphism
- From: Bill Cox
- (Probably flawed) Polynomial time Graph Isomorphism
- Prev by Date: Re: (Probably flawed) Polynomial time Graph Isomorphism
- Next by Date: Re: (Probably flawed) Polynomial time Graph Isomorphism
- Previous by thread: Re: (Probably flawed) Polynomial time Graph Isomorphism
- Next by thread: Re: (Probably flawed) Polynomial time Graph Isomorphism
- Index(es):
Relevant Pages
|