Chase Graph

Author

Eric W. Weisstein
July 26, 2026

This notebook downloaded from https://mathworld.wolfram.com/notebooks/GraphTheory/ChaseGraph.nb.

For more information, see Eric's MathWorld entry https://mathworld.wolfram.com/ChaseGraph.html.

©2026 Wolfram Research, Inc. except for portions noted otherwise

Figure

GraphicsGrid[Partition[StyleGraphs@GraphData["ChaseGraph","Graph","All"],UpTo[4]],Dividers->All]

Embeddings

<<MathWorld`Graphs`

Names

GraphData["ChaseGraph","StandardName"]

GraphData["ChaseGraph","StandardNames"]

Primary

GraphData["ChaseGraph"]//StyleGraphs[#,ImageSize->Small]&

All

GraphData["ChaseGraph","Graph","All"]//StyleGraphs

Inexact

Select[GraphData["ChaseGraph","Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData["ChaseGraph"]]

Default embedding

RotateGraph[GraphPlot[Graph[GraphData["ChaseGraph","VertexList"],GraphData["ChaseGraph","Edges"]]],-.25]

v=Join[c=CirclePoints[4],Mean/@Partition[c,2,1,1],CirclePoints[{1/(Sqrt[2])/2,0},4]];
Graph[Range@Length@v,UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

g=FindCorrespondingGraph[,v]

RecognizeGraph@g

GraphPlot[Graph[GraphData["ChaseGraph","VertexList"],GraphData["ChaseGraph","Edges"]],GraphLayout->"TutteEmbedding"]

v=Join[CirclePoints[{1,Pi/2},8],CirclePoints[{1/(Sqrt[2])/2,0},4]];
Graph[Range@Length@v,UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

g=FindCorrespondingGraph[,v]

RecognizeGraph@g

gs={,};

Degenerate

GraphData["ChaseGraph","Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData["ChaseGraph","Graph","Degenerate"]

GeneralizedPetersen

GraphData["ChaseGraph","Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData["ChaseGraph","Graph","IGraph"]//StyleGraphs

Bilateral

GraphData["ChaseGraph","Graph","Bilateral"]//StyleGraphs

Grid[DeleteCases[Monitor[{g=#,BilateralGraphEmbeddingTypes[#],GraphSymmetryGroup[#]}&/@GraphData["ChaseGraph","Graph","All"],g],{_,_,TransformationGroup[{}]}],Dividers->All,Alignment->{{Center,{Left}}}]

Circular

GraphData["ChaseGraph","Graph","Circular"]//StyleGraphs

Circular construction

GraphData["ChaseGraph","Hamiltonian"]

GraphData["ChaseGraph","LCF"]

GraphData["ChaseGraph","HamiltonianCycleCount"]

Planar

GraphData["ChaseGraph","Planar"]

GraphData["ChaseGraph","Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData["ChaseGraph"],GraphLayout->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData["ChaseGraph"]],10]

PlanarGraphEmbeddings

GraphData["ChaseGraph","PlanarEmbeddingCount"]

(plemb=PlanarGraphEmbeddings[GraphData["ChaseGraph"],Debug->True])//Timing

Length[plemb]

MinimalCrossing

GraphData["ChaseGraph",{"RCN","CN"}]

GraphData["ChaseGraph","Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData["ChaseGraph",{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData["ChaseGraph","Graph","MinimalLocalCrossing"]//StyleGraphs

MinimalRectilinearLocalCrossing

GraphData["ChaseGraph",{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData["ChaseGraph","Graph","MinimalRectilinearLocalCrossing"]//StyleGraphs

Circulant

GraphData["ChaseGraph","Circulant"]

GraphData["ChaseGraph","Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData["ChaseGraph","NotationRules","Circulant"]

(ci=CirculantIndices[GraphData["ChaseGraph"]])//Timing

CirculantGraph1@@@ci

Cases[GraphData["ChaseGraph","StandardNames"],{"Circulant",i_}:>i]

CirculantGraph1@@@%

Complement graph

compl=GraphData["ChaseGraph","ComplementGraph","Name"]

Line graph

GraphData["ChaseGraph","Line"]

LineGraphQ[GraphData["ChaseGraph"]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]==="ChaseGraph"&]

RootGraph[GraphData["ChaseGraph"]]

RecognizeGraph[%]

Halin

GraphData["ChaseGraph","Halin"]

GraphData["ChaseGraph","Graph","Halin"]//StyleGraphs

Rigid

GraphData["ChaseGraph","Rigid"]

GraphData["ChaseGraph","Graph","Rigid"]//StyleGraphs

Flexible

GraphData["ChaseGraph","Flexible"]

GraphData["ChaseGraph","Graph","Flexible"]//StyleGraphs

LCF

GraphData["ChaseGraph","LCF"]

GraphData["ChaseGraph","HamiltonianCycleCount"]

GraphData["ChaseGraph","LCFSignature"]

GraphData["ChaseGraph","LCFNotations"]

GraphData["ChaseGraph","Graph","LCF"]//StyleGraphs

Tally[LCFNotation[#][[2]]&/@%]

UnitDistance

GraphData["ChaseGraph","UnitDistance"]

UnitDistanceGraphQ[GraphData["ChaseGraph"],Debug->True]//Timing

GraphData["ChaseGraph","Graph","UnitDistance"]//StyleGraphs

Select[%,!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&]

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData["ChaseGraph","VertexList"],GraphData["ChaseGraph","EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData["ChaseGraph","Graph",#]&/@{"All","UnitDistance"})

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance construction

g0=LabelGraph@RotateGraph[,{7,1}]

v={{a,-a},{b,0},{a,a},{0,b},{-a,a},{-b,0},{-a,-a},{0,-b},{x,0},{0,x},{-x,0},{0,-x}};

Graph[Range@Length@v,{},VertexCoordinates->(v/.{x->.5,a->1,b->1.2}),VertexLabels->Automatic]

<<MathWorld`Graphs`

eqn=UnitEdgeEquations[v,EdgeList[g0]]//FullSimplify//Union

soln=Solve[eqn,{a,b,x},PositiveReals]//FullSimplify

Graph[Range@Length@v,EdgeList[g0],VertexCoordinates->(v/.#),VertexLabels->Automatic]&/@soln

g=UnlabelGraph@

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

gg=.

v={{1,-1},{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{a,b},{-x,-y},{-a,-b},{x,y}};

eqn=UnitEdgeEquations[v,EdgeList[g0]]//FullSimplify//Union

var=Variables[Subtract@@@eqn]

soln=Solve[eqn,var,Reals]//FullSimplify

Graph[Range@Length@v,EdgeList[g0],VertexCoordinates->(v/.#),VertexLabels->Automatic]&/@soln

g=UnlabelGraph@

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ[g]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData["ChaseGraph"],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData["ChaseGraph"],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

{"ChaseGraph",l=FindSubgraphUnitDistanceEmbedding[GraphData["ChaseGraph"],TimeConstraint->300,"Results"->All]//Timing}

gs=SortBy[UniqueEmbeddings[l],Replace[RectilinearCrossingCount[#],Infinity->0]&]

Select[IndexGraph/@gs,!DegenerateGraphEmbeddingQ[#]&&GraphSymmetryGroup[#]=!=TransformationGroup[{}]&]//Timing

DegenerateGraphEmbeddingTypes[]

gs={,};

Matchstick

GraphData["ChaseGraph","Matchstick"]

GraphData["ChaseGraph","Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData["ChaseGraph","Edges"]]

3D construction

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

3D All

GraphData["ChaseGraph","Graph",{"3D","All"}]

3D UnitDistance

GraphData["ChaseGraph","Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData["ChaseGraph","Polyhedral"]

GraphData["ChaseGraph","Graph",{"3D","Polyhedron"}]

Construction

v=Join[UnitCirclePoints[8],CirclePoints[1/(Sqrt[2]),4]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[7,12,11,5,6,7,8,1,2,3,4,5],e[11,10,3],e[1,9,10],{12,9}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphData

GraphDataClassString

GraphDataClassString["ChaseGraph"]

GraphDataString

<<MathWorld`Graphs`

file=OpenAppend["~/chase.m"]

WriteString[file,GraphDataString[,
"StandardName"->"ChaseGraph",
"Name"->"Chase graph",
"Skip"->{"DominatingSets","Minors","QuadraticEmbeddingConstant"}
]
];

Close[file]