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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

20 Generation of cubic <strong>graph</strong>s<br />

We use nauty [88] to compute the automorphism group of a <strong>graph</strong> G. Nauty<br />

does not compute orbits of edges or pairs of edges of G under the action of<br />

Aut(G) by default, but by using the userautomproc option in nauty, we can save<br />

the generators of Aut(G). Using these generators we can compute the orbits of<br />

edges or pairs of edges (e.g. by using a union-find algorithm).<br />

The class of prime <strong>graph</strong>s is not closed under the three construction operations.<br />

So after applying a construction operation we still have to test whether<br />

the constructed <strong>graph</strong> is still prime. If it is not prime, the <strong>graph</strong> is not accepted<br />

by the algorithm.<br />

The coarse pseudocode for generating all non-isomorphic prime <strong>graph</strong>s is given<br />

in Algorithm 2.1 (cf. Algorithm 1.1 from Section 1.3).<br />

Algorithm 2.1 Construct prime <strong>graph</strong>s(prime <strong>graph</strong> G)<br />

output G<br />

if G has less vertices than the desired number of vertices then<br />

find expansions<br />

compute classes of equivalent expansions<br />

for each equivalence class do<br />

choose one expansion X<br />

perform expansion X<br />

if expansion is canonical <strong>and</strong> exp<strong>and</strong>ed <strong>graph</strong> is prime then<br />

Construct prime <strong>graph</strong>s(exp<strong>and</strong>ed <strong>graph</strong>)<br />

end if<br />

perform reduction X −1<br />

end for<br />

end if

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

Saved successfully!

Ooh no, something went wrong!