24.12.2013 Views

Here - Combinatorial algorithms and algorithmic graph theory

Here - Combinatorial algorithms and algorithmic graph theory

Here - Combinatorial algorithms and algorithmic graph theory

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!