没有合适的资源?快使用搜索试试~ 我知道了~
3_Nauty新论文1
需积分: 0 0 下载量 62 浏览量
2022-08-03
19:25:42
上传
评论
收藏 4.07MB PDF 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/86303335/0001-58e9a61eb803246038a95768d0a792aa_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
22页
3_Nauty新论文1
资源详情
资源评论
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86303335/bg1.jpg)
Practical graph isomorphism, II
Brendan D. McKay
Research School of Computer Science, Australian National University, Canberra ACT 0200,
Australia
1
Adolfo Piperno
Dipartimento di Informatica, Sapienza Universit`a di Roma, Via Salaria 113, I-00198 Roma,
Italy
Abstract
We report the current state of the graph isomorphism problem from the practical point of view.
After describing the general principles of the refinement-individualization paradigm and proving
its validity, we explain how it is implemented in several of the key programs. In particular, we
bring the description of the best known program nauty up to date and describe an innova-
tive approach called Traces that outperforms the competitors for many difficult graph classes.
Detailed comparisons against saucy, Bliss and conauto are presented.
Email addresses: bdm@cs.anu.edu.au (Brendan D. McKay), piperno@di.uniroma1.it (Adolfo
Piperno).
1
Supported by the Australian Research Council.
Preprint submitted to Elsevier — nautytraces2b — 9 January 2013 —
arXiv:1301.1493v1 [cs.DM] 8 Jan 2013
![](https://csdnimg.cn/release/download_crawler_static/86303335/bg2.jpg)
1. Introduction
An isomorphism between two graphs is a bijection between their vertex sets that pre-
serves adjacency. An automorphism is an isomorphism from a graph to itself. The set of
all automorphisms of a graph G form a group under composition called the automorphism
group Aut(G).
The graph isomorphism problem (GI) is that of determining whether there is an
isomorphism between two given graphs. GI has long been a favorite target of algorithm
designers—so much so that it was already described as a “disease” in 1976 (Read and
Corneil, 1977).
Though it is not the focus of this paper, we summarize the current state of the the-
oretical study of graph isomorphism. It is obvious that GI ∈ NP but unknown whether
GI ∈ co-NP. As that implies, no polynomial time algorithm is known (despite many
published claims), but neither is GI known to be NP-complete. NP-completeness is con-
sidered unlikely since it would imply collapse of the polynomial-time hierarchy (Goldre-
ich et al., 1991). The fastest proven running time for GI has stood for three decades at
e
O(
√
n log n)
(Babai et al., 1983).
On the other hand, polynomial time algorithms are known for many special classes of
graphs. The most general such classes are those with a forbidden minor (Ponomarenko,
1988; Grohe, 2010) and those with a forbidden topological minor (Grohe, 2012). These
classes include many earlier classes such as graphs of bounded degree (Luks, 1982),
bounded genus (Filotti and Mayer, 1980; Miller, 1980) and bounded tree-width (Bod-
laender, 1990). The algorithms resulting from this theory are most unlikely to be useful
in practice. Only for a very few important graph classes, such as trees (Aho et al., 1974)
and planar graphs (Colbourn and Booth, 1981) are there practical approaches which are
sure to outperform general methods such as described in this paper.
Testing two graphs for isomorphism directly can have the advantage that an isomor-
phism might be found long before an exhaustive search is complete. On the other hand,
it is poorly suited for the common problems of rejecting isomorphs from a collection of
graphs or identifying a graph in a database of graphs. For this reason, the most common
practical approach is “canonical labelling”, a process in which a graph is relabeled in such
a way that isomorphic graphs are identical after relabelling. When we have an efficient
canonical labelling procedure, we can use a sorting algorithm for removing isomorphs
from a large collection and standard data structures for database retrieval.
It is impossible to comprehensively survey the history of this problem since there are
at least a few hundred published algorithms. However, a clear truth of history is that
the most successful approach has involved fixing of vertices together with refinement of
partitions of the vertex set. This “individualization-refinement” paradigm was introduced
by Parris and Read (1969) and developed by Corneil and Gotlieb (1970) and Arlazarov et
al. (1974). However, the first program that could handle both structurally regular graphs
with hundreds of vertices and graphs with large automorphism groups was that of McKay
(1978b, 1980), that later became known as nauty. The main advantage of nauty over
earlier programs was its innovative use of automorphisms to prune the search. Although
there were some worthy competitors (Leon, 1990; Kocay, 1996), nauty dominated the
field for the next several decades.
This situation changed when Darga et al. (2004) introduced saucy, which at that stage
was essentially a reimplementation of the automorphism group subset of nauty using
2
![](https://csdnimg.cn/release/download_crawler_static/86303335/bg3.jpg)
sparse data structures. This gave it a very large advantage for many graphs of practical
interest, prompting the first author to release a version of nauty for sparse graphs. Saucy
has since introduced some important innovations, such as the ability to detect some types
of automorphism (such as those implied by a locally tree-like structure) very early (Darga
et al., 2008). Soon afterwards Juntilla and Kaski (2007, 2011) introduced Bliss, which
also used the same algorithm but had some extra ideas that helped its performance on
difficult graphs. In particular, it allowed refinement operations to be aborted early in
some cases. The latter idea reached its full expression in Traces, which we introduce in
this paper. More importantly, Traces pioneered a major revision of the way the search
tree is scanned, which we will demonstrate to produce great efficiency gains.
Another program worthy of consideration is conauto (L´opez-Presa and Fern´andez
Anta, 2009; L´opez-Presa et al., 2011). It does not feature canonically labelling, though
it can compare two graphs for isomorphism.
In Section 2, we provide a description of algorithms based on the individualization-
refinement paradigm. It is sufficiently general to encompass the primary structure of all
of the most successful algorithms. In Section 3, we flesh out the details of how nauty and
Traces are implemented, with emphasis on how they differ from differ. In Section 4, we
compare the performance of nauty and Traces with Bliss, saucy and conauto when
applied to a variety of families of graphs ranging from those traditionally easy to the
most difficult known. Although none of the programs is the fastest in all cases, we will
see that nauty is generally the fastest for small graphs and some easier families, while
Traces is better, sometimes in dramatic fashion, for most of the difficult graph families.
2. Generic Algorithm
In this section, we give formal definitions of colourings (partitions), invariants, and
group actions. We then define the search tree which is at the heart of most recent graph
isomorphism algorithms and explain how it enables computation of automorphism groups
and canonical forms. This section is intended to be a self-contained introduction to the
overall strategy and does not contain new features.
Let G = G
n
denote the set of graphs with vertex set V = {1, 2, . . . , n}.
2.1. Colourings
A colouring of V (or of G ∈ G) is a surjective function π from V onto {1, 2, . . . , k} for
some k. The number of colours, i.e. k, is denoted by |π|. A cell of π is the set of vertices
with some given colour; that is, π
−1
(j) for some j with 1 ≤ j ≤ |π|. A discrete colouring
is a colouring in which each cell is a singleton, in which case |π| = n. Note that a discrete
colouring is a permutation of V .
If π, π
0
are colourings, then π
0
is finer than or equal to π, written π
0
π, if π(v) <
π(w) ⇒ π
0
(v) < π
0
(w) for all v, w ∈ V . (This implies that each cell of π
0
is a subset of a
cell of π, but the converse is not true.)
Since a colouring partitions V into cells, it is frequently called a partition. However,
note that the colours come in a particular order and this matters when defining concepts
like “finer”.
A pair (G, π), where π is a colouring of G, is called a coloured graph.
3
![](https://csdnimg.cn/release/download_crawler_static/86303335/bg4.jpg)
2.2. Group actions and isomorphisms
Let S
n
denote the symmetric group acting on V . We indicate the action of elements
of S
n
by exponentiation. That is, for v ∈ V and g ∈ S
n
, v
g
is the image of v under g.
The same notation indicates the induced action on complex structures derived from V ;
in particular:
(a) If W ⊆ V , then W
g
= {w
g
: w ∈ W }, and similarly for sequences.
(b) If G ∈ G, then G
g
∈ G has v
g
adjacent to w
g
exactly when v and w are adjacent
in G. As a special case, a discrete colouring π is a permutation on V so we can
write G
π
.
(c) If π is a colouring of V , then π
g
is the colouring with π
g
(v) = π(v
g
) for each v ∈ V .
(d) If (G, π) is a coloured graph, then (G, π)
g
= (G
g
, π
g
).
Two coloured graphs (G, π), (G
0
, π
0
) are isomorphic if there is g ∈ S
n
such that
(G
0
, π
0
) = (G, π)
g
, in which case we write (G, π)
∼
=
(G
0
, π
0
). Such a g is called an isomor-
phism. The automorphism group Aut(G, π) is the group of isomorphisms of the coloured
graph (G, π) to itself; that is,
Aut(G, π) = {g ∈ S
n
: (G, π)
g
= (G, π)}.
A canonical form is a function
C : G × Π → G ×Π
such that, for all G ∈ G, π ∈ Π and g ∈ S
n
,
(C1) C(G, π)
∼
=
(G, π),
(C2) C(G
g
, π
g
) = C(G, π).
In other words, it assigns to each coloured graph an isomorphic coloured graph that
is a unique representative of its isomorphism class. It follows from the definition that
(G, π)
∼
=
(G
0
, π
0
) ⇔ C(G, π) = C(G
0
, π
0
).
Property (C2) is an important property that must be satisfied by many functions
we define. It says that if the elements of V appearing in the inputs to the function are
renamed in some manner, the elements of V appearing in the function value are renamed
in the same manner. We call this label-invariance.
2.3. Search tree
Now we define a rooted tree whose nodes correspond to sequences of vertices, with the
empty sequence at the root of the tree. The sequences become longer as we move down
the tree. Each sequence corresponds to a colouring of the graph obtained by giving the
vertices in the sequence unique colours then inferring in a controlled fashion a colouring
of the other vertices. Leaves of the tree correspond to sequences for which the derived
colouring is discrete.
To formally define the tree, we first define a “refinement function” that specifies the
colouring that corresponds to a sequence. Let V
∗
denote the set of finite sequences of ver-
tices. For ν ∈ V
∗
, |ν| denotes the number of components of ν. If ν = (v
1
, . . . , v
k
) ∈ V
∗
and
w ∈ V , then ν kw denotes (v
1
, . . . , v
k
, w). Furthermore, for 0 ≤ s ≤ k, [ν]
s
= (v
1
, . . . , v
s
).
The ordering ≤ on finite sequences is the lexicographic order: If ν = (v
1
, . . . , v
k
) and
ν
0
= (v
0
1
, . . . , v
0
`
), then ν ≤ ν
0
if ν is a prefix of ν
0
or there is some j ≤ min{k, `} such
that v
i
= v
0
i
for i < j and v
j
< v
0
j
.
4
![](https://csdnimg.cn/release/download_crawler_static/86303335/bg5.jpg)
A refinement function is a function
R : G × Π ×V
∗
→ Π
such that for any G ∈ G, π ∈ Π and ν ∈ V
∗
,
(R1) R(G, π, ν) π;
(R2) if v ∈ ν, then {v} is a cell of R(G, π, ν);
(R3) for any g ∈ S
n
, we have R(G
g
, π
g
, ν
g
) = R(G, π, ν)
g
.
To complete the definition of the tree, we need to specify what are the children of each
node. We do this by choosing one non-singleton cell of the colouring, called the target
cell, and appending an element of it to the sequence.
A target cell selector chooses a non-singleton cell of a colouring, if there is one. For-
mally, it is a function
T : G × Π × V
∗
→ 2
V
such that for any π
0
∈ Π, G ∈ G and ν ∈ V
∗
,
(T1) if R(G, π
0
, ν) is discrete, then T (G, π
0
, ν) = ∅;
(T2) if R(G, π
0
, ν) is not discrete, then T (G, π
0
, ν) is a non-singleton cell of R(G, π
0
, ν);
(T3) for any g ∈ S
n
, we have T (G
g
, π
g
, ν
g
) = T (G, π, ν)
g
.
Now we can define the search tree T (G, π
0
) depending on an initially-specified coloured
graph (G, π
0
). The nodes of the tree are elements of V
∗
.
(a) The root of T (G, π
0
) is the empty sequence ( ).
(b) If ν is a node of T (G, π
0
), let W = T (G, π
0
, ν). Then the children of π are
{ν kw : w ∈ W }.
This definition implies by (T2) that a node ν of T (G, π
0
) is a leaf iff R(G, π
0
, ν) is
discrete.
For any node ν of T (G, π
0
), define T (G, π
0
, ν) to be the subtree of T (G, π
0
) consisting
of ν and all its descendants. The following lemmas are easily derived using induction from
the definition of the search tree and the properties of the functions R, T and I.
Lemma 1. For any G ∈ G, π
0
∈ Π, g ∈ S
n
, we have T (G
g
, π
g
0
) = T (G, π
0
)
g
.
Proof. Let ν = (v
1
, . . . , v
k
) be a node of T (G, π
0
). It is easily proved by induction on s
that [ν
g
]
s
is a node of T (G
g
, π
g
0
) for 0 ≤ s ≤ k. Therefore, T (G, π
0
)
g
⊆ T (G
g
, π
g
0
). The
reverse inclusion follows on considering g
−1
instead, so the lemma is proved. 2
Corollary 2. Let ν be a node of T (G, π
0
) and let g ∈ Aut(G, π
0
). Then ν
g
is a node of
T (G, π
0
) and T (G, π
0
, ν
g
) = T (G, π
0
, ν)
g
.
Proof. This follows from Lemma 1 on noticing that (G, π
0
)
g
= (G, π) if g ∈ Aut(G, π
0
). 2
Lemma 3. Let ν be a node of T (G, π
0
) and let π = R(G, π
0
, ν). Then Aut(G, π) is the
point-wise stabilizer of ν in Aut(G, π
0
).
Proof. By condition (R2), every element of Aut(G, π) stabilizes ν. Conversely, suppose
g ∈ Aut(G, π
0
) stabilizes ν. Then by (R3), π
g
= R(G, π
0
, ν)
g
= R(G, π
0
, ν) = π, so
g ∈ Aut(G, π). 2
5
剩余21页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar](https://profile-avatar.csdnimg.cn/1f699f8444db4debaddcde37eac1fe9d_weixin_35799569.jpg!1)
陌陌的日记
- 粉丝: 14
- 资源: 318
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0