Fusene

Author

Eric W. Weisstein
February 23, 2023

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

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

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

Examples

fusenes=SortBy[GraphData["Fusene",;;24],GraphData[#,"V"]&]

Sort[FirstCase[GraphData[#,"StandardNames"],{"Fusene",_}]&/@GraphData["Fusene",;;24]]

GraphicsGrid[Partition[StyleGraphs[GraphData[#,"Graph","HexagonalGrid"][[1]]]&/@fusenes,5],Dividers->All]

Embeddings

<<MathWorld`Graphs`

{"Fusene", {1, 1}} == {"Cycle", 6}

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

{"Fusene", {2, 1}} == {"HexagonalGrid", {1, 1, 2}}

GraphData[{"Fusene",{2,1}},"StandardName"]

{"Fusene", {3, 1}} == {"Jahangir", {4, 3}}

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

{"Fusene", {3, 2}}

GraphData[{"Fusene",{3,2}},"StandardName"]

Primary

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

All

GraphData[{"Fusene",{3,2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Fusene",{3,2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Fusene",{3,2}},"Edges"]

v={{0,0},{1/2,0},{1,0},{4/3,0},{5/3,0},{2,0},{5/2,0},{3,0},{3,1},{5/2,1},{2,1},{1,1},{1/2,1},{0,1}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,14},1],{3,12},{6,11}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RotateGraph[Graph[GraphData[{"Fusene",{3,2}},"Edges"],GraphLayout->"LayeredDigraphEmbedding"],Pi/2]

v=Join[{#,0}&/@Range[0,7],{#,1}&/@Range[6,1,-1]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,14},1],{3,12},{11,6}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Degenerate

GraphData[{"Fusene",{3,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"Fusene",{3,2}},"Graph","Degenerate"]

Bilateral

GraphData[{"Fusene",{3,2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"Fusene",{3,2}},"Graph","Circular"]//StyleGraphs

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Fusene",{3,2}}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Fusene",{3,2}}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

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

Planar

GraphData[{"Fusene",{3,2}},"Planar"]

GraphData[{"Fusene",{3,2}},"Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData[{"Fusene",{3,2}},{"RCN","CN"}]

GraphData[{"Fusene",{3,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

MinimalCrossingGraph[GraphData[{"Fusene",{3,2}}]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Fusene",{3,2}},"Circulant"]

GraphData[{"Fusene",{3,2}},"Graph","Circulant"]//StyleGraphs

Halin

GraphData[{"Fusene",{3,2}},"Halin"]

GraphData[{"Fusene",{3,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"Fusene",{3,2}},"Rigid"]

GraphData[{"Fusene",{3,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"Fusene",{3,2}},"Flexible"]

GraphData[{"Fusene",{3,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"Fusene",{3,2}},"LCF"]

GraphData[{"Fusene",{3,2}},"HamiltonianCycleCount"]

GraphData[{"Fusene",{3,2}},"LCFSignature"]

GraphData[{"Fusene",{3,2}},"LCFNotations"]

GraphData[{"Fusene",{3,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"Fusene",{3,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"Fusene",{3,2}}],Debug->True]//Timing

GraphData[{"Fusene",{3,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,,,,,,,,,,};

Matchstick

GraphData[{"Fusene",{3,2}},"Matchstick"]

GraphData[{"Fusene",{3,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"Fusene",{3,2}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"Fusene",{3,2}},"Polyhedral"]

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

{"Fusene", {3, 3}} == {"HexagonalGrid", {1, 1, 3}}

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

{"Fusene", {4, 1}} == {"HexagonalGrid", {1, 2, 2}}

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

{"Fusene", {4, 2}} == {"HexagonalGrid", {1, 1, 4}}

GraphData[{"Fusene",{4,2}},"StandardName"]

{"Fusene", {4, 3}}

GraphData[{"Fusene",{4,3}},"StandardName"]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Fusene",{4,3}},"EdgeList"]]

Default embedding

GraphPlot@RotateGraph[Graph[GraphData[{"Fusene",{4,3}},"Edges"],GraphLayout->"LayeredDigraphEmbedding"],-Pi/2]

v=Join[{{0,0},{1/2,0},{1,0},{3/2,0},{2,0},{3,0},{3,1},{3-1/4,1},{5/2,1},{2,1},{3/2,1},{1,1},{1/2,1},{0,1},{3/2,2},{2,2},{5/2,2}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,14},1],e[11,15,16,17,9],{3,12},{5,10}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"Fusene",{4,3}}]],.8]

v=Join[UnitCirclePoints[16,Pi/2],{{0,0}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,16},1,17],e[5,17,13],{7,12}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

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

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

Bilateral

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

Circular

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

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Fusene",{4,3}}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Fusene",{4,3}}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Fusene",{4,3}},"Planar"]

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

MinimalCrossing

GraphData[{"Fusene",{4,3}},{"RCN","CN"}]

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

MinimalCrossing construction

MinimalCrossingGraph[GraphData[{"Fusene",{4,3}}]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Fusene",{4,3}},"Circulant"]

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

Halin

GraphData[{"Fusene",{4,3}},"Halin"]

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

Rigid

GraphData[{"Fusene",{4,3}},"Rigid"]

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

Flexible

GraphData[{"Fusene",{4,3}},"Flexible"]

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

LCF

GraphData[{"Fusene",{4,3}},"LCF"]

GraphData[{"Fusene",{4,3}},"HamiltonianCycleCount"]

GraphData[{"Fusene",{4,3}},"LCFSignature"]

GraphData[{"Fusene",{4,3}},"LCFNotations"]

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

UnitDistance

GraphData[{"Fusene",{4,3}},"UnitDistance"]

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,,,,,,,,,,};

Matchstick

GraphData[{"Fusene",{4,3}},"Matchstick"]

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

3D default

Graph3D[GraphData[{"Fusene",{4,3}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"Fusene",{4,3}},"Polyhedral"]

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

{"Fusene", {4, 4}}

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

Primary

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

All

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

Inexact

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

Embedding types

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

Default embedding

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

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

v=Join[UnitCirclePoints[6]];
v1=Join[v[[4]]+{0,#}&/@{1/2,1},v[[3]]+{0,#}&/@{1/2,1}];
v=Join[v,Sequence@@Table[RotationMatrix[2Pi i/3].#&/@v1,{i,0,2}]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,17,18,16,15,2],e[4,7,8,10,9,3],e[5,13,14,12,11,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

v=Join[UnitCirclePoints[6]];
v1=Join[v[[4]]+{0,#}&/@{1,2},v[[3]]+{0,#}&/@{1,2}];
v=Join[v,Sequence@@Table[RotationMatrix[2Pi i/3].#&/@v1,{i,0,2}]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,6},1,17,18,16,15,2],e[4,7,8,10,9,3],e[5,13,14,12,11,6]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

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

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

Bilateral

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

Circular

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

Circular construction

Length[hc=FindHamiltonianCycle[GraphData[{"Fusene",{4,4}}],All][[All,All,1]]]

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Fusene",{4,4}}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

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

Planar

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

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

MinimalCrossing

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

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

MinimalCrossing construction

MinimalCrossingGraph[GraphData[{"Fusene",{4,4}}]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

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

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

Halin

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

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

Rigid

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

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

Flexible

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

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

LCF

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

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

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

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

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

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

UnitDistance

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

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,,,,,,,,,};

Matchstick

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

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

3D default

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

3D All

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

3D UnitDistance

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

3D Polyhedron

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

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

{"Fusene", {4, 5}}

GraphData[{"Fusene",{4,5}},"StandardName"]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Fusene",{4,5}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Fusene",{4,5}},"Edges"]

v={{0,0},{1/2,0},{1,0},{3/2,0},{2,0},{3,0},{7/2,0},{4,0},{4,1},{7/2,1},{3,1},{3-1/3,1},{3-2/3,1},{2,1},{3/2,1},{1,1},{1/2,1},{0,1}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,18},1],{3,16},{5,14},{6,11}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

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

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

Bilateral

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

Circular

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

Circular construction

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

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Fusene",{4,5}}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Fusene",{4,5}},"Planar"]

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

MinimalCrossing

GraphData[{"Fusene",{4,5}},{"RCN","CN"}]

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

MinimalCrossing construction

MinimalCrossingGraph[GraphData[{"Fusene",{4,5}}]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Fusene",{4,5}},"Circulant"]

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

Halin

GraphData[{"Fusene",{4,5}},"Halin"]

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

Rigid

GraphData[{"Fusene",{4,5}},"Rigid"]

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

Flexible

GraphData[{"Fusene",{4,5}},"Flexible"]

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

LCF

GraphData[{"Fusene",{4,5}},"LCF"]

GraphData[{"Fusene",{4,5}},"HamiltonianCycleCount"]

GraphData[{"Fusene",{4,5}},"LCFSignature"]

GraphData[{"Fusene",{4,5}},"LCFNotations"]

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

UnitDistance

GraphData[{"Fusene",{4,5}},"UnitDistance"]

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,,,,,,,,,};

Matchstick

GraphData[{"Fusene",{4,5}},"Matchstick"]

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

3D default

Graph3D[GraphData[{"Fusene",{4,5}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"Fusene",{4,5}},"Polyhedral"]

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

{"Fusene", {4, 6}}

GraphData[{"Fusene",{4,6}},"StandardName"]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Fusene",{4,6}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Fusene",{4,6}},"Edges"]

v={{0,0},{1/2,0},{1,0},{2,0},{3,0},{7/2,0},{4,0},{4,1},{7/2,1},{3,1},{3-1/3,1},{3-2/3,1},{2,1},{2-1/3,1},{2-2/3,1},{1,1},{1/2,1},{0,1}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,18},1],{3,16},{4,13},{5,10}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

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

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

Bilateral

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

Circular

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

Circular construction

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

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Fusene",{4,6}}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

gs=bilat

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

Planar

GraphData[{"Fusene",{4,6}},"Planar"]

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

MinimalCrossing

GraphData[{"Fusene",{4,6}},{"RCN","CN"}]

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

MinimalCrossing construction

MinimalCrossingGraph[GraphData[{"Fusene",{4,6}}]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Fusene",{4,6}},"Circulant"]

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

Halin

GraphData[{"Fusene",{4,6}},"Halin"]

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

Rigid

GraphData[{"Fusene",{4,6}},"Rigid"]

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

Flexible

GraphData[{"Fusene",{4,6}},"Flexible"]

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

LCF

GraphData[{"Fusene",{4,6}},"LCF"]

GraphData[{"Fusene",{4,6}},"HamiltonianCycleCount"]

GraphData[{"Fusene",{4,6}},"LCFSignature"]

GraphData[{"Fusene",{4,6}},"LCFNotations"]

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

UnitDistance

GraphData[{"Fusene",{4,6}},"UnitDistance"]

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,,,,,,,};

Matchstick

GraphData[{"Fusene",{4,6}},"Matchstick"]

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

3D default

Graph3D[GraphData[{"Fusene",{4,6}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"Fusene",{4,6}},"Polyhedral"]

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

{"Fusene", {4, 7}}

GraphData[{"Fusene",{4,7}},"StandardName"]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"Fusene",{4,7}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"Fusene",{4,7}},"Edges"]

v={{0,0},{1/2,0},{1,0},{2,0},{2+1/3,0},{2+2/3,0},{3,0},{7/2,0},{4,0},{4,1},{7/2,1},{3,1},{2,1},{2-1/3,1},{2-2/3,1},{1,1},{1/2,1},{0,1}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,18},1],{3,16},{4,13},{7,12}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

g=RotateGraph[Graph[GraphData[{"Fusene",{4,7}},"Edges"],GraphLayout->"LayeredDigraphEmbedding"],Pi/2]

GraphEmbedding[g]

Round[%]

v={{-9,0},{-8,0},{-8,-1},{-7,0},{-7,-1},{-6,-1},{-6,0},{-5,-1},{-5,0},{-4,0},{-4,-1},{-3,0},{-3,-1},{-2,-1},{-2,0},{-1,-1},{-1,0},{0,-1}};
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[3,5,6,8,11,13,14,16,18,17,15,12,10,9,7,4,2,1,3],{4,6},{8,10},{12,14}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

gs={,}

Degenerate

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

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

Bilateral

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

Circular

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

Circular construction

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

Length[bilat=DeleteDuplicatesBy[
DeleteMissing[BilaterallyRotatedGraph@CircularEmbeddingFromHamiltonianCycle[GraphData[{"Fusene",{4,7}}],#]&/@hc],
CircularCanonicalGraphEmbedding]]//Timing

Planar

GraphData[{"Fusene",{4,7}},"Planar"]

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

MinimalCrossing

GraphData[{"Fusene",{4,7}},{"RCN","CN"}]

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

MinimalCrossing construction

MinimalCrossingGraph[GraphData[{"Fusene",{4,7}}]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData[{"Fusene",{4,7}},"Circulant"]

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

Halin

GraphData[{"Fusene",{4,7}},"Halin"]

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

Rigid

GraphData[{"Fusene",{4,7}},"Rigid"]

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

Flexible

GraphData[{"Fusene",{4,7}},"Flexible"]

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

LCF

GraphData[{"Fusene",{4,7}},"LCF"]

GraphData[{"Fusene",{4,7}},"HamiltonianCycleCount"]

GraphData[{"Fusene",{4,7}},"LCFSignature"]

GraphData[{"Fusene",{4,7}},"LCFNotations"]

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

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

UnitDistance

GraphData[{"Fusene",{4,7}},"UnitDistance"]

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

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

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

g=RotateGraph[,{16,2}]

BilateralGraphEmbeddingQ@%

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,,,,,,,,,,,RotateGraph[,Pi/2],,,,,,,,,,,,,};

Matchstick

GraphData[{"Fusene",{4,7}},"Matchstick"]

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

3D default

Graph3D[GraphData[{"Fusene",{4,7}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"Fusene",{4,7}},"Polyhedral"]

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

Harary-Read numbers

A002216

g[x_]:=(1/(24(x^2)))(12+24x+48(x^2)-24(x^3)+((((1-x)(1-5x)))^(3/2))-3(5x+3)(Sqrt[(1-(x^2))(1-5(x^2))])-4(Sqrt[(1-(x^3))(1-5(x^3))]))-4

Series[g[x],{x,0,10}]

CoefficientList[%,x]

ser=SeriesCoefficient[g[x],{x,0,n}]

Table[ser,{n,-5,10}]

FullSimplify[ser,n<1&&n∈Integers]

FullSimplify[ser,n>0&&n∈Integers]

FindLinearRecurrence[Drop[CoefficientList[Series[g[x],{x,0,100}],x],5]]//Head