Complete Graph

Author

Eric W. Weisstein
November 27, 2023

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

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

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

Usage

?CompleteGraph

?CompleteGraphQ

Counts

Length/@Table[Select[Graphs[i],CompleteGraphQ],{i,6}]

Figure

GraphicsGrid[Partition[Table[Labeled[CompleteGraph[n]//StyleGraphs,Subscript[K,n]],{n,2,7}],3],BaseStyle->Directive[14,FontFamily->"Times"]]

Embeddings

<<MathWorld`Graphs`

{"Complete", 1} == "SingletonGraph"

GraphData[{"Complete",1},"StandardName"]

{"Complete", 2} == {"Path", 2}

GraphData[{"Complete",2},"StandardName"]

{"Complete", 3} == "TriangleGraph"

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

{"Complete", 4} == "TetrahedralGraph"

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

{"Complete", 5} == "PentatopeGraph"

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

{"Complete", 6}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

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

v=Join[CirclePoints[3],CirclePoints[1/2,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[6],{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

v=Join[CirclePoints[3],Subdivide[{-1/4,0},{1/4,0},2]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[6],{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

DegenerateGraphEmbeddingTypes@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalLocalCrossing

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

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

MinimalCrossing

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

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

MinimalCrossing construction

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

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

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

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Circulant construction

CirculantGraph1@@@CirculantIndices[GraphData[{"Complete",6}]]

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",6}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",6}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

gs=Flatten[{
(* all LCF's with order >1, sorted by order and with bilateral graphs first *)
Join[DeleteCases[#,{_Missing,_}][[All,1]],Cases[#,{_Missing,_}][[All,2]]]&/@Map[{BilateralLCFEmbedding[#],#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFEmbedding/@LCFGraph@@@Cases[lcf,{_,1}]]}]

Length[gs]

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",6},"VertexList"],GraphData[{"Complete",6},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

v=Join@@Table[CirclePoints[{1,Pi/2+i/6},3],{i,{-1,1}}];
g=Graph[Range[6],UndirectedEdge@@@Subsets[Range[6],{2}],VertexCoordinates->v]

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 7}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

GraphPlot[GraphData[{"Complete",7},"Edges"],GraphLayout->"HighDimensionalEmbedding"]

v=Join[CirclePoints[3],CirclePoints[1/3,4]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[7],{2}],VertexCoordinates->v,VertexLabels->Automatic]

GraphPlot[GraphData[{"Complete",7},"Edges"],GraphLayout->"HighDimensionalEmbedding"]

v=Join[CirclePoints[4],CirclePoints[1/4,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[7],{2}],VertexCoordinates->v,VertexLabels->Automatic]

v=Join[CirclePoints[5],{#/5,0}&/@{-1,1}];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[7],{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

GraphPlot[GraphData[{"Complete",7},"Edges"],GraphLayout->"SpringElectricalEmbedding"]

RegionIntersection[Line[v[[{4,6}]]],Line[v[[{1,5}]]]]

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

RecognizeGraph[g]

v=Join[CirclePoints[3],CirclePoints[{1/3,0},3],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[7],{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

v=Join[CirclePoints[3],Subdivide[{-1/4,0},{1/4,0},3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[Length[v]],{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalCrossing construction

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",7}],"CrossingNumber"->cn,RandomSeed->i],{i,100}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Circulant construction

CirculantGraph1@@@CirculantIndices[GraphData[{"Complete",7}]]

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",7}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",7}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

gs=Flatten[{
(* all LCF's with order >1, sorted by order and with bilateral graphs first *)
Join[DeleteCases[#,{_Missing,_}][[All,1]],Cases[#,{_Missing,_}][[All,2]]]&/@Map[{BilateralLCFEmbedding[#],#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFEmbedding/@LCFGraph@@@Cases[lcf,{_,1}]]}]

Length[gs]

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",7},"VertexList"],GraphData[{"Complete",7},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 8}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

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

v=Join[CirclePoints[7],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[8],{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

v=Join[CirclePoints[5],CirclePoints[2/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range[8],{2}],VertexCoordinates->v,VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalRectilinearCrossing

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

GraphData[{"Complete",8},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

MinimalCrossing construction

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",8}],"CrossingNumber"->19,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Circulant construction

CirculantGraph1@@@CirculantIndices[GraphData[{"Complete",8}]]

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",8}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",8}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",8},"VertexList"],GraphData[{"Complete",8},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 9}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

GraphPlot[GraphData[{"Complete",9},"Edges"],GraphLayout->"RadialEmbedding"]

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

RecognizeGraph[g]

v=Join[CirclePoints[6],CirclePoints[2/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalCrossing construction

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

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

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

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Circulant construction

CirculantGraph1@@@CirculantIndices[GraphData[{"Complete",9}]]

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",9}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",9}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",9},"VertexList"],GraphData[{"Complete",9},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 10}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

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

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

RecognizeGraph[g]

v=Join[CirclePoints[7],CirclePoints[3/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalRectilinearCrossing

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

GraphData[{"Complete",10},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",10}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Circulant construction

CirculantGraph1@@@CirculantIndices[GraphData[{"Complete",10}]]

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",10}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",10}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",10},"VertexList"],GraphData[{"Complete",10},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 11}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

g=Graph[GraphData[{"Complete",11},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[8],CirclePoints[3/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[11,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

DegenerateGraphEmbeddingTypes[g]

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalRectilinearCrossing

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

GraphData[{"Complete",11},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",11}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",11}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",11}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",11},"VertexList"],GraphData[{"Complete",11},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 12}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

g=Graph[GraphData[{"Complete",12},"Edges"],GraphLayout->"SpringElectricalEmbedding"]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[9],CirclePoints[3/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[12,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalRectilinearCrossing

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

GraphData[{"Complete",12},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",12}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",12}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",12}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",12},"VertexList"],GraphData[{"Complete",12},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 13}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

g=Graph[GraphData[{"Complete",13},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[10],CirclePoints[3/5+1/10,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalRectilinearCrossing

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

GraphData[{"Complete",13},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",13}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",13}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",13}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",13},"VertexList"],GraphData[{"Complete",13},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 14}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

g=Graph[GraphData[{"Complete",14},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[11],CirclePoints[4/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalRectilinearCrossing

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

GraphData[{"Complete",14},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",14}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Halin

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

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

LCF

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

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

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

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",14}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",14}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",14},"VertexList"],GraphData[{"Complete",14},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Complete", 15}

Names

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

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

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",15},"EdgeList"]]

Default embedding

g=Graph[GraphData[{"Complete",15},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[12],CirclePoints[4/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

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

Bilateral

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

Circular

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

Planar

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

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

MinimalCrossing

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

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

MinimalRectilinearCrossing

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

GraphData[{"Complete",15},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",15}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Halin

GraphData[{"Complete",15},"Halin"]

GraphData[{"Complete",15},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",15},"LCF"]

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

GraphData[{"Complete",15},"LCFSignature"]

GraphData[{"Complete",15},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",15}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",15}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",15},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",15}],Debug->True]//Timing

GraphData[{"Complete",15},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",15},"VertexList"],GraphData[{"Complete",15},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",15},"Matchstick"]

GraphData[{"Complete",15},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",15},"Edges"]]

3D All

GraphData[{"Complete",15},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",15},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",15},"Polyhedral"]

GraphData[{"Complete",15},"Graph",{"3D","Polyhedron"}]

{"Complete", 16}

Names

GraphData[{"Complete",16},"StandardName"]

GraphData[{"Complete",16},"StandardNames"]

Primary

GraphData[{"Complete",16}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",16},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",16},"EdgeList"]]

Default embedding

g=Graph[GraphData[{"Complete",16},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[13],CirclePoints[1/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",16},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",16},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",16},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",16},"Planar"]

GraphData[{"Complete",16},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",16},{"RCN","CN"}]

GraphData[{"Complete",16},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",16},{"RCN","CN"}]

GraphData[{"Complete",16},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",16}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",16},"Circulant"]

GraphData[{"Complete",16},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",16},"Halin"]

GraphData[{"Complete",16},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",16},"LCF"]

GraphData[{"Complete",16},"HamiltonianCycleCount"]

GraphData[{"Complete",16},"LCFSignature"]

GraphData[{"Complete",16},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",16}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",16}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",16},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",16}],Debug->True]//Timing

GraphData[{"Complete",16},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",16},"VertexList"],GraphData[{"Complete",16},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",16},"Matchstick"]

GraphData[{"Complete",16},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",16},"Edges"]]

3D All

GraphData[{"Complete",16},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",16},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",16},"Polyhedral"]

GraphData[{"Complete",16},"Graph",{"3D","Polyhedron"}]

{"Complete", 17}

Names

GraphData[{"Complete",17},"StandardName"]

GraphData[{"Complete",17},"StandardNames"]

Primary

GraphData[{"Complete",17}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",17},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",17},"EdgeList"]]

Default embedding

g=Graph[GraphData[{"Complete",17},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[14],CirclePoints[4/5-1/10,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",17},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",17},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",17},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",17},"Planar"]

GraphData[{"Complete",17},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",17},{"RCN","CN"}]

GraphData[{"Complete",17},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",17},{"RCN","CN"}]

GraphData[{"Complete",17},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",17}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",17},"Circulant"]

GraphData[{"Complete",17},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",17},"Halin"]

GraphData[{"Complete",17},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",17},"LCF"]

GraphData[{"Complete",17},"HamiltonianCycleCount"]

GraphData[{"Complete",17},"LCFSignature"]

GraphData[{"Complete",17},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",17}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",17}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",17},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",17}],Debug->True]//Timing

GraphData[{"Complete",17},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",17},"VertexList"],GraphData[{"Complete",17},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",17},"Matchstick"]

GraphData[{"Complete",17},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",17},"Edges"]]

3D All

GraphData[{"Complete",17},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",17},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",17},"Polyhedral"]

GraphData[{"Complete",17},"Graph",{"3D","Polyhedron"}]

{"Complete", 18}

Names

GraphData[{"Complete",18},"StandardName"]

GraphData[{"Complete",18},"StandardNames"]

Primary

GraphData[{"Complete",18}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",18},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",18},"EdgeList"]]

Default embedding

g=Graph[GraphData[{"Complete",18},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[15],CirclePoints[4/5-1/10,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",18},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",18},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",18},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",18},"Planar"]

GraphData[{"Complete",18},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",18},{"RCN","CN"}]

GraphData[{"Complete",18},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",18},{"RCN","CN"}]

GraphData[{"Complete",18},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",18}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",18},"Circulant"]

GraphData[{"Complete",18},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",18},"Halin"]

GraphData[{"Complete",18},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",18},"LCF"]

GraphData[{"Complete",18},"HamiltonianCycleCount"]

GraphData[{"Complete",18},"LCFSignature"]

GraphData[{"Complete",18},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Complete",18},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",18}],Debug->True]//Timing

GraphData[{"Complete",18},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",18},"VertexList"],GraphData[{"Complete",18},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",18},"Matchstick"]

GraphData[{"Complete",18},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",18},"Edges"]]

3D All

GraphData[{"Complete",18},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",18},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",18},"Polyhedral"]

GraphData[{"Complete",18},"Graph",{"3D","Polyhedron"}]

{"Complete", 19}

Names

GraphData[{"Complete",19},"StandardName"]

GraphData[{"Complete",19},"StandardNames"]

Primary

GraphData[{"Complete",19}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",19},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",19},"EdgeList"]]

Default embedding

g=Graph[GraphData[{"Complete",19},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[16],CirclePoints[1/2+1/10,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",19},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",19},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",19},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",19},"Planar"]

GraphData[{"Complete",19},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",19},{"RCN","CN"}]

GraphData[{"Complete",19},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",19},{"RCN","CN"}]

GraphData[{"Complete",19},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",19}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",19},"Circulant"]

GraphData[{"Complete",19},"Graph","Circulant"]//StyleGraphs

CirculantGraph1@@@CirculantIndices[GraphData[{"Complete",19}]]

Halin

GraphData[{"Complete",19},"Halin"]

GraphData[{"Complete",19},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",19},"LCF"]

GraphData[{"Complete",19},"HamiltonianCycleCount"]

GraphData[{"Complete",19},"LCFSignature"]

GraphData[{"Complete",19},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",19}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",19}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",19},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",19}],Debug->True]//Timing

GraphData[{"Complete",19},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",19},"VertexList"],GraphData[{"Complete",19},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",19},"Matchstick"]

GraphData[{"Complete",19},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",19},"Edges"]]

3D All

GraphData[{"Complete",19},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",19},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",19},"Polyhedral"]

GraphData[{"Complete",19},"Graph",{"3D","Polyhedron"}]

{"Complete", 20}

Names

GraphData[{"Complete",20},"StandardName"]

GraphData[{"Complete",20},"StandardNames"]

Primary

GraphData[{"Complete",20}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",20},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",20},"EdgeList"]]

Default embedding

g=Graph[GraphData[{"Complete",20},"Edges"],GraphLayout->"SpringEmbedding",VertexLabels->Automatic]

DegenerateGraphEmbeddingTypes[g]

v=Join[CirclePoints[17],CirclePoints[4/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

g=CompleteGraph1[,GraphLayout->"TriangularLinearEmbedding"]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",20},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",20},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",20},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",20},"Planar"]

GraphData[{"Complete",20},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",20},{"RCN","CN"}]

GraphData[{"Complete",20},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",20},{"RCN","CN"}]

GraphData[{"Complete",20},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",20}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",20},"Circulant"]

GraphData[{"Complete",20},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",20},"Halin"]

GraphData[{"Complete",20},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",20},"LCF"]

GraphData[{"Complete",20},"HamiltonianCycleCount"]

GraphData[{"Complete",20},"LCFSignature"]

GraphData[{"Complete",20},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",20}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",20}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",20},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",20}],Debug->True]//Timing

GraphData[{"Complete",20},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",20},"VertexList"],GraphData[{"Complete",20},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",20},"Matchstick"]

GraphData[{"Complete",20},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",20},"Edges"]]

3D All

GraphData[{"Complete",20},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",20},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",20},"Polyhedral"]

GraphData[{"Complete",20},"Graph",{"3D","Polyhedron"}]

{"Complete", 21}

Names

GraphData[{"Complete",21},"StandardName"]

GraphData[{"Complete",21},"StandardNames"]

Primary

GraphData[{"Complete",21}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",21},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",21},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",21},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[18],CirclePoints[1/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

DegenerateGraphEmbeddingTypes[g]

Degenerate

GraphData[{"Complete",21},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@%

Bilateral

GraphData[{"Complete",21},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",21},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",21},"Planar"]

GraphData[{"Complete",21},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",21},{"RCN","CN"}]

GraphData[{"Complete",21},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",21},{"RCN","CN"}]

GraphData[{"Complete",21},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",21}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",21},"Circulant"]

GraphData[{"Complete",21},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",21},"Halin"]

GraphData[{"Complete",21},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",21},"LCF"]

GraphData[{"Complete",21},"HamiltonianCycleCount"]

GraphData[{"Complete",21},"LCFSignature"]

GraphData[{"Complete",21},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",21}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",21}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",21},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",21}],Debug->True]//Timing

GraphData[{"Complete",21},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",21},"VertexList"],GraphData[{"Complete",21},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",21},"Matchstick"]

GraphData[{"Complete",21},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",21},"Edges"]]

3D All

GraphData[{"Complete",21},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",21},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",21},"Polyhedral"]

GraphData[{"Complete",21},"Graph",{"3D","Polyhedron"}]

{"Complete", 22}

Names

GraphData[{"Complete",22},"StandardName"]

GraphData[{"Complete",22},"StandardNames"]

Primary

GraphData[{"Complete",22}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",22},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",22},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",22},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[19],CirclePoints[2/3-1/20,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",22},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",22},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",22},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",22},"Planar"]

GraphData[{"Complete",22},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",22},{"RCN","CN"}]

GraphData[{"Complete",22},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",22},{"RCN","CN"}]

GraphData[{"Complete",22},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",22}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",22},"Circulant"]

GraphData[{"Complete",22},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",22},"Halin"]

GraphData[{"Complete",22},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",22},"LCF"]

GraphData[{"Complete",22},"HamiltonianCycleCount"]

GraphData[{"Complete",22},"LCFSignature"]

GraphData[{"Complete",22},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",22}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",22}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",22},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",22}],Debug->True]//Timing

GraphData[{"Complete",22},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",22},"VertexList"],GraphData[{"Complete",22},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",22},"Matchstick"]

GraphData[{"Complete",22},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",22},"Edges"]]

3D All

GraphData[{"Complete",22},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",22},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",22},"Polyhedral"]

GraphData[{"Complete",22},"Graph",{"3D","Polyhedron"}]

{"Complete", 23}

Names

GraphData[{"Complete",23},"StandardName"]

GraphData[{"Complete",23},"StandardNames"]

Primary

GraphData[{"Complete",23}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",23},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",23},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",23},"Edges"]

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

RecognizeGraph[g]

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

RecognizeGraph@g

Degenerate

GraphData[{"Complete",23},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",23},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",23},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",23},"Planar"]

GraphData[{"Complete",23},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",23},{"RCN","CN"}]

GraphData[{"Complete",23},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",23},{"RCN","CN"}]

GraphData[{"Complete",23},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",23}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",23},"Circulant"]

GraphData[{"Complete",23},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",23},"Halin"]

GraphData[{"Complete",23},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",23},"LCF"]

GraphData[{"Complete",23},"HamiltonianCycleCount"]

GraphData[{"Complete",23},"LCFSignature"]

GraphData[{"Complete",23},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",23}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",23}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",23},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",23}],Debug->True]//Timing

GraphData[{"Complete",23},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",23},"VertexList"],GraphData[{"Complete",23},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",23},"Matchstick"]

GraphData[{"Complete",23},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",23},"Edges"]]

3D All

GraphData[{"Complete",23},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",23},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",23},"Polyhedral"]

GraphData[{"Complete",23},"Graph",{"3D","Polyhedron"}]

{"Complete", 24}

Names

GraphData[{"Complete",24},"StandardName"]

GraphData[{"Complete",24},"StandardNames"]

Primary

GraphData[{"Complete",24}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",24},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",24},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",24},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[21],CirclePoints[4/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

DegenerateGraphEmbeddingTypes@g

Degenerate

GraphData[{"Complete",24},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",24},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",24},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",24},"Planar"]

GraphData[{"Complete",24},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",24},{"RCN","CN"}]

GraphData[{"Complete",24},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",24},{"RCN","CN"}]

GraphData[{"Complete",24},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",24}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",24},"Circulant"]

GraphData[{"Complete",24},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",24},"Halin"]

GraphData[{"Complete",24},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",24},"LCF"]

GraphData[{"Complete",24},"HamiltonianCycleCount"]

GraphData[{"Complete",24},"LCFSignature"]

GraphData[{"Complete",24},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",24}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",24}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",24},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",24}],Debug->True]//Timing

GraphData[{"Complete",24},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",24},"VertexList"],GraphData[{"Complete",24},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",24},"Matchstick"]

GraphData[{"Complete",24},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",24},"Edges"]]

3D All

GraphData[{"Complete",24},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",24},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",24},"Polyhedral"]

GraphData[{"Complete",24},"Graph",{"3D","Polyhedron"}]

{"Complete", 25}

Names

GraphData[{"Complete",25},"StandardName"]

GraphData[{"Complete",25},"StandardNames"]

Primary

GraphData[{"Complete",25}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",25},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",25},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",25},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[22],CirclePoints[4/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

DegenerateGraphEmbeddingTypes@g

Degenerate

GraphData[{"Complete",25},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",25},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",25},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",25},"Planar"]

GraphData[{"Complete",25},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",25},{"RCN","CN"}]

GraphData[{"Complete",25},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",25},{"RCN","CN"}]

GraphData[{"Complete",25},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",25}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",25},"Circulant"]

GraphData[{"Complete",25},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",25},"Halin"]

GraphData[{"Complete",25},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",25},"LCF"]

GraphData[{"Complete",25},"HamiltonianCycleCount"]

GraphData[{"Complete",25},"LCFSignature"]

GraphData[{"Complete",25},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",25}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",25}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",25},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",25}],Debug->True]//Timing

GraphData[{"Complete",25},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",25},"VertexList"],GraphData[{"Complete",25},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",25},"Matchstick"]

GraphData[{"Complete",25},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",25},"Edges"]]

3D All

GraphData[{"Complete",25},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",25},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",25},"Polyhedral"]

GraphData[{"Complete",25},"Graph",{"3D","Polyhedron"}]

{"Complete", 26}

Names

GraphData[{"Complete",26},"StandardName"]

GraphData[{"Complete",26},"StandardNames"]

Primary

GraphData[{"Complete",26}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",26},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",26},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",26},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[23],CirclePoints[4/5,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",26},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",26},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",26},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",26},"Planar"]

GraphData[{"Complete",26},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",26},{"RCN","CN"}]

GraphData[{"Complete",26},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",26},{"RCN","CN"}]

GraphData[{"Complete",26},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",26}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",26},"Circulant"]

GraphData[{"Complete",26},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",26},"Halin"]

GraphData[{"Complete",26},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",26},"LCF"]

GraphData[{"Complete",26},"HamiltonianCycleCount"]

GraphData[{"Complete",26},"LCFSignature"]

GraphData[{"Complete",26},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",26}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",26}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",26},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",26}],Debug->True]//Timing

GraphData[{"Complete",26},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",26},"VertexList"],GraphData[{"Complete",26},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",26},"Matchstick"]

GraphData[{"Complete",26},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",26},"Edges"]]

3D All

GraphData[{"Complete",26},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",26},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",26},"Polyhedral"]

GraphData[{"Complete",26},"Graph",{"3D","Polyhedron"}]

{"Complete", 27}

Names

GraphData[{"Complete",27},"StandardName"]

GraphData[{"Complete",27},"StandardNames"]

Primary

GraphData[{"Complete",27}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",27},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",27},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",27},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[24],CirclePoints[2/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",27},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",27},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",27},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",27},"Planar"]

GraphData[{"Complete",27},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",27},{"RCN","CN"}]

GraphData[{"Complete",27},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",27},{"RCN","CN"}]

GraphData[{"Complete",27},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",27}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",27},"Circulant"]

GraphData[{"Complete",27},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",27},"Halin"]

GraphData[{"Complete",27},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",27},"LCF"]

GraphData[{"Complete",27},"HamiltonianCycleCount"]

GraphData[{"Complete",27},"LCFSignature"]

GraphData[{"Complete",27},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",27}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",27}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",27},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",27}],Debug->True]//Timing

GraphData[{"Complete",27},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",27},"VertexList"],GraphData[{"Complete",27},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",27},"Matchstick"]

GraphData[{"Complete",27},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",27},"Edges"]]

3D All

GraphData[{"Complete",27},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",27},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",27},"Polyhedral"]

GraphData[{"Complete",27},"Graph",{"3D","Polyhedron"}]

{"Complete", 28}

Names

GraphData[{"Complete",28},"StandardName"]

GraphData[{"Complete",28},"StandardNames"]

Primary

GraphData[{"Complete",28}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",28},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",28},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",28},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[25],CirclePoints[1/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

DegenerateGraphEmbeddingTypes@g

Degenerate

GraphData[{"Complete",28},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",28},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",28},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",28},"Planar"]

GraphData[{"Complete",28},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",28},{"RCN","CN"}]

GraphData[{"Complete",28},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",28},{"RCN","CN"}]

GraphData[{"Complete",28},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",28}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",28},"Circulant"]

GraphData[{"Complete",28},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",28},"Halin"]

GraphData[{"Complete",28},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",28},"LCF"]

GraphData[{"Complete",28},"HamiltonianCycleCount"]

GraphData[{"Complete",28},"LCFSignature"]

GraphData[{"Complete",28},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",28}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",28}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",28},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",28}],Debug->True]//Timing

GraphData[{"Complete",28},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",28},"VertexList"],GraphData[{"Complete",28},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",28},"Matchstick"]

GraphData[{"Complete",28},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",28},"Edges"]]

3D All

GraphData[{"Complete",28},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",28},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",28},"Polyhedral"]

GraphData[{"Complete",28},"Graph",{"3D","Polyhedron"}]

{"Complete", 29}

Names

GraphData[{"Complete",29},"StandardName"]

GraphData[{"Complete",29},"StandardNames"]

Primary

GraphData[{"Complete",29}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",29},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",29},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",29},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[26],CirclePoints[2/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",29},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",29},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",29},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",29},"Planar"]

GraphData[{"Complete",29},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",29},{"RCN","CN"}]

GraphData[{"Complete",29},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",29},{"RCN","CN"}]

GraphData[{"Complete",29},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",29}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",29},"Circulant"]

GraphData[{"Complete",29},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",29},"Halin"]

GraphData[{"Complete",29},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",29},"LCF"]

GraphData[{"Complete",29},"HamiltonianCycleCount"]

GraphData[{"Complete",29},"LCFSignature"]

GraphData[{"Complete",29},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",29}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",29}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",29},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",29}],Debug->True]//Timing

GraphData[{"Complete",29},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",29},"VertexList"],GraphData[{"Complete",29},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",29},"Matchstick"]

GraphData[{"Complete",29},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",29},"Edges"]]

3D All

GraphData[{"Complete",29},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",29},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",29},"Polyhedral"]

GraphData[{"Complete",29},"Graph",{"3D","Polyhedron"}]

{"Complete", 30}

Names

GraphData[{"Complete",30},"StandardName"]

GraphData[{"Complete",30},"StandardNames"]

Primary

GraphData[{"Complete",30}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"Complete",30},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Complete",30},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Complete",30},"Edges"]

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

