Pan Graph

Author

Eric W. Weisstein
December 1, 2024

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

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

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

Figures

"BannerGraph"

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

Graphs.m

Default

GraphicsRow[Table[Show[PanGraph[n]//StyleGraphs[#,VertexSize->.25]&,PlotLabel->Style[HoldForm[n]==n,FontFamily->"Times"]],{n,3,7}],Spacings->-30,Dividers->All]

"UnitDistance"

GraphicsRow[Table[Show[PanGraph[n,GraphLayout->"UnitDistance"]//StyleGraphs[#,VertexSize->.25]&,PlotLabel->Style[HoldForm[n]==n,FontFamily->"Times"]],{n,3,7}],Spacings->-30,Dividers->All]

GraphData

Primary

GraphicsGrid[Partition[Table[Show[GraphData[{"Pan",n}]//StyleGraphs,PlotLabel->Style[HoldForm[n]==n,FontFamily->"Times"]],{n,3,20}],5],Dividers->All,ImageSize->600]

"UnitDistance"

GraphicsGrid[Partition[Table[Show[GraphData[{"Pan",n},"Graph","UnitDistance"][[1]]//StyleGraphs,PlotLabel->Style[HoldForm[n]==n,FontFamily->"Times"]],{n,3,20}],5],Dividers->All,ImageSize->600]

Embedding types

4-pan graph

GraphData[{"Pan",4},"#"]

GraphData[{"Pan",3},"Graph","All"]

GraphData[{"Pan",4},"Graph","All"]

GraphData[{"Pan",4},"EmbeddingClasses"]

GraphData

Primary

GraphicsGrid[Partition[Table[GraphData[{"Pan",n}],{n,3,20}],UpTo[5]],ImageSize->600]//StyleGraphs

UnitDistance

GraphicsGrid[Partition[Table[GraphData[{"Pan",n},"Graph","UnitDistance"][[1]],{n,3,20}],UpTo[5]],ImageSize->600]//StyleGraphs

Graphs.m

Automatic

GraphicsGrid[Partition[Table[PanGraph[n],{n,3,20}],UpTo[5]],ImageSize->600]//StyleGraphs

UnitDistance

GraphicsGrid[Partition[Table[PanGraph[n,GraphLayout->"UnitDistance"],{n,3,20}],UpTo[5]],ImageSize->600]//StyleGraphs

Embeddings

<<MathWorld`Graphs`

{"Pan", 3} == "PawGraph"

Names

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

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

{"Pan", 4} == "BannerGraph"

Names

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

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

{"Pan", 5}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",5}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",5},"VertexList"],GraphData[{"Pan",5},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",5},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",5}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",5}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",5}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",5}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",5}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",5},"LocalCrossingNumber"]

GraphData[{"Pan",5},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",5},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",5}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

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

gs=GraphComplement/@%

Select[%,!DegenerateGraphEmbeddingQ[#]&]

g=;

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 6}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[6,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",6}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",6},"VertexList"],GraphData[{"Pan",6},"Edges"]]]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",6},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",6}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",6}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",6}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",6}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",6}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",6},"LocalCrossingNumber"]

GraphData[{"Pan",6},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",6},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",6}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

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

gs=GraphComplement/@%

Select[%,!DegenerateGraphEmbeddingQ[#]&]

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 7}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",7}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",7},"VertexList"],GraphData[{"Pan",7},"Edges"]]]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",7},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",7}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",7}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",7}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",7}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",7}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",7},"LocalCrossingNumber"]

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

Circulant

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

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

Circulant construction

GraphData[{"Pan",7},"NotationRules","Circulant"]

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

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 8}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[8,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",8}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",8},"VertexList"],GraphData[{"Pan",8},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",8},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",8}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",8}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",8}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",8}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",8}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",8},"LocalCrossingNumber"]

GraphData[{"Pan",8},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",8},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",8}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 9}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[9,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",9}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",9},"VertexList"],GraphData[{"Pan",9},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",9},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",9}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",9}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",9}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",9}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",9}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",9},"LocalCrossingNumber"]

GraphData[{"Pan",9},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",9},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",9}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 10}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[10,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",10}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",10},"VertexList"],GraphData[{"Pan",10},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",10},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",10}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",10}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",10}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",10}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",10}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",10},"LocalCrossingNumber"]

GraphData[{"Pan",10},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",10},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",10}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 11}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[11,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",11}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",11},"VertexList"],GraphData[{"Pan",11},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",11},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",11}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",11}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",11}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",11}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",11}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",11},"LocalCrossingNumber"]

GraphData[{"Pan",11},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",11},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",11}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 12}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[12,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",12}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",12},"VertexList"],GraphData[{"Pan",12},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",12},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",12}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",12}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",12}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",12}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",12}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",12},"LocalCrossingNumber"]

GraphData[{"Pan",12},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",12},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",12}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 13}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[13,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",13}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",13},"VertexList"],GraphData[{"Pan",13},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",13},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",13}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",13}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",13}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",13}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",13}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",13},"LocalCrossingNumber"]

GraphData[{"Pan",13},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",13},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",13}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Pan", 14}

Names

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

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

Primary

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

Graphs.m

Table[PanGraph[14,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",14}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",14},"VertexList"],GraphData[{"Pan",14},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

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

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

Configuration

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

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

Perspective

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

HoneycombToroidal construction

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

GeneralizedPetersen

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

IGraph

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

Bilateral

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

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

Circular

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

Circular construction

GraphData[{"Pan",14},"Hamiltonian"]

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

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",14}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",14}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

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

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

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",14}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",14}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",14}]])//Timing

Length[plemb]

MinimalCrossing

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

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

MinimalLocalCrossing

GraphData[{"Pan",14},"LocalCrossingNumber"]

GraphData[{"Pan",14},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

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

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

Circulant construction

GraphData[{"Pan",14},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",14}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

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

Line graph

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

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

RootGraph

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

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

RecognizeGraph[%]

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Pan",14},"Matchstick"]

GraphData[{"Pan",14},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Pan",14},"Edges"]]

3D All

GraphData[{"Pan",14},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Pan",14},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Pan",14},"Polyhedral"]

GraphData[{"Pan",14},"Graph",{"3D","Polyhedron"}]

{"Pan", 15}

Names

GraphData[{"Pan",15},"StandardName"]

GraphData[{"Pan",15},"StandardNames"]

Primary

GraphData[{"Pan",15}]//StyleGraphs[#,ImageSize->Small]&

Graphs.m

Table[PanGraph[15,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

GraphData[{"Pan",15},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",15}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",15},"VertexList"],GraphData[{"Pan",15},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

GraphData[{"Pan",15},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Pan",15},"Graph","Degenerate"]

Configuration

GraphData[{"Pan",15},"Configuration"]

GraphData[{"Pan",15},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Pan",15},"Graph","Perspective"]//StyleGraphs

HoneycombToroidal construction

GraphData[{"Pan",15},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"Pan",15},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Pan",15},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Pan",15},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Pan",15},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Pan",15},"Hamiltonian"]

GraphData[{"Pan",15},"HamiltonianCycleCount"]

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",15}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",15}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"Pan",15},"Planar"]

