Strongly Regular Graph

Author

Eric W. Weisstein
February 23, 2024

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

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

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

Counts

All

A076435

Total[Boole[Get[#]]]&/@FileNames["*.m",FileNameJoin[{$GraphDataDirectory,"Nodes","StronglyRegular"}]]

Length/@Table[Select[Graphs[n],StronglyRegularGraphQ],{n,8}]//Timing

Length/@Table[GraphData["StronglyRegular",n],{n,10}]

TextGrid[Table[{n,Row[Riffle[GraphData[#,"Notation"]&/@GraphData["StronglyRegular",n],","]]},{n,6}],Dividers->All]

Connected

A088741

Table[Total[Boole[Get[FileNameJoin[{$GraphDataDirectory,"Nodes","StronglyRegular","StronglyRegular_"<>If[n<10,"0",""]<>ToString[n]<>".m"}]][[ConnectedGraphIndices[n]]]]],{n,10}]

Table[Total[Boole[StronglyRegularGraphQ/@ConnectedGraphs[n]]],{n,8}]//Timing

Table[Length@GraphData[{"StronglyRegular","Connected"},n],{n,64}]

TextGrid[Table[{n,Row[Riffle[GraphData[#,"Notation"]&/@GraphData[{"Connected","StronglyRegular"},n],","]]},{n,6}],Dividers->All]

Disconnected

Table[Total[Boole[Get[FileNameJoin[{$GraphDataDirectory,"Nodes","StronglyRegular","StronglyRegular_"<>If[n<10,"0",""]<>ToString[n]<>".m"}]][[DisconnectedGraphIndices[n]]]]],{n,10}]

Table[Total[Boole[StronglyRegularGraphQ/@Graphs[n][[DisconnectedGraphIndices[n]]]]],{n,8}]//Timing

Table[Length@GraphData[{"StronglyRegular","Disconnected"},n],{n,10}]

Classes

GraphClassesThatAre["StronglyRegular"]

Intersection@@(GraphData[#,"Classes"]&/@GraphData["StronglyRegular"])

Table

Length[sr=Sort[{"StronglyRegular"/.GraphData[#,"NotationRules"],GraphData[#,"Name"]}&/@GraphData[{"StronglyRegular","Connected"}]]]//Timing

Cases[sr,{{_,_,_,0},_}]

grouped=SplitBy[DeleteCases[sr,{{_,_,_,0},_}],First];

TableForm[{#[[1,1]],Last/@#}&/@grouped,TableDepth->2]

Embeddings

<<MathWorld`Graphs`

{"StronglyRegular", {{35, 16, 6, 8}, 1}}

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{35,16,6,8},1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{35,16,6,8},1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Planar"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{35,16,6,8},1}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Circulant"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{35,16,6,8},1}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{35,16,6,8},1}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{35,16,6,8},1}}]]

Halin

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Halin"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Rigid"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Flexible"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"LCF"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"LCFSignature"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"LCFNotations"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//StyleGraphs

LCF compute 10^6

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],10^6])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//StyleGraphs

LCF compute 10^7

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],10^7])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{35,16,6,8},1}},"VertexList"],GraphData[{"StronglyRegular",{{35,16,6,8},1}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{35,16,6,8},1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Matchstick"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Polyhedral"]

GraphData[{"StronglyRegular",{{35,16,6,8},1}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{36, 14, 4, 6}, 1}}

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{36,14,4,6},1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{36,14,4,6},1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Planar"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{36,14,4,6},1}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Circulant"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{36,14,4,6},1}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{36,14,4,6},1}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{36,14,4,6},1}}]]

Halin

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Halin"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Rigid"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Flexible"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"LCF"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"LCFSignature"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"LCFNotations"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCF compute 10^6

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],10^6])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCF compute 10^7

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],10^7])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{36,14,4,6},1}},"VertexList"],GraphData[{"StronglyRegular",{{36,14,4,6},1}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{36,14,4,6},1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Matchstick"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Polyhedral"]

GraphData[{"StronglyRegular",{{36,14,4,6},1}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{36, 15, 6, 6}, 1}}

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{36,15,6,6},1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{36,15,6,6},1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Planar"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{36,15,6,6},1}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

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

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Circulant"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{36,15,6,6},1}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{36,15,6,6},1}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{36,15,6,6},1}}]]

Halin

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Halin"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Rigid"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Flexible"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"LCF"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"LCFSignature"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"LCFNotations"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCF compute 10^6

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],10^6])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCF compute 10^7

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],10^7])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//StyleGraphs

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{36,15,6,6},1}},"VertexList"],GraphData[{"StronglyRegular",{{36,15,6,6},1}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{36,15,6,6},1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Matchstick"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Polyhedral"]

GraphData[{"StronglyRegular",{{36,15,6,6},1}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{37, 18, 8, 9}, 1}}

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{37,18,8,9},1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{37,18,8,9},1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Planar"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{37,18,8,9},1}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Circulant"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{37,18,8,9},1}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{37,18,8,9},1}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{37,18,8,9},1}}]]

