Skip to content

CirculantGraph ​

The circulant graph on n vertices arranged in a circle, joined by one or more fixed offsets.

✓ checked against that system · ! checked, with disagreements (hover a chip)Wolfram LanguageCirculantGraph✓
CirculantGraph(n, k)vertex i joined to i +/- k (mod n), for a single offset k.
SageMathenumeratio_graph(graphs.CirculantGraph(n, k))
CirculantGraph(n, {k1, k2, …})the union of the connection sets for every offset given.
Typed signatures
TypePackageApplies
(integer, integer | list<integer>) -> valuecombinatoricsalways

Domain: Collections

Details
  • Each vertex has degree 2 per offset, except an offset of exactly n/2 (n even), which gives only one edge per vertex (i and i + n/2 are each other's only match at that offset).

Examples

Basic #
live ↗
InVertexDegree(CirculantGraph(8,2),1)\mathrm{VertexDegree}(\mathrm{CirculantGraph}(8, 2), 1)Out22
live ↗
InEdgeCount(CirculantGraph(10,[1,3]))\mathrm{EdgeCount}(\mathrm{CirculantGraph}(10, \bigl\lbrack1, 3\bigr\rbrack))Out2020

Each vertex joins its neighbours at steps 2 and 4 around a 10-cycle

live ↗
InCirculantGraph(10,[2,4])\mathrm{CirculantGraph}(10, \bigl\lbrack2, 4\bigr\rbrack)OutGraph([1,2,3,4,5,6,7,8,9,10],[UndirectedEdge(1,3),UndirectedEdge(2,4),UndirectedEdge(3,5),UndirectedEdge(4,6),UndirectedEdge(5,7),UndirectedEdge(6,8),UndirectedEdge(7,9),UndirectedEdge(8,10),UndirectedEdge(9,1),UndirectedEdge(10,2),UndirectedEdge(1,5),UndirectedEdge(2,6),UndirectedEdge(3,7),UndirectedEdge(4,8),UndirectedEdge(5,9),UndirectedEdge(6,10),UndirectedEdge(7,1),UndirectedEdge(8,2),UndirectedEdge(9,3),UndirectedEdge(10,4)])\mathrm{Graph}(\bigl\lbrack1, 2, 3, 4, 5, 6, 7, 8, 9, 10\bigr\rbrack, \bigl\lbrack\mathrm{UndirectedEdge}(1, 3), \mathrm{UndirectedEdge}(2, 4), \mathrm{UndirectedEdge}(3, 5), \mathrm{UndirectedEdge}(4, 6), \mathrm{UndirectedEdge}(5, 7), \mathrm{UndirectedEdge}(6, 8), \mathrm{UndirectedEdge}(7, 9), \mathrm{UndirectedEdge}(8, 10), \mathrm{UndirectedEdge}(9, 1), \mathrm{UndirectedEdge}(10, 2), \mathrm{UndirectedEdge}(1, 5), \mathrm{UndirectedEdge}(2, 6), \mathrm{UndirectedEdge}(3, 7), \mathrm{UndirectedEdge}(4, 8), \mathrm{UndirectedEdge}(5, 9), \mathrm{UndirectedEdge}(6, 10), \mathrm{UndirectedEdge}(7, 1), \mathrm{UndirectedEdge}(8, 2), \mathrm{UndirectedEdge}(9, 3), \mathrm{UndirectedEdge}(10, 4)\bigr\rbrack)
Scope #

A single jump of 2 on 5 vertices gives a pentagram

live ↗
InCirculantGraph(5,2)\mathrm{CirculantGraph}(5, 2)OutGraph([1,2,3,4,5],[UndirectedEdge(1,3),UndirectedEdge(2,4),UndirectedEdge(3,5),UndirectedEdge(4,1),UndirectedEdge(5,2)])\mathrm{Graph}(\bigl\lbrack1, 2, 3, 4, 5\bigr\rbrack, \bigl\lbrack\mathrm{UndirectedEdge}(1, 3), \mathrm{UndirectedEdge}(2, 4), \mathrm{UndirectedEdge}(3, 5), \mathrm{UndirectedEdge}(4, 1), \mathrm{UndirectedEdge}(5, 2)\bigr\rbrack)
Applications #

The pentagram is symmetric, so every vertex has eccentricity 2

live ↗
InMap(_1⁡↦VertexEccentricity(CirculantGraph(5,2),_1⁡),VertexList(CirculantGraph(5,2)))\mathrm{Map}(\operatorname{\_1}↦\mathrm{VertexEccentricity}(\mathrm{CirculantGraph}(5, 2), \operatorname{\_1}), \mathrm{VertexList}(\mathrm{CirculantGraph}(5, 2)))Out[2,2,2,2,2]\bigl\lbrack2, 2, 2, 2, 2\bigr\rbrack
Properties #

Jumps 1,2,31,2,3 on 6 vertices connect everything, so degree 5

live ↗
InVertexDegree(CirculantGraph(6,[1,2,3]))\mathrm{VertexDegree}(\mathrm{CirculantGraph}(6, \bigl\lbrack1, 2, 3\bigr\rbrack))Out[5,5,5,5,5,5]\bigl\lbrack5, 5, 5, 5, 5, 5\bigr\rbrack

Using all jumps gives K6K_6

live ↗
In[CirculantGraph(6,[1,2,3]),CompleteGraph(6)]\bigl\lbrack\mathrm{CirculantGraph}(6, \bigl\lbrack1, 2, 3\bigr\rbrack), \mathrm{CompleteGraph}(6)\bigr\rbrackOut[Graph([1,2,3,4,5,6],[UndirectedEdge(1,2),UndirectedEdge(2,3),UndirectedEdge(3,4),UndirectedEdge(4,5),UndirectedEdge(5,6),UndirectedEdge(6,1),UndirectedEdge(1,3),UndirectedEdge(2,4),UndirectedEdge(3,5),UndirectedEdge(4,6),UndirectedEdge(5,1),UndirectedEdge(6,2),UndirectedEdge(1,4),UndirectedEdge(2,5),UndirectedEdge(3,6)]),Graph([1,2,3,4,5,6],[UndirectedEdge(1,2),UndirectedEdge(1,3),UndirectedEdge(1,4),UndirectedEdge(1,5),UndirectedEdge(1,6),UndirectedEdge(2,3),UndirectedEdge(2,4),UndirectedEdge(2,5),UndirectedEdge(2,6),UndirectedEdge(3,4),UndirectedEdge(3,5),UndirectedEdge(3,6),UndirectedEdge(4,5),UndirectedEdge(4,6),UndirectedEdge(5,6)])]\bigl\lbrack\mathrm{Graph}(\bigl\lbrack1, 2, 3, 4, 5, 6\bigr\rbrack, \bigl\lbrack\mathrm{UndirectedEdge}(1, 2), \mathrm{UndirectedEdge}(2, 3), \mathrm{UndirectedEdge}(3, 4), \mathrm{UndirectedEdge}(4, 5), \mathrm{UndirectedEdge}(5, 6), \mathrm{UndirectedEdge}(6, 1), \mathrm{UndirectedEdge}(1, 3), \mathrm{UndirectedEdge}(2, 4), \mathrm{UndirectedEdge}(3, 5), \mathrm{UndirectedEdge}(4, 6), \mathrm{UndirectedEdge}(5, 1), \mathrm{UndirectedEdge}(6, 2), \mathrm{UndirectedEdge}(1, 4), \mathrm{UndirectedEdge}(2, 5), \mathrm{UndirectedEdge}(3, 6)\bigr\rbrack), \mathrm{Graph}(\bigl\lbrack1, 2, 3, 4, 5, 6\bigr\rbrack, \bigl\lbrack\mathrm{UndirectedEdge}(1, 2), \mathrm{UndirectedEdge}(1, 3), \mathrm{UndirectedEdge}(1, 4), \mathrm{UndirectedEdge}(1, 5), \mathrm{UndirectedEdge}(1, 6), \mathrm{UndirectedEdge}(2, 3), \mathrm{UndirectedEdge}(2, 4), \mathrm{UndirectedEdge}(2, 5), \mathrm{UndirectedEdge}(2, 6), \mathrm{UndirectedEdge}(3, 4), \mathrm{UndirectedEdge}(3, 5), \mathrm{UndirectedEdge}(3, 6), \mathrm{UndirectedEdge}(4, 5), \mathrm{UndirectedEdge}(4, 6), \mathrm{UndirectedEdge}(5, 6)\bigr\rbrack)\bigr\rbrack

A jump of 1 is the cycle graph

live ↗
In[CirculantGraph(6,1),CycleGraph(6)]\bigl\lbrack\mathrm{CirculantGraph}(6, 1), \mathrm{CycleGraph}(6)\bigr\rbrackOut[Graph([1,2,3,4,5,6],[UndirectedEdge(1,2),UndirectedEdge(2,3),UndirectedEdge(3,4),UndirectedEdge(4,5),UndirectedEdge(5,6),UndirectedEdge(6,1)]),Graph([1,2,3,4,5,6],[UndirectedEdge(1,2),UndirectedEdge(2,3),UndirectedEdge(3,4),UndirectedEdge(4,5),UndirectedEdge(5,6),UndirectedEdge(6,1)])]\bigl\lbrack\mathrm{Graph}(\bigl\lbrack1, 2, 3, 4, 5, 6\bigr\rbrack, \bigl\lbrack\mathrm{UndirectedEdge}(1, 2), \mathrm{UndirectedEdge}(2, 3), \mathrm{UndirectedEdge}(3, 4), \mathrm{UndirectedEdge}(4, 5), \mathrm{UndirectedEdge}(5, 6), \mathrm{UndirectedEdge}(6, 1)\bigr\rbrack), \mathrm{Graph}(\bigl\lbrack1, 2, 3, 4, 5, 6\bigr\rbrack, \bigl\lbrack\mathrm{UndirectedEdge}(1, 2), \mathrm{UndirectedEdge}(2, 3), \mathrm{UndirectedEdge}(3, 4), \mathrm{UndirectedEdge}(4, 5), \mathrm{UndirectedEdge}(5, 6), \mathrm{UndirectedEdge}(6, 1)\bigr\rbrack)\bigr\rbrack
About
Examples8
Checked againstWolfram Language 8 agreeSageMath 3 agree4 differ
CrosswalkWolfram LanguageSageMath

Implementation

mappedsagepackages/oracle/src/mappings.ts

See also: CycleGraph, HararyGraph