GraphData[{"Pan",15},"Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",15}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",15}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",15}]])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Pan",15},{"RCN","CN"}]

GraphData[{"Pan",15},"Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData[{"Pan",15},"LocalCrossingNumber"]

GraphData[{"Pan",15},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Pan",15},"Circulant"]

GraphData[{"Pan",15},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Pan",15},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",15}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Pan",15},"ComplementGraph","Name"]

Line graph

GraphData[{"Pan",15},"Line"]

LineGraphQ[GraphData[{"Pan",15}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Pan",15}&]

RootGraph[GraphData[{"Pan",15}]]

RecognizeGraph[%]

Halin

GraphData[{"Pan",15},"Halin"]

GraphData[{"Pan",15},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Pan",15},"Rigid"]

GraphData[{"Pan",15},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Pan",15},"Flexible"]

GraphData[{"Pan",15},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Pan",15},"LCF"]

GraphData[{"Pan",15},"HamiltonianCycleCount"]

GraphData[{"Pan",15},"LCFSignature"]

GraphData[{"Pan",15},"LCFNotations"]

GraphData[{"Pan",15},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Pan",15},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Pan",15}],Debug->True]//Timing

GraphData[{"Pan",15},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Pan",15},"VertexList"],GraphData[{"Pan",15},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Pan",15},"Matchstick"]

GraphData[{"Pan",15},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Pan",15},"Edges"]]

3D All

GraphData[{"Pan",15},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Pan",15},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Pan",15},"Polyhedral"]

GraphData[{"Pan",15},"Graph",{"3D","Polyhedron"}]

{"Pan", 16}

Names

GraphData[{"Pan",16},"StandardName"]

GraphData[{"Pan",16},"StandardNames"]

Primary

GraphData[{"Pan",16}]//StyleGraphs[#,ImageSize->Small]&

Graphs.m

Table[PanGraph[16,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

GraphData[{"Pan",16},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",16}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",16},"VertexList"],GraphData[{"Pan",16},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

GraphData[{"Pan",16},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Pan",16},"Graph","Degenerate"]

Configuration

GraphData[{"Pan",16},"Configuration"]

GraphData[{"Pan",16},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Pan",16},"Graph","Perspective"]//StyleGraphs

HoneycombToroidal construction

GraphData[{"Pan",16},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"Pan",16},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Pan",16},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Pan",16},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Pan",16},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Pan",16},"Hamiltonian"]

GraphData[{"Pan",16},"HamiltonianCycleCount"]

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",16}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",16}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"Pan",16},"Planar"]

GraphData[{"Pan",16},"Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",16}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",16}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",16}]])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Pan",16},{"RCN","CN"}]

GraphData[{"Pan",16},"Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData[{"Pan",16},"LocalCrossingNumber"]

GraphData[{"Pan",16},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Pan",16},"Circulant"]

GraphData[{"Pan",16},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Pan",16},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",16}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Pan",16},"ComplementGraph","Name"]

Line graph

GraphData[{"Pan",16},"Line"]

LineGraphQ[GraphData[{"Pan",16}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Pan",16}&]

RootGraph[GraphData[{"Pan",16}]]

RecognizeGraph[%]

Halin

GraphData[{"Pan",16},"Halin"]

GraphData[{"Pan",16},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Pan",16},"Rigid"]

GraphData[{"Pan",16},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Pan",16},"Flexible"]

GraphData[{"Pan",16},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Pan",16},"LCF"]

GraphData[{"Pan",16},"HamiltonianCycleCount"]

GraphData[{"Pan",16},"LCFSignature"]

GraphData[{"Pan",16},"LCFNotations"]

GraphData[{"Pan",16},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Pan",16},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Pan",16}],Debug->True]//Timing

GraphData[{"Pan",16},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Pan",16},"VertexList"],GraphData[{"Pan",16},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Pan",16},"Matchstick"]

GraphData[{"Pan",16},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Pan",16},"Edges"]]

3D All

GraphData[{"Pan",16},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Pan",16},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Pan",16},"Polyhedral"]

GraphData[{"Pan",16},"Graph",{"3D","Polyhedron"}]

{"Pan", 17}

Names

GraphData[{"Pan",17},"StandardName"]

GraphData[{"Pan",17},"StandardNames"]

Primary

GraphData[{"Pan",17}]//StyleGraphs[#,ImageSize->Small]&

Graphs.m

Table[PanGraph[17,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

GraphData[{"Pan",17},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",17}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",17},"VertexList"],GraphData[{"Pan",17},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

GraphData[{"Pan",17},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Pan",17},"Graph","Degenerate"]

Configuration

GraphData[{"Pan",17},"Configuration"]

GraphData[{"Pan",17},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Pan",17},"Graph","Perspective"]//StyleGraphs

HoneycombToroidal construction

GraphData[{"Pan",17},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"Pan",17},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Pan",17},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Pan",17},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Pan",17},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Pan",17},"Hamiltonian"]

GraphData[{"Pan",17},"HamiltonianCycleCount"]

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",17}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",17}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"Pan",17},"Planar"]

GraphData[{"Pan",17},"Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",17}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",17}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",17}]])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Pan",17},{"RCN","CN"}]