RecognizeGraph[g]

v=Join[CirclePoints[27],CirclePoints[2/3,3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@Subsets[Range@Length@v,{2}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Complete",30},"Graph","Degenerate"]//StyleGraphs

Bilateral

GraphData[{"Complete",30},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Complete",30},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"Complete",30},"Planar"]

GraphData[{"Complete",30},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Complete",30},{"RCN","CN"}]

GraphData[{"Complete",30},"Graph","MinimalCrossing"]//StyleGraphs

MinimalRectilinearCrossing

GraphData[{"Complete",30},{"RCN","CN"}]

GraphData[{"Complete",30},"Graph","MinimalRectilinearCrossing"]//StyleGraphs

RectilinearCrossingCount/@%

MinimalCrossing construction

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

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"Complete",30}],"CrossingNumber"->60,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Complete",30},"Circulant"]

GraphData[{"Complete",30},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Complete",30},"Halin"]

GraphData[{"Complete",30},"Graph","Halin"]//StyleGraphs

LCF

GraphData[{"Complete",30},"LCF"]

GraphData[{"Complete",30},"HamiltonianCycleCount"]

GraphData[{"Complete",30},"LCFSignature"]

GraphData[{"Complete",30},"Graph","LCF"]//StyleGraphs

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

LCF compute

Length[FindHamiltonianCycle[GraphData[{"Complete",30}],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData[{"Complete",30}],All])[[All,2]]]//Timing

LCFGraph@@@lcf//StyleGraphs

UnitDistance

GraphData[{"Complete",30},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Complete",30}],Debug->True]//Timing

GraphData[{"Complete",30},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"Complete",30},"VertexList"],GraphData[{"Complete",30},"EdgeList"]]]

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

UnitDistance by FindUnitDistanceEmbedding

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

Matchstick

GraphData[{"Complete",30},"Matchstick"]

GraphData[{"Complete",30},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Complete",30},"Edges"]]

3D All

GraphData[{"Complete",30},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"Complete",30},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"Complete",30},"Polyhedral"]

