In the mathematical field of
graph theory
In mathematics and computer science, graph theory is the study of ''graph (discrete mathematics), graphs'', which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of ''Vertex (graph ...
, an automorphism of a
graph is a form of
symmetry
Symmetry () in everyday life refers to a sense of harmonious and beautiful proportion and balance. In mathematics, the term has a more precise definition and is usually used to refer to an object that is Invariant (mathematics), invariant und ...
in which the graph is
mapped onto itself while preserving the edge–
vertex connectivity.
Formally, an automorphism of a graph is a
permutation
In mathematics, a permutation of a set can mean one of two different things:
* an arrangement of its members in a sequence or linear order, or
* the act or process of changing the linear order of an ordered set.
An example of the first mean ...
of the vertex set , such that the pair of vertices form an edge
if and only if
In logic and related fields such as mathematics and philosophy, "if and only if" (often shortened as "iff") is paraphrased by the biconditional, a logical connective between statements. The biconditional is true in two cases, where either bo ...
the pair also form an edge. That is, it is a
graph isomorphism from to itself. Automorphisms may be defined in this way both for
directed graphs and for
undirected graphs.
The
composition of two automorphisms is another automorphism, and the set of automorphisms of a given graph, under the composition operation, forms a
group, the
automorphism group of the graph. In the opposite direction, by
Frucht's theorem, all groups can be represented as the automorphism group of a connected graph – indeed, of a
cubic graph.
Computational complexity
Constructing the automorphism group of a graph, in the form of a list of generators, is polynomial-time equivalent to the
graph isomorphism problem, and therefore solvable in
quasi-polynomial time, that is with running time
for some fixed
.
Consequently, like the graph isomorphism problem, the problem of finding a graph's automorphism group is known to belong to the
complexity class
In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
NP, but not known to be in
P nor to be
NP-complete, and therefore may be
NP-intermediate.

The easier problem of testing whether a graph has any symmetries (nontrivial automorphisms), known as the graph automorphism problem, also has no known
polynomial time solution.
[.]
There is a
polynomial time algorithm for solving the graph automorphism problem for graphs where vertex degrees are bounded by a constant.
[.]
The graph automorphism problem is polynomial-time
many-one reducible to the graph isomorphism problem, but the converse reduction is unknown.
By contrast, hardness is known when the automorphisms are constrained in a certain fashion; for instance, determining the existence of a fixed-point-free automorphism (an automorphism that fixes no vertex) is NP-complete, and the problem of counting such automorphisms is
♯P-complete.
Algorithms, software and applications
While no ''worst-case'' polynomial-time algorithms are known for the general Graph Automorphism problem, finding the automorphism group (and printing out an irredundant set of generators) for many large graphs arising in applications is rather easy. Several open-source software tools are available for this task, including
NAUTYBLISSan
SAUCY SAUCY and BLISS are particularly efficient for sparse graphs, e.g., SAUCY processes some graphs with millions of vertices in mere seconds. However, BLISS and NAUTY can also produce
Canonical Labeling, whereas SAUCY is currently optimized for solving Graph Automorphism. An important observation is that for a graph on vertices, the automorphism group can be specified by no more than
generators, and the above software packages are guaranteed to satisfy this bound as a side-effect of their algorithms (minimal sets of generators are harder to find and are not particularly useful in practice). It also appears that the total support (i.e., the number of vertices moved) of all generators is limited by a linear function of , which is important in runtime analysis of these algorithms. However, this has not been established for a fact, as of March 2012.
Practical applications of Graph Automorphism include
graph drawing and other visualization tasks, solving structured instances of
Boolean Satisfiability arising in the context of
Formal verification and
Logistics
Logistics is the part of supply chain management that deals with the efficient forward and reverse flow of goods, services, and related information from the point of origin to the Consumption (economics), point of consumption according to the ...
.
Molecular symmetry can predict or explain chemical properties.
Symmetry display
Several
graph drawing researchers have investigated algorithms for drawing graphs in such a way that the automorphisms of the graph become visible as symmetries of the drawing. This may be done either by using a method that is not designed around symmetries, but that automatically generates symmetric drawings when possible, or by explicitly identifying symmetries and using them to guide vertex placement in the drawing.
[.] It is not always possible to display all symmetries of the graph simultaneously, so it may be necessary to choose which symmetries to display and which to leave unvisualized.
Graph families defined by their automorphisms
Several families of graphs are defined by having certain types of automorphisms:
*An
asymmetric graph is an undirected graph with only the trivial automorphism.
*A
vertex-transitive graph is an undirected graph in which every vertex may be mapped by an automorphism into any other vertex.
*An
edge-transitive graph is an undirected graph in which every edge may be mapped by an automorphism into any other edge.
*A
symmetric graph is a graph such that every pair of adjacent vertices may be mapped by an automorphism into any other pair of adjacent vertices.
*A
distance-transitive graph is a graph such that every pair of vertices may be mapped by an automorphism into any other pair of vertices that are the same distance apart.
*A
semi-symmetric graph is a graph that is edge-transitive but not vertex-transitive.
*A
half-transitive graph is a graph that is vertex-transitive and edge-transitive but not symmetric.
*A
skew-symmetric graph is a directed graph together with a permutation σ on the vertices that maps edges to edges but reverses the direction of each edge. Additionally, σ is required to be an
involution.
Inclusion relationships between these families are indicated by the following table:
See also
*
Algebraic graph theory
*
Distinguishing coloring
References
External links
*{{mathworld , urlname=GraphAutomorphism , title=Graph automorphism
Algebraic graph theory
de:Automorphismus#Graphen