GraphData[{"Pan",17},"Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData[{"Pan",17},"LocalCrossingNumber"]

GraphData[{"Pan",17},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Pan",17},"Circulant"]

GraphData[{"Pan",17},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Pan",17},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",17}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Pan",17},"ComplementGraph","Name"]

Line graph

GraphData[{"Pan",17},"Line"]

LineGraphQ[GraphData[{"Pan",17}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Pan",17}&]

RootGraph[GraphData[{"Pan",17}]]

RecognizeGraph[%]

Halin

GraphData[{"Pan",17},"Halin"]

GraphData[{"Pan",17},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Pan",17},"Rigid"]

GraphData[{"Pan",17},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Pan",17},"Flexible"]

GraphData[{"Pan",17},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Pan",17},"LCF"]

GraphData[{"Pan",17},"HamiltonianCycleCount"]

GraphData[{"Pan",17},"LCFSignature"]

GraphData[{"Pan",17},"LCFNotations"]

GraphData[{"Pan",17},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Pan",17},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Pan",17}],Debug->True]//Timing

GraphData[{"Pan",17},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Pan",17},"VertexList"],GraphData[{"Pan",17},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Pan",17},"Matchstick"]

GraphData[{"Pan",17},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Pan",17},"Edges"]]

3D All

GraphData[{"Pan",17},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Pan",17},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Pan",17},"Polyhedral"]

GraphData[{"Pan",17},"Graph",{"3D","Polyhedron"}]

{"Pan", 18}

Names

GraphData[{"Pan",18},"StandardName"]

GraphData[{"Pan",18},"StandardNames"]

Primary

GraphData[{"Pan",18}]//StyleGraphs[#,ImageSize->Small]&

Graphs.m

Table[PanGraph[18,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

GraphData[{"Pan",18},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",18}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",18},"VertexList"],GraphData[{"Pan",18},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

GraphData[{"Pan",18},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Pan",18},"Graph","Degenerate"]

Configuration

GraphData[{"Pan",18},"Configuration"]

GraphData[{"Pan",18},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Pan",18},"Graph","Perspective"]//StyleGraphs

HoneycombToroidal construction

GraphData[{"Pan",18},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"Pan",18},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Pan",18},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Pan",18},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Pan",18},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Pan",18},"Hamiltonian"]

GraphData[{"Pan",18},"HamiltonianCycleCount"]

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",18}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",18}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"Pan",18},"Planar"]

GraphData[{"Pan",18},"Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",18}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",18}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",18}]])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Pan",18},{"RCN","CN"}]

GraphData[{"Pan",18},"Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData[{"Pan",18},"LocalCrossingNumber"]

GraphData[{"Pan",18},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Pan",18},"Circulant"]

GraphData[{"Pan",18},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Pan",18},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",18}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Pan",18},"ComplementGraph","Name"]

Line graph

GraphData[{"Pan",18},"Line"]

LineGraphQ[GraphData[{"Pan",18}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Pan",18}&]

RootGraph[GraphData[{"Pan",18}]]

RecognizeGraph[%]

Halin

GraphData[{"Pan",18},"Halin"]

GraphData[{"Pan",18},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Pan",18},"Rigid"]

GraphData[{"Pan",18},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Pan",18},"Flexible"]

GraphData[{"Pan",18},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Pan",18},"LCF"]

GraphData[{"Pan",18},"HamiltonianCycleCount"]

GraphData[{"Pan",18},"LCFSignature"]

GraphData[{"Pan",18},"LCFNotations"]

GraphData[{"Pan",18},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Pan",18},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Pan",18}],Debug->True]//Timing

GraphData[{"Pan",18},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Pan",18},"VertexList"],GraphData[{"Pan",18},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Pan",18},"Matchstick"]

GraphData[{"Pan",18},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Pan",18},"Edges"]]

3D All

GraphData[{"Pan",18},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Pan",18},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Pan",18},"Polyhedral"]

GraphData[{"Pan",18},"Graph",{"3D","Polyhedron"}]

{"Pan", 19}

Names

GraphData[{"Pan",19},"StandardName"]

GraphData[{"Pan",19},"StandardNames"]

Primary

GraphData[{"Pan",19}]//StyleGraphs[#,ImageSize->Small]&

Graphs.m

Table[PanGraph[19,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

GraphData[{"Pan",19},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",19}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",19},"VertexList"],GraphData[{"Pan",19},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

GraphData[{"Pan",19},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Pan",19},"Graph","Degenerate"]

Configuration

GraphData[{"Pan",19},"Configuration"]

GraphData[{"Pan",19},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Pan",19},"Graph","Perspective"]//StyleGraphs

HoneycombToroidal construction

GraphData[{"Pan",19},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"Pan",19},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Pan",19},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Pan",19},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Pan",19},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Pan",19},"Hamiltonian"]

GraphData[{"Pan",19},"HamiltonianCycleCount"]

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",19}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",19}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"Pan",19},"Planar"]

GraphData[{"Pan",19},"Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",19}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",19}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",19}]])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Pan",19},{"RCN","CN"}]