GraphData[{"Complete",30},"Graph",{"3D","Polyhedron"}]

Properties

Acyclic

Table[GraphData[{"Complete",n},"Acyclic"],{n,30}]

AdjacencyMatrixCount

seq=Table[GraphData[{"Complete",n},"AdjacencyMatrixCount"],{n,30}]

AlgebraicConnectivity

AlmostHamiltonian

Anarboricity

Antipodal

Apex

Apices

Arboricity

Table[GraphData[{"Complete",n},"Arboricity"],{n,30}]

Table[Ceiling[n/2],{n,30}]

ArcTransitive

Table[GraphData[{"Complete",n},"ArcTransitive"],{n,30}]

ArcTransitivity

Table[GraphData[{"Complete",n},"ArcTransitivity"],{n,30}]

ArticulationVertexCount

AutomorphismCount

seq=Table[GraphData[{"Complete",n},"AutomorphismCount"],{n,30}]

FindSequenceFunction[seq,n]

BalabanIndex

seq=Table[GraphData[{"Complete",n},"BalabanIndex"],{n,30}]

FindSequenceFunction[seq,n]//Factor

Table[(((n^2)(n-1))/(2 ((n^2)-3n+4))),{n,30}]

Bandwidth

Table[GraphData[{"Complete",n},"Bandwidth"],{n,30}]

BetweennessCentralities

Bicolorable

Biconnected

Bicubic

Bipartite

BipartiteDimension

Biplanar

BlockCount

BridgeCount

seq=Table[GraphData[{"Complete",n},"BridgeCount"],{n,30}]

Bridged

BroadcastTime

BurningNumber

seq=Table[GraphData[{"Complete",n},"BurningNumber"],{n,30}]

CharacteristicPolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"CharacteristicPolynomial"][x],{n,k0=1,20}])//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[(((-1-x))^(-1+n)) (-1+n-x),{n,k0,20}]

FullSimplify[poly2-poly]

CheegerConstant

Chordal

ChordCount

seq=Table[GraphData[{"Complete",n},"ChordCount"],{n,30}]

Table[GraphData[{"Complete",n},"M"],{n,30}]

Table[Binomial[n,2],{n,30}]

