Creating a Cayley graph
Contents
Specifying the group by its generators
We specify a finite group by giving a list of its generators. The generators are a cell array of permutations of a common ground set.
In this example, we create a graph using two generators from the permutations of the set {1,2,3,4,5,6}.
p1 = permutation([1,3,6,4,5,2]) p2 = permutation([6,3,2,5,4,1]) perms = {p1,p2};
(1)(2,3,6)(4)(5) (1,6)(2,3)(4,5)
Create the graph
g = graph; cayley(g,perms);
Draw the graph
distxy(g); clf; draw(g);
Optimization terminated: relative function value changing by less than OPTIONS.TolFun. Embedding score = 41.4477 Elapsed time is 1.397237 seconds.

Another example
p1 = permutation([2 3 4 1])
p2 = swap(1,2)
cayley(g,{p1,p2},true) % verbose output
distxy(g);
clf;
draw(g);
(1,2,3,4) (1,2) Generating the group elements from these: (1,2,3,4) (1,2)(3)(4) Expanding. Group size = 3 Expanding. Group size = 6 Expanding. Group size = 11 Expanding. Group size = 16 Expanding. Group size = 21 Expanding. Group size = 24 Generating edge list 48 edges created Optimization terminated: relative function value changing by less than OPTIONS.TolFun. Embedding score = 50.6385 Elapsed time is 1.192996 seconds.

Showing the labels on vertices
The vertices of a Cayley graph are labeled by the group elements (permutations) they represent.
p1 = permutation([3 2 4 1]); p2 = swap(1,2)*swap(3,4) cayley(g,{p1,p2}) distxy(g); clf; ldraw(g)
(1,2)(3,4) Optimization terminated: relative function value changing by less than OPTIONS.TolFun. Embedding score = 8.4932 Elapsed time is 0.181026 seconds.

The cube as a Cayley graph
p1 = permutation([2 1 3 4 5 6]) p2 = permutation([1 2 4 3 5 6]) p3 = permutation([1 2 3 4 6 5]) perms = {p1,p2,p3}; cayley(g,perms); distxy(g); clf;draw(g)
(1,2)(3)(4)(5)(6) (1)(2)(3,4)(5)(6) (1)(2)(3)(4)(5,6) Optimization terminated: relative function value changing by less than OPTIONS.TolFun. Embedding score = 4.7576 Elapsed time is 0.221048 seconds.

Free storage
free(g);