Halin

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Halin"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Rigid"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Flexible"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"LCF"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"LCFSignature"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"LCFNotations"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCF compute 10^6

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],10^6])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{37,18,8,9},1}},"VertexList"],GraphData[{"StronglyRegular",{{37,18,8,9},1}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{37,18,8,9},1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Matchstick"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Polyhedral"]

GraphData[{"StronglyRegular",{{37,18,8,9},1}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4} ,1}}

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},1}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},1}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},1}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},1}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

LCF compute 10^6

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],10^6])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},1}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},1}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},1}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 2}}

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},2}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},2}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},2}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},2}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},2}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

LCF compute 10^6

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},2}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},2}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},2}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},2}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 3}}

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},3}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},3}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},3}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},3}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},3}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},3}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},3}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},3}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},3}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},3}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 4}}

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},4}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},4}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},4}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},4}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},4}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},4}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},4}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},4}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},4}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},4}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 5}}

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},5}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},5}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},5}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],TimeConstraint->60])//AbsoluteTiming

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

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},5}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},5}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},5}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},5}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},5}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},5}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},5}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 6}}

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},6}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},6}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},6}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},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[{"StronglyRegular",{{40,12,2,4},6}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},6}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},6}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},6}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},6}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},6}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},6}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},6}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 7}}

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},7}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},7}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},7}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

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

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

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

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

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},7}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},7}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},7}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},7}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},7}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},7}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},7}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},7}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},7}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},7}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},7}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 8}}

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},8}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},8}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},8}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},8}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},8}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},8}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},8}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},8}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},8}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},8}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 9}}

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},9}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},9}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},9}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},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[{"StronglyRegular",{{40,12,2,4},9}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},9}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},9}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},9}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},9}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},9}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},9}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},9}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 10}}

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},10}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},10}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},10}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},10}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},10}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},10}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},10}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},10}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},10}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},10}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 11}}

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},11}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},11}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},11}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},11}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},11}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},11}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},11}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},11}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},11}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},11}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 12}}

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},12}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},12}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},12}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},12}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},12}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},12}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},12}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},12}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},12}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},12}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 13}}

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},13}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},13}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},13}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},13}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},13}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},13}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},13}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},13}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},13}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},13}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 14}}

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},14}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},14}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},14}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},14}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},14}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},14}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},14}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},14}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},14}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},14}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 15}}

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},15}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},15}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},15}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},15}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},15}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},15}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},15}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},15}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},15}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},15}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 16}}

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},16}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},16}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},16}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},16}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},16}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},16}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},16}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},16}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},16}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},16}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 17}}

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},17}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},17}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},17}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},17}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},17}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},17}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},17}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},17}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},17}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},17}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 18}}

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},18}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},18}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},18}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},18}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},18}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},18}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},18}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},18}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},18}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},18}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 19}}

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},19}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},19}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},19}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},19}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},19}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},19}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},19}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},19}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},19}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},19}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 20}}

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},20}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},20}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},20}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},20}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},20}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},20}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},20}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},20}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},20}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},20}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 21}}

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},21}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},21}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},21}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},21}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},21}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},21}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},21}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},21}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},21}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},21}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 22}}

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},22}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},22}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},22}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},22}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},22}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},22}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},22}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},22}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},22}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},22}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 23}}

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},23}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},23}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},23}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},23}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},23}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},23}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},23}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},23}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},23}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},23}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 24}}

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},24}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},24}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},24}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},24}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},24}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},24}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},24}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},24}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},24}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},24}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 25}}

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},25}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},25}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},25}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},25}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},25}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},25}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},25}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},25}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},25}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},25}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{40, 12, 2, 4}, 26}}

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{40,12,2,4},26}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{40,12,2,4},26}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Planar"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{40,12,2,4},26}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Circulant"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},26}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{40,12,2,4},26}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{40,12,2,4},26}}]]