Do[Print[{n,Length[Chords[System`CompleteGraph[n]]]//Timing}],{n,8}]

gf=(x^4) FindGeneratingFunction[Drop[DeleteMissing@seq,3],x]

ChordlessCycleCount

seq=Table[GraphData[{"Complete",n},"ChordlessCycleCount"],{n,30}]

ChromaticInvariant

seq=Table[GraphData[{"Complete",n},"ChromaticInvariant"],{n,30}]

FindSequenceFunction[Drop[seq,2],n-2]

Table[(n-2)!,{n,30}]

ChromaticNumber

seq=Table[GraphData[{"Complete",n},"ChromaticNumber"],{n,30}]

FindSequenceFunction[seq,n]

ChromaticPolynomial

Table[FactorialPower[x,n],{n,10}]//FunctionExpand

seq=Table[GraphData[{"Complete",n},"ChromaticPolynomial"][x],{n,10}]

FindSequenceFunction[seq,n]

Table[(((-1))^(1+n)) x Pochhammer[1-x,-1+n],{n,10}]

Table[(-1)^n Pochhammer[-x,n],{n,10}]

FullSimplify[(((-1))^(1+n)) x Pochhammer[1-x,-1+n]//FunctionExpand,n∈Integers]

Table[(((((-1))^n) Gamma[n-x])/(Gamma[-x])),{n,10}]

FullSimplify[FunctionExpand[%]]

CircuitRank

seq=Table[GraphData[{"Complete",n},"CircuitRank"],{n,30}]

FindSequenceFunction[seq,n]//FullSimplify

PolygonalNumber[3,n-2]//FullSimplify

Binomial[n-1,2]

WolframLanguageData["PolygonalNumber","VersionIntroduced"]

Circumference

seq=Table[GraphData[{"Complete",n},"Circumference"],{n,30}]

Classes

Intersection@@(GraphData[#,"Classes"]&/@GraphData["Complete"])

ClawFree

CliqueCount

seq=Table[GraphData[{"Complete",n},"CliqueCount"],{n,30}]

FindSequenceFunction[seq,n]

CliqueCoveringNumber

seq=Table[GraphData[{"Complete",n},"CliqueCoveringNumber"],{n,30}]

CliqueNumber

seq=Table[GraphData[{"Complete",n},"CliqueNumber"],{n,30}]

FindSequenceFunction[seq,n]

CliquePolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"CliquePolynomial"][x],{n,k0=1,10}])//Column

ClosenessCentralities

Coarseness

CoboundaryPolynomial

ComplementOddChordlessCycleCount

seq=Table[GraphData[{"Complete",n},"ComplementOddChordlessCycleCount"],{n,30}]

ComplementOddChordlessCyclePolynomial

Conductance

Connected

ConnectedComponentCount

ConnectedDominatingSetCount

seq=Table[GraphData[{"Complete",n},"ConnectedDominatingSetCount"],{n,30}]

FindSequenceFunction[DeleteCases[seq,_Missing],n]

ConnectedDominationNumber

seq=Table[GraphData[{"Complete",n},"ConnectedDominationNumber"],{n,30}]

FindSequenceFunction[DeleteCases[seq,_Missing],n]

ConnectedDominationPolynomial

(poly=DeleteCases[Factor@Table[GraphData[{"Complete",n},"ConnectedDominationPolynomial"][x],{n,k0=2,6}],_Missing[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,30}]

FullSimplify[poly2-poly]

ConnectedInducedSubgraphCount

A000225

seq=Table[GraphData[{"Complete",n},"ConnectedInducedSubgraphCount"],{n,30}]

FindSequenceFunction[DeleteCases[seq,_Missing],n]

ConnectedInducedSubgraphPolynomial

(poly=DeleteCases[Factor@Table[GraphData[{"Complete",n},"ConnectedInducedSubgraphPolynomial"][x],{n,k0=2,20}],_Missing[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,30}]

FullSimplify[poly2-poly]

Corank

CriticalNonplanar

CrossingNumber

A000241

Conjectured to be floor(n/2)*floor((n-1)/2)*floor((n-2)/2)*floor((n-3)/2)/4

seq=Table[GraphData[{"Complete",n},"CrossingNumber"],{n,30}]

FindSequenceFunction[DeleteCases[Drop[seq,4],_Missing],n-4]

Table[Floor[n/2]Floor[(n-1)/2]Floor[(n-2)/2]Floor[(n-3)/2]/4,{n,30}]

Cubic

CycleCount

A002807

seq=Table[GraphData[{"Complete",n},"CycleCount"],{n,30}]

FindSequenceFunction[Drop[seq,2],n-2]

FindGeneratingFunction[seq,x]

bug(331160): Starting in V7, Sum[Binomial[n, k] (k - 1)!, {k, 3, n}] returns less nice DifferenceRoot result instead of HypergeometricPFQ

bug(331160)

Gave PFQ in V6

V6

$Version

Sum[Binomial[n, k] (k - 1)!, {k, 3, n}]

Table[n(2 HypergeometricPFQ[{1,1,1-n},{2},-1]-n-1)/4,{n,30}]

V7

Sum[Binomial[n,k](k-1)!,{k,3,n}]//FullSimplify

FunctionExpand[%]

Table[-(1/2) n (1+n)+DifferenceRoot[Function[{\[FormalY],\[FormalN]},{\[FormalN] (-\[FormalN]+n) \[FormalY][\[FormalN]]+(-1+(\[FormalN]^2)-\[FormalN] (1+n)) \[FormalY][1+\[FormalN]]+(1+\[FormalN]) \[FormalY][2+\[FormalN]]==0,\[FormalY][1]==0,\[FormalY][2]==n}]][1+n],{n,30}]

CyclePolynomial

A284947

Take[(poly=Factor@Table[GraphData[{"Complete",n},"CyclePolynomial"][x],{n,k0=1,20}]),10]//Column

coef=Factor/@FindLinearRecurrence[poly]

CoefficientList[poly,x]

Sum[(\[FormalK]-1)! Binomial[n,\[FormalK]](x^\[FormalK]),{\[FormalK],3,n}]

bug(331160)

Gave PFQ in V6

poly2=Table[(1/2) Sum[(\[FormalK]-1)! Binomial[n,\[FormalK]](x^\[FormalK]),{\[FormalK],3,n}],{n,k0,20}]//Factor

FullSimplify[poly2-poly]

poly3=Table[-(n*x*(2-x+n*x-2*HypergeometricPFQ[{1,1,1-n},{2},-x]))/4,{n,30}]

FullSimplify[poly3-poly]

Cycles

GraphicsGrid[Flatten[Partition[#,UpTo[10]]&/@Table[HighlightGraph[CompleteGraph[n,VertexStyle->Black,EdgeStyle->Gray,VertexSize->{"Scaled",.05}],#]&/@FindCycle[CompleteGraph[n],Infinity,All],{n,3,5}],1],Dividers->{{Thick,{True},Thick},{Thick,Thick,Thick,{True},Thick}},ImageSize->Large]

Cyclic

Table[GraphData[{"Complete",n},"Cyclic"],{n,30}]

Degeneracy

DegreeCentralities

DetourIndex

seq=Table[GraphData[{"Complete",n},"DetourIndex"],{n,30}]

FindSequenceFunction[seq,n]//Factor

DetourPolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"DetourPolynomial"][x],{n,k0=1,20}])//Column

coef=Factor/@FindLinearRecurrence[poly]

poly2=Table[(((n-1)^2-#) (#+n-1)^(n-1)&)@x,{n,k0,20}]

Abs[FullSimplify[poly2/poly]]

Diameter

seq=Table[GraphData[{"Complete",n},"Diameter"],{n,30}]

Dimension

DistancePolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"DistancePolynomial"][x],{n,k0=1,20}])//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]

Table[n x(3x+2)-2x^2+1,{n,10}]

FullSimplify[%-poly]

DistanceRegular

DistanceTransitive

DistinguishingNumber

seq=Table[GraphData[{"Complete",n},"DistinguishingNumber"],{n,30}]

DomaticNumber

DominatingSetCount

seq=Table[GraphData[{"Complete",n},"DominatingSetCount"],{n,30}]

FindLinearRecurrence[seq]

FindSequenceFunction[seq,n]

DominationNumber

seq=Table[GraphData[{"Complete",n},"DominationNumber"],{n,30}]

DominationPolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"DominationPolynomial"][x],{n,k0=1,20}])//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[-1+(((1+x))^n),{n,k0,20}]

FullSimplify[poly2-poly]

Doublecross

Eccentricities

EccentricityCentralities

EdgeBetweennessCentralities

EdgeChromaticNumber

seq=Table[GraphData[{"Complete",n},"EdgeChromaticNumber"],{n,30}]

FindSequenceFunction[Rest@seq,n-1]//FullSimplify

Table[Piecewise[{{0,n==1}},2Floor[(n+1)/2]-1],{n,30}]

EdgeConnectivity

Table[GraphData[{"Complete",n},"EdgeConnectivity"],{n,30}]

EdgeCount

seq=Table[GraphData[{"Complete",n},"EdgeCount"],{n,30}]

FindSequenceFunction[seq,n]

Binomial[n,2]

EdgeCoverCount

A006129

seq=Table[GraphData[{"Complete",n},"EdgeCoverCount"],{n,30}]

FindLinearRecurrence[seq]

FindSequenceFunction[seq,n]

Table[Sum[(((-1))^(n-k))Binomial[n,k]2^Binomial[k,2],{k,0,n}],{n,30}]

Sum[(((-1))^(n-k))Binomial[n,k]2^Binomial[k,2],{k,0,n}]

FunctionExpand[(((-1))^(n-k))Binomial[n,k]2^Binomial[k,2]]//FullSimplify

Sum[(((((-1))^(-k+n)) (2^((1/2) (-1+k) k)) Gamma[1+n])/(Gamma[1+k] Gamma[1-k+n])),{k,0,n}]

Sum[2^Binomial[n,2] x^n/n!,{n,0,∞},VerifyConvergence->False]

Sum[2^Binomial[n,2] x^n/n!,{n,0,∞},Regularization->#]&/@{"Abel","Borel","Cesaro","Dirichlet","Euler"}

EdgeCoverNumber

seq=Table[GraphData[{"Complete",n},"EdgeCoverNumber"],{n,30}]

FindSequenceFunction[seq,n]

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

Table[Piecewise[{{0,n==1}},Floor[(n+1)/2]],{n,30}]

EdgeCoverPolynomial

Take[poly=Factor@Table[GraphData[{"Complete",n},"EdgeCoverPolynomial"][x],{n,k0=1,20}],UpTo[5]]//Column

coef=Factor/@FindLinearRecurrence[poly]

Sum[(-1)^(n-\[FormalK]) Binomial[n,\[FormalK]] (x+1)^Binomial[\[FormalK],2],{\[FormalK],0,n}]

poly2=Table[Sum[(-1)^(n-\[FormalK]) Binomial[n,\[FormalK]] (x+1)^Binomial[\[FormalK],2],{\[FormalK],0,n}],{n,k0,20}]

FullSimplify[Take[poly2-poly,7]]

EdgeTransitive

EigenvectorCentralities

EulerianCycleCount

A284708

seq=Table[GraphData[{"Complete",n},"EulerianCycleCount"],{n,30}]

FindSequenceFunction[DeleteCases[seq[[3;;All;;2]],_Missing],n]

seq[[3;;All;;2]]

FindLinearRecurrence[{1,132,9821,58501,360369}]

Table[Length[FindEulerianCycle[System`CompleteGraph[n],All]],{n,3,7,2}]

FaceCount

seq=Table[GraphData[{"Complete",n},"FaceCount"],{n,30}]

FibonacciCube

Entity["Graph",{"Complete",n}]["FibonacciCube"]

seq=Table[GraphData[{"Complete",n},"FibonacciCube"],{n,30}]

FlowPolynomial

Take[poly=Factor@Table[GraphData[{"Complete",n},"FlowPolynomial"][x],{n,k0=1,20}],UpTo[6]]//Column

coef=Factor/@FindLinearRecurrence[poly]

Take[poly2=Table[Block[{F},F[0,{_,_}]:=1;
F[1,{x_,_}]:=x;
F[nn_,{x_,y_}]:=F[nn,{x,y}]=Factor@Sum[Binomial[nn-1,\[FormalK]-1] (x+(y^\[FormalK]-y)/(y-1)) F[\[FormalK]-1,{1,y}] F[nn-\[FormalK],{x,y}],{\[FormalK],nn}];
Function[u,Evaluate[(-1)^Binomial[n-1,2] F[n-1,{0,1-u}]]]][x],{n,k0,20}],UpTo[6]]

FullSimplify[poly2-poly]

FractionalArboricity

FractionalChromaticNumber

seq=Table[GraphData[{"Complete",n},"FractionalChromaticNumber"],{n,30}]

FractionalEdgeChromaticNumber

seq=Table[GraphData[{"Complete",n},"FractionalEdgeChromaticNumber"],{n,30}]

FindSequenceFunction[Drop[seq,2],n-2]

Table[2Floor[(n-1)/2]+1,{n,30}]

Genus

Geodetic

Girth

seq=Table[GraphData[{"Complete",n},"Girth"],{n,30}]

GlobalClusteringCoefficient

Gonality

seq=Table[GraphData[{"Complete",n},"Gonality"],{n,30}]

Graceful

GracefulLabelingCount

HamiltonConnected

HamiltonDecomposable

HamiltonDecompositionCount

seq=Table[GraphData[{"Complete",n},"HamiltonDecompositionCount"],{n,30}]

FindSequenceFunction[seq,n]

Hamiltonian

Table[GraphData[{"Complete",n},"Hamiltonian"],{n,30}]

HamiltonianCycleCount

seq=DeleteCases[GraphData[{"Complete",#},"HamiltonianCycleCount"]&/@Range[20],_Missing]

FindSequenceFunction[Drop[seq,2],n-2]//FullSimplify

Table[Gamma[n]/2,{n,30}]

HamiltonianNumber

seq=Table[GraphData[{"Complete",n},"HamiltonianNumber"],{n,30}]

HamiltonianPathCount

seq=DeleteCases[GraphData[{"Complete",#},"HamiltonianPathCount"]&/@Range[20],_Missing]

FindSequenceFunction[Drop[seq,1],n-1]//FullSimplify

%//FunctionExpand

Table[(1/2) Pochhammer[1,n],{n,30}]

Table[(1/2) n!,{n,30}]

HamiltonianWalkCount

seq=Table[GraphData[{"Complete",n},"HamiltonianWalkCount"],{n,30}]

Table[Piecewise[{{Missing["NotAvailable"],n==1},{1,n==2}},(n-1)!/2],{n,30}]

FullSimplify[(n-1)!/2]

HamiltonLaceable

HararyIndex

seq=Table[GraphData[{"Complete",n},"HararyIndex"],{n,30}]

FindLinearRecurrence[seq]

FindSequenceFunction[seq,n]

Binomial[n,2]

HexagonCount

seq=Table[GraphData[{"Complete",n},"HexagonCount"],{n,30}]

FindSequenceFunction[seq,n]

60Binomial[n, 6]//FunctionExpand

Table[60Binomial[n, 6],{n,30}]

HITSCentralities

HosoyaIndex

A000085

Same as IndpeendentEdgeSetCount

seq=Table[GraphData[{"Complete",n},"HosoyaIndex"],{n,30}]

Table[(I/Sqrt[2])^n HermiteH[n,-I/Sqrt[2]],{n,30}]

FindSequenceFunction[seq,n]

(x^3)FindGeneratingFunction[seq,x]

FindLinearRecurrence[seq]

SeriesCoefficient[Exp[(x+x^2)/2],{x,0,n}]//FullSimplify

Table[DifferenceRoot[Function[{\[FormalY],\[FormalN]},{-2 \[FormalY][\[FormalN]]-\[FormalY][1+\[FormalN]]+(4+2 \[FormalN]) \[FormalY][2+\[FormalN]]==0,\[FormalY][0]==1,\[FormalY][1]==(1/2)}]][n],{n,10}]

RSolveValue[{a[n]==a[n-1]+(n-1)a[n-2],a[1]==1,a[2]==2},a[n],n]

Table[DifferenceRoot[Function[{\[FormalY],\[FormalN]},{(-1-\[FormalN]) \[FormalY][\[FormalN]]-\[FormalY][1+\[FormalN]]+\[FormalY][2+\[FormalN]]==0,\[FormalY][1]==1,\[FormalY][2]==2}]][n],{n,30}]

FunctionExpand[DifferenceRoot[Function[{\[FormalY],\[FormalN]},{(-1-\[FormalN]) \[FormalY][\[FormalN]]-\[FormalY][1+\[FormalN]]+\[FormalY][2+\[FormalN]]==0,\[FormalY][1]==1,\[FormalY][2]==2}]][n]]

Table[Sum[((n!)/((n-2k)!(2^k)k!)),{k,0,Floor[n/2]}],{n,30}]

Sum[((n!)/((n-2k)!(2^k)k!)),{k,0,Floor[n/2]}]

Table[n! DifferenceRoot[Function[{\[FormalY],\[FormalN]},{-\[FormalY][\[FormalN]]-\[FormalY][1+\[FormalN]]+(2+\[FormalN]) \[FormalY][2+\[FormalN]]==0,\[FormalY][1]==1,\[FormalY][2]==1}]][n],{n,30}]

HStarConnected

Hypohamiltonian

Hypotraceable

Identity

IdiosyncraticPolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"IdiosyncraticPolynomial"][x,y],{n,k0=1,10}])//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[(x+1)^(n-1) (x+1-n),{n,k0,10}]

FullSimplify[poly2/poly]

IndependenceNumber

seq=Table[GraphData[{"Complete",n},"IndependenceNumber"],{n,30}]

IndependencePolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"IndependencePolynomial"][x],{n,k0=1,10}])//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[n x+1,{n,l0=10}]

FullSimplify[poly2-poly]

IndependenceRatio

seq=Table[GraphData[{"Complete",n},"IndependenceRatio"],{n,30}]

FindSequenceFunction[seq,n]

IndependentEdgeSetCount

seq=Table[GraphData[{"Complete",n},"IndependentEdgeSetCount"],{n,30}]

Table[(I/Sqrt[2])^n HermiteH[n,-I/Sqrt[2]],{n,30}]

IndependentVertexSetCount

seq=Table[GraphData[{"Complete",n},"IndependentVertexSetCount"],{n,30}]

FindSequenceFunction[seq,n]

IntersectionNumber

seq=Table[GraphData[{"Complete",n},"IntersectionNumber"],{n,30}]

IrredundanceNumber

IrredundancePolynomial

IrredundantSetCount

seq=Table[GraphData[{"Complete",n},"IrredundantSetCount"],{n,30}]

IsolatedPointCount

KatzCentralities

KirchhoffIndex

seq=Table[GraphData[{"Complete",n},"KirchhoffIndex"],{n,30}]

KirchhoffSumIndex

seq=Table[GraphData[{"Complete",n},"KirchhoffSumIndex"],{n,30}]

LaplacianPolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"LaplacianPolynomial"][x],{n,k0=1,10}])//Column

