Tadpole Graph

Author

Eric W. Weisstein
October 30, 2024

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

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

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

Embeddings

Graphs.m

Default

GraphicsGrid[Table[TadpoleGraph[m,n,PlotLabel->Subscript[T,Sequence@@{m,n}]],{m,3,6},{n,4}],ImageSize->500,Spacings->{10,-50},Dividers->All]//StyleGraphs

"UnitDistance"

GraphicsGrid[Table[TadpoleGraph[m,n,GraphLayout->"UnitDistance",PlotLabel->Subscript[T,Sequence@@{m,n}]],{m,3,6},{n,4}],ImageSize->500,Spacings->{10,-50},Dividers->All]//StyleGraphs

GraphData

Primary

GraphicsGrid[Table[Show[GraphData[{"Tadpole",{m,n}}]//StyleGraphs,GraphLayout->"UnitDistance",PlotLabel->Style[Subscript[Style["T",Italic],Sequence@@{m,n}],Directive[Black,14,FontFamily->"Times"]]],{m,3,7},{n,5}],ImageSize->500,Dividers->All]

"UnitDistance"

GraphicsGrid[Table[Show[GraphData[{"Tadpole",{m,n}},"Graph","UnitDistance"][[1]]//StyleGraphs,GraphLayout->"UnitDistance",PlotLabel->Subscript[T,Sequence@@{m,n}]],{m,3,7},{n,5}],ImageSize->500,Spacings->{10,10},Dividers->All]

Special cases

TextGrid[Sort@DeleteCases[{GraphData[#,"NotationRules","Tadpole"],#}&/@GraphData["Tadpole"],{_,{"Pan"|"Tadpole",_}}],Dividers->All]

Embeddings

<<MathWorld`Graphs`

{"Tadpole", {3, 1}} == "PawGraph"

Names

GraphData[{"Tadpole",{3,1}},"StandardName"]

GraphData[{"Tadpole",{3,1}},"StandardNames"]

{"Tadpole", {4, 1}} == "BannerGraph"

Names

GraphData[{"Tadpole",{4,1}},"StandardName"]

GraphData[{"Tadpole",{4,1}},"StandardNames"]

{"Tadpole", {5, 1}} == {"Pan", 5}

Names

GraphData[{"Tadpole",{5,1}},"StandardName"]

GraphData[{"Tadpole",{5,1}},"StandardNames"]

{"Tadpole", {6, 1}} == {"Pan", 6}

Names

GraphData[{"Tadpole",{6,1}},"StandardName"]

GraphData[{"Tadpole",{6,1}},"StandardNames"]

{"Tadpole", {7, 1}} == {"Pan", 7}

Names

GraphData[{"Tadpole",{7,1}},"StandardName"]

GraphData[{"Tadpole",{7,1}},"StandardNames"]

{"Tadpole", {7, 2}}

Names

GraphData[{"Tadpole",{7,2}},"StandardName"]

GraphData[{"Tadpole",{7,2}},"StandardNames"]

Primary

GraphData[{"Tadpole",{7,2}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Tadpole",{7,2}},"Graph","All"]//StyleGraphs

Graphs.m

Table[TadpoleGraph[7,2,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","CircularEmbedding"}}]//StyleGraphs

Inexact

Select[GraphData[{"Tadpole",{7,2}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Tadpole",{7,2}}]]

Default embedding

GraphPlot[Graph[GraphData[{"Tadpole",{7,2}},"VertexList"],GraphData[{"Tadpole",{7,2}},"Edges"]],GraphLayout->"CircularEmbedding"]

v=CirclePoints[9];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[{2,9},1],{2,8}},VertexCoordinates->v,VertexLabels->Automatic]

GraphData[{"Cycle",7},"Graph",{"UnitDistance","Circular"}]

v=GraphEmbedding[RotateGraph[g0=,-Pi/2]];
v=Join[v,Table[v[[3]]+{i,0},{i,2}]];
g=Graph[Range@Length@v,Join[EdgeList[g0],UndirectedEdge@@@{e[3,8,9]}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

v=GraphEmbedding[RotateGraph[g0=,-Pi/2]];
v=Join[v,Table[v[[2]]+{i,0},{i,2}]];
g=Graph[Range@Length@v,Join[EdgeList[g0],UndirectedEdge@@@{e[2,8,9]}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

v=Join[Subdivide[{-1/2,0},{0,Sqrt[3^2-(((1/2))^2)]},3]];
v=Join[v,Most@Subdivide[{1/2,0},v[[4]],3]];
v={#2,#}&@@@Join[v,Table[v[[4]]+{0,i},{i,2}]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[9,8,4,3,2,1,5,6,7,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

v=Join[CirclePoints[{1,-Pi/2},6],Table[{i,0},{i,0,2}]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[9,8,7,3,4,5,6,1,2,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

Degenerate

GraphData[{"Tadpole",{7,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Tadpole",{7,2}},"Graph","Degenerate"]

GeneralizedPetersen

GraphData[{"Tadpole",{7,2}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Tadpole",{7,2}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Tadpole",{7,2}},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Tadpole",{7,2}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Tadpole",{7,2}},"Hamiltonian"]

GraphData[{"Tadpole",{7,2}},"LCF"]

GraphData[{"Tadpole",{7,2}},"HamiltonianCycleCount"]

Planar

GraphData[{"Tadpole",{7,2}},"Planar"]

GraphData[{"Tadpole",{7,2}},"Graph","Planar"]//StyleGraphs

Planar construction

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

Table[PlanarGraphEmbedding[GraphData[{"Tadpole",{7,2}}]],10]

PlanarGraphEmbeddings

GraphData[{"Tadpole",{7,2}},"PlanarEmbeddingCount"]

(plemb=PlanarGraphEmbeddings[GraphData[{"Tadpole",{7,2}}],Debug->True])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Tadpole",{7,2}},{"RCN","CN"}]

GraphData[{"Tadpole",{7,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Tadpole",{7,2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,2}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,2}}],TimeConstraint->5 3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,2}}],TimeConstraint->86400])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Tadpole",{7,2}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

gs=IGLayoutTutte[g,"OuterFace"->#]&/@faces

Select[gs,GraphSymmetryGroup[#,AdditionalData->Join[Table[True,GraphData[{"Tadpole",{7,2}},"V"]],Table[False,cn]],SameTest->Equal]=!=TransformationGroup[{}]&]

Select[gs,Max[OuterFace[#]]<=GraphData[{"Tadpole",{7,2}},"V"]&]

(gs=Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Tadpole",{7,2}}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Tadpole",{7,2}},"V"]&]])//Timing

Select[gs,GraphSymmetryGroup[#,AdditionalData->Join[Table[True,GraphData[{"Tadpole",{7,2}},"V"]],Table[False,cn]],SameTest->Equal]=!=TransformationGroup[{}]&]

(gs=Table[MinimalCrossingGraph[GraphData[{"Tadpole",{7,2}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union)//Timing

Select[gs,GraphSymmetryGroup[#,AdditionalData->Join[Table[True,GraphData[{"Tadpole",{7,2}},"V"]],Table[False,cn]],SameTest->Equal]=!=TransformationGroup[{}]&]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

RectilinearLocalCrossingCount[g]

MinimalLocalCrossing

GraphData[{"Tadpole",{7,2}},{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData[{"Tadpole",{7,2}},"Graph","MinimalLocalCrossing"]//StyleGraphs

MinimalRectilinearLocalCrossing

GraphData[{"Tadpole",{7,2}},{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData[{"Tadpole",{7,2}},"Graph","MinimalRectilinearLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Tadpole",{7,2}},"Circulant"]

GraphData[{"Tadpole",{7,2}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Tadpole",{7,2}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Tadpole",{7,2}}]])//Timing

CirculantGraph1@@@ci

Cases[GraphData[{"Tadpole",{7,2}},"StandardNames"],{"Circulant",i_}:>i]

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Tadpole",{7,2}},"ComplementGraph","Name"]

Line graph

GraphData[{"Tadpole",{7,2}},"Line"]

LineGraphQ[GraphData[{"Tadpole",{7,2}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"Tadpole",{7,2}}&]

RootGraph[GraphData[{"Tadpole",{7,2}}]]

RecognizeGraph[%]

Halin

GraphData[{"Tadpole",{7,2}},"Halin"]

GraphData[{"Tadpole",{7,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Tadpole",{7,2}},"Rigid"]

GraphData[{"Tadpole",{7,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Tadpole",{7,2}},"Flexible"]

GraphData[{"Tadpole",{7,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Tadpole",{7,2}},"LCF"]

GraphData[{"Tadpole",{7,2}},"HamiltonianCycleCount"]

GraphData[{"Tadpole",{7,2}},"LCFSignature"]

GraphData[{"Tadpole",{7,2}},"LCFNotations"]

GraphData[{"Tadpole",{7,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Tadpole",{7,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Tadpole",{7,2}}],Debug->True]//Timing

GraphData[{"Tadpole",{7,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Tadpole",{7,2}},"VertexList"],GraphData[{"Tadpole",{7,2}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Tadpole",{7,2}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Tadpole",{7,2}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

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

Matchstick

GraphData[{"Tadpole",{7,2}},"Matchstick"]

GraphData[{"Tadpole",{7,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Tadpole",{7,2}},"Edges"]]

3D construction

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

RecognizeGraph[g]

3D All

GraphData[{"Tadpole",{7,2}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Tadpole",{7,2}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Tadpole",{7,2}},"Polyhedral"]

GraphData[{"Tadpole",{7,2}},"Graph",{"3D","Polyhedron"}]

{"Tadpole", {7, 3}}

Names

GraphData[{"Tadpole",{7,3}},"StandardName"]

GraphData[{"Tadpole",{7,3}},"StandardNames"]

Primary

GraphData[{"Tadpole",{7,3}}]//StyleGraphs[#,ImageSize->Small]&

Graphs.m

Table[TadpoleGraph[7,3,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","CircularEmbedding"}}]//StyleGraphs

All

GraphData[{"Tadpole",{7,3}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"Tadpole",{7,3}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"Tadpole",{7,3}}]]

Default embedding

GraphPlot[Graph[GraphData[{"Tadpole",{7,3}},"VertexList"],GraphData[{"Tadpole",{7,3}},"Edges"]],GraphLayout->"CircularEmbedding"]

v=CirclePoints[{1,-Pi/2},10];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[{3,10},1,2],{3,9}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphData[{"Cycle",7},"Graph",{"UnitDistance","Circular"}]

v=GraphEmbedding[RotateGraph[g0=,-Pi/2]];
v=Join[v,Table[v[[3]]+{i,0},{i,3}]];
g=Graph[Range@Length@v,Join[EdgeList[g0],UndirectedEdge@@@{e[3,8,9,10]}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

v=GraphEmbedding[RotateGraph[g0=,-Pi/2]];
v=Join[v,Table[v[[2]]+{i,0},{i,3}]];
g=Graph[Range@Length@v,Join[EdgeList[g0],UndirectedEdge@@@{e[2,8,9,10]}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

GraphPlot@RotateGraph[,Pi/2]

GraphReplot@

GraphPlot@RotateGraph[GraphicsToGraph@,-Pi/2]

v={{0,0},{1,0},{2,0},{0,1},{1,1},{2,1},{2+Sqrt[3]/2,1/2}};
v=Join[v,Table[v[[7]]+{i,0},{i,3}]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[10,9,8,7,6,5,4,1,2,3,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

v=Join[CirclePoints[{1,-Pi/2},6],Table[{i,0},{i,0,3}]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[10,9,8,7,3,4,5,6,1,2,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

Degenerate

GraphData[{"Tadpole",{7,3}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Tadpole",{7,3}},"Graph","Degenerate"]

GeneralizedPetersen

GraphData[{"Tadpole",{7,3}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Tadpole",{7,3}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Tadpole",{7,3}},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Tadpole",{7,3}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Tadpole",{7,3}},"Hamiltonian"]

GraphData[{"Tadpole",{7,3}},"LCF"]

GraphData[{"Tadpole",{7,3}},"HamiltonianCycleCount"]

Planar

GraphData[{"Tadpole",{7,3}},"Planar"]

GraphData[{"Tadpole",{7,3}},"Graph","Planar"]//StyleGraphs

Planar construction

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

Table[PlanarGraphEmbedding[GraphData[{"Tadpole",{7,3}}]],10]

PlanarGraphEmbeddings

GraphData[{"Tadpole",{7,3}},"PlanarEmbeddingCount"]

(plemb=PlanarGraphEmbeddings[GraphData[{"Tadpole",{7,3}}],Debug->True])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Tadpole",{7,3}},{"RCN","CN"}]

GraphData[{"Tadpole",{7,3}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Tadpole",{7,3}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,3}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,3}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,3}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,3}}],TimeConstraint->5 3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Tadpole",{7,3}}],TimeConstraint->86400])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Tadpole",{7,3}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

gs=IGLayoutTutte[g,"OuterFace"->#]&/@faces

Select[gs,GraphSymmetryGroup[#,AdditionalData->Join[Table[True,GraphData[{"Tadpole",{7,3}},"V"]],Table[False,cn]],SameTest->Equal]=!=TransformationGroup[{}]&]

Select[gs,Max[OuterFace[#]]<=GraphData[{"Tadpole",{7,3}},"V"]&]

(gs=Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Tadpole",{7,3}}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Tadpole",{7,3}},"V"]&]])//Timing

Select[gs,GraphSymmetryGroup[#,AdditionalData->Join[Table[True,GraphData[{"Tadpole",{7,3}},"V"]],Table[False,cn]],SameTest->Equal]=!=TransformationGroup[{}]&]

(gs=Table[MinimalCrossingGraph[GraphData[{"Tadpole",{7,3}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union)//Timing

Select[gs,GraphSymmetryGroup[#,AdditionalData->Join[Table[True,GraphData[{"Tadpole",{7,3}},"V"]],Table[False,cn]],SameTest->Equal]=!=TransformationGroup[{}]&]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

RectilinearLocalCrossingCount[g]

MinimalLocalCrossing

GraphData[{"Tadpole",{7,3}},{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData[{"Tadpole",{7,3}},"Graph","MinimalLocalCrossing"]//StyleGraphs

MinimalRectilinearLocalCrossing

GraphData[{"Tadpole",{7,3}},{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData[{"Tadpole",{7,3}},"Graph","MinimalRectilinearLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Tadpole",{7,3}},"Circulant"]

GraphData[{"Tadpole",{7,3}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Tadpole",{7,3}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Tadpole",{7,3}}]])//Timing

CirculantGraph1@@@ci

Cases[GraphData[{"Tadpole",{7,3}},"StandardNames"],{"Circulant",i_}:>i]

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Tadpole",{7,3}},"ComplementGraph","Name"]

Line graph

GraphData[{"Tadpole",{7,3}},"Line"]

LineGraphQ[GraphData[{"Tadpole",{7,3}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"Tadpole",{7,3}}&]

RootGraph[GraphData[{"Tadpole",{7,3}}]]

RecognizeGraph[%]

Halin

GraphData[{"Tadpole",{7,3}},"Halin"]

GraphData[{"Tadpole",{7,3}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Tadpole",{7,3}},"Rigid"]

GraphData[{"Tadpole",{7,3}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Tadpole",{7,3}},"Flexible"]

GraphData[{"Tadpole",{7,3}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Tadpole",{7,3}},"LCF"]

GraphData[{"Tadpole",{7,3}},"HamiltonianCycleCount"]

GraphData[{"Tadpole",{7,3}},"LCFSignature"]

GraphData[{"Tadpole",{7,3}},"LCFNotations"]

GraphData[{"Tadpole",{7,3}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Tadpole",{7,3}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Tadpole",{7,3}}],Debug->True]//Timing

GraphData[{"Tadpole",{7,3}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Tadpole",{7,3}},"VertexList"],GraphData[{"Tadpole",{7,3}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Tadpole",{7,3}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Tadpole",{7,3}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

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

Matchstick

GraphData[{"Tadpole",{7,3}},"Matchstick"]

GraphData[{"Tadpole",{7,3}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Tadpole",{7,3}},"Edges"]]

3D construction

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

RecognizeGraph[g]

3D All

GraphData[{"Tadpole",{7,3}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Tadpole",{7,3}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Tadpole",{7,3}},"Polyhedral"]

GraphData[{"Tadpole",{7,3}},"Graph",{"3D","Polyhedron"}]

Counts

Edges

Subtract@@@({{n,k}=("Tadpole"/.GraphData[#,"NotationRules"]);k+n,GraphData[#,"M"]}&/@GraphData["Tadpole"])//Union

{n,k}=.;

(k-1)n+n-1//Simplify

Vertices

Subtract@@@({{n,k}=("Tadpole"/.GraphData[#,"NotationRules"]);k+n,GraphData[#,"V"]}&/@GraphData["Tadpole"])//Union

GraphData

GraphClassString

GraphClassString[GraphData["Tadpole"]]

GraphDataString

Do[Print[GraphDataString[TadpoleGraph[n,k],
"StandardName"->{"Tadpole",{n,k}},
"AlternateStandardNames"->Switch[{n,k},{3,1},{"Lollipop",{3,1}},{3,2},{"Lollipop",{3,2}},{3,3},{"Lollipop",{3,3}},{3,4},{"Lollipop",{3,4}},{3,5},{"Lollipop",{3,5}},{4,1},{5,16},{4,2},{6,54},{4,3},{7,191},{4,4},{8,2265},{5,1},{6,63},{5,2},{7,374},{5,3},{8,2263},{6,1},{7,212},{6,2},{8,1290},{7,1},{8,2319},_,{}],
"Name"->"("<>ToString[n]<>","<>ToString[k]<>")-tadpole graph",
"Skip"->{"Perfect"},
"Classes"->If[n==3,{"Lollipop","Tadpole"},{"Tadpole"}],
TimeConstraint->120
]
],{n,3,7},{k,5}]

Add UnitDistance

l=Flatten[Table[{gn={"Tadpole",{m,n}},{0,Append[GraphData[gn,"Embeddings"],ToCommonEdges[TadpoleGraph[m,n,GraphLayout->"UnitDistance"],GraphData[gn]]]//Simplify}},{m,{3,4,5,7}},{n,2,5}],1]

l=Table[{gn={"Pan",n},{0,Append[GraphData[gn,"EmbeddingClasses"],{"Integral","MinimalCrossing","MinimalIntegral","MinimalPlanarIntegral","MinimalRectilinearCrossing","Planar","UnitDistance"}]}},{n,5,20}]

l=Flatten[Table[{gn={"Tadpole",{m,n}},{0,Append[GraphData[gn,"EmbeddingClasses"],{"Integral","MinimalCrossing","MinimalIntegral","MinimalPlanarIntegral","MinimalRectilinearCrossing","Planar","UnitDistance"}]}},{m,{3,4,5,7}},{n,2,5}],1]