Halin

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Halin"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Rigid"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Flexible"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"LCF"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"LCFSignature"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"LCFNotations"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{40,12,2,4},26}},"VertexList"],GraphData[{"StronglyRegular",{{40,12,2,4},26}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{40,12,2,4},26}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Matchstick"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Polyhedral"]

GraphData[{"StronglyRegular",{{40,12,2,4},26}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{65, 32, 15, 16}, 1}}

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{65,32,15,16},1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","All"]//StyleGraphs

Inexact

Select[GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{65,32,15,16},1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Planar"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{65,32,15,16},1}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],TimeConstraint->3600])//AbsoluteTiming

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData[{"StronglyRegular",{{65,32,15,16},1}},"V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Circulant"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{65,32,15,16},1}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{65,32,15,16},1}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{65,32,15,16},1}}]]

Halin

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Halin"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Rigid"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Flexible"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"LCF"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"LCFSignature"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"LCFNotations"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

LCF compute 10^6

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],10^6])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{65,32,15,16},1}},"VertexList"],GraphData[{"StronglyRegular",{{65,32,15,16},1}},"EdgeList"]],MaxIterations->500]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph",#]&/@{"All","UnitDistance"})

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{65,32,15,16},1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Matchstick"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Polyhedral"]

GraphData[{"StronglyRegular",{{65,32,15,16},1}},"Graph",{"3D","Polyhedron"}]

{"StronglyRegular", {{65, 32, 15, 16}, 32}}

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"StandardName"]

Primary

GraphData[{"StronglyRegular",{{65,32,15,16},32}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"StronglyRegular",{{65,32,15,16},32}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Degenerate"]

Bilateral

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Circular"]//StyleGraphs

Planar

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Planar"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"StronglyRegular",{{65,32,15,16},32}},{"RCN","CN"}]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],TimeConstraint->3600])//AbsoluteTiming

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

Table[MinimalCrossingGraph[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Circulant"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Circulant"]//StyleGraphs

Line graph

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Line"]

LineGraphQ[GraphData[{"StronglyRegular",{{65,32,15,16},32}}]]//Timing

Select[GraphData[All],GraphData[#,"LineGraph","Name"]==={"StronglyRegular",{{65,32,15,16},32}}&]

LineGraphRootGraph[GraphData[{"StronglyRegular",{{65,32,15,16},32}}]]

Halin

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Halin"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Rigid"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Flexible"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"LCF"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"HamiltonianCycleCount"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"LCFSignature"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"LCFNotations"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","LCF"]//StyleGraphs

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

LCF compute random

FindRandomLCFNotation[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],TimeConstraint->120]

LCF compute 10^5

Tally[(lcf=LCF[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],10^5])[[All,2]]]//Timing

MaxMemoryUsed[]/10.^9 "GB"

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//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[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],Debug->True]//Timing

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","UnitDistance"]//StyleGraphs

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"StronglyRegular",{{65,32,15,16},32}},"VertexList"],GraphData[{"StronglyRegular",{{65,32,15,16},32}},"EdgeList"]],MaxIterations->500]

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

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"StronglyRegular",{{65,32,15,16},32}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Matchstick

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Matchstick"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Edges"]]

3D All

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Polyhedral"]

GraphData[{"StronglyRegular",{{65,32,15,16},32}},"Graph",{"3D","Polyhedron"}]

Triangle-Free Strongly Connected