GraphData[{"Pan",19},"Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData[{"Pan",19},"LocalCrossingNumber"]

GraphData[{"Pan",19},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Pan",19},"Circulant"]

GraphData[{"Pan",19},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Pan",19},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",19}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Pan",19},"ComplementGraph","Name"]

Line graph

GraphData[{"Pan",19},"Line"]

LineGraphQ[GraphData[{"Pan",19}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Pan",19}&]

RootGraph[GraphData[{"Pan",19}]]

RecognizeGraph[%]

Halin

GraphData[{"Pan",19},"Halin"]

GraphData[{"Pan",19},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Pan",19},"Rigid"]

GraphData[{"Pan",19},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Pan",19},"Flexible"]

GraphData[{"Pan",19},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Pan",19},"LCF"]

GraphData[{"Pan",19},"HamiltonianCycleCount"]

GraphData[{"Pan",19},"LCFSignature"]

GraphData[{"Pan",19},"LCFNotations"]

GraphData[{"Pan",19},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Pan",19},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Pan",19}],Debug->True]//Timing

GraphData[{"Pan",19},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Pan",19},"VertexList"],GraphData[{"Pan",19},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Pan",19},"Matchstick"]

GraphData[{"Pan",19},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Pan",19},"Edges"]]

3D All

GraphData[{"Pan",19},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Pan",19},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Pan",19},"Polyhedral"]

GraphData[{"Pan",19},"Graph",{"3D","Polyhedron"}]

{"Pan", 20}

Names

GraphData[{"Pan",20},"StandardName"]

GraphData[{"Pan",20},"StandardNames"]

Primary

GraphData[{"Pan",20}]//StyleGraphs[#,ImageSize->Small]&

Graphs.m

Table[PanGraph[20,GraphLayout->layout],{layout,{Automatic,"UnitDistanceEmbedding","RadialEmbedding","CircularEmbedding"}}]//StyleGraphs

All

GraphData[{"Pan",20},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Pan",20}]]

Default embedding

GraphPlot[Graph[GraphData[{"Pan",20},"VertexList"],GraphData[{"Pan",20},"Edges"]]]

Table[PanGraph[5,GraphLayout->layout],{layout,{Automatic,"RadialEmbedding"}}]

Degenerate

GraphData[{"Pan",20},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Pan",20},"Graph","Degenerate"]

Configuration

GraphData[{"Pan",20},"Configuration"]

GraphData[{"Pan",20},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"Pan",20},"Graph","Perspective"]//StyleGraphs

HoneycombToroidal construction

GraphData[{"Pan",20},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"Pan",20},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"Pan",20},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"Pan",20},"Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData[{"Pan",20},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"Pan",20},"Hamiltonian"]

GraphData[{"Pan",20},"HamiltonianCycleCount"]

Length[hc=FindHamiltonianCycle[GraphData[{"Pan",20}],All][[All,All,1]]]

circ=CircularEmbeddingFromHamiltonianCycle[GraphData[{"Pan",20}],#]&/@hc

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph/@circ],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

Length[quad=DeleteDuplicatesBy[Union@Select[bilat,BilateralGraphEmbeddingQ[#,Axis->"X"]&],CircularCanonicalGraphEmbedding[#,4]&]]

quad

Planar

GraphData[{"Pan",20},"Planar"]

GraphData[{"Pan",20},"Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData[{"Pan",20}],Method->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData[{"Pan",20}]],10]

PlanarGraphEmbeddings

(plemb=PlanarGraphEmbeddings[GraphData[{"Pan",20}]])//Timing

Length[plemb]

MinimalCrossing

GraphData[{"Pan",20},{"RCN","CN"}]

GraphData[{"Pan",20},"Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData[{"Pan",20},"LocalCrossingNumber"]

GraphData[{"Pan",20},"Graph","MinimalLocalCrossing"]//StyleGraphs

Circulant

GraphData[{"Pan",20},"Circulant"]

GraphData[{"Pan",20},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"Pan",20},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"Pan",20}]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

compl=GraphData[{"Pan",20},"ComplementGraph","Name"]

Line graph

GraphData[{"Pan",20},"Line"]

LineGraphQ[GraphData[{"Pan",20}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"Pan",20}&]

RootGraph[GraphData[{"Pan",20}]]

RecognizeGraph[%]

Halin

GraphData[{"Pan",20},"Halin"]

GraphData[{"Pan",20},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Pan",20},"Rigid"]

GraphData[{"Pan",20},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Pan",20},"Flexible"]

GraphData[{"Pan",20},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Pan",20},"LCF"]

GraphData[{"Pan",20},"HamiltonianCycleCount"]

GraphData[{"Pan",20},"LCFSignature"]

GraphData[{"Pan",20},"LCFNotations"]

GraphData[{"Pan",20},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Pan",20},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Pan",20}],Debug->True]//Timing

GraphData[{"Pan",20},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Pan",20},"VertexList"],GraphData[{"Pan",20},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"Pan",20},"Matchstick"]

GraphData[{"Pan",20},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Pan",20},"Edges"]]

3D All

GraphData[{"Pan",20},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Pan",20},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Pan",20},"Polyhedral"]

GraphData[{"Pan",20},"Graph",{"3D","Polyhedron"}]

Properties

Acyclic

seq=Table[GraphData[{"Pan",n},"Acyclic"],{n,3,20}]

AdjacencyMatrixCount

seq=Table[GraphData[{"Pan",n},"AdjacencyMatrixCount"],{n,3,20}]

Arboricity

seq=Table[GraphData[{"Pan",n},"Arboricity"],{n,3,20}]

ArcTransitive

seq=Table[GraphData[{"Pan",n},"ArcTransitive"],{n,3,20}]

ArcTransitivity

seq=Table[GraphData[{"Pan",n},"ArcTransitivity"],{n,3,20}]

AutomorphismCount

seq=Table[GraphData[{"Pan",n},"AutomorphismCount"],{n,3,20}]

BalabanIndex

seq=Table[GraphData[{"Pan",n},"BalabanIndex"],{n,3,6}]//FullSimplify

Bandwidth

seq=Table[GraphData[{"Pan",n},"Bandwidth"],{n,3,20}]

BridgeCount

seq=Table[GraphData[{"Pan",n},"BridgeCount"],{n,3,20}]

BurningNumber

seq=Table[GraphData[{"Pan",n},"BurningNumber"],{n,3,20}]

CharacteristicPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"Chordal"],{n,3,20}]

ChordCount

seq=Table[GraphData[{"Pan",n},"ChordCount"],{n,3,20}]

Chordless

seq=Table[GraphData[{"Pan",n},"Chordless"],{n,3,20}]

ChordlessCycleCount

seq=Table[GraphData[{"Pan",n},"ChordlessCycleCount"],{n,3,20}]

Chords

seq=Table[GraphData[{"Pan",n},"Chords"],{n,3,20}]

ChromaticInvariant

seq=Table[GraphData[{"Pan",n},"ChromaticInvariant"],{n,3,20}]

ChromaticNumber

seq=Table[GraphData[{"Pan",n},"ChromaticNumber"],{n,3,20}]

ChromaticPolynomial

(poly=Factor[Table[GraphData[{"Pan",n},"ChromaticPolynomial"],{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]

Circumference

seq=Table[GraphData[{"Pan",n},"Circumference"],{n,3,20}]

FindSequenceFunction[seq,n-2]

Classes

Intersection@@(GraphData[#,"Classes"]&/@GraphData["Pan"])

CliqueCount

seq=Table[GraphData[{"Pan",n},"CliqueCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

gf=x FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]//FullSimplify

CliqueCoveringNumber

seq=Table[GraphData[{"Pan",n},"CliqueCoveringNumber"],{n,3,20}]

FindSequenceFunction[Rest@seq,n-3]//FullSimplify

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

CliqueNumber

seq=Table[GraphData[{"Pan",n},"CliqueNumber"],{n,3,20}]

CliquePolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"ComplementOddChordlessCycleCount"],{n,3,20}]

ConnectedComponentCount

seq=Table[GraphData[{"Pan",n},"ConnectedComponentCount"],{n,3,20}]

ConnectedDominatingSetCount

seq=Table[GraphData[{"Pan",n},"ConnectedDominatingSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

ConnectedDominationNumber

seq=Table[GraphData[{"Pan",n},"ConnectedDominationNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]

ConnectedDominationPolynomial

(poly=Factor[Table[GraphData[{"Pan",n},"ConnectedDominationPolynomial"],{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]

ConnectedInducedSubgraphCount

A290768

seq=Table[GraphData[{"Pan",n},"ConnectedInducedSubgraphCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]

seq=LinearRecurrence[{3,-3,1},{12,21,33},{-1,20}]

FindSequenceFunction[DeleteMissing@seq,n]//Factor

Table[3/2(n^2-n+2),{n,50}]

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

CoefficientList[Series[-((3 (1-x+(x^2)))/(((-1+x))^3)),{x,0,20}],x]

ConnectedInducedSubgraphPolynomial

(poly=Factor[Table[GraphData[{"Pan",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,6}]

FullSimplify[poly2-poly]

CrossingNumber

seq=Table[GraphData[{"Pan",n},"CrossingNumber"],{n,3,20}]

CycleCount

seq=Table[GraphData[{"Pan",n},"CycleCount"],{n,3,20}]

CyclePolynomial

(poly=Factor[Table[GraphData[{"Pan",n},"CyclePolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])

Cyclic

Table[GraphData[{"Pan",n},"Cyclic"],{n,3,20}]

CyclomaticNumber

seq=Table[GraphData[{"Pan",n},"CyclomaticNumber"],{n,3,20}]

DetourIndex

seq=Table[GraphData[{"Pan",n},"DetourIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

DetourMatrix

MatrixForm/@Table[GraphData[{"Pan",n},"DetourMatrix"],{n,3,20}]

MatrixForm/@Table[SparseArray[{i_,j_}:>Abs[i-j],n],{n,3,20}]

DetourPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"Diameter"],{n,3,20}]

DistanceMatrix

MatrixForm/@Table[GraphData[{"Pan",n},"DistanceMatrix"],{n,3,20}]

MatrixForm/@Table[SparseArray[{i_,j_}:>Abs[i-j],n],{n,3,20}]

DistancePolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"DistinguishingNumber"],{n,3,20}]

DominatingSetCount

seq=Table[GraphData[{"Pan",n},"DominatingSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

FullSimplify[Root[-11-39 #1-55 ((#1)^2)+11 ((#1)^3)&,1]((Root[-1-#1-((#1)^2)+((#1)^3)&,1])^(-2))]

Table[((Root[-1-#1-((#1)^2)+((#1)^3)&,1])^n) Root[-11+31 #1-33 ((#1)^2)+11 ((#1)^3)&,1]+((Root[-1-#1-((#1)^2)+((#1)^3)&,3])^n) Root[-11+31 #1-33 ((#1)^2)+11 ((#1)^3)&,2]+((Root[-1-#1-((#1)^2)+((#1)^3)&,2])^n) Root[-11+31 #1-33 ((#1)^2)+11 ((#1)^3)&,3],{n,3,10}]//FullSimplify

DominationNumber

seq=Table[GraphData[{"Pan",n},"DominationNumber"],{n,3,20}]

DominationPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"EdgeChromaticNumber"],{n,3,20}]

EdgeConnectivity

Table[GraphData[{"Pan",n},"EdgeConnectivity"],{n,3,20}]

EdgeCount

seq=Table[GraphData[{"Pan",n},"EdgeCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

EdgeCoverCount

seq=Table[GraphData[{"Pan",n},"EdgeCoverCount"],{n,3,20}]

Table[Fibonacci[n+2],{n,3,20}]

EdgeCoverNumber

seq=Table[GraphData[{"Pan",n},"EdgeCoverNumber"],{n,3,20}]

EdgeCoverPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"EulerianCycleCount"],{n,3,20}]

FaceCount

seq=Table[GraphData[{"Pan",n},"FaceCount"],{n,3,20}]

FlowPolynomial

(poly=Factor[Table[GraphData[{"Pan",n},"FlowPolynomial"],{n,k0=3,kmax=20}]/.f_Function:>f[x]])

FractionalChromaticNumber

seq=Table[GraphData[{"Pan",n},"FractionalChromaticNumber"],{n,3,20}]

FindGeneratingFunction[seq,n-2]

gf=(x^3)FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>2]

FractionalEdgeChromaticNumber

seq=Table[GraphData[{"Pan",n},"FractionalEdgeChromaticNumber"],{n,3,20}]

Girth

seq=Table[GraphData[{"Pan",n},"Girth"],{n,3,20}]

Gonality

seq=Table[GraphData[{"Pan",n},"Gonality"],{n,3,20}]

HamiltonConnected

seq=Table[GraphData[{"Pan",n},"HamiltonConnected"],{n,3,20}]

HamiltonDecompositionCount

seq=Table[GraphData[{"Pan",n},"HamiltonDecompositionCount"],{n,3,20}]

Hamiltonian

Table[GraphData[{"Pan",n},"Hamiltonian"],{n,3,20}]

HamiltonianCycleCount

seq=Table[GraphData[{"Pan",n},"HamiltonianCycleCount"],{n,3,20}]

HamiltonianNumber

seq=Table[GraphData[{"Pan",n},"HamiltonianNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]

HamiltonianPathCount

seq=Table[GraphData[{"Pan",n},"HamiltonianPathCount"],{n,3,20}]

HamiltonianWalkCount

seq=Table[GraphData[{"Pan",n},"HamiltonianWalkCount"],{n,3,20}]

HararyIndex

seq=Table[GraphData[{"Pan",n},"HararyIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]

FindGeneratingFunction[seq,x]

HexagonCount

seq=Table[GraphData[{"Pan",n},"HexagonCount"],{n,3,20}]

IdiosyncraticPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"IndependenceNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

IndependencePolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"IndependenceRatio"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify[#,n∈Integers]&//Factor

IndependentEdgeSetCount

A006355

seq=Table[GraphData[{"Pan",n},"IndependentEdgeSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

Table[2Fibonacci[n+1],{n,0,20}]

Table[2Fibonacci[n+1],{n,3,20}]

Join[{1},Table[2Fibonacci[n],{n,0,20}]]

seq=Join[{1},2Fibonacci[Range[0,20]]]

FindLinearRecurrence[Rest@seq]

seq=LinearRecurrence[{1,1},{6,10},20]

gf=FindGeneratingFunction[seq,x]

CoefficientList[Series[((-1+x-(x^2))/(-1+x+(x^2))),{x,0,20}],x]

IndependentVertexSetCount

A001060

seq=Table[GraphData[{"Pan",n},"IndependentVertexSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

Table[Fibonacci[n+1]+LucasL[n],{n,3,20}]

Table[Fibonacci[n+2]+LucasL[n+1],{n,0,20}]

LinearRecurrence[{1,1},{2,5},{0,10}]

Table[Fibonacci[n+4]-Fibonacci[n-1],{n,0,60}]

FindLinearRecurrence[DeleteMissing@seq]

seq=LinearRecurrence[{1,1},{2,5},50]

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

CoefficientList[Series[((-2-3 x)/(-1+x+(x^2))),{x,0,20}],x]

IntersectionNumber

seq=Table[GraphData[{"Pan",n},"IntersectionNumber"],{n,3,20}]

Pan

A291107

seq=Table[GraphData[{"Pan",n},"IrredundantSetCount"],{n,3,20}]

coef=FindLinearRecurrence[DeleteMissing@seq]

Take[seq,Length@coef]

seq=LinearRecurrence[{1,1,0,1,0,-1},{3,5,7,16,26,42,72,125},40]

FindSequenceFunction[DeleteMissing@seq,n-2]

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

CoefficientList[Series[((3+2 x-(x^2)+4 (x^3)-5 (x^5))/(1-x-(x^2)-(x^4)+(x^6))),{x,0,20}],x]

res=Refine[SeriesCoefficient[gf,{x,0,n}],n>2]

terms=List@@res;

terms[[1]]

N[terms/.n->0]//Chop

approx=RootApproximant[N[exact=terms/.n->0,200],12]

pos=approx[[All,-2]]

N[approx-exact,200]

f1=1-((#1)^2)-((#1)^4)-((#1)^5)+((#1)^6)&;
f2=23827-181313 #1+573482 ((#1)^2)-964066 ((#1)^3)+906011 ((#1)^4)-448265 ((#1)^5)+89653 ((#1)^6)&;

Table[Sum[((Root[f1,k])^n)Root[f2,pos[[k]]],{k,Length[pos]}],{n,3,20}]//N//Chop

an=ToNumberField[Root[f2,pos[[#]]],Root[f1,#]]&/@Range[Length[pos]]

Equal@@Last/@an

RootSum[f1,Evaluate[((#)^n) #^Range[0,Length[pos]-1].an[[1,2]]]&]

Table[((RootSum[1-((#1)^2)-((#1)^4)-((#1)^5)+((#1)^6)&,59603 ((#1)^n)-12384 ((#1)^(1+n))-10700 ((#1)^(2+n))+17668 ((#1)^(3+n))+3457 ((#1)^(4+n))+1652 ((#1)^(5+n))&])/89653),{n,3,20}]

Table[RootSum[1-((#)^2)-((#)^4)-((#)^5)+((#)^6)&,59603 ((#)^n)-12384 ((#)^(1+n))-10700 ((#)^(2+n))+17668 ((#)^(3+n))+3457 ((#)^(4+n))+1652 ((#)^(5+n))&]/89653,{n,20}]

KirchhoffIndex

seq=Table[GraphData[{"Pan",n},"KirchhoffIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

KirchhoffSumIndex

seq=Table[GraphData[{"Pan",n},"KirchhoffSumIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//Factor

LaplacianMatrix

MatrixForm/@Table[GraphData[{"Pan",n},"LaplacianMatrix"],{n,3,20}]

LaplacianPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"LeafCount"],{n,3,20}]

LongestCycleCount

seq=Table[GraphData[{"Pan",n},"LongestCycleCount"],{n,3,20}]

LovaszNumber

seq=Table[GraphData[{"Pan",n},"LovaszNumber"],{n,3,20}]

MatchingGeneratingPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"MatchingNumber"],{n,3,20}]

MatchingPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"MaximalCliqueCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

SeriesCoefficient[FindGeneratingFunction[seq,x],{x,0,n}]

MaximalIndependentEdgeSetCount

seq=Table[GraphData[{"Pan",n},"MaximalIndependentEdgeSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

FullSimplify[Root[-7+36 #1-69 ((#1)^2)+23 ((#1)^3)&,1]((Root[-1-#1+((#1)^3)&,1])^(-2))]

MaximalIndependentVertexSetCount

A084338

seq=Table[GraphData[{"Pan",n},"MaximalIndependentVertexSetCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]

seq=LinearRecurrence[{0,1,1},{1,2,3},20]

LinearRecurrence[{0,1,1},{3,3,5},20]

FindSequenceFunction[seq,n]

f1=-1-#1+((#1)^3)&;
f2=-5+27 #1-46 ((#1)^2)+23 ((#1)^3)&;
pos={1,3,2};

Table[Sum[((Root[f1,k])^(n-2))Root[f2,pos[[k]]],{k,Length[pos]}],{n,3,10}]//N//Chop

an=ToNumberField[Root[f2,pos[[#]]],Root[f1,#]]&/@Range[Length[pos]]

Equal@@Last/@an

an[[1,2]]

RootSum[f1,Evaluate[((#)^(n+Range[Length[pos]]-1)).an[[1,2]]]&]

Table[RootSum[-1-#+((#)^3)&,12 ((#)^n)+4 ((#)^(n+1))+5 ((#)^(n+2))&]/23,{n,20}]

gf=x FindGeneratingFunction[LinearRecurrence[{0,1,1},{1,2,3},20],x]

CoefficientList[Series[((-1-2 x-2 (x^2))/(-1+(x^2)+(x^3))),{x,0,20}],x]

MaximalIrredundantSetCount

A291102

seq=Table[GraphData[{"Pan",n},"MaximalIrredundantSetCount"],{n,3,20}]

seq={2,2,3,7,9,13,19,24,39,63,87,124,183,272,405,593,867,1261,1869,2760,4046,5936,8712,12817,18861,27720,40711,59792,87915,129250,189946,279118,410135,602803,886008,1302157,1913622,2812220,4133091,6074385,8927330,13119959};

coef=FindLinearRecurrence[DeleteMissing@seq]

Take[seq,Length@coef]

LinearRecurrence[{0,1,1,1,1,0,-1,-2,-1,2,1,0,0,-1},{2,2,3,7,9,13,19,24,39,63,87,124,183,272},20]

FindSequenceFunction[DeleteMissing@seq,n]

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

gf=((x (2+2 x+(x^2)+3 (x^3)+2 (x^4)-(x^5)-2 (x^6)-6 (x^7)-3 (x^8)+7 (x^9)+3 (x^10)-(x^11)-4 (x^13)))/(1-(x^2)-(x^3)-(x^4)-(x^5)+(x^7)+2 (x^8)+(x^9)-2 (x^10)-(x^11)+(x^14)));

gf//Factor

Series[gf,{x,0,10}]

CoefficientList[Series[((2+2 x+(x^2)+3 (x^3)+2 (x^4)-(x^5)-2 (x^6)-6 (x^7)-3 (x^8)+7 (x^9)+3 (x^10)-(x^11)-4 (x^13))/(1-(x^2)-(x^3)-(x^4)-(x^5)+(x^7)+2 (x^8)+(x^9)-2 (x^10)-(x^11)+(x^14))),{x,0,20}],x]

res=Refine[SeriesCoefficient[gf,{x,0,n}],n>0]

terms=List@@res;

Table[k->N[terms/.n->k],{k,-2,2}]//Chop

approx=RootApproximant[N[exact=terms/.n->-1,300],14]

pos=approx[[All,-2]]

N[approx-exact,300]

f1=1-((#1)^3)-2 ((#1)^4)+((#1)^5)+2 ((#1)^6)+((#1)^7)-((#1)^9)-((#1)^10)-((#1)^11)-((#1)^12)+((#1)^14)&;
f2=21906349+144822832 #1+3821131687 ((#1)^2)-33132433375 ((#1)^3)-271071410794 ((#1)^4)-1331747633483 ((#1)^5)+10069218001916 ((#1)^6)+79192919106972 ((#1)^7)+20033982721254 ((#1)^8)-238607135560514 ((#1)^9)-459108934406554 ((#1)^10)-8307005186288589 ((#1)^11)-23521725068876263 ((#1)^12)+47617929706047629 ((#1)^14)&;

Table[Sum[((Root[f1,k])^(n+1))Root[f2,pos[[k]]],{k,Length[pos]}],{n,10}]//N//Chop

(an=ToNumberField[Root[f2,pos[[#]]],Root[f1,#]]&/@Take[Range[Length[pos]],1])//Timing

RootSum[f1,Evaluate[((#)^(n+Range[Length[pos]])).an[[1,2]]]&]

Table[-RootSum[1-#^3-2 #^4+#^5+2 #^6+#^7-#^9-#^10-#^11-#^12+#^14&,500851004670498 #^(n+1)-3689002954543242 #^(n+2)-4674357321032747 #^(n+3)-11682114439256677 #^(n+4)+4235991226348286 #^(n+5)+7038537508218316 #^(n+6)+7181640141870472 #^(n+7)+1546373234795414 #^(n+8)-8648457478830123 #^(n+9)-8135065519248445 #^(n+10)-4540890555566032 #^(n+11)-5314826024895471 #^(n+12)-1546564184442276 #^(n+13)+6933486092556085 #^(n+14)&]/47617929706047629,{n,10}]

MaximumCliqueCount

seq=Table[GraphData[{"Pan",n},"MaximumCliqueCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

SeriesCoefficient[FindGeneratingFunction[seq,x],{x,0,n}]

MaximumIndependentEdgeSetCount

seq=Table[GraphData[{"Pan",n},"MaximumIndependentEdgeSetCount"],{n,3,20}]

MaximumIndependentVertexSetCount

seq=Table[GraphData[{"Pan",n},"MaximumIndependentVertexSetCount"],{n,3,20}]

MaximumLeafNumber

seq=Table[GraphData[{"Pan",n},"MaximumLeafNumber"],{n,3,20}]

MaximumVertexDegree

seq=Table[GraphData[{"Pan",n},"MaximumVertexDegree"],{n,3,20}]

MeanDistance

seq=Table[GraphData[{"Pan",n},"MeanDistance"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify//Factor

MinimalDominatingSetCount

A290273

seq=Table[GraphData[{"Pan",n},"MinimalDominatingSetCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]

LinearRecurrence[{0,1,1,1,0,-1},{3,5,7,8,13,18,25},{-1,10}]

seq=LinearRecurrence[{0,1,1,1,0,-1},{2,2,3,5,7,8},50]

FindSequenceFunction[DeleteMissing@seq,n]

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

gf=((x (2+2 x+(x^2)+(x^3)-2 (x^5)))/(1-(x^2)-(x^3)-(x^4)+(x^6)));

ToString[gf,InputForm]

CoefficientList[Series[((2+2 x+(x^2)+(x^3)-2 (x^5))/(1-(x^2)-(x^3)-(x^4)+(x^6))),{x,0,20}],x]

res=Refine[SeriesCoefficient[gf,{x,0,n}],n>0]

res=(((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1])^(1+n)) (-1-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1])^3)+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1])^4)))/((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]))+(((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2])^(1+n)) (-1-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2])^3)+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2])^4)))/((-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]))+(((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3])^(1+n)) (-1-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3])^3)+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3])^4)))/((-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]))+(((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4])^(1+n)) (-1-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4])^3)+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4])^4)))/((-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]))+(((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5])^(1+n)) (-1-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5])^3)+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5])^4)))/((-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]) (Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]))+(((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6])^(1+n)) (-1-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6])^3)+2 ((Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6])^4)))/((-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,1]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,2]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,3]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,4]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]) (-Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,5]+Root[1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&,6]));

terms=List@@res;

terms[[1]]

N[terms/.n->0]//Chop

approx=RootApproximant[N[exact=terms/.n->0,200],6]

pos=approx[[All,-2]]

N[approx-exact,200]

f1=1-((#1)^2)-((#1)^3)-((#1)^4)+((#1)^6)&;
f2=29-643 #1+5541 ((#1)^2)-25877 ((#1)^3)+68700 ((#1)^4)-104882 ((#1)^5)+52441 ((#1)^6)&;

seq

Table[Sum[((Root[f1,k])^(n+1))Root[f2,pos[[k]]],{k,Length[pos]}],{n,10}]//N//Chop

an=ToNumberField[Root[f2,pos[[#]]],Root[f1,#]]&/@Range[Length[pos]]

Equal@@Last/@an

an[[1,2]]

RootSum[f1,Evaluate[((#)^n) #^Range[0,Length[pos]-1].an[[1,2]]]&]

Table[-RootSum[1-((#)^2)-((#)^3)-((#)^4)+((#)^6)&,-9 ((#)^n)+33 ((#)^(n+1))-23 ((#)^(n+2))-45 ((#)^(n+3))-38 ((#)^(n+4))+((#)^(n+5))&]/229,{n,20}]

MinimalDominatingSetSignature

seq=Table[GraphData[{"Pan",n},"MinimalDominatingSetSignature"],{n,3,20}]//Column

MinimalEdgeCoverCount

Padovan numbers

A000931

seq=Table[GraphData[{"Pan",n},"MinimalEdgeCoverCount"],{n,3,20}]

FindLinearRecurrence[DeleteMissing@seq]

FindSequenceFunction[{1,0,0,1,0,1,1,1,2,2,3,4,5,7,9,12,16,21,28,37,49,65},n]

Table[RootSum[-1-#+((#)^3)&,-11 ((#)^(n+7))+4 ((#)^(n+8))+5 ((#)^(n+9))&]/23,{n,3,20}]

MinimalEdgeCoverSignature

seq=Table[GraphData[{"Pan",n},"MinimalEdgeCoverSignature"],{n,3,20}]//Column

MinimumCliqueCoveringCount

seq=Table[GraphData[{"Pan",n},"MinimumCliqueCoveringCount"],{n,3,20}]

Table[Piecewise[{{1+n/2,Mod[n,2]==0},{1,Mod[n,2]==1}}],{n,3,20}]

MinimumConnectedDominatingSetCount

seq=Table[GraphData[{"Pan",n},"MinimumConnectedDominatingSetCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

MinimumDistinguishingLabelingCount

seq=Table[GraphData[{"Pan",n},"MinimumDistinguishingLabelingCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

Table[-(2^(n/2))(-2-(Sqrt[2])+(((-1))^n) (-2+(Sqrt[2]))),{n,3,10}]

Table[(2^(n+1))-(2^(2+Floor[n/2])),{n,3,20}]

FullSimplify[(2^(n+1))-(2^(2+Floor[n/2])),Mod[n,2]==#]&/@{0,1}

MinimumDominatingSetCount

seq=Table[GraphData[{"Pan",n},"MinimumDominatingSetCount"],{n,3,20}]

MinimumEdgeCoverCount

seq=Table[GraphData[{"Pan",n},"MinimumEdgeCoverCount"],{n,3,20}]

MinimumVertexDegree

seq=Table[GraphData[{"Pan",n},"MinimumVertexDegree"],{n,3,20}]

MolecularTopologicalIndex

seq=Table[GraphData[{"Pan",n},"MolecularTopologicalIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify//Factor

gf=(x^2)FindGeneratingFunction[seq,x]//Factor

Nonhamiltonian

Table[GraphData[{"Pan",n},"Nonhamiltonian"],{n,3,20}]

NormalizedLaplacianMatrix

MatrixForm/@Table[GraphData[{"Pan",n},"NormalizedLaplacianMatrix"],{n,3,20}]

OddChordlessCycleCount

seq=Table[GraphData[{"Pan",n},"OddChordlessCycleCount"],{n,3,20}]

PathCount

seq=Table[GraphData[{"Pan",n},"PathCount"],{n,3,20}]

FindLinearRecurrence[seq]

FindSequenceFunction[seq,n-2]//Factor

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]//Factor

PathPolynomial

(poly=Factor[Table[GraphData[{"Pan",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>0]

poly2=Table[XXX,{n,k0,kmax}]

FullSimplify[poly2-poly]

PentagonCount

seq=Table[GraphData[{"Pan",n},"PentagonCount"],{n,3,20}]

Perfect

Table[GraphData[{"Pan",n},"Perfect"],{n,3,20}]

ProjectivePlaneCrossingNumber

seq=Table[GraphData[{"Pan",n},"ProjectivePlaneCrossingNumber"],{n,3,20}]

Radius

seq=Table[GraphData[{"Pan",n},"Radius"],{n,3,20}]

RankPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"RectilinearCrossingNumber"],{n,3,20}]

ReliabilityPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",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[{"Pan",6}]

seq=Table[GraphData[{"Pan",n},"Skewness"],{n,3,20}]

SpanningTreeCount

seq=Table[GraphData[{"Pan",n},"SpanningTreeCount"],{n,3,20}]

SquareCount

seq=Table[GraphData[{"Pan",n},"SquareCount"],{n,3,20}]

StabilityIndex

seq=Table[GraphData[{"Pan",n},"StabilityIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify[#,n∈Integers]&

gf=(x^3)FindGeneratingFunction[seq,x]

TopologicalIndex

seq=Table[GraphData[{"Pan",n},"TopologicalIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]

FindGeneratingFunction[seq,x]

ToroidalCrossingNumber

seq=Table[GraphData[{"Pan",n},"ToroidalCrossingNumber"],{n,3,20}]

Traceable

Table[GraphData[{"Pan",n},"Traceable"],{n,3,20}]

TriangleCount

seq=Table[GraphData[{"Pan",n},"TriangleCount"],{n,3,20}]

TuttePolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"Untraceable"],{n,3,20}]

VertexConnectivity

Table[GraphData[{"Pan",n},"VertexConnectivity"],{n,3,20}]

VertexCount

seq=Table[GraphData[{"Pan",n},"VertexCount"],{n,3,20}]

FindSequenceFunction[seq,n-2]

VertexCoverNumber

vertex cover number == vertex count - independence number

seq=Table[GraphData[{"Pan",n},"VertexCoverNumber"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

VertexCoverPolynomial

(poly=Factor[Table[GraphData[{"Pan",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[{"Pan",n},"VertexDegrees"],{n,3,20}]

VertexTransitive

Table[GraphData[{"Pan",n},"VertexTransitive"],{n,3,20}]

WienerIndex

A180861

seq=Table[GraphData[{"Pan",n},"WienerIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]//FullSimplify

Table[(-2+15 n+4 (n^2)+2 (n^3)+(((-1))^n) (2+n))/16,{n,20}]

FindLinearRecurrence[seq]

LinearRecurrence[{2,1,-4,1,2,-1},{8,16,26,42,61,88},{-1,1}]

seq=LinearRecurrence[{2,1,-4,1,2,-1},{1,4,8,16,26,42},20]

gf=x FindGeneratingFunction[seq,x]

CoefficientList[Series[((1+2 x-(x^2)+(x^4))/((((-1+x))^4) (((1+x))^2))),{x,0,20}],x]

WienerSumIndex

seq=Table[GraphData[{"Pan",n},"WienerSumIndex"],{n,3,20}]

FindSequenceFunction[seq,n-2]

GraphData

GraphDataClassString

GraphDataClassString["Pan"]

GraphDataString

Do[Print[GraphDataString[
PanGraph[n],
"StandardName"->{"Pan",n},
"AlternateStandardName"->{"Tadpole",{n,1}},
"Name"->ToString[n]<>"-pan graph",
"AlternateNames"->"("<>ToString[n]<>",1)-tadpole graph",
"Classes"->{"Pan","Tadpole"},
"NotationRules"->{"Pan"->n,"Tadpole"->{n,1}},
TimeConstraint->300,
Debug->True
]],{n,8,20}]

Add UnitDistance

GraphData[{"Pan",5}]

l=Table[{gn={"Pan",n},{0,ToCommonEdges[PanGraph[n,GraphLayout->#],System`Graph[GraphData[gn,"Vertices"],GraphData[gn,"Edges"]]]&/@{Automatic,"UnitDistance"}//Simplify}},{n,5,20}]

PropertyReplace[l,"Embeddings","11.3"]

RenameGraphFiles[]

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

PropertyReplace[l,"EmbeddingClasses","11.3"]

RenameGraphFiles[]