poly2=Table[(((x-n))^(n-1))x,{n,10}]

Abs[FullSimplify[poly/poly2]]

LeafCount

seq=Table[GraphData[{"Complete",n},"LeafCount"],{n,30}]

Likelihood

LinearArboricity

LinkRankCentralities

LocalClusteringCoefficients

LongestCycleCount

seq=Table[GraphData[{"Complete",n},"LongestCycleCount"],{n,30}]

Same as HamiltonianCycleCount

LongestPathCount

LongestPathLength

LovaszNumber

seq=Table[GraphData[{"Complete",n},"LovaszNumber"],{n,30}]

LowerIndependenceNumber

LowerMatchingNumber

LucasCube

Entity["Graph",{"Complete",n}]["LucasCube"]

seq=Table[GraphData[{"Complete",n},"LucasCube"],{n,15}]

MatchingGeneratingPolynomial

Take[poly=Factor@Table[GraphData[{"Complete",n},"MatchingGeneratingPolynomial"][x],{n,k0=1,20}],6]//Column

coef=Factor/@FindLinearRecurrence[poly]

FullSimplify[(-1)^n 2^(n/2) (x)^(n/2) HypergeometricU[-(n/2),1/2,-(1/(2 x))]]

Table[HypergeometricU[-(n/2),(1/2),-(1/(2 x))],{n,5}]//Expand

FullSimplify[(((-(1/x)))^(-n/2))]

Table[ (2^(n/2)) (((-(1/x)))^(-n/2)) HypergeometricU[-(n/2),(1/2),-(1/(2 x))],{n,5}]//Expand

poly2=Simplify[Table[(-1)^n 2^(n/2) (-x)^(n/2) HypergeometricU[-(n/2),1/2,-(1/(2 x))],{n,30}],x>0]

FullSimplify[poly2-poly]

MatchingNumber

seq=Table[GraphData[{"Complete",n},"MatchingNumber"],{n,30}]

Table[Floor[n/2],{n,30}]

MatchingPolynomial

Take[poly=Factor@Table[GraphData[{"Complete",n},"MatchingPolynomial"][x],{n,k0=1,20}],6]//Column

coef=Factor/@FindLinearRecurrence[poly]

poly2=Table[2^(-n/2) HermiteH[n,x/Sqrt[2]],{n,30}]//FullSimplify

FullSimplify[poly2-poly]

MaximalCliqueCount

seq=Table[GraphData[{"Complete",n},"MaximalCliqueCount"],{n,30}]

MaximalCliquePolynomial

MaximalIndependentEdgeSetCount

seq=Table[GraphData[{"Complete",n},"MaximalIndependentEdgeSetCount"],{n,30}]

FindSequenceFunction[DeleteCases[seq,_Missing],n]

Table[,{n,30}]

gf=x FindGeneratingFunction[DeleteCases[seq,_Missing],x]

Table[(2Floor[(n+1)/2]-1)!!,{n,30}]

MaximalIndependentVertexSetCount

seq=Table[GraphData[{"Complete",n},"MaximalIndependentVertexSetCount"],{n,30}]

MaximalIrredundancePolynomial

MaximalIrredundantSetCount

seq=Table[GraphData[{"Complete",n},"MaximalIrredundantSetCount"],{n,30}]

MaximalMatchingGeneratingPolynomial

MaximumCliqueCount

seq=Table[GraphData[{"Complete",n},"MaximumCliqueCount"],{n,30}]

MaximumIndependentEdgeSetCount

seq=Table[GraphData[{"Complete",n},"MaximumIndependentEdgeSetCount"],{n,30}]

FindSequenceFunction[seq,n]

Table[(2Floor[(n+1)/2]-1)!!,{n,30}]

MaximumIndependentVertexSetCount

seq=Table[GraphData[{"Complete",n},"MaximumIndependentVertexSetCount"],{n,30}]

MaximumIrredundantSetCount

MaximumLeafNumber

seq=Table[GraphData[{"Complete",n},"MaximumLeafNumber"],{n,30}]

MaximumVertexDegree

seq=Table[GraphData[{"Complete",n},"MaximumVertexDegree"],{n,30}]

MeanClusteringCoefficient

MeanDistance

seq=Table[GraphData[{"Complete",n},"MeanDistance"],{n,30}]

FindSequenceFunction[seq,n]

Median

MetricDimension

MinimalConnectedDominatingSetCount

MinimalConnectedDominationPolynomial

MinimalDominatingSetCount

seq=Table[GraphData[{"Complete",n},"MinimalDominatingSetCount"],{n,30}]

MinimalDominatingSetSignature

seq=Table[GraphData[{"Complete",n},"MinimalDominatingSetSignature"],{n,30}]

MinimalDominationPolynomial

MinimalEdgeCoverCount

A053530

seq=Table[GraphData[{"Complete",n},"MinimalEdgeCoverCount"],{n,30}]

Do[Print[{n,Length@MinimalSets[FindAllEdgeCovers[System`CompleteGraph[n]]]//Timing}],{n,2,7}]

SeriesCoefficient[Exp[-x-(x^2)/2+x Exp[x]],{x,0,n}]

seq=With[{n=40},CoefficientList[Series[Exp[-x-(x^2)/2+x Exp[x]],{x,0,n}],x]Range[0,n]!]

FindSequenceFunction[DeleteMissing@seq,n]//Head//Timing

FindLinearRecurrence[seq]

FindGeneratingFunction[seq,x]//Head//Timing

Table[n!Sum[(1/(k!))(Binomial[k,n-k](2^(k-n))(((-1))^k)+Sum[Binomial[k,j]Sum[((j^(i-j))/((i-j)!))Binomial[k-j,n-i-k+j](2^(i-j+k-n))(((-1))^(k-j)),{i,j,n-k+j}],{j,k}]),{k,n}],{n,40}]

Sum[j^(i-j)/(i-j)!Binomial[k-j,n-i-k+j](2^(i-j+k-n))(((-1))^(k-j)),{i,j,n-k+j}]

MinimalEdgeCoverPolynomial

MinimalTotalDominatingSetCount

MinimalTotalDominationPolynomial

MinimalVertexCoverCount

MinimalVertexCoverPolynomial

MinimumCliqueCoveringCount

seq=Table[GraphData[{"Complete",n},"MinimumCliqueCoveringCount"],{n,30}]

MinimumConnectedDominatingSetCount

seq=Table[GraphData[{"Complete",n},"MinimumConnectedDominatingSetCount"],{n,30}]

FindSequenceFunction[DeleteCases[seq,_Missing],n]

MinimumConnectedDominatingSets

Table[GraphData[{"Complete",n},"MinimumConnectedDominatingSets"],{n,3}]

MinimumCoveringsByMaximalCliquesCount

MinimumDistinguishingLabelingCount

seq=Table[GraphData[{"Complete",n},"MinimumDistinguishingLabelingCount"],{n,30}]

FindSequenceFunction[seq,n]

MinimumDominatingSetCount

seq=Table[GraphData[{"Complete",n},"MinimumDominatingSetCount"],{n,30}]

MinimumEdgeCoverCount

seq=Table[GraphData[{"Complete",n},"MinimumEdgeCoverCount"],{n,30}]

Do[Print[{n,Length@FindAllMinimumEdgeCovers[System`CompleteGraph[n]]//Timing}],{n,11}]

Table[(2n+1)!/(2^n (n-1)!),{n,5}]

(2n+1)!/(2^n (n-1)!)/.n->(n-1)/2//FunctionExpand

Table[(n-(1/2))!!,{n,3}]

Table[Piecewise[{{(( Gamma[n+1])/((2^((n-1)/2))Gamma[(1/2)(n-1)])),Mod[n,2]==1},{(n-1)!!,Mod[n,2]==0}}],{n,30}]

MinimumLeafNumber

MinimumPathCoveringCount

MinimumTotalDominatingSetCount

MinimumVertexCoverCount

seq=Table[GraphData[{"Complete",n},"MinimumVertexCoverCount"],{n,30}]

MinimumVertexCutCount

MinimumVertexDegree

seq=Table[GraphData[{"Complete",n},"MinimumVertexDegree"],{n,30}]

MolecularTopologicalIndex

seq=Table[GraphData[{"Complete",n},"MolecularTopologicalIndex"],{n,30}]

FindSequenceFunction[seq,n]//FullSimplify

Nonhamiltonian

Table[GraphData[{"Complete",n},"Nonhamiltonian"],{n,30}]

NoPerfectMatching

OddChordlessCycleCount

seq=Table[GraphData[{"Complete",n},"OddChordlessCycleCount"],{n,30}]

OddChordlessCyclePolynomial

Outerplanar

PageRankCentralities

PathCount

A038155

seq=Table[GraphData[{"Complete",n},"PathCount"],{n,30}]

seq=Table[(1/2) E(n-1) n Gamma[n-1,1],{n,30}]

FindLinearRecurrence[DeleteMissing@seq]

FindSequenceFunction[DeleteMissing@seq,n]//FullSimplify

Table[If[n==0,0,Floor[n!E-n-1]/2],{n,0,20}]

n!/2Sum[1/k!,{k,0,n-2}]//FullSimplify

Table[(1/2) E(n-1) n Gamma[n-1,1],{n,0,20}]

gf=x FindGeneratingFunction[DeleteMissing@seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

PathCoveringNumber

PathPolynomial

A268217 with leading zeros and last term in row repeated

(poly=Factor[Table[GraphData[{"Complete",n},"PathPolynomial"],{n,k0=1,kmax=20}]/.f_Function:>f[x]])//Column

CoefficientList[Take[poly,7],x]

coef=Factor/@FindLinearRecurrence[DeleteMissing@poly]

Block[{i=2},Sum[x^k Binomial[n,i] FactorialPower[n-i,k],{k,0,n-i-1}]]//FullSimplify

Table[-(1/2) (-1+n) n (x^(-2+n)) (Gamma[-1+n]-(E^(1/x)) Gamma[-1+n,(1/x)]),{n,2,5}]//FunctionExpand//Expand

CoefficientList[Table[-(1/2) (-1+n) n (x^(-2+n)) (Gamma[-1+n]-(E^(1/x)) Gamma[-1+n,(1/x)]),{n,3,10}]//FunctionExpand,x]//Flatten

CoefficientList[Table[n!Sum[(x^(n-k))/k!,{k,0,n-2}]/2,{n,5}],x]

n!/2Sum[(x^(n-k))/k!,{k,0,n-2}]//FullSimplify

CoefficientList[Table[(1/2) (E^(1/x)) (-1+n) n (x^n) Gamma[-1+n,(1/x)],{n,5}]//FunctionExpand,x]

poly2=Table[(1/2) (E^(1/x)) (-1+n) n (x^n) Gamma[-1+n,(1/x)],{n,k0,kmax}]

FullSimplify[Take[poly2-poly,8]]

Pell

Entity["Graph",{"Complete",n}]["Pell"]

seq=Table[GraphData[{"Complete",n},"Pell"],{n,30}]

PentagonCount

seq=Table[GraphData[{"Complete",n},"PentagonCount"],{n,30}]

FindSequenceFunction[seq,n]

Table[12Binomial[n,5],{n,30}]

Perfect

PerfectMatching

Periphery

Planar

ProjectivePlaneCrossingNumber

seq=Table[GraphData[{"Complete",n},"ProjectivePlaneCrossingNumber"],{n,30}]

Pseudoarboricity

QChromaticPolynomial

RadialityCentralities

RadioLabelingCount

RadioNumber

Radius

seq=Table[GraphData[{"Complete",n},"Radius"],{n,30}]

Rank

RankPolynomial

Known through Tutte

Take[poly=Factor@Table[GraphData[{"Complete",n},"RankPolynomial"][x,y],{n,k0=1,20}],4]//Column

coef=Factor/@FindLinearRecurrence[poly]

RectilinearCrossingNumber

A014540

seq=Table[GraphData[{"Complete",n},"RectilinearCrossingNumber"],{n,30}]

FindSequenceFunction[DeleteCases[seq,_Missing],n]

Regular

RegularParameters

ReliabilityPolynomial

Known through Tutte

Take[poly=Factor@Table[GraphData[{"Complete",n},"ReliabilityPolynomial"][x],{n,k0=1,20}],6]//Column

coef=Factor/@FindLinearRecurrence[poly]

ResistanceMatrix

MatrixForm/@Table[GraphData[{"Complete",n},"ResistanceMatrix"],{n,6}]

seq=Table[Max@GraphData[{"Complete",n},"ResistanceMatrix"],{n,30}]

Table[2/n,{n,30}]

FindSequenceFunction[seq,n]

gf=x FindGeneratingFunction[seq,x]

SeriesCoefficient[gf,{x,0,n}]

MatrixForm/@Table[SparseArray[Band[{1,1}]->0,{n,n},2/n],{n,2,5}]

ScrambleNumber

ShannonCapacity

SigmaPolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"SigmaPolynomial"][x],{n,k0=1,10}])//Column

coef=Factor/@FindLinearRecurrence[poly]

coef=Factor/@FindPolynomialRecurrence[poly,6]

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]

Table[n x(3x+2)-2x^2+1,{n,10}]

FullSimplify[%-poly]

Singlecross

Skewness

A000217

seq=Table[GraphData[{"Complete",n},"Skewness"],{n,30}]

Table[Piecewise[{{(n-3)(n-4)/2,n≥3}}],{n,30}]

Table[Piecewise[{{0,n<3}},(n-3)(n-4)/2],{n,30}]

Table[Piecewise[{{0,n<3}},Binomial[n-3,2]],{n,30}]

Do[Print[{i,GraphSkewness[GraphData[{"Complete",i}]]//Timing}],{i,8}]

SpanningTreeCount

seq=Table[GraphData[{"Complete",n},"SpanningTreeCount"],{n,10}]

FindSequenceFunction[seq,n]

Table[n^(n-2),{n,10}]

SpectralRadius

SquareCount

seq=Table[GraphData[{"Complete",n},"SquareCount"],{n,30}]

FindSequenceFunction[seq,n]

3Binomial[n,4]

SquareFree

StabilityIndex

seq=Table[GraphData[{"Complete",n},"StabilityIndex"],{n,30}]

FindSequenceFunction[seq,n]

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>1]

Table[1+(((-1))^n)+(2^(-2+n)) (-2+n),{n,30}]

StarArboricity

StatusCentralities

Strength

StronglyPerfect

StronglyRegular

Symmetric

SymmetricallyDistinctVertexPairCount

SymmetricallyDistinctVertexPairSignature

Thickness

TopologicalIndex

seq=Table[GraphData[{"Complete",n},"TopologicalIndex"],{n,30}]

FindSequenceFunction[seq,n]//FullSimplify

Table[-(-2)^n (n-1),{n,30}]

ToroidalCrossingNumber

seq=Table[GraphData[{"Complete",n},"ToroidalCrossingNumber"],{n,30}]

TotalDominatingSetCount

Entity["Graph",{"Complete",n}]["TotalDominatingSetCount"]

seq=Table[GraphData[{"Complete",n},"TotalDominatingSetCount"],{n,30}]

FindSequenceFunction[seq,n]

TotalDominationNumber

Entity["Graph",{"Complete",n}]["TotalDominationNumber"]

seq=Table[GraphData[{"Complete",n},"TotalDominationNumber"],{n,30}]

TotalDominationPolynomial

Traceable

Table[GraphData[{"Complete",n},"Traceable"],{n,30}]

TreeDepth

TreeNumber

Treewidth

Triameter

TriangleCount

seq=Table[GraphData[{"Complete",n},"TriangleCount"],{n,30}]

FindSequenceFunction[seq,n]

Binomial[n,3]

TriangleFree

TuttePolynomial

Table[GraphData[{"Complete",n},"TuttePolynomial"][x,y],{n,6}]//Column

F[0,{x_,y_}]:=1
F[1,{x_,y_}]:=x
F[n_,{x_,y_}]:=Sum[Binomial[n-1,k-1](x+(((y^k)-y)/(y-1)))F[k-1,{1,y}]F[n-k,{x,y}],{k,n}]//Factor

Table[F[n-1,{x,y}],{n,6}]//Column

Sum[y^i,{i,k-1}]//FullSimplify

F[n,{x,y}]==TuttePolynomial[CompleteGraph[n+1],{x,y}]

RSolve[{F[n,{x,y}]==Sum[Binomial[n-1,k-1](x+(((y^k)-y)/(y-1)))F[k-1,{1,y}]F[n-k,{x,y}],{k,n}],F[0,{x,y}]==1,F[1,{x,y}]==x},F[n,{x,y}],n]

Unicyclic

seq=Table[GraphData[{"Complete",n},"Unicyclic"],{n,30}]

Position[seq,True]//Flatten

UniquelyPancyclic

seq=Table[GraphData[{"Complete",n},"UniquelyPancyclic"],{n,30}]

Position[seq,True]//Flatten

UnitDistance

Entity["Graph",{"Complete",n}]["UnitDistance"]

seq=Table[GraphData[{"Complete",n},"UnitDistance"],{n,30}]

Position[seq,True]//Flatten

UpperDominationNumber

Entity["Graph",{"Complete",n}]["UpperDominationNumber"]

seq=Table[GraphData[{"Complete",n},"UpperDominationNumber"],{n,30}]

UpperIrredundanceNumber

Entity["Graph",{"Complete",n}]["UpperIrredundanceNumber"]

seq=Table[GraphData[{"Complete",n},"UpperIrredundanceNumber"],{n,30}]

VertexConnectivity

Entity["Graph",{"Complete",n}]["VertexConnectivity"]

Table[GraphData[{"Complete",n},"VertexConnectivity"],{n,30}]

VertexCount

seq=Table[GraphData[{"Complete",n},"VertexCount"],{n,30}]

FindSequenceFunction[seq,n]

VertexCoverCount

seq=Table[GraphData[{"Complete",n},"VertexCoverCount"],{n,30}]

FindSequenceFunction[seq,n]

x FindGeneratingFunction[DeleteCases[seq,_Missing],x]

VertexCoverNumber

seq=Table[GraphData[{"Complete",n},"VertexCoverNumber"],{n,30}]

FindSequenceFunction[seq,n]

VertexCoverPolynomial

(poly=Factor@Table[GraphData[{"Complete",n},"VertexCoverPolynomial"][x],{n,k0=1,10}])//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[(x^(n-1)) (x+n),{n,10}]

FullSimplify[poly2-poly]

VertexDegrees

seq=Table[GraphData[{"Complete",n},"VertexDegrees"],{n,5}]

Table[ConstantArray[n-1,n],{n,5}]==seq

VertexTransitive

Entity["Graph",{"Complete",n}]["VertexTransitive"]

seq=Table[GraphData[{"Complete",n},"VertexTransitive"],{n,30}]

And@@seq

WienerIndex

A000217

seq=Table[GraphData[{"Complete",n},"WienerIndex"],{n,30}]

FindSequenceFunction[seq,n]

Binomial[n,2]

WienerSumIndex

seq=Table[GraphData[{"Complete",n},"WienerSumIndex"],{n,30}]

FindSequenceFunction[seq,n]

Complete9GraphSympletic7Cover

Construction

distanceregular.org

g=DistanceRegularGraph["http://www.distanceregular.org/graphdata/symplectic7coverk9.am"]

RecognizeGraph[g]

VertexCount[g]

GraphDiameter[g]//Timing

RegularParameters[g]//Timing

DistanceRegularGraphQ[g]//Timing

IntersectionArray[g]//Timing

IntegerSpectrum[g]//SpectrumForm

GroupOrder[GraphAutomorphismGroup[g]]

HamiltonianGraphQ[g]

GraphData

GraphDataClassString

GraphDataClassString["Complete"]

GraphDataString

Complete9GraphSympletic7Cover

VertexCount[g]

file=OpenWrite["~/k9sym7c.m"]

WriteString[file,GraphDataString[g,
"StandardName"->"Complete9GraphSympletic7Cover",
"Name"->"symplectic 7\[Hyphen]cover of the 9\[Hyphen]complete graph",
"Embeddings"->None,
"Information"->None,
"Classes"->{"DistanceRegular","Noncirculant","Nongrid"},
Debug->True,
TimeConstraint->10]]

Close[file]

Alternate names etc.

GraphData[{"Complete",19},"StandardNames"]

GraphData[{"Complete",20},"StandardNames"]

GraphData[{"Complete",20},"Names"]

GraphData[{"Complete",20},"Classes"]

GraphData[{"Complete",19},"NotationRules"]

GraphData[{"Complete",18},"StandardNames"]

GraphData[{"Complete",18},"AlternateNames"]

RookGraph[1,18]//RecognizeGraph

Intersection@@(GraphData[#,"Classes"]&/@GraphData["Complete"])

GraphData[{"Complete",19},"Notation"]//InputForm

Recompute

<<MathWorld`Graphs`

file=OpenWrite["~/complete.m"]

Table[With[
{
nn=ToString[n]
},
WriteString[file,GraphDataString[
g=Quiet@Graph[Range[n],UndirectedEdge@@@Subsets[Range[n],{2}],VertexCoordinates->CirclePoints[n]],

"Skip"->{"ConnectedDominatingSets","ConnectedInducedSubgraphs","DominatingSets","EdgeCovers","EulerianCycles","GracefulLabelings","IndependentVertexSets","IrredundantSets","MaximalIndependentEdgeSets","MaximumIndependentEdgeSets","MinimalEdgeCovers","MinimalVertexCovers","MinimumCoveringsByMaximalCliques","MinimumEdgeColoring","MinimumWeightFractionalEdgeColoring","RadioLabelings","RectilinearCrossingCount"},

"Name" :>nn<> "\[Hyphen]complete graph",
"StandardName" :>{"Complete",n},
"AlternateStandardNames"->SortBy[{{"Circulant",{n,Range[n/2]}},{"CompleteKPartite",{n}},{"Hamming",{1,n}},{"Harary",{n-1,n}},{"Johnson",{n,1}},"K"<>nn,{"Kneser",{n,1}},{"Lattice",{1,n}},{"Queen",{1,n}},{"Rook",{1,n}},{"RooksTour",{1,n}},{"Turan",{n,n}}},First[Flatten[{#}]]&],
"NotationRules"->{"Circulant"->{n,Range[n/2]},"CompleteKPartite"->{n},"Hamming"->{1,20},"Harary"->{n-1,n},"Johnson"->{n,1},"Kneser"->{n,1},"Queen"->{1,n},"Rook"->{1,n},"Turan"->{n,n}},
"AlternateNames" :>Sort[{nn<> "\[Hyphen]clique","(1,"<>nn<>")\[Hyphen]Hamming graph","(1,"<>nn<>")\[Hyphen]lattice graph","(1,"<>nn<>")\[Hyphen]queen graph","("<>ToString[n-1]<>","<>nn<>")\[Hyphen]Harary graph","("<>nn<>","<>nn<>")\[Hyphen]Turán graph","("<>nn<>",1)\[Hyphen]Johnson graph","("<>nn<>",1)\[Hyphen]Kneser graph",nn<>"\[Hyphen]circulant graph ("<>StringTake[ToString[Range[n/2]],{2,-2}]<>")","("<>nn<>")\[Hyphen]complete 1\[Hyphen]partite graph"}],

"EmbeddingClasses"->{"Circulant","Circular","LCF"},

"AdjacencyMatrix" :> If[NumericQ[n],
SparseArray[{Band[{1, 1}] -> 0}, {n, n}, 1],
Missing["NotApplicable"]
],
"AdjacencyMatrixCount" :> 1,
"Anarboricity" :> Missing["NotAvailable"],
"Arboricity" :> Ceiling[n/2],
"ArcTransitivity" :> Piecewise[{{0, n == 1}, {1, n == 2}, {Infinity, n == 3}}, 2],
"ArticulationVertexCount" :> 0,
"AutomorphismCount" :> n!,
"BalabanIndex" :> (n^2 (n - 1))/(2 (n^2 - 3 n + 4)),
"Bandwidth" :> Piecewise[{{1, n == 1}}, n - 1],
"BipartiteDoubleGraphName" :> {"Crown", n},
"BlockCount" :> Piecewise[{{0, n == 1 || n == 2}}, 1],
"BridgeCount" :> Piecewise[{{1, n == 2}}, 0],
"Bridges" :> Piecewise[{{UndirectedEdge[1, 2], n == 2}}, {}],
"BurningNumber" :> Piecewise[{{1, n == 1}}, 2],
"Center" :> If[NumericQ[n], Range[n], Missing["NotApplicable"]],
"CharacteristicPolynomial" :> (((n - 1) - #) (1 + #)^(n - 1) &),
"ChordCount" :> Piecewise[{{0, n == 2 || n == 3}}, Binomial[n, 2]],
"ChordlessCycleCount" :> 0,
"ChordlessCyclePolynomial" :> Function[x, 0],
"ChordlessCycles" :> {},
"ChromaticInvariant" :> Piecewise[{{1, n == 1}}, (n - 2)!],
"Chords" :> If[NumericQ[n],
	Piecewise[{{{}, n == 1 || n == 2 || n == 3}}, Subsets[Range[n], {2}]],
	Missing["NotAvailable"]
],
"ChromaticNumber" :> n,
"ChromaticPolynomial" :> ((-1)^n Pochhammer[-#, n] &),
"Circumference" :> Piecewise[{{Missing["NotApplicable"], n == 1 || n == 2}}, n],
"Classes" :> {"Cayley", "Chordal", "ChromaticallyUnique", "Circulant", "ClawFree", "Complete", "Connected", "DeterminedBySpectrum", "DistanceRegular", "EdgeTransitive", "HamiltonConnected", "HStarConnected", "Integral", "Kneser", "Line", "Ore", "Perfect", "Regular", "Simple", "Split", "StronglyPerfect", "Symmetric", "Traceable", "Turan", "VertexTransitive", "WeaklyPerfect", "WellCovered"},
"CliqueCount" :> 2^n,
"CliqueCoveringNumber" :> 1,
"CliqueNumber" :> n,
"CliquePolynomial" :> ((# + 1)^n &),
"ComplementOddChordlessCycleCount" :> 0,
"ComplementOddChordlessCyclePolynomial" :> Function[x, 0],
"ComplementOddChordlessCycles" :> {},
"ComplementGraph" :> If[NumericQ[n],
	Graph[Range[n], {}],
	Missing["NotApplicable"]
],
"ComplementGraphName" :> {"Empty", n},
"Complete" :> True,
"Connected" :> True,
"ConnectedComponentCount" :> 1,
"ConnectedComponentGraphNames" :> {{"Complete",n}},
"ConnectedDominatingSetCount" :> 2^n - 1,
"ConnectedDominatingSets" :> Missing["NotAvailable"],
"ConnectedDominationNumber" :> 1,
"ConnectedDominationPolynomial" :> Function[x, (x + 1)^n - 1],
"ConnectedInducedSubgraphCount" :> 2^n - 1,
"ConnectedInducedSubgraphPolynomial" :> Function[x, (x + 1)^n - 1],
"CrossingNumber" :> Floor[n/2] Floor[(n - 1)/2] Floor[(n - 2)/2] Floor[(n - 3)/2]/4,(* Guy's conjecture *)
"CycleCount" :> Expand[n (2 HypergeometricPFQ[{1, 1, 1 - n}, {2}, -1] - n - 1)/4],
	(*
	Inactive[Sum][(\[FormalK] - 1)! Binomial[n, \[FormalK]], {\[FormalK], 3, n}]/2
	*)
"CyclePolynomial" :> Function[x,Evaluate[Sum[Binomial[n, \[FormalK]](\[FormalK] - 1)! x^\[FormalK], {\[FormalK], 3, n}]]/2]],
"CyclomaticNumber" :> Binomial[n - 1, 2],
"DetourIndex" :> (n - 1)^2 n/2,
"DetourMatrix" :> If[NumericQ[n],
	SparseArray[{i_, i_} -> 0, n, n - 1],
	Missing["NotApplicable"]
],
"DetourPolynomial" :> (((n - 1)^2 - #) (# + n - 1)^(n - 1) &),
"Diameter" :> Piecewise[{{0, n == 1}}, 1],
"Dimension" :> n - 1,
"DistanceMatrix" :> If[NumericQ[n],
	SparseArray[{Band[{1, 1}] -> 0}, {n, n}, 1],
	Missing["NotApplicable"]
],
"DistancePolynomial" :> ((1 + #)^(n - 1) (n - 1 - #) &),
"DistinguishingNumber" :> n,
"DomaticNumber" :> n,
"DominatingSetCount" :> 2^n - 1,
"DominationNumber" :> 1,
"DominationPolynomial" :> (-1 + (1 + #)^n &),
"DualGraph" :> Missing["NotAvailable"],
"DualGraphName" :> {"Triangular", n},
"Eccentricities" :> If[NumericQ[n], ConstantArray[1, n], Missing["NotApplicable"]],
"EdgeChromaticNumber" :> Piecewise[{{0, n == 1}}, 2 Floor[(n + 1)/2] - 1],
"EdgeConnectivity" :> Piecewise[{{Missing["NotApplicable"], n == 1}}, n - 1],
"EdgeCount" :> Binomial[n, 2],
"EdgeCoverCount" :> If[NumericQ[n],
	Sum[(-1)^(n - \[FormalK]) Binomial[n, \[FormalK]] 2^Binomial[\[FormalK], 2], {\[FormalK], 0, n}],
	Inactive[Sum][(-1)^(n - \[FormalK]) Binomial[n, \[FormalK]] 2^Binomial[\[FormalK], 2], {\[FormalK], 0, n}]
],
"EdgeCoverNumber" :> Piecewise[{{0, n == 1}}, Floor[(n + 1)/2]],
"EdgeCoverPolynomial" :> If[NumericQ[n],
	Function[x, Factor[Sum[(-1)^(n - \[FormalK]) Binomial[n, \[FormalK]] (x + 1)^Binomial[\[FormalK], 2], {\[FormalK], 0, n}]]],
	Function[x, Inactive[Sum][(-1)^(n - \[FormalK]) Binomial[n, \[FormalK]] (x + 1)^Binomial[\[FormalK], 2], {\[FormalK], 0, n}]]
],
"Edges" :> If[NumericQ[n], UndirectedEdge @@@ Subsets[Range[n], {2}], Missing["NotApplicable"]],
"EulerianCycleCount" :> Piecewise[{{0, Mod[n, 2] == 0}, {Missing["NotAvailable"], Mod[n, 2] == 1}}],
"EulerianCycles" :> Piecewise[{{{}, Mod[n, 2] == 0}, {Missing["NotAvailable"], Mod[n, 2] == 1}}],
"FaceCount" :> Piecewise[{{0, n == 1 || n == 2}, {1, n == 3}, {4, n == 4}}, Missing["NotApplicable"]],
"FlowPolynomial" :> If[NumericQ[n],
	Block[{F},
F[0, {_, _}] := 1;
F[1, {x_, _}] := x;
F[nn_, {x_, y_}] := F[nn, {x, y}] = Factor @ Sum[Binomial[nn - 1, \[FormalK] - 1] (x + (y^\[FormalK] - y)/(y - 1)) F[\[FormalK] - 1, {1, y}] F[nn - \[FormalK], {x, y}], {\[FormalK], nn}];
Function[u,Factor[(-1)^Binomial[n , 2] F[n-1,{0, 1 - u}]]
]
],
	Missing["NotAvailable"]
],
"FractionalChromaticNumber" :> n,
"FractionalEdgeChromaticNumber" :> Piecewise[{{0, n == 1}}, 2 Floor[(n - 1)/2] + 1],
"Genus" :> Piecewise[{{0, n == 1 || n == 2}}, Ceiling[(n - 3) (n - 4)/12]],
"Girth" :> Piecewise[{{Infinity, n == 1 || n == 2}}, 3],
"GlobalClusteringCoefficient" :> Piecewise[{{0, n == 1 || n == 2}}, 1],
"Gonality" :> n - 1,
"Graceful" :> Piecewise[{{True, n == 1 || n == 2 || n == 3 || n == 4}}, False],
"GracefulLabelingCount" :> Piecewise[{{1, n == 1 || n == 2 || n == 3 || n == 4}}, 0],
"GracefulLabelings" :> Piecewise[{
	{{{0}}, n == 1},
	{{{0, 1}, {0, 1}}, n == 2},
	{{{0, 1, 3}, {0, 2, 3}, {0, 3, 1}, {0, 3, 2}, {1, 0, 3}, {1, 3, 0}, {2, 0, 3}, {2, 3, 0}, {3, 0, 1}, {3, 0, 2}, {3, 1, 0}, {3, 2, 0}}, n == 3},
	{{{0, 1, 4, 6}, {0, 1, 6, 4}, {0, 2, 5, 6}, {0, 2, 6, 5}, {0, 4, 1, 6}, {0, 4, 6, 1}, {0, 5, 2, 6}, {0, 5, 6, 2}, {0, 6, 1, 4}, {0, 6, 2, 5}, {0, 6, 4, 1}, {0, 6, 5, 2}, {1, 0, 4, 6}, {1, 0, 6, 4}, {1, 4, 0, 6}, {1, 4, 6, 0}, {1, 6, 0, 4}, {1, 6, 4, 0}, {2, 0, 5, 6}, {2, 0, 6, 5}, {2, 5, 0, 6}, {2, 5, 6, 0}, {2, 6, 0, 5}, {2, 6, 5, 0}, {4, 0, 1, 6}, {4, 0, 6, 1}, {4, 1, 0, 6}, {4, 1, 6, 0}, {4, 6, 0, 1}, {4, 6, 1, 0}, {5, 0, 2, 6}, {5, 0, 6, 2}, {5, 2, 0, 6}, {5, 2, 6, 0}, {5, 6, 0, 2}, {5, 6, 2, 0}, {6, 0, 1, 4}, {6, 0, 2, 5}, {6, 0, 4, 1}, {6, 0, 5, 2}, {6, 1, 0, 4}, {6, 1, 4, 0}, {6, 2, 0, 5}, {6, 2, 5, 0}, {6, 4, 0, 1}, {6, 4, 1, 0}, {6, 5, 0, 2}, {6, 5, 2, 0}}, n == 4}
}, {}],
"Graph" :> If[NumericQ[n], CompleteGraph[n], Missing["NotApplicable"]],
"HamiltonDecompositionCount" :> Missing["NotAvailable"],
"Hamiltonian" :> Piecewise[{{False, n == 2}}, True],
"HamiltonianCycleCount" :> Piecewise[{{0, n == 1 || n == 2}}, Gamma[n]/2],
"HamiltonianCycles" :> If[NumericQ[n], Missing["NotAvailable", Range[n]], Missing["NotApplicable"]],
"HamiltonianNumber" :> n,
"HamiltonianPathCount" :> Piecewise[{{0, n == 1}}, n!/2],
"HamiltonianPaths" :> If[NumericQ[n], Missing["NotAvailable", Range[n]], Missing["NotApplicable"]],
"HamiltonianWalkCount" :> Piecewise[{{0, n == 1}, {1, n == 2}}, Gamma[n]/2],
"HararyIndex" :> Binomial[n, 2],
"HexagonCount" :> 60 Binomial[n, 6],
"IdiosyncraticPolynomial" :> Function[x, (x + 1)^(n - 1) (x - n + 1)],
"IncidenceMatrix" :> If[NumericQ[n], IncidenceMatrix[CompleteGraph[n]], Missing["NotApplicable"]],
"IndependenceNumber" :> 1,
"IndependencePolynomial" :> (n # + 1 &),
"IndependenceRatio" :> 1/n,
"IndependentEdgeSetCount" :> If[NumericQ[n], Expand, Identity][(I/Sqrt[2])^n HermiteH[n, -I/Sqrt[2]]],
"IndependentVertexSetCount" :> n + 1,
"Information" :> "CompleteGraph",
"IntersectionArray" :> Piecewise[{{{{}, {}}, n == 1}}, {{n - 1}, {1}}],
"IrredundanceNumber" :> 1,
"IrredundancePolynomial" :> Function[x, n x + 1],
"IntersectionNumber" :> Missing["NotAvailable"],
"IrredundantSetCount" :> n + 1,
"IsolatedPointCount" :> Piecewise[{{1, n == 1}}, 0],
"IsolatedPoints" :> Piecewise[{{{1}, n == 1}}, {}],
"KirchhoffIndex" :> n - 1,
"KirchhoffSumIndex" :> n - 1,
"LaplacianMatrix" :> If[NumericQ[n],
	SparseArray[{Band[{1, 1}] -> n - 1}, {n, n}, -1],
	Missing["NotApplicable"]
],
"LaplacianPolynomial" :> Function[x, (x - n)^(n - 1) x],
"LCFNotations"->With[{r=Range[2,(n-1)/2]},{{{Join[If[EvenQ[n],{-n/2},{}],-Reverse[r],r]},n}}],
"LCFSignature"->{{n,1}},
"LeafCount" :> Piecewise[{{2, n == 2}}, 0],
"Leaves" :> Piecewise[{{{1, 2}, n == 2}}, {}],
"Likelihood" :> 1/n!,
"LineGraph" :> If[NumericQ[n], LineGraph[CompleteGraph[n]], Missing["NotApplicable"]],
"LineGraphName" :> {"Triangular", n},
"LinkName" :> ToString[n] <> "\[Hyphen]complete graph",
"LongestCycleCount" :> Piecewise[{{0, n == 1 || n == 2}}, Gamma[n]/2],
"LongestPathCount" :> Piecewise[{{0, n == 1}}, n!/2],
"LongestPathLength" :> n - 1,
"LovaszNumber" :> 1,
"LowerIndependenceNumber" :> 1,
"LowerMatchingNumber" :> Floor[n/2],
"MatchingGeneratingPolynomial" :> Function[x, Evaluate @ If[NumericQ[n], Expand, Identity][(-I)^n Sqrt[x/2]^n HermiteH[n, I/Sqrt[2 x]]]],
"MatchingNumber" :> Floor[n/2],
"MatchingPolynomial" :> Function[x, Evaluate @ If[NumericQ[n], Expand, Identity][2^(-n/2) HermiteH[n, x/Sqrt[2]]]],
"MaximalCliqueCount" :> 1,
"MaximalCliquePolynomial" :> Function[x, x^n],
"MaximalIndependencePolynomial" :> Function[x, x^n],
"MaximalIndependentEdgeSetCount" :> Piecewise[{{0, n == 1}}, (2 Floor[(n + 1)/2] - 1)!!],
"MaximalIndependentVertexSetCount" :> n,
"MaximalIrredundancePolynomial" :> Function[x, n x],
"MaximalIrredundantSetCount" :> n,
"MaximalMatchingGeneratingPolynomial" :> Function[x, (2 Floor[(n + 1)/2] - 1)!! x^Floor[n/2]],
"MaximumCliqueCount" :> 1,
"MaximumIndependentEdgeSetCount" :> (2 Floor[(n + 1)/2] - 1)!!,
"MaximumIndependentVertexSetCount" :> n,
"MaximumIrredundantSetCount" :> n,
"MaximumIrredundantSets" :> If[NumericQ[n], List /@ Range[n], Missing["NotApplicable"]],
"MaximumLeafNumber" :> Piecewise[{{Missing["NotApplicable"], n == 1}, {2, n == 2}}, n - 1],
"MaximumVertexDegree" :> n - 1,
"MeanClusteringCoefficient" :> Piecewise[{{0, n == 1 || n == 2}}, 1],
"MeanDistance" :> (n - 1)/n,
"MetricDimension" :> n - 1,
"MinimalConnectedDominatingSetCount" :> n,
"MinimalConnectedDominationPolynomial" :> Function[x, n x],
"MinimalDominatingSetCount" :> n,
"MinimalDominationPolynomial" :> Function[x, n x],
"MinimalEdgeCoverCount" :> n! Inactive[Sum][1/\[FormalK]! (Binomial[\[FormalK], n - \[FormalK]] 2^(\[FormalK] - n) (-1)^\[FormalK] + Inactive[Sum][Binomial[\[FormalK], \[FormalJ]] Inactive[Sum][\[FormalJ]^(\[FormalI] - \[FormalJ])/(\[FormalI] - \[FormalJ])! Binomial[\[FormalK] - \[FormalJ], n - \[FormalI] - \[FormalK] + \[FormalJ]] 2^(\[FormalI] - \[FormalJ] + \[FormalK] - n) (-1)^(\[FormalK] - \[FormalJ]), {\[FormalI], \[FormalJ], n - \[FormalK] + \[FormalJ]}], {\[FormalJ], \[FormalK]}]), {\[FormalK], n}],
"MinimalEdgeCoverPolynomial" :> Missing["NotAvailable"],
"MinimalTotalDominatingSetCount" :> Binomial[n, 2],
"MinimalTotalDominationPolynomial" :> Function[x, Binomial[n, 2] x^2],
"MinimumCoveringsByMaximalCliquesCount" :> 1,
"MinimumConnectedDominatingSetCount" :> n,
"MinimumConnectedDominatingSets" :> If[NumericQ[n], List /@ Range[n], Missing["NotApplicable"]],
"MinimumDistinguishingLabelingCount" :> n!,
"MinimumDominatingSetCount" :> n,
"MinimumEdgeCoverCount" :> Piecewise[{{Gamma[n + 1]/(2^((n - 1)/2) Gamma[1/2 (n - 1)]), Mod[n, 2] == 1}, {(n - 1)!!, Mod[n, 2] == 0}}],
"MinimumTotalDominatingSetCount" :> Binomial[n, 2],
"MinimumVertexCutCount" :> 0,
"MinimumVertexDegree" :> n - 1,
"MolecularTopologicalIndex" :> 2 n (n - 1)^2,
"Nonhamiltonian" :> Piecewise[{{True, n == 2}}, False],
"NormalizedLaplacianMatrix" :> Missing["NotAvailable"],
"Notation" :> Subscript["K", n],
"OddChordlessCycleCount" :> 0,
"OddChordlessCyclePolynomial" :> Function[x, 0],
"OddChordlessCycles" :> {},
"ParameterConstraints" :> Element[n, Integers] && n > 0,
"PathCount" :> 1/2 E (n - 1) n Gamma[n - 1, 1],
"PathPolynomial" :> Function[x, Evaluate @Expand@ If[NumericQ[n], FunctionExpand, Identity][1/2 E^(1/x) (n - 1) n x^n Gamma[n - 1, 1/x]]],
"PebblingNumber" :> n,
"PentagonCount" :> 12 Binomial[n, 5],
"Periphery" :> If[NumericQ[n], Range[n], Missing["NotApplicable"]],
"ProjectivePlaneCrossingNumber" :> Missing["NotAvailable"],
"RadioLabelingCount" :> 1,
"RadioNumber" :> n - 1,
"Radius" :> Piecewise[{{0, n == 1}}, 1],
"RectilinearCrossingNumber" :>If[n<28,{0,0,0,0,1,3,9,19,36,62,102,153,229,324,447,603,798,1029,1318,1657,2055,2528,3077,3699,4430,5250,6180}[[n]],Missing["NotAvailable"]],
(*
"ReliabilityPolynomial":>If[NumericQ[n],Function[p,Evaluate[Factor[(1-p)^(n-1) p^Binomial[n-1,2] GeneralData[GraphData,entity,"TuttePolynomial"][1,1/p]]]],Missing["NotAvailable"]],
*)
"ResistanceMatrix" :> If[NumericQ[n],
	Piecewise[{{{{0}}, n == 1}}, SparseArray[Band[{1, 1}] -> 0, {n, n}, 2/n]],
	Missing["NotApplicable"]
],
"ScrambleNumber" :> n - 1,
"SigmaPolynomial" :> (1 &),
"Skewness" :> Piecewise[{{0, n == 1 || n == 2}}, Binomial[n - 3, 2]],
"SpanningTreeCount" :> n^(n - 2),
"SpectralRadius" :> Missing["NotAvailable"],
"Spectrum" :> If[NumericQ[n], Append[ConstantArray[-1, n - 1], n - 1], Missing["NotApplicable"]],
"SquareCount" :> 3 Binomial[n, 4],
"StabilityIndex" :> Piecewise[{{0, n == 1}}, 2^(n - 2) (n - 2) + (-1)^n + 1],
"SymmetricallyDistinctVertexPairCount" :> Piecewise[{{0, n == 1}}, 1],
"SymmetricallyDistinctVertexPairSignature" :> Piecewise[{{{}, n == 1}}, {{{1, 2}, Binomial[n, 2]}}],
"Thickness" :> Piecewise[{{3, n == 9 || n == 10}}, Floor[(n + 7)/6]],
"TopologicalIndex" :> -(-2)^n (n - 1),
"ToroidalCrossingNumber" :> Missing["NotAvailable"],
"TotalDominatingSetCount" :> 2^n - n - 1,
"TotalDominationNumber" :> Piecewise[{{Missing["NotApplicable"], n == 1}}, 2],
"TotalDominationPolynomial" :> Function[x, -1 - n x + (x + 1)^n],
"Traceable" :> True,
"Treewidth" :> n - 1,
"Triameter" :> Piecewise[{{Missing["NotApplicable"], n == 1 || n == 2}}, 3],
"TriangleCount" :> Binomial[n, 3],
"TuttePolynomial" :> If[NumericQ[n],
	Block[{F},
F[0,{_,_}]:=1;
F[1,{x_,_}]:=x;F[nn_,{x_,y_}]:=F[nn,{x,y}]=Factor@Sum[Binomial[nn-1,\[FormalK]-1](x+(y^\[FormalK]-y)/(y-1))F[\[FormalK]-1,{1,y}]F[nn-\[FormalK],{x,y}],{\[FormalK],nn}];
Function[{x,y},Evaluate@F[n-1,{x,y}]]
	],
(* Else *)
	Missing["NotAvailable"]
],
"Untraceable" :> False,
"UpperDominationNumber" :> 1,
"UpperIrredundanceNumber" :> 1,
"VertexConnectivity" :> n - 1,
"VertexCoordinates" :> If[NumericQ[n], GraphEmbedding[CompleteGraph[n]], Missing["NotApplicable"]],
"VertexCount" :> n,
"VertexCoverNumber" :> n - 1,
"VertexCoverPolynomial" :> (#^(n - 1) (# + n) &),
"VertexDegrees" :> If[NumericQ[n], ConstantArray[n - 1, n], Missing["NotApplicable"]],
"WienerIndex" :> Binomial[n, 2],
"WienerSumIndex" :> (n - 1) n^2/4,
Debug->True]]],
{n,21,30}];

Close[file]