> < ^ From:

^ Subject:

Dear GAP-forum,

Many people are using GRAPE to study Cayley graphs, and I am often

asked how to construct Cayley graphs in GRAPE. My answer is "use the

wonderfully general Graph function in GRAPE". Everyone who uses

GRAPE should learn this function well, as it's usually the one to use

when the question is "how do I construct an XXX-type graph?".

So below, I enclose an example for the construction of a Cayley graph.

Suppose G is a group, and gens a generating list of elements of

G. Then to construct in caygraph the Cayley graph for G such that

x is joined to y iff there is a g in gens with y=g*x,

the following statement will do:

caygraph := Graph(G, Elements(G), OnRight, function(x,y) return ForAny(gens,g->y=g*x); end, true);

Note that caygraph.group comes from the right regular action of

G as a group of automorphisms of the Cayley graph constructed. It is

a good idea to use the statement:

StabChain(caygraph.group,rec(size:=caygraph.order));

to make efficiently a stabilizer chain for caygraph.group of known

order (= the number of vertices of caygraph).

Finally, if gens is not closed under inversion, but you want the

underlying undirected graph of caygraph, then set:

caygraph:=UnderlyingGraph(caygraph);

Hope this is useful,

Leonard Soicher.

P.S. As always, I want to hear about applications of GRAPE, especially

publications referencing GRAPE. The reference for GRAPE is:

L.H.~Soicher, {\sf GRAPE}: a system for computing with graphs and

groups, in {\it Groups and Computation}, L.~Finkelstein and

W.M.~Kantor, eds., DIMACS Series in Discrete Mathematics and

Theoretical Computer Science {\bf 11}, A.M.S., 1993, pp.~287--291.

GRAPE is freely available for non-commercial, non-military use.

> < [top]