l=SortBy[Select[GraphData[{"Connected","TriangleFree","StronglyRegular"}],!GraphData[#,"CompleteBipartite"]&],GraphData[#,"V"]&]

GraphicsGrid[Partition[Show[GraphData[#],PlotLabel->TextCell[GraphData[#,"Name"],PageWidth->400/3,TextAlignment->Center],BaseStyle->{FontSlant->Italic}]&/@Select[Rest[l],GraphData[#,"Embeddings"]=!={}&],3,3,{1,1},{}],ImageSize->400,Spacings->{-30,20}]

Grid[GraphData[#,{"V","Name"}]&/@Rest[l],Dividers->All,Alignment->{{Decimal,Left}}]//TraditionalForm

Enumeration

Not Necessarily Connected

Table[Count[Graphs[n],_?StronglyRegularQ],{n,8}]//Timing

Count[#,_?StronglyRegularQ]&/@Graphs/@Range[9]//Timing

V6

Off[General::"stop"]

ShowGraphArray[Flatten[Partition[#,8,8,{1,1},{}]&/@DeleteCases[sr=Map[RecognizeGraph,Table[Select[Graphs[n],StronglyRegularQ],{n,8}],{2}],
{}],1],
VertexStyle->Disk[.1],
VertexColor->Red]//Timing

V7

gs=DeleteCases[Table[DeleteCases[GraphData["StronglyRegular",n],"SingletonGraph"|{"Path",2}],{n,8}],{}]

GraphicsGrid[Map[GraphPlot[GraphData[#],PlotLabel->TextCell[GraphData[#,"Name"],TextAlignment->Center,FontSlant->Italic,PageWidth->80]]&,gs,{2}],ImageSize->500]

Connected

csr=Table[Select[Graphs[n],ConnectedQ[#]&&StronglyRegularQ[#]&],{n,8}];//Timing

Length/@csr

csr=Table[Select[Graphs[n],ConnectedQ[#]&&StronglyRegularQ[#]&],{n,9}];//Timing

Length/@csr

Map[Flatten[RegularParameters[#]]&,csr,{2}]

Flatten/@RegularParameters/@{CirculantGraph[9,{1,2,4}],CompleteGraph[9]}

V6

Off[General::"stop"]

ShowGraphArray[Flatten[Partition[#,8,8,{1,1},{}]&/@DeleteCases[Map[RecognizeGraph,csr,{2}],
{}],1],
VertexStyle->Disk[.1],
VertexColor->Red]//Timing

V7

gs=DeleteCases[Table[DeleteCases[GraphData[{"Connected","StronglyRegular"},n],"SingletonGraph"|{"Path",2}],{n,8}],{}]

GraphicsGrid[Map[GraphPlot[GraphData[#],PlotLabel->TextCell[GraphData[#,"Name"],TextAlignment->Center,FontSlant->Italic]]&,gs,{2}],ImageSize->300]

Complement

Check

old=Select[GraphData["StronglyRegular"],Head[GraphData[#,"ComplementGraphName"]]=!=Missing&];

Length[old]

DeleteCases[{#,{nu,k,lambda,mu}="StronglyRegular"/.GraphData[#,"NotationRules"];"StronglyRegular"/.GraphData[GraphData[#,"ComplementGraphName"],"NotationRules"],{nu,nu-k-1,nu-2-2k+mu,nu-2k+lambda}}&/@old,{_,x_,x_}]

GraphData["Turan"]

Length[%]

System`GraphComplement[GraphData["C4"]]

Not in GraphData

new=Select[GraphData["StronglyRegular"],Head[GraphData[#,"ComplementGraphName"]]==Missing&]

RecognizeGraph[System`GraphComplement[GraphData[#]]]&/@new

Collections

McKay

http://users.cecs.anu.edu.au/~bdm/data/graphs.html

<<MathWorld`Graphs`

SetDirectory["/Users/eww/Documents/Mathematica/Paclets/GraphData/Collections/McKay"]

FileNames["sr*.g6"]

(25,8,3,2) [1 graph == 5x5 Rook]

Select[GraphData["StronglyRegular",25],Flatten@GraphData[#,"RegularParameters"]==={25,8,3,2}&]

(25,12,5,6) [15 graphs == 25-Paulus graphs]

Select[GraphData["StronglyRegular",25],Flatten@GraphData[#,"RegularParameters"]==={25,12,5,6}&]

Length[%]

(26,10,3,4) [10 graphs == 26-Paulus graphs]

Select[GraphData["StronglyRegular",26],Flatten@GraphData[#,"RegularParameters"]==={26,10,3,4}&]

Length[%]

(27,10,1,5) [1 graph == GQ(2,4)]

Select[GraphData["StronglyRegular",27],Flatten@GraphData[#,"RegularParameters"]==={27,10,1,5}&]

(28,12,6,4) [4 graphs == Chang graphs]

Select[GraphData["StronglyRegular",28],Flatten@GraphData[#,"RegularParameters"]==={28,12,6,4}&]

Length[%]

(29,14,6,7) [41 graphs]

Select[GraphData["StronglyRegular",29],Flatten@GraphData[#,"RegularParameters"]==={29,14,6,7}&]

Length[%]

(35,16,6,8) [3854 graphs]

Select[GraphData["StronglyRegular",35],Flatten@GraphData[#,"RegularParameters"]==={35,16,6,8}&]

Length[gs=Import["sr351668.g6","Graph6"]]//AbsoluteTiming

g=gs[[1]]

RegularParameters[g]

(35,18,9,9) [227 graphs]

Select[GraphData["StronglyRegular",35],Flatten@GraphData[#,"RegularParameters"]==={35,18,9,9}&]

Length[gs=Import["sr351899.g6","Graph6"]]//AbsoluteTiming

DeleteCases[MapIndexed[{RecognizeGraph[#],#2[[1]]}&,gs],{{},_}]

g=gs[[1]]

RegularParameters[g]

(36,14,4,6) [180 graphs]

Select[GraphData["StronglyRegular",36],Flatten@GraphData[#,"RegularParameters"]==={36,14,4,6}&]

Length[%]

Length[gs=Import["sr361446.g6","Graph6"]]//AbsoluteTiming

DeleteCases[MapIndexed[{RecognizeGraph[#],#2[[1]]}&,gs],{{},_}]

RegularParameters[gs[[1]]]

(36,15,6,6) [32548 graphs]

Select[GraphData["StronglyRegular",36],Flatten@GraphData[#,"RegularParameters"]==={36,15,6,6}&]

Length[%]

Length[gs=Import["sr361566.g6","Graph6"]]//AbsoluteTiming

DeleteCases[MapIndexed[{RecognizeGraph[#],#2[[1]]}&,gs],{{},_}]

g=gs[[1]]

RegularParameters[g]

(37,18,8,9) [6760 graphs]

Select[GraphData["StronglyRegular",37],Flatten@GraphData[#,"RegularParameters"]==={37,18,8,9}&]

Length[%]

Length[gs=Import["sr371889some.g6","Graph6"]]//AbsoluteTiming

DeleteCases[MapIndexed[{RecognizeGraph[#],#2[[1]]}&,gs],{{},_}]

g=gs[[1]]

RegularParameters[g]

(40,12,2,4) [28 graphs]

Select[GraphData["StronglyRegular",40],Flatten@GraphData[#,"RegularParameters"]==={40,12,2,4}&]

Length[%]

Length[gs=Import["sr401224.g6","Graph6"]]//AbsoluteTiming

gs

RegularParameters[gs[[1]]]

data=MapIndexed[{RecognizeGraph[#],#,#2[[1]]}&,gs]

old=DeleteCases[data,{{},_,_}]

l={#,{0,SortBy[Union[GraphData[#,"AlternateStandardNames"],{{"StronglyRegular",{{40,12,2,4},#3}}}],Function[f,First[Flatten[{f}]]]]}}&@@@old

PropertyReplace[l,"AlternateStandardNames","13.3"]

RenameGraphFiles[]

l2={#,{0,Union[GraphData[#,"AlternateNames"],{"40,12,2,4)\[Hyphen]strongly regular graph "<>ToString[#3]}]}}&@@@old

PropertyReplace[l2,"AlternateNames","13.3"]

RenameGraphFiles[]

new=Cases[data,{{},g_,n_}:>{g,n}]

(65,32,15,16) [32 graphs]

https://arxiv.org/pdf/2102.05432.pdf

Select[GraphData["StronglyRegular",65],Flatten@GraphData[#,"RegularParameters"]==={65,32,15,16}&]

Length[%]

Length[gs=Import["sr65321516some.g6","Graph6"]]//AbsoluteTiming

gs

RegularParameters[gs[[1]]]

data=MapIndexed[{#,#2[[1]]}&,gs]

Edward Spence

ImportStronglyRegular[str_]:=FromAdjacencyMatrix/@ToExpression[Map[Characters,StringSplit/@DeleteCases[Select[StringSplit[Import["http://www.maths.gla.ac.uk/~es/"<>str,"Text"],RegularExpression["(%+|\\n\\n)"]],StringMatchQ[#,RegularExpression["^[01\n]+"]]&],"\n"],{2}]]

urls={"http://www.maths.gla.ac.uk/~es/5-2-0-1","http://www.maths.gla.ac.uk/~es/9-4-1-2","http://www.maths.gla.ac.uk/~es/10-3-0-1","http://www.maths.gla.ac.uk/~es/13-6-2-3","http://www.maths.gla.ac.uk/~es/15-6-1-3","http://www.maths.gla.ac.uk/~es/16.vertices","http://www.maths.gla.ac.uk/~es/17-8-3-4","http://www.maths.gla.ac.uk/~es/21-10-3-6","http://www.maths.gla.ac.uk/~es/25.vertices","http://www.maths.gla.ac.uk/~es/26-10-3-4","http://www.maths.gla.ac.uk/~es/27-10-1-5","http://www.maths.gla.ac.uk/~es/28-12-6-4","http://www.maths.gla.ac.uk/~es/29-14-6-7","http://www.maths.gla.ac.uk/~es/35-18-9-9","http://www.maths.gla.ac.uk/~es/36.vertices","http://www.maths.gla.ac.uk/~es/40-12-2-4","http://www.maths.gla.ac.uk/~ted/45-12-3-3","http://www.maths.gla.ac.uk/~es/64-18-2-6"};

files={"5-2-0-1","9-4-1-2","10-3-0-1","13-6-2-3","15-6-1-3","16.vertices","17-8-3-4","21-10-3-6","25.vertices","26-10-3-4","27-10-1-5","28-12-6-4","29-14-6-7","35-18-9-9","36.vertices","40-12-2-4","64-18-2-6"};

g0=ImportStronglyRegular/@files;//Timing

g0

Export["/Volumes/Users/eww/Mathematica/Packages/MathWorld/Graphs/StronglyRegular.g6",ToAdjacencyMatrix/@Flatten[g0]]

g=FromAdjacencyMatrix/@Import["/Volumes/Users/eww/Mathematica/Packages/MathWorld/Graphs/StronglyRegular.g6",{"AdjacencyMatrix",All}];

Length/@{g,Flatten[g0]}

g==Flatten[g0]

rg=Map[RecognizeGraph,g0,{2}];//Timing

rg=RecognizeGraph/@g;//Timing

DeleteCases[Join@@rg,{}]

Grid[{#,RegularParameters[Graph[#]]//Flatten}&/@{{"Cycle",5},{"GeneralizedQuadrangle",{2,1}},"PetersenGraph",{"Paley",13},{"GeneralizedQuadrangle",{2,2}},"ShrikhandeGraph","ClebschGraph",{"Paley",17},{"Kneser",{7,2}},{"GeneralizedQuadrangle",{2,4}},{"Triangular",8},{"Paley",29},{"Triangular",9}},Frame->All]

Take[rg,6]

pos=Position[rg,{}];

Length[newg=(g0[[Sequence@@#]])&/@pos]

Tally[V/@newg]

Off[General::"stop"]

outfile=OpenWrite["graphs2.m"]

SetOptions[outfile,PageWidth->Infinity]

WriteString[outfile,GraphDataString[r=Flatten[RegularParameters[#]];
If[NumberQ[a[r]],a[r]++,a[r]=1];
#,
"StandardName"->{"StronglyRegular",{r,a[r]}},
"Name"->"("<>StringReplace[ToString[r]," "->""]<>")-strongly regular graph "<>ToString[a[r]],
TimeConstraint->120,
"Skip"->{"ChromaticPolynomial","Cycles","HamiltonianPaths"}
]]&/@Select[newg,V[#]<35&]

WriteString[outfile,GraphDataString[r=Flatten[RegularParameters[#]];
If[NumberQ[a[r]],a[r]++,a[r]=1];
#,
"StandardName"->{"StronglyRegular",{r,a[r]}},
"Name"->"("<>StringReplace[ToString[r]," "->""]<>")-strongly regular graph "<>ToString[a[r]],
TimeConstraint->120,
"Skip"->{"ChromaticPolynomial","Cycles","HamiltonianCycles","HamiltonianPaths"}
]]&/@Select[newg,28<=V[#]<35&]

Checks

DeleteCases[Monitor[{g=#,StronglyRegularGraphQ[GraphData[g]],GraphData[#,"StronglyRegular"]}&/@GraphData[;;100],g],{_,x_,x_}]//Timing

GraphData

GraphDataClassString

GraphDataClassString["StronglyRegular"]

GraphDataClassString[{"Connected","StronglyRegular"}]

GraphDataString

file=OpenWrite["~/sr.m"]

one of various SRG's with too many to include all

gs=Import[#,{"Graph6","Graph"}]&/@{"sr351668.g6","sr351899.g6","sr361446.g6","sr361566.g6","sr371889some.g6"}

RegularParameters/@gs

WriteString[file,GraphDataString[#,
"StandardName"->{"StronglyRegular",{par=Flatten[RegularParameters[#]],1}},
"Name"->"("<>StringReplace[StringTake[ToString[par],{2,-2}]," "->""]<>")\[Hyphen]strongly regular graph 1",
"Embeddings"->None,
"Information"->"StronglyRegularGraph",
Debug->True,
TimeConstraint->10]]&/@gs;

Close[file]

SRG(40,12,2,4)

WriteString[file,GraphDataString[#,
"StandardName"->{"StronglyRegular",{{40,12,2,4},#2}},
"Name"->"(40,12,2,4)\[Hyphen]strongly regular graph "<>ToString[#2],
"Embeddings"->None,
"Information"->"StronglyRegularGraph",
Debug->True,
TimeConstraint->10]]&@@@new;

Close[file]

SRG(65,32,15,16)

WriteString[file,GraphDataString[#,
"StandardName"->{"StronglyRegular",{{65,32,15,16},#2}},
"Name"->"(65,32,15,16)\[Hyphen]strongly regular graph "<>ToString[#2],
"Embeddings"->None,
"Information"->"StronglyRegularGraph",
Debug->True,
TimeConstraint->10]]&@@@data;

Close[file]

SRG(176,70,18,34)

RegularParameters[g=DistanceRegularGraph["http://www.distanceregular.org/graphdata/srg176a.am"]]

RecognizeGraph[g]

file=OpenWrite["~/sr176-70-18-34.m"]

GraphData[{"StronglyRegular",{{120,56,28,24},1}},"Name"]

WriteString[file,GraphDataString[g,
"StandardName"->{"StronglyRegular",{{176,70,18,34},1}},
"Name"->"(176,70,18,34)\[Hyphen]strongly regular graph 1",
"Embeddings"->None,
"Information"->None,
"Classes"->{"DistanceRegular","DistanceTransitive","Noncirculant","Nongrid","StronglyRegular"},
Debug->True,
TimeConstraint->10]]

Close[file]

SRG(176,105,68,54)

RegularParameters[g=DistanceRegularGraph["http://www.distanceregular.org/graphdata/srg176b.am"]]

RecognizeGraph[g]

file=OpenWrite["~/sr176-105-68-54.m"]

WriteString[file,GraphDataString[g,
"StandardName"->{"StronglyRegular",{{176,105,68,54},1}},
"Name"->"(176,105,68,54)\[Hyphen]strongly regular graph 1",
"Embeddings"->None,
"Information"->None,
"Classes"->{"DistanceRegular","DistanceTransitive","Noncirculant","Nongrid","StronglyRegular"},
Debug->True,
TimeConstraint->10]]

Close[file]