Here - Combinatorial algorithms and algorithmic graph theory
Here - Combinatorial algorithms and algorithmic graph theory
Here - Combinatorial algorithms and algorithmic graph theory
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
36 Generation of cubic <strong>graph</strong>s<br />
The discriminating power of x 0 , . . . , x 4 is sufficient to avoid the more expensive<br />
computation of x 5 , x 6 in 92% of the cases for n = 26. This fraction is increasing<br />
for larger values of n.<br />
The values x 0 , . . . , x 4 are invariant under isomorphisms, so edges that are<br />
equivalent under the automorphism group have the same values. The values x 5 , x 6<br />
have an even stronger property: two edges are equivalent under the automorphism<br />
group if <strong>and</strong> only if x 5 , x 6 are the same. So two edges have the same tuple<br />
(x 0 , . . . , x 6 ) if <strong>and</strong> only if they are in the same orbit of the automorphism group<br />
of the <strong>graph</strong>. Together with the definition of canonical labelling, this implies the<br />
following:<br />
Lemma 2.6. Let G 1 <strong>and</strong> G 2 be connected cubic <strong>graph</strong>s with reducible edges, <strong>and</strong><br />
let γ be an isomorphism from G 1 to G 2 . Let e 1 <strong>and</strong> e 2 be, respectively, reducible<br />
edges of G 1 <strong>and</strong> G 2 having largest 7-tuples. Then γ(e 1 ) is in the same orbit as<br />
e 2 . Furthermore, the <strong>graph</strong> Ḡ1 obtained by reducing e 1 in G 1 is isomorphic to<br />
the <strong>graph</strong> Ḡ2 obtained by reducing e 2 in G 2 .<br />
Next to that, there is an isomorphism from Ḡ1 to Ḡ2 mapping the edge pairs<br />
to which e 1 <strong>and</strong> e 2 were reduced onto each other: Let p 1 be the edge pair of Ḡ1<br />
obtained by applying the edge reduction to e 1 in G 1 <strong>and</strong> let p 2 be the edge pair<br />
of Ḡ2 obtained by applying the edge reduction to e 2 in G 2 . Restricting the isomorphism<br />
from G 1 to G 2 that maps e 1 to e 2 to the vertices that already belonged<br />
to Ḡ1 <strong>and</strong> Ḡ2, respectively, yields an isomorphism from Ḡ1 to Ḡ2 mapping p 1 to<br />
p 2 .<br />
The algorithm would work correctly if only x 5 , x 6 were computed, but x 0 , . . . , x 4<br />
are important for the efficiency of the algorithm. While for x 5 , x 6 a canonical<br />
form must be computed, the earlier values are based on purely local criteria that<br />
are cheaper to compute. Furthermore these criteria allow some look-ahead. For<br />
example, when exp<strong>and</strong>ing a <strong>graph</strong> G by inserting a new edge, it is easy to decide<br />
already on the level of G whether x 0 will be 1 or 0 for this edge in the exp<strong>and</strong>ed<br />
<strong>graph</strong> G ′ <strong>and</strong> whether other edges with x 0 = 1 in G ′ will exist. This allows us<br />
to avoid the construction of a lot of children that would afterwards be rejected<br />
because the last edge inserted does not have maximal value of (x 0 , . . . , x 6 ). We<br />
go into more detail about this in Section 2.5.2.<br />
What we still have to make sure is that from a <strong>graph</strong> with n − 2 vertices<br />
we never construct two isomorphic <strong>graph</strong>s that are both accepted. Therefore,<br />
when applying the edge insertion operation to a <strong>graph</strong> G, we first determine its<br />
automorphism group Aut(G). After constructing the set of all extensible edge