Bull Graph

Author

Eric W. Weisstein
September 29, 2025

This notebook downloaded from http://mathworld.wolfram.com/notebooks/GraphTheory/BullGraph.nb.

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

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

Embeddings

<<MathWorld`Graphs`

Names

GraphData["BullGraph","StandardName"]

GraphData["BullGraph","StandardNames"]

Primary

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

All

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

Inexact

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

Embeddings

GraphDataEmbeddings[GraphData["BullGraph"]]

Default embedding

1+{{3,1},{1,2},{2,4},{1,0},{0,2}}

g=Graph[Range[5],
UndirectedEdge@@@{{4,2},{2,3},{3,5},{2,1},{1,3}},VertexCoordinates->{{0,0},{-1/2,1},{1/2,1},{-1,2},{1,2}}]

GraphPlot[Graph[GraphData["BullGraph","VertexList"],GraphData["BullGraph","Edges"]],GraphLayout->"LayeredEmbedding"]

v={{0,0},{1,0},{1/2,Sqrt[3]/2},{0,-1},{1,-1}};
Graph[Range@Length@v,UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

g=FindCorrespondingGraph[,v]

RecognizeGraph@g

RotateGraph[GraphPlot[Graph[GraphData["BullGraph","VertexList"],GraphData["BullGraph","Edges"]],GraphLayout->"CircularEmbedding"],4Pi/5]

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

g=FindCorrespondingGraph[,v]

RecognizeGraph@g

gs={,}

Degenerate

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

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

HouseOfGraphs

hogid=GraphData["BullGraph","NotationRules","HouseOfGraphs"]

HouseOfGraphsLookup[hogid]

HouseOfGraphsGraph[hogid]//StyleGraphs[#,ImageSize->Small]&

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData["BullGraph","Hamiltonian"]

GraphData["BullGraph","LCF"]

GraphData["BullGraph","HamiltonianCycleCount"]

Planar

GraphData["BullGraph","Planar"]

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

Planar construction

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

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

PlanarGraphEmbeddings

GraphData["BullGraph","PlanarEmbeddingCount"]

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

Length[plemb]

MinimalCrossing

GraphData["BullGraph","CN"]

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

MinimalRectilinearCrossing

GraphData["BullGraph","RCN"]

GraphData["BullGraph","Graph","MinimalRectilinearCrossing"]//StyleGraphs

MinimalLocalCrossing

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

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

MinimalRectilinearLocalCrossing

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

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

Circulant

GraphData["BullGraph","Circulant"]

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

Circulant construction

GraphData["BullGraph","NotationRules","Circulant"]

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

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

GraphData[compl,"Graph","All"]

gs=GraphComplement/@%

Select[%,!DegenerateGraphEmbeddingQ[#]&]

Line graph

GraphData["BullGraph","Line"]

LineGraphQ[GraphData["BullGraph"]]//Timing

RootGraph

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

RootGraph[GraphData["BullGraph"]]

RecognizeGraph[%]

GraphData[roots[[1]],"Graph","All"]

gs=LineGraph/@%

Halin

GraphData["BullGraph","Halin"]

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

Rigid

GraphData["BullGraph","Rigid"]

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

Flexible

GraphData["BullGraph","Flexible"]

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

LCF

GraphData["BullGraph","LCF"]

GraphData["BullGraph","HamiltonianCycleCount"]

GraphData["BullGraph","LCFSignature"]

GraphData["BullGraph","LCFNotations"]

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

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

UnitDistance

GraphData["BullGraph","UnitDistance"]

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

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

Matchstick

GraphData["BullGraph","Matchstick"]

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

3D default

Graph3D[GraphData["BullGraph","Edges"]]

3D construction

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

RecognizeGraph[g]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData["BullGraph","Polyhedral"]

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

Properties

Chromatically Equivalent

l=Select[GraphData[GraphData["BullGraph","V"]],GraphData[#,"ChromaticPolynomial"]===GraphData["BullGraph","ChromaticPolynomial"]&]

Union[GraphData[#,"ChromaticPolynomial"][x]&/@l]//TraditionalForm

GraphicsGrid[{Show[GraphData[#],PlotLabel->GraphData[#,"Name"],BaseStyle->{FontSlant->"Italic"}]&/@l}]

GraphData

Matrices

GraphMatrixPlot["BullGraph"]

GraphDataClassString

GraphDataClassString["BullGraph"]