Sunlet Graph

Author

Eric W. Weisstein
March 3, 2024

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

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

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

Graphics

GraphData

Primary

GraphicsRow[Table[GraphData[{"Sunlet",n}],{n,3,6}],Dividers->All,ImageSize->500]//StyleGraphs

"Polygon"

GraphicsRow[Table[GraphData[{"Sunlet",n},"Graph","All"][[2]],{n,3,6}],Dividers->All,ImageSize->500]//StyleGraphs

"UnitDistance"

GraphicsRow[Table[GraphData[{"Sunlet",n},"Graph","UnitDistance"][[1]],{n,3,6}],Dividers->All,ImageSize->500]//StyleGraphs

Graphs.m

Automatic

GraphicsRow[Table[SunletGraph[n],{n,3,6}],Dividers->All,ImageSize->500]//StyleGraphs

"Polygon"

GraphicsRow[Table[SunletGraph[n,GraphLayout->"Polygon"],{n,3,6}],Dividers->All,ImageSize->500]//StyleGraphs

"UnitDistance"

GraphicsRow[Table[SunletGraph[n,GraphLayout->"UnitDistance"],{n,3,6}],Dividers->All,ImageSize->500]//StyleGraphs

Special cases

TextGrid[{"Sunlet"/.GraphData[#,"NotationRules"],GraphData[#,"Name"]}&/@DeleteCases[GraphData["Sunlet"],{"Sunlet",_}],Dividers->All]

Embeddings

<<MathWorld`Graphs`

{"Sunlet", 3} == "NetGraph"

Names

GraphData[{"Sunlet",3},"StandardName"]

GraphData[{"Sunlet",3},"StandardNames"]

{"Sunlet", 4}

Names

GraphData[{"Sunlet",4},"StandardName"]

GraphData[{"Sunlet",4},"StandardNames"]

Primary

GraphData[{"Sunlet",4}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",4},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",4},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",4},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",4},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",4},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",4},"Configuration"]

GraphData[{"Sunlet",4},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",4},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"Sunlet",4},"Polyhedron"]

Sunlet construction

SunletGraph[{"Sunlet",4}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

HoneycombToroidal construction

GraphData[{"Sunlet",4},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[1]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=8},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",4}}]]//Timing

g=GeneralizedHoneycombGraph[8,2]

RecognizeGraph@g

GeneralizedPetersen

GraphData[{"Sunlet",4},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",4},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",4},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",4},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",4},"Planar"]

GraphData[{"Sunlet",4},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",4},{"RCN","CN"}]

GraphData[{"Sunlet",4},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",4}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",4}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",4}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",4}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",4}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",4}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",4}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",4},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",4}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",4},"Circulant"]

GraphData[{"Sunlet",4},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",4},"ComplementGraph","Name"]

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

Line graph

GraphData[{"Sunlet",4},"Line"]

LineGraphQ[GraphData[{"Sunlet",4}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",4}&]

RootGraph[GraphData[{"Sunlet",4}]]

Halin

GraphData[{"Sunlet",4},"Halin"]

GraphData[{"Sunlet",4},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",4},"Rigid"]

GraphData[{"Sunlet",4},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",4},"Flexible"]

GraphData[{"Sunlet",4},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",4},"LCF"]

GraphData[{"Sunlet",4},"HamiltonianCycleCount"]

GraphData[{"Sunlet",4},"LCFSignature"]

GraphData[{"Sunlet",4},"LCFNotations"]

GraphData[{"Sunlet",4},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",4},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",4}],Debug->True]//Timing

GraphData[{"Sunlet",4},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",4},"VertexList"],GraphData[{"Sunlet",4},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",4}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",4}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",4},"Matchstick"]

GraphData[{"Sunlet",4},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",4},"Edges"]]

3D All

GraphData[{"Sunlet",4},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",4},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",4},"Polyhedral"]

GraphData[{"Sunlet",4},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 5}

Names

GraphData[{"Sunlet",5},"StandardName"]

GraphData[{"Sunlet",5},"StandardNames"]

Primary

GraphData[{"Sunlet",5}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",5},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",5},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",5},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",5},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",5},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",5},"Configuration"]

GraphData[{"Sunlet",5},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",5},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",5}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",5},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",5},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=10},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",5}}]]//StyleGraphs

gs=GeneralizedHoneycombGraph[10,#]&/@{2,4}

RecognizeGraph/@gs

RotateGraph[#,-Pi/10]&/@gs

GeneralizedPetersen

GraphData[{"Sunlet",5},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",5},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",5},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",5},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",5},"Planar"]

GraphData[{"Sunlet",5},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",5},{"RCN","CN"}]

GraphData[{"Sunlet",5},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",5}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",5}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",5}],TimeConstraint->60])//AbsoluteTiming

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

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

(g=MinimalCrossingGraph[GraphData[{"Sunlet",5}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",5}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",5},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",5}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",5},"Circulant"]

GraphData[{"Sunlet",5},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",5},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",5},"Line"]

LineGraphQ[GraphData[{"Sunlet",5}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",5}&]

RootGraph[GraphData[{"Sunlet",5}]]

Halin

GraphData[{"Sunlet",5},"Halin"]

GraphData[{"Sunlet",5},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",5},"Rigid"]

GraphData[{"Sunlet",5},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",5},"Flexible"]

GraphData[{"Sunlet",5},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",5},"LCF"]

GraphData[{"Sunlet",5},"HamiltonianCycleCount"]

GraphData[{"Sunlet",5},"LCFSignature"]

GraphData[{"Sunlet",5},"LCFNotations"]

GraphData[{"Sunlet",5},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",5},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",5}],Debug->True]//Timing

GraphData[{"Sunlet",5},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",5},"VertexList"],GraphData[{"Sunlet",5},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",5}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",5}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",5},"Matchstick"]

GraphData[{"Sunlet",5},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",5},"Edges"]]

3D All

GraphData[{"Sunlet",5},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",5},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",5},"Polyhedral"]

GraphData[{"Sunlet",5},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 6}

Names

GraphData[{"Sunlet",6},"StandardName"]

GraphData[{"Sunlet",6},"StandardNames"]

Primary

GraphData[{"Sunlet",6}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",6},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",6},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",6},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",6},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",6},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",6},"Configuration"]

GraphData[{"Sunlet",6},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",6},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",6}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",6},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",6},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[1]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=12},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",6}}]]//Timing

g=GeneralizedHoneycombGraph[12,2]

RecognizeGraph@g

GeneralizedPetersen

GraphData[{"Sunlet",6},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",6},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",6},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",6},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",6},"Planar"]

GraphData[{"Sunlet",6},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",6},{"RCN","CN"}]

GraphData[{"Sunlet",6},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",6}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",6}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",6}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",6}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",6}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",6}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",6}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",6},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",6}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",6},"Circulant"]

GraphData[{"Sunlet",6},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",6},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",6},"Line"]

LineGraphQ[GraphData[{"Sunlet",6}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",6}&]

RootGraph[GraphData[{"Sunlet",6}]]

Halin

GraphData[{"Sunlet",6},"Halin"]

GraphData[{"Sunlet",6},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",6},"Rigid"]

GraphData[{"Sunlet",6},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",6},"Flexible"]

GraphData[{"Sunlet",6},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",6},"LCF"]

GraphData[{"Sunlet",6},"HamiltonianCycleCount"]

GraphData[{"Sunlet",6},"LCFSignature"]

GraphData[{"Sunlet",6},"LCFNotations"]

GraphData[{"Sunlet",6},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",6},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",6}],Debug->True]//Timing

GraphData[{"Sunlet",6},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",6},"VertexList"],GraphData[{"Sunlet",6},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",6}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",6}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",6},"Matchstick"]

GraphData[{"Sunlet",6},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",6},"Edges"]]

3D All

GraphData[{"Sunlet",6},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",6},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",6},"Polyhedral"]

GraphData[{"Sunlet",6},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 7}

Names

GraphData[{"Sunlet",7},"StandardName"]

GraphData[{"Sunlet",7},"StandardNames"]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",7},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",7},"Edges"]

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

RecognizeGraph[g]

Degenerate

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

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

Configuration

GraphData[{"Sunlet",7},"Configuration"]

GraphData[{"Sunlet",7},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",7},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",7}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",7},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",7},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[1]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=14},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",7}}]]//Timing

gs=GeneralizedHoneycombGraph[14,#]&/@{2,4,6}

RecognizeGraph/@gs

RotateGraph[#,-Pi/14]&/@gs

gs={,};

GeneralizedPetersen

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

IGraph

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

Bilateral

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

Circular

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

Planar

GraphData[{"Sunlet",7},"Planar"]

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

MinimalCrossing

GraphData[{"Sunlet",7},{"RCN","CN"}]

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

MinimalCrossing construction

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

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

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

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

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

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

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

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

Table[MinimalCrossingGraph[GraphData[{"Sunlet",7}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",7},"Circulant"]

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

Complement graph

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

Line graph

GraphData[{"Sunlet",7},"Line"]

LineGraphQ[GraphData[{"Sunlet",7}]]//Timing

RootGraph

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

RootGraph[GraphData[{"Sunlet",7}]]

Halin

GraphData[{"Sunlet",7},"Halin"]

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

Rigid

GraphData[{"Sunlet",7},"Rigid"]

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

Flexible

GraphData[{"Sunlet",7},"Flexible"]

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

LCF

GraphData[{"Sunlet",7},"LCF"]

GraphData[{"Sunlet",7},"HamiltonianCycleCount"]

GraphData[{"Sunlet",7},"LCFSignature"]

GraphData[{"Sunlet",7},"LCFNotations"]

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

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

UnitDistance

GraphData[{"Sunlet",7},"UnitDistance"]

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",7},"Matchstick"]

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

3D default

Graph3D[GraphData[{"Sunlet",7},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"Sunlet",7},"Polyhedral"]

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

{"Sunlet", 8}

Names

GraphData[{"Sunlet",8},"StandardName"]

GraphData[{"Sunlet",8},"StandardNames"]

Primary

GraphData[{"Sunlet",8}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",8},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",8},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",8},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",8},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",8},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",8},"Configuration"]

GraphData[{"Sunlet",8},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",8},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",8}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",8},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",8},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=16},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",8}}]]//Timing

gs=GeneralizedHoneycombGraph[16,#]&/@{2,6}

RecognizeGraph/@gs

RotateGraph[#,-Pi/16]&/@gs

GeneralizedPetersen

GraphData[{"Sunlet",8},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",8},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",8},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",8},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",8},"Planar"]

GraphData[{"Sunlet",8},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",8},{"RCN","CN"}]

GraphData[{"Sunlet",8},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",8}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",8}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",8}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",8}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",8}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",8}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",8}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",8},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",8}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",8},"Circulant"]

GraphData[{"Sunlet",8},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",8},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",8},"Line"]

LineGraphQ[GraphData[{"Sunlet",8}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",8}&]

RootGraph[GraphData[{"Sunlet",8}]]

Halin

GraphData[{"Sunlet",8},"Halin"]

GraphData[{"Sunlet",8},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",8},"Rigid"]

GraphData[{"Sunlet",8},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",8},"Flexible"]

GraphData[{"Sunlet",8},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",8},"LCF"]

GraphData[{"Sunlet",8},"HamiltonianCycleCount"]

GraphData[{"Sunlet",8},"LCFSignature"]

GraphData[{"Sunlet",8},"LCFNotations"]

GraphData[{"Sunlet",8},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",8},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",8}],Debug->True]//Timing

GraphData[{"Sunlet",8},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",8},"VertexList"],GraphData[{"Sunlet",8},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",8}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",8}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,,};

Matchstick

GraphData[{"Sunlet",8},"Matchstick"]

GraphData[{"Sunlet",8},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",8},"Edges"]]

3D All

GraphData[{"Sunlet",8},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",8},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",8},"Polyhedral"]

GraphData[{"Sunlet",8},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 9}

Names

GraphData[{"Sunlet",9},"StandardName"]

GraphData[{"Sunlet",9},"StandardNames"]

Primary

GraphData[{"Sunlet",9}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",9},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",9},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",9},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",9},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",9},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",9},"Configuration"]

GraphData[{"Sunlet",9},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",9},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",9}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",9},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",9},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[1]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=18},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",9}}]]//Timing

gs=GeneralizedHoneycombGraph[18,#]&/@{2,4,8}

RecognizeGraph/@gs

gs=Rest[gs]

GeneralizedPetersen

GraphData[{"Sunlet",9},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",9},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",9},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",9},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",9},"Planar"]

GraphData[{"Sunlet",9},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",9},{"RCN","CN"}]

GraphData[{"Sunlet",9},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",9}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",9}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",9}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",9}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",9}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",9}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",9}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",9},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",9}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",9},"Circulant"]

GraphData[{"Sunlet",9},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",9},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",9},"Line"]

LineGraphQ[GraphData[{"Sunlet",9}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",9}&]

RootGraph[GraphData[{"Sunlet",9}]]

Halin

GraphData[{"Sunlet",9},"Halin"]

GraphData[{"Sunlet",9},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",9},"Rigid"]

GraphData[{"Sunlet",9},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",9},"Flexible"]

GraphData[{"Sunlet",9},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",9},"LCF"]

GraphData[{"Sunlet",9},"HamiltonianCycleCount"]

GraphData[{"Sunlet",9},"LCFSignature"]

GraphData[{"Sunlet",9},"LCFNotations"]

GraphData[{"Sunlet",9},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",9},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",9}],Debug->True]//Timing

GraphData[{"Sunlet",9},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",9},"VertexList"],GraphData[{"Sunlet",9},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",9}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",9}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"Sunlet",9},"Matchstick"]

GraphData[{"Sunlet",9},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",9},"Edges"]]

3D All

GraphData[{"Sunlet",9},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",9},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",9},"Polyhedral"]

GraphData[{"Sunlet",9},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 10}

Names

GraphData[{"Sunlet",10},"StandardName"]

GraphData[{"Sunlet",10},"StandardNames"]

Primary

GraphData[{"Sunlet",10}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",10},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",10},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",10},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",10},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",10},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",10},"Configuration"]

GraphData[{"Sunlet",10},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",10},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",10}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",10},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",10},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=20},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",10}}]]//Timing

gs=GeneralizedHoneycombGraph[20,#]&/@{2,6}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",10},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",10},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",10},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",10},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",10},"Planar"]

GraphData[{"Sunlet",10},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",10},{"RCN","CN"}]

GraphData[{"Sunlet",10},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",10}],TimeConstraint->1])//AbsoluteTiming

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

(cn=CrossingNumber[GraphData[{"Sunlet",10}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",10}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",10}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",10}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",10}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",10},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",10}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",10},"Circulant"]

GraphData[{"Sunlet",10},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",10},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",10},"Line"]

LineGraphQ[GraphData[{"Sunlet",10}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",10}&]

RootGraph[GraphData[{"Sunlet",10}]]

Halin

GraphData[{"Sunlet",10},"Halin"]

GraphData[{"Sunlet",10},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",10},"Rigid"]

GraphData[{"Sunlet",10},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",10},"Flexible"]

GraphData[{"Sunlet",10},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",10},"LCF"]

GraphData[{"Sunlet",10},"HamiltonianCycleCount"]

GraphData[{"Sunlet",10},"LCFSignature"]

GraphData[{"Sunlet",10},"LCFNotations"]

GraphData[{"Sunlet",10},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",10},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",10}],Debug->True]//Timing

GraphData[{"Sunlet",10},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",10},"VertexList"],GraphData[{"Sunlet",10},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",10}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",10}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,};

Matchstick

GraphData[{"Sunlet",10},"Matchstick"]

GraphData[{"Sunlet",10},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",10},"Edges"]]

3D All

GraphData[{"Sunlet",10},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",10},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",10},"Polyhedral"]

GraphData[{"Sunlet",10},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 11}

Names

GraphData[{"Sunlet",11},"StandardName"]

GraphData[{"Sunlet",11},"StandardNames"]

Primary

GraphData[{"Sunlet",11}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",11},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",11},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",11},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",11},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",11},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",11},"Configuration"]

GraphData[{"Sunlet",11},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",11},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",11}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",11},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",11},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=22},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",11}}]]//Timing

gs=GeneralizedHoneycombGraph[22,#]&/@{2,4,6,8,10}

gs=Rest[gs]

GeneralizedPetersen

GraphData[{"Sunlet",11},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",11},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",11},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",11},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",11},"Planar"]

GraphData[{"Sunlet",11},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",11},{"RCN","CN"}]

GraphData[{"Sunlet",11},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",11}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",11}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",11}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",11}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",11}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",11}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",11}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",11},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",11}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",11},"Circulant"]

GraphData[{"Sunlet",11},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",11},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",11},"Line"]

LineGraphQ[GraphData[{"Sunlet",11}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",11}&]

RootGraph[GraphData[{"Sunlet",11}]]

Halin

GraphData[{"Sunlet",11},"Halin"]

GraphData[{"Sunlet",11},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",11},"Rigid"]

GraphData[{"Sunlet",11},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",11},"Flexible"]

GraphData[{"Sunlet",11},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",11},"LCF"]

GraphData[{"Sunlet",11},"HamiltonianCycleCount"]

GraphData[{"Sunlet",11},"LCFSignature"]

GraphData[{"Sunlet",11},"LCFNotations"]

GraphData[{"Sunlet",11},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",11},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",11}],Debug->True]//Timing

GraphData[{"Sunlet",11},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",11},"VertexList"],GraphData[{"Sunlet",11},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",11}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",11}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",11},"Matchstick"]

GraphData[{"Sunlet",11},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",11},"Edges"]]

3D All

GraphData[{"Sunlet",11},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",11},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",11},"Polyhedral"]

GraphData[{"Sunlet",11},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 12}

Names

GraphData[{"Sunlet",12},"StandardName"]

GraphData[{"Sunlet",12},"StandardNames"]

Primary

GraphData[{"Sunlet",12}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",12},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",12},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",12},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",12},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",12},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",12},"Configuration"]

GraphData[{"Sunlet",12},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",12},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",12}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",12},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",12},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=24},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",12}}]]//Timing

gs=GeneralizedHoneycombGraph[24,#]&/@{2,10}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",12},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",12},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",12},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",12},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",12},"Planar"]

GraphData[{"Sunlet",12},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",12},{"RCN","CN"}]

GraphData[{"Sunlet",12},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",12}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",12}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",12}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",12}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",12}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",12}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",12}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",12},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",12}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",12},"Circulant"]

GraphData[{"Sunlet",12},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",12},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",12},"Line"]

LineGraphQ[GraphData[{"Sunlet",12}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",12}&]

RootGraph[GraphData[{"Sunlet",12}]]

Halin

GraphData[{"Sunlet",12},"Halin"]

GraphData[{"Sunlet",12},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",12},"Rigid"]

GraphData[{"Sunlet",12},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",12},"Flexible"]

GraphData[{"Sunlet",12},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",12},"LCF"]

GraphData[{"Sunlet",12},"HamiltonianCycleCount"]

GraphData[{"Sunlet",12},"LCFSignature"]

GraphData[{"Sunlet",12},"LCFNotations"]

GraphData[{"Sunlet",12},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",12},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",12}],Debug->True]//Timing

GraphData[{"Sunlet",12},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",12},"VertexList"],GraphData[{"Sunlet",12},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",12}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",12}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,};

Matchstick

GraphData[{"Sunlet",12},"Matchstick"]

GraphData[{"Sunlet",12},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",12},"Edges"]]

3D All

GraphData[{"Sunlet",12},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",12},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",12},"Polyhedral"]

GraphData[{"Sunlet",12},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 13}

Names

GraphData[{"Sunlet",13},"StandardName"]

GraphData[{"Sunlet",13},"StandardNames"]

Primary

GraphData[{"Sunlet",13}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",13},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",13},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",13},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",13},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",13},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",13},"Configuration"]

GraphData[{"Sunlet",13},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",13},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",13}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",13},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",13},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=26},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",13}}]]//Timing

gs=GeneralizedHoneycombGraph[26,#]&/@{2,4,6,8,10,12}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",13},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",13},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",13},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",13},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",13},"Planar"]

GraphData[{"Sunlet",13},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",13},{"RCN","CN"}]

GraphData[{"Sunlet",13},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",13}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",13}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",13}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",13}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",13}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",13}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",13}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",13},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",13}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",13},"Circulant"]

GraphData[{"Sunlet",13},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",13},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",13},"Line"]

LineGraphQ[GraphData[{"Sunlet",13}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",13}&]

RootGraph[GraphData[{"Sunlet",13}]]

Halin

GraphData[{"Sunlet",13},"Halin"]

GraphData[{"Sunlet",13},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",13},"Rigid"]

GraphData[{"Sunlet",13},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",13},"Flexible"]

GraphData[{"Sunlet",13},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",13},"LCF"]

GraphData[{"Sunlet",13},"HamiltonianCycleCount"]

GraphData[{"Sunlet",13},"LCFSignature"]

GraphData[{"Sunlet",13},"LCFNotations"]

GraphData[{"Sunlet",13},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",13},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",13}],Debug->True]//Timing

GraphData[{"Sunlet",13},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",13},"VertexList"],GraphData[{"Sunlet",13},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",13}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",13}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",13},"Matchstick"]

GraphData[{"Sunlet",13},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",13},"Edges"]]

3D All

GraphData[{"Sunlet",13},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",13},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",13},"Polyhedral"]

GraphData[{"Sunlet",13},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 14}

Names

GraphData[{"Sunlet",14},"StandardName"]

GraphData[{"Sunlet",14},"StandardNames"]

Primary

GraphData[{"Sunlet",14}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",14},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",14},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",14},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",14},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",14},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",14},"Configuration"]

GraphData[{"Sunlet",14},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",14},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",14}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",14},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",14},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=28},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",14}}]]//Timing

gs=GeneralizedHoneycombGraph[28,#]&/@{2,6,10}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",14},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",14},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",14},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",14},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",14},"Planar"]

GraphData[{"Sunlet",14},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",14},{"RCN","CN"}]

GraphData[{"Sunlet",14},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",14}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",14}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",14}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",14}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",14}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",14}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",14}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",14},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",14}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",14},"Circulant"]

GraphData[{"Sunlet",14},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",14},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",14},"Line"]

LineGraphQ[GraphData[{"Sunlet",14}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",14}&]

RootGraph[GraphData[{"Sunlet",14}]]

Halin

GraphData[{"Sunlet",14},"Halin"]

GraphData[{"Sunlet",14},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",14},"Rigid"]

GraphData[{"Sunlet",14},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",14},"Flexible"]

GraphData[{"Sunlet",14},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",14},"LCF"]

GraphData[{"Sunlet",14},"HamiltonianCycleCount"]

GraphData[{"Sunlet",14},"LCFSignature"]

GraphData[{"Sunlet",14},"LCFNotations"]

GraphData[{"Sunlet",14},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",14},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",14}],Debug->True]//Timing

GraphData[{"Sunlet",14},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",14},"VertexList"],GraphData[{"Sunlet",14},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",14}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",14}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",14},"Matchstick"]

GraphData[{"Sunlet",14},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",14},"Edges"]]

3D All

GraphData[{"Sunlet",14},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",14},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",14},"Polyhedral"]

GraphData[{"Sunlet",14},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 15}

Names

GraphData[{"Sunlet",15},"StandardName"]

GraphData[{"Sunlet",15},"StandardNames"]

Primary

GraphData[{"Sunlet",15}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",15},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",15},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",15},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",15},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",15},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",15},"Configuration"]

GraphData[{"Sunlet",15},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",15},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",15}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}

Perspective construction

GraphData[{"Sunlet",15},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",15},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=30},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",15}}]]//Timing

gs=GeneralizedHoneycombGraph[30,#]&/@{2,4,8,14}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",15},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",15},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",15},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",15},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",15},"Planar"]

GraphData[{"Sunlet",15},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",15},{"RCN","CN"}]

GraphData[{"Sunlet",15},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",15}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",15}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",15}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",15}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",15}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",15}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",15}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",15},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",15}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",15},"Circulant"]

GraphData[{"Sunlet",15},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",15},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",15},"Line"]

LineGraphQ[GraphData[{"Sunlet",15}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",15}&]

RootGraph[GraphData[{"Sunlet",15}]]

Halin

GraphData[{"Sunlet",15},"Halin"]

GraphData[{"Sunlet",15},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",15},"Rigid"]

GraphData[{"Sunlet",15},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",15},"Flexible"]

GraphData[{"Sunlet",15},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",15},"LCF"]

GraphData[{"Sunlet",15},"HamiltonianCycleCount"]

GraphData[{"Sunlet",15},"LCFSignature"]

GraphData[{"Sunlet",15},"LCFNotations"]

GraphData[{"Sunlet",15},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",15},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",15}],Debug->True]//Timing

GraphData[{"Sunlet",15},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",15},"VertexList"],GraphData[{"Sunlet",15},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",15}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",15}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",15},"Matchstick"]

GraphData[{"Sunlet",15},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",15},"Edges"]]

3D All

GraphData[{"Sunlet",15},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",15},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",15},"Polyhedral"]

GraphData[{"Sunlet",15},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 16}

Names

GraphData[{"Sunlet",16},"StandardName"]

GraphData[{"Sunlet",16},"StandardNames"]

Primary

GraphData[{"Sunlet",16}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",16},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",16},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",16},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",16},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",16},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",16},"Configuration"]

GraphData[{"Sunlet",16},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",16},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",16}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",16},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",16},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=32},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",16}}]]//Timing

gs=GeneralizedHoneycombGraph[32,#]&/@{2,6,10,14}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",16},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",16},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",16},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",16},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",16},"Planar"]

GraphData[{"Sunlet",16},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",16},{"RCN","CN"}]

GraphData[{"Sunlet",16},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",16}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",16}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",16}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",16}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",16}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",16}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",16}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",16},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",16}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",16},"Circulant"]

GraphData[{"Sunlet",16},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",16},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",16},"Line"]

LineGraphQ[GraphData[{"Sunlet",16}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",16}&]

RootGraph[GraphData[{"Sunlet",16}]]

Halin

GraphData[{"Sunlet",16},"Halin"]

GraphData[{"Sunlet",16},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",16},"Rigid"]

GraphData[{"Sunlet",16},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",16},"Flexible"]

GraphData[{"Sunlet",16},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",16},"LCF"]

GraphData[{"Sunlet",16},"HamiltonianCycleCount"]

GraphData[{"Sunlet",16},"LCFSignature"]

GraphData[{"Sunlet",16},"LCFNotations"]

GraphData[{"Sunlet",16},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",16},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",16}],Debug->True]//Timing

GraphData[{"Sunlet",16},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",16},"VertexList"],GraphData[{"Sunlet",16},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",16}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",16}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",16},"Matchstick"]

GraphData[{"Sunlet",16},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",16},"Edges"]]

3D All

GraphData[{"Sunlet",16},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",16},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",16},"Polyhedral"]

GraphData[{"Sunlet",16},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 17}

Names

GraphData[{"Sunlet",17},"StandardName"]

GraphData[{"Sunlet",17},"StandardNames"]

Primary

GraphData[{"Sunlet",17}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",17},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",17},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",17},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",17},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",17},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",17},"Configuration"]

GraphData[{"Sunlet",17},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",17},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",17}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",17},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",17},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=34},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",17}}]]//Timing

gs=GeneralizedHoneycombGraph[34,#]&/@Range[2,16,2]

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",17},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",17},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",17},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",17},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",17},"Planar"]

GraphData[{"Sunlet",17},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",17},{"RCN","CN"}]

GraphData[{"Sunlet",17},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",17}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",17}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",17}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",17}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",17}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",17}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",17}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",17},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",17}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",17},"Circulant"]

GraphData[{"Sunlet",17},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",17},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",17},"Line"]

LineGraphQ[GraphData[{"Sunlet",17}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",17}&]

RootGraph[GraphData[{"Sunlet",17}]]

Halin

GraphData[{"Sunlet",17},"Halin"]

GraphData[{"Sunlet",17},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",17},"Rigid"]

GraphData[{"Sunlet",17},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",17},"Flexible"]

GraphData[{"Sunlet",17},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",17},"LCF"]

GraphData[{"Sunlet",17},"HamiltonianCycleCount"]

GraphData[{"Sunlet",17},"LCFSignature"]

GraphData[{"Sunlet",17},"LCFNotations"]

GraphData[{"Sunlet",17},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",17},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",17}],Debug->True]//Timing

GraphData[{"Sunlet",17},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",17},"VertexList"],GraphData[{"Sunlet",17},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",17}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",17}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",17},"Matchstick"]

GraphData[{"Sunlet",17},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",17},"Edges"]]

3D All

GraphData[{"Sunlet",17},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",17},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",17},"Polyhedral"]

GraphData[{"Sunlet",17},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 18}

Names

GraphData[{"Sunlet",18},"StandardName"]

GraphData[{"Sunlet",18},"StandardNames"]

Primary

GraphData[{"Sunlet",18}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",18},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",18},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",18},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",18},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",18},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",18},"Configuration"]

GraphData[{"Sunlet",18},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",18},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",18}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",18},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",18},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=36},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",18}}]]//Timing

gs=GeneralizedHoneycombGraph[36,#]&/@{2,10,14}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",18},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",18},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",18},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",18},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",18},"Planar"]

GraphData[{"Sunlet",18},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",18},{"RCN","CN"}]

GraphData[{"Sunlet",18},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",18}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",18}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",18}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",18}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",18}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",18}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",18}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",18},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",18}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",18},"Circulant"]

GraphData[{"Sunlet",18},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",18},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",18},"Line"]

LineGraphQ[GraphData[{"Sunlet",18}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",18}&]

RootGraph[GraphData[{"Sunlet",18}]]

Halin

GraphData[{"Sunlet",18},"Halin"]

GraphData[{"Sunlet",18},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",18},"Rigid"]

GraphData[{"Sunlet",18},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",18},"Flexible"]

GraphData[{"Sunlet",18},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",18},"LCF"]

GraphData[{"Sunlet",18},"HamiltonianCycleCount"]

GraphData[{"Sunlet",18},"LCFSignature"]

GraphData[{"Sunlet",18},"LCFNotations"]

GraphData[{"Sunlet",18},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",18},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",18}],Debug->True]//Timing

GraphData[{"Sunlet",18},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",18},"VertexList"],GraphData[{"Sunlet",18},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",18}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",18}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",18},"Matchstick"]

GraphData[{"Sunlet",18},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",18},"Edges"]]

3D All

GraphData[{"Sunlet",18},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",18},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",18},"Polyhedral"]

GraphData[{"Sunlet",18},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 19}

Names

GraphData[{"Sunlet",19},"StandardName"]

GraphData[{"Sunlet",19},"StandardNames"]

Primary

GraphData[{"Sunlet",19}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",19},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",19},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",19},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",19},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",19},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",19},"Configuration"]

GraphData[{"Sunlet",19},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",19},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",19}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",19},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",19},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=38},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",19}}]]//Timing

gs=GeneralizedHoneycombGraph[38,#]&/@Range[2,18,2]

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",19},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",19},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",19},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",19},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",19},"Planar"]

GraphData[{"Sunlet",19},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",19},{"RCN","CN"}]

GraphData[{"Sunlet",19},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",19}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",19}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",19}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",19}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",19}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",19}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",19}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",19},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",19}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",19},"Circulant"]

GraphData[{"Sunlet",19},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",19},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",19},"Line"]

LineGraphQ[GraphData[{"Sunlet",19}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",19}&]

RootGraph[GraphData[{"Sunlet",19}]]

Halin

GraphData[{"Sunlet",19},"Halin"]

GraphData[{"Sunlet",19},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",19},"Rigid"]

GraphData[{"Sunlet",19},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",19},"Flexible"]

GraphData[{"Sunlet",19},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",19},"LCF"]

GraphData[{"Sunlet",19},"HamiltonianCycleCount"]

GraphData[{"Sunlet",19},"LCFSignature"]

GraphData[{"Sunlet",19},"LCFNotations"]

GraphData[{"Sunlet",19},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",19},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",19}],Debug->True]//Timing

GraphData[{"Sunlet",19},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",19},"VertexList"],GraphData[{"Sunlet",19},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",19}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",19}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",19},"Matchstick"]

GraphData[{"Sunlet",19},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",19},"Edges"]]

3D All

GraphData[{"Sunlet",19},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",19},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",19},"Polyhedral"]

GraphData[{"Sunlet",19},"Graph",{"3D","Polyhedron"}]

{"Sunlet", 20}

Names

GraphData[{"Sunlet",20},"StandardName"]

GraphData[{"Sunlet",20},"StandardNames"]

Primary

GraphData[{"Sunlet",20}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Sunlet",20},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Sunlet",20},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Sunlet",20},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"Sunlet",20},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Sunlet",20},"Graph","Degenerate"]

Configuration

GraphData[{"Sunlet",20},"Configuration"]

GraphData[{"Sunlet",20},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Sunlet",20},"Graph","Perspective"]//StyleGraphs

Sunlet construction

SunletGraph[{"Sunlet",20}[[2]],GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

Perspective construction

GraphData[{"Sunlet",20},"Polyhedron"]

HoneycombToroidal construction

GraphData[{"Sunlet",20},"NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=40},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,{"Sunlet",20}}]]//Timing

gs=GeneralizedHoneycombGraph[40,#]&/@{2,6,14,18}

RecognizeGraph/@gs

GeneralizedPetersen

GraphData[{"Sunlet",20},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Sunlet",20},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Sunlet",20},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Sunlet",20},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Sunlet",20},"Planar"]

GraphData[{"Sunlet",20},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Sunlet",20},{"RCN","CN"}]

GraphData[{"Sunlet",20},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"Sunlet",20}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",20}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",20}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",20}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"Sunlet",20}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"Sunlet",20}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

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

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"Sunlet",20}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"Sunlet",20},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"Sunlet",20}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union//Timing

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Sunlet",20},"Circulant"]

GraphData[{"Sunlet",20},"Graph","Circulant"]//StyleGraphs

Complement graph

compl=GraphData[{"Sunlet",20},"ComplementGraph","Name"]

Line graph

GraphData[{"Sunlet",20},"Line"]

LineGraphQ[GraphData[{"Sunlet",20}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Sunlet",20}&]

RootGraph[GraphData[{"Sunlet",20}]]

Halin

GraphData[{"Sunlet",20},"Halin"]

GraphData[{"Sunlet",20},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Sunlet",20},"Rigid"]

GraphData[{"Sunlet",20},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Sunlet",20},"Flexible"]

GraphData[{"Sunlet",20},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Sunlet",20},"LCF"]

GraphData[{"Sunlet",20},"HamiltonianCycleCount"]

GraphData[{"Sunlet",20},"LCFSignature"]

GraphData[{"Sunlet",20},"LCFNotations"]

GraphData[{"Sunlet",20},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Sunlet",20},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Sunlet",20}],Debug->True]//Timing

GraphData[{"Sunlet",20},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Sunlet",20},"VertexList"],GraphData[{"Sunlet",20},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"Sunlet",20}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"Sunlet",20}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Sunlet",20},"Matchstick"]

GraphData[{"Sunlet",20},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Sunlet",20},"Edges"]]

3D All

GraphData[{"Sunlet",20},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Sunlet",20},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Sunlet",20},"Polyhedral"]

GraphData[{"Sunlet",20},"Graph",{"3D","Polyhedron"}]

Properties

Acyclic

seq=Table[GraphData[{"Sunlet",n},"Acyclic"],{n,3,20}]

AdjacencyMatrixCount

A009445

seq=Table[GraphData[{"Sunlet",n},"AdjacencyMatrixCount"],{n,3,20}]

FullSimplify[(((2n)!)/(2n))]

Table[Gamma[2 n],{n,3,20}]

Arboricity

Table[GraphData[{"Sunlet",n},"Arboricity"],{n,3,20}]

ArcTransitive

seq=Table[GraphData[{"Sunlet",n},"ArcTransitive"],{n,3,20}]

ArcTransitivity

seq=Table[GraphData[{"Sunlet",n},"ArcTransitivity"],{n,3,20}]

AutomorphismCount

seq=Table[GraphData[{"Sunlet",n},"AutomorphismCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

BalabanIndex

seq=Table[GraphData[{"Sunlet",n},"BalabanIndex"],{n,3,8}]//FullSimplify

Bandwidth

seq=Table[GraphData[{"Sunlet",n},"Bandwidth"],{n,3,20}]

BridgeCount

seq=Table[GraphData[{"Sunlet",n},"BridgeCount"],{n,3,20}]

BurningNumber

seq=Table[GraphData[{"Sunlet",n},"BurningNumber"],{n,3,20}]

CharacteristicPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"CharacteristicPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

Chordal

seq=Table[GraphData[{"Sunlet",n},"Chordal"],{n,3,20}]

ChordCount

seq=Table[GraphData[{"Sunlet",n},"ChordCount"],{n,3,20}]

Chordless

seq=Table[GraphData[{"Sunlet",n},"Chordless"],{n,3,20}]

ChordlessCycleCount

seq=Table[GraphData[{"Sunlet",n},"ChordlessCycleCount"],{n,3,20}]

Chords

seq=Table[GraphData[{"Sunlet",n},"Chords"],{n,3,20}]

ChromaticInvariant

seq=Table[GraphData[{"Sunlet",n},"ChromaticInvariant"],{n,3,20}]

ChromaticNumber

seq=Table[GraphData[{"Sunlet",n},"ChromaticNumber"],{n,3,20}]

ChromaticPolynomial

(poly=Factor@Table[GraphData[{"Sunlet",n},"ChromaticPolynomial"][x],{n,k0=3,kmax=20}])//Column

Length[poly]

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

Circumference

seq=Table[GraphData[{"Sunlet",n},"Circumference"],{n,3,20}]

FindSequenceFunction[seq,n-2]

Classes

Intersection@@(GraphData[#,"Classes"]&/@GraphData["Sunlet"])

CliqueCount

seq=Table[GraphData[{"Sunlet",n},"CliqueCount"],{n,3,20}]

FindSequenceFunction[Rest@seq,n-3]//Factor

CliqueCoveringNumber

seq=Table[GraphData[{"Sunlet",n},"CliqueCoveringNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]

CliqueNumber

seq=Table[GraphData[{"Sunlet",n},"CliqueNumber"],{n,3,20}]

CliquePolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"CliquePolynomial"],{n,k0=4,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

ComplementOddChordlessCycleCount

seq=Table[GraphData[{"Sunlet",n},"ComplementOddChordlessCycleCount"],{n,3,20}]

ConnectedComponentCount

seq=Table[GraphData[{"Sunlet",n},"ConnectedComponentCount"],{n,3,20}]

ConnectedDominatingSetCount

seq=Table[GraphData[{"Sunlet",n},"ConnectedDominatingSetCount"],{n,3,20}]

FindLinearRecurrence[DeleteCases[seq,_Missing]]

FindSequenceFunction[DeleteCases[seq,_Missing],n-2]//FullSimplify

ConnectedDominationNumber

seq=Table[GraphData[{"Sunlet",n},"ConnectedDominationNumber"],{n,3,20}]

ConnectedDominationPolynomial

(poly=DeleteCases[Factor@Table[GraphData[{"Sunlet",n},"ConnectedDominationPolynomial"][x],{n,k0=3,20}],_Missing[x]])//Column

poly2=Table[(x^n)(((x+1))^n),{n,k0,12}]//Expand

FullSimplify[poly2-poly]

ConnectedInducedSubgraphCount

A048493

seq=Table[GraphData[{"Sunlet",n},"ConnectedInducedSubgraphCount"],{n,3,20}]

FindLinearRecurrence[DeleteCases[seq,_Missing]]

FindSequenceFunction[DeleteCases[seq,_Missing],n-2]//FullSimplify

gf=(x^3)FindGeneratingFunction[DeleteCases[seq,_Missing],x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>2]

FullSimplify[Subtract@@{(n+1)2^n-n,(2^n)+(-1+(2^n)) n}]

LinearRecurrence[{6,-13,12,-4},{3,10,29,76},20]

Table[(n+1)2^n-n,{n,20}]

Table[(2^n)+(-1+(2^n)) n,{n,20}]

ConnectedInducedSubgraphPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"ConnectedInducedSubgraphPolynomial"],{n,k0=3,20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,10}]

FullSimplify[poly2-poly]

CrossingNumber

seq=Table[GraphData[{"Sunlet",n},"CrossingNumber"],{n,3,20}]

CycleCount

seq=Table[GraphData[{"Sunlet",n},"CycleCount"],{n,3,20}]

CyclePolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"CyclePolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])

Cyclic

Table[GraphData[{"Sunlet",n},"Cyclic"],{n,3,20}]

CyclomaticNumber

seq=Table[GraphData[{"Sunlet",n},"CyclomaticNumber"],{n,3,20}]

DetourIndex

seq=Table[GraphData[{"Sunlet",n},"DetourIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

DetourMatrix

MatrixForm/@Table[GraphData[{"Sunlet",n},"DetourMatrix"],{n,3,20}]

MatrixForm/@Table[SparseArray[{i_,j_}:>Abs[i-j],n],{n,3,20}]

DetourPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"DetourPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

Diameter

seq=Table[GraphData[{"Sunlet",n},"Diameter"],{n,3,20}]

DistanceMatrix

MatrixForm/@Table[GraphData[{"Sunlet",n},"DistanceMatrix"],{n,3,20}]

MatrixForm/@Table[SparseArray[{i_,j_}:>Abs[i-j],n],{n,3,20}]

DistancePolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"DistancePolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

DistinguishingNumber

seq=Table[GraphData[{"Sunlet",n},"DistinguishingNumber"],{n,3,20}]

DomaticNumber

seq=Table[GraphData[{"Sunlet",n},"DomaticNumber"],{n,3,20}]

DominatingSetCount

seq=Table[GraphData[{"Sunlet",n},"DominatingSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

DominationNumber

seq=Table[GraphData[{"Sunlet",n},"DominationNumber"],{n,3,20}]

DominationPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"DominationPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

EdgeChromaticNumber

seq=Table[GraphData[{"Sunlet",n},"EdgeChromaticNumber"],{n,3,20}]

EdgeConnectivity

Table[GraphData[{"Sunlet",n},"EdgeConnectivity"],{n,3,20}]

EdgeCount

seq=Table[GraphData[{"Sunlet",n},"EdgeCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

EdgeCoverCount

seq=Table[GraphData[{"Sunlet",n},"EdgeCoverCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

EdgeCoverNumber

seq=Table[GraphData[{"Sunlet",n},"EdgeCoverNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]

EdgeCoverPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"EdgeCoverPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

EulerianCycleCount

seq=Table[GraphData[{"Sunlet",n},"EulerianCycleCount"],{n,3,20}]

FaceCount

seq=Table[GraphData[{"Sunlet",n},"FaceCount"],{n,3,20}]

FlowPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"FlowPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])

FractionalChromaticNumber

seq=Table[GraphData[{"Sunlet",n},"FractionalChromaticNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

FractionalEdgeChromaticNumber

seq=Table[GraphData[{"Sunlet",n},"FractionalEdgeChromaticNumber"],{n,3,20}]

Girth

seq=Table[GraphData[{"Sunlet",n},"Girth"],{n,3,20}]

Gonality

seq=Table[GraphData[{"Sunlet",n},"Gonality"],{n,3,20}]

HamiltonConnected

seq=Table[GraphData[{"Sunlet",n},"HamiltonConnected"],{n,3,20}]

HamiltonDecompositionCount

seq=Table[GraphData[{"Sunlet",n},"HamiltonDecompositionCount"],{n,3,20}]

Hamiltonian

Table[GraphData[{"Sunlet",n},"Hamiltonian"],{n,3,20}]

HamiltonianCycleCount

seq=Table[GraphData[{"Sunlet",n},"HamiltonianCycleCount"],{n,3,20}]

HamiltonianNumber

seq=Table[GraphData[{"Sunlet",n},"HamiltonianNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]

HamiltonianPathCount

seq=Table[GraphData[{"Sunlet",n},"HamiltonianPathCount"],{n,3,20}]

HamiltonianWalkCount

seq=Table[GraphData[{"Sunlet",n},"HamiltonianWalkCount"],{n,3,20}]

HararyIndex

seq=Table[GraphData[{"Sunlet",n},"HararyIndex"],{n,3,20}]

seq=Table[HararyIndex[SunletGraph[n]],{n,3,30}]

FindSequenceFunction[seq,n-2]

gf=(x^3)FindGeneratingFunction[seq,x]

HexagonCount

seq=Table[GraphData[{"Sunlet",n},"HexagonCount"],{n,3,20}]

IdiosyncraticPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"IdiosyncraticPolynomial"][x,y],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

IndependenceNumber

seq=Table[GraphData[{"Sunlet",n},"IndependenceNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]

IndependencePolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"IndependencePolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

IndependenceRatio

seq=Table[GraphData[{"Sunlet",n},"IndependenceRatio"],{n,3,20}]

IndependentEdgeSetCount

A002203

seq=Table[GraphData[{"Sunlet",n},"IndependentEdgeSetCount"],{n,3,20}]

FindLinearRecurrence[DeleteCases[seq,_Missing]]

LinearRecurrence[{2,1},{14,34},20]

FindSequenceFunction[DeleteCases[seq,_Missing],n-2]//FullSimplify

Table[(((1-(Sqrt[2])))^n)+(((1+(Sqrt[2])))^n),{n,0,20}]//Expand

Table[LucasL[n,2],{n,0,30}]

seq=LucasL[Range[0,20],2]

gf=FindGeneratingFunction[DeleteCases[seq,_Missing],x]

CoefficientList[Series[((2 (1-x))/(1-2 x-(x^2))),{x,0,20}],x]

IndependentVertexSetCount

A080040

seq=Table[GraphData[{"Sunlet",n},"IndependentVertexSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

Table[LucasL[n,Sqrt[2]] 2^(n/2),{n,3,20}]//Round

IrredundantSetCount

seq=Table[GraphData[{"Sunlet",n},"IrredundantSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]

IntersectionNumber

seq=Table[GraphData[{"Sunlet",n},"IntersectionNumber"],{n,3,20}]

KirchhoffIndex

seq=Table[GraphData[{"Sunlet",n},"KirchhoffIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

KirchhoffSumIndex

seq=Table[GraphData[{"Sunlet",n},"KirchhoffSumIndex"],{n,3,20}]

seq=Table[KirchhoffSumIndex[SunletGraph[n]],{n,3,30}]

FindSequenceFunction[seq,n-2]

LaplacianMatrix

MatrixForm/@Table[GraphData[{"Sunlet",n},"LaplacianMatrix"],{n,3,20}]

LaplacianPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"LaplacianPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

LeafCount

seq=Table[GraphData[{"Sunlet",n},"LeafCount"],{n,3,20}]

LongestCycleCount

seq=Table[GraphData[{"Sunlet",n},"LongestCycleCount"],{n,3,20}]

LovaszNumber

seq=Table[GraphData[{"Sunlet",n},"LovaszNumber"],{n,3,20}]

MatchingGeneratingPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"MatchingGeneratingPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

MatchingNumber

seq=Table[GraphData[{"Sunlet",n},"MatchingNumber"],{n,3,20}]

MatchingPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"MatchingPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

MaximalCliqueCount

seq=Table[GraphData[{"Sunlet",n},"MaximalCliqueCount"],{n,3,20}]

FindSequenceFunction[Rest@seq,n-3]

MaximalIndependentEdgeSetCount

A000032

seq=Table[GraphData[{"Sunlet",n},"MaximalIndependentEdgeSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

Table[Fibonacci[2n]/Fibonacci[n],{n,3,20}]

Table[Fibonacci[n-1]+Fibonacci[n+1],{n,3,20}]

Table[Fibonacci[n]+2Fibonacci[n-1],{n,3,20}]

MaximalIndependentVertexSetCount

A000032

seq=Table[GraphData[{"Sunlet",n},"MaximalIndependentVertexSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

Table[Fibonacci[2n]/Fibonacci[n],{n,3,20}]

Table[Fibonacci[n-1]+Fibonacci[n+1],{n,3,20}]

Table[Fibonacci[n]+2Fibonacci[n-1],{n,3,20}]

MaximalIrredundantSetCount

seq=Table[GraphData[{"Sunlet",n},"MaximalIrredundantSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]

MaximumCliqueCount

seq=Table[GraphData[{"Sunlet",n},"MaximumCliqueCount"],{n,3,20}]

FindSequenceFunction[Rest@seq,n-3]

MaximumIndependentEdgeSetCount

seq=Table[GraphData[{"Sunlet",n},"MaximumIndependentEdgeSetCount"],{n,3,20}]

MaximumIndependentVertexSetCount

A000032

seq=Table[GraphData[{"Sunlet",n},"MaximumIndependentVertexSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

Table[Fibonacci[2n]/Fibonacci[n],{n,3,20}]

Table[Fibonacci[n-1]+Fibonacci[n+1],{n,3,20}]

Table[Fibonacci[n]+2Fibonacci[n-1],{n,3,20}]

Table[LucasL[n,1],{n,3,20}]

MaximumLeafNumber

seq=Table[GraphData[{"Sunlet",n},"MaximumLeafNumber"],{n,3,20}]

MaximumVertexDegree

seq=Table[GraphData[{"Sunlet",n},"MaximumVertexDegree"],{n,3,20}]

MeanDistance

seq=Table[GraphData[{"Sunlet",n},"MeanDistance"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify[#,n∈Integers]&

MinimalDominatingSetCount

seq=Table[GraphData[{"Sunlet",n},"MinimalDominatingSetCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]

MinimalDominatingSetSignature

seq=Table[GraphData[{"Sunlet",n},"MinimalDominatingSetSignature"],{n,3,20}]//Column

MinimumCliqueCoveringCount

seq=Table[GraphData[{"Sunlet",n},"MinimumCliqueCoveringCount"],{n,3,20}]

MinimumConnectedDominatingSetCount

seq=Table[GraphData[{"Sunlet",n},"MinimumConnectedDominatingSetCount"],{n,3,20}]

MinimumDistinguishingLabelingCount

seq=Table[GraphData[{"Sunlet",n},"MinimumDistinguishingLabelingCount"],{n,3,20}]

FindSequenceFunction[DeleteMissing@seq,n-2]

MinimumDominatingSetCount

seq=Table[GraphData[{"Sunlet",n},"MinimumDominatingSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

MinimumEdgeCoverCount

seq=Table[GraphData[{"Sunlet",n},"MinimumEdgeCoverCount"],{n,3,20}]

MinimumVertexDegree

seq=Table[GraphData[{"Sunlet",n},"MinimumVertexDegree"],{n,3,20}]

MolecularTopologicalIndex

seq=Table[GraphData[{"Sunlet",n},"MolecularTopologicalIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify//Factor

Nonhamiltonian

Table[GraphData[{"Sunlet",n},"Nonhamiltonian"],{n,3,20}]

NormalizedLaplacianMatrix

MatrixForm/@Table[GraphData[{"Sunlet",n},"NormalizedLaplacianMatrix"],{n,3,20}]

OddChordlessCycleCount

seq=Table[GraphData[{"Sunlet",n},"OddChordlessCycleCount"],{n,3,20}]

PathCount

A001107

seq=Table[GraphData[{"Sunlet",n},"PathCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

seq=PolygonalNumber[10,Range[0,20]]

FindLinearRecurrence[seq]

LinearRecurrence[{3,-3,1},{1,10,27},{0,20}]

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

PathPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"PathPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>2]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

PentagonCount

seq=Table[GraphData[{"Sunlet",n},"PentagonCount"],{n,3,20}]

Perfect

Table[GraphData[{"Sunlet",n},"Perfect"],{n,3,20}]

ProjectivePlaneCrossingNumber

seq=Table[GraphData[{"Sunlet",n},"ProjectivePlaneCrossingNumber"],{n,3,20}]

Radius

seq=Table[GraphData[{"Sunlet",n},"Radius"],{n,3,20}]

RankPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"RankPolynomial"][x,y],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

RectilinearCrossingNumber

seq=Table[GraphData[{"Sunlet",n},"RectilinearCrossingNumber"],{n,3,20}]

ReliabilityPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"ReliabilityPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

SigmaPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"SigmaPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

Skewness

GraphData[{"Sunlet",6}]

seq=Table[GraphData[{"Sunlet",n},"Skewness"],{n,3,20}]

SpanningTreeCount

seq=Table[GraphData[{"Sunlet",n},"SpanningTreeCount"],{n,3,20}]

SquareCount

seq=Table[GraphData[{"Sunlet",n},"SquareCount"],{n,3,20}]

StabilityIndex

seq=Table[GraphData[{"Sunlet",n},"StabilityIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

Table[LucasL[n,2]-2 Cos[((n π)/2)],{n,3,20}]

MinimalEdgeCoverCount

seq=Table[GraphData[{"Sunlet",n},"MinimalEdgeCoverCount"],{n,3,20}]

MinimalEdgeCoverSignature

seq=Table[GraphData[{"Sunlet",n},"MinimalEdgeCoverSignature"],{n,3,20}]//Column

TopologicalIndex

seq=Table[GraphData[{"Sunlet",n},"TopologicalIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]

FindGeneratingFunction[seq,x]

ToroidalCrossingNumber

seq=Table[GraphData[{"Sunlet",n},"ToroidalCrossingNumber"],{n,3,20}]

Traceable

Table[GraphData[{"Sunlet",n},"Traceable"],{n,3,20}]

TriangleCount

seq=Table[GraphData[{"Sunlet",n},"TriangleCount"],{n,3,20}]

TuttePolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"TuttePolynomial"][x,y],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

Untraceable

Table[GraphData[{"Sunlet",n},"Untraceable"],{n,3,20}]

VertexConnectivity

Table[GraphData[{"Sunlet",n},"VertexConnectivity"],{n,3,20}]

VertexCount

seq=Table[GraphData[{"Sunlet",n},"VertexCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

VertexCoverNumber

vertex cover number == vertex count - independence number

seq=Table[GraphData[{"Sunlet",n},"VertexCoverNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

VertexCoverPolynomial

(poly=Factor[Table[GraphData[{"Sunlet",n},"VertexCoverPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

VertexDegrees

seq=Table[GraphData[{"Sunlet",n},"VertexDegrees"],{n,3,20}]

VertexTransitive

Table[GraphData[{"Sunlet",n},"VertexTransitive"],{n,3,20}]

WienerIndex

A180574

seq=Table[GraphData[{"Sunlet",n},"WienerIndex"],{n,3,20}]

FullSimplify[Expand[FindSequenceFunction[seq,n-2]]/.(((-1))^(k_+2n)):>(((-1))^k),n∈Integers]

Table[(1/4) n (-5+(((-1))^n)+2 n (4+n)),{n,3,20}]

FindLinearRecurrence[seq]

seq=LinearRecurrence[{2,1,-4,1,2,-1},{27,60,105,174,259,376},20]

gf=(x^3)FindGeneratingFunction[seq,x]

CoefficientList[Series[((27+6 x-42 (x^2)+12 (x^3)+19 (x^4)-10 (x^5))/((((-1+x))^4) (((1+x))^2))),{x,0,20}],x]

WienerSumIndex

seq=Table[GraphData[{"Sunlet",n},"WienerSumIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]

GraphData

GraphDataClassString

GraphDataClassString[GraphData["Sunlet"]]

GraphDataString

file=OpenWrite["sunlet.m"]

Table[WriteString[file,GraphDataString[Sunlet[n],
"StandardName"->{"Sunlet",n},
"Name"->ToString[n]<>"-sunlet graph",
"Information"->"SunletGraph",
"Classes"->{"Sunlet","UnitDistance"},
"NotationRules"->{"Sunlet"->n},
Debug->True,
TimeConstraint->300
]],{n,5,20}]