Fish Graph

Author

Eric W. Weisstein
December 1, 2024

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

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

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

Embeddings

<<MathWorld`Graphs`

Names

GraphData["FishGraph","StandardName"]

GraphData["FishGraph","StandardNames"]

Primary

GraphData["FishGraph"]//StyleGraphs[#,ImageSize->Small]&

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData["FishGraph"]]

Default embedding

GraphPlot[Graph[GraphData["FishGraph","VertexList"],GraphData["FishGraph","Edges"]]]

q=30Degree;
cs[x_]:={Cos[x],Sin[x]};
v={{0,0},cs[q],cs[-q],{2Cos[q],0},{2Cos[q],0}+cs[q],{2Cos[q],0}+cs[-q]};
g=Graph[Range@Length@v,UndirectedEdge@@@{e[4,6,5,4,3,1,2,4]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

RotateGraph[,Pi]

v={{-1,0},{1,0},{0,-1},{0,1}}/Sqrt[2];
v=Join[v,v[[2]]+{Sqrt[3]/2,#/2}&/@{-1,1}];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[2,6,5,2,4,1,3,2]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

RotateGraph[Graph[GraphData["FishGraph","VertexList"],GraphData["FishGraph","Edges"],GraphLayout->"CircularEmbedding"],Pi/6]

g=FindCorrespondingGraph[,CirclePoints[6]]

s=Sqrt[3]/2;
v=UnitCirclePoints[4,Pi/2];
v=Join[v,v[[1]]+{#/2,-s}&/@{-1,1}];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,5,6,1,2,3,4,1]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

v=CirclePoints[{1,Pi/2},4];
v=Join[v,v[[1]]+x{#/2,-Sqrt[3]/2}&/@{-1,1}];

Solve[v[[5,2]]x==v[[2,2]],x]

v=CirclePoints[{1,Pi/2},4];
v=Join[v,v[[1]]+(2/(Sqrt[3])){#/2,-Sqrt[3]/2}&/@{-1,1}];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,2,3,4,1,5,6,1]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@

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

RecognizeGraph@g

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

gs=UnlabelGraph/@{,,,}

Degenerate

GraphData["FishGraph","Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData["FishGraph","Graph","Degenerate"]

GeneralizedPetersen

GraphData["FishGraph","Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData["FishGraph","Graph","IGraph"]//StyleGraphs

Bilateral

GraphData["FishGraph","Graph","Bilateral"]//StyleGraphs

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

Circular

GraphData["FishGraph","Graph","Circular"]//StyleGraphs

Circular construction

GraphData["FishGraph","Hamiltonian"]

GraphData["FishGraph","LCF"]

GraphData["FishGraph","HamiltonianCycleCount"]

Planar

GraphData["FishGraph","Planar"]

GraphData["FishGraph","Graph","Planar"]//StyleGraphs

Planar construction

PlanarGraphEmbedding[GraphData["FishGraph"],GraphLayout->#]&/@{"TutteLayout","DavidsonHarelLayout"}

Table[PlanarGraphEmbedding[GraphData["FishGraph"]],10]

PlanarGraphEmbeddings

GraphData["FishGraph","PlanarEmbeddingCount"]

(plemb=PlanarGraphEmbeddings[GraphData["FishGraph"],Debug->True])//Timing

Length[plemb]

MinimalCrossing

GraphData["FishGraph",{"RCN","CN"}]

GraphData["FishGraph","Graph","MinimalCrossing"]//StyleGraphs

MinimalLocalCrossing

GraphData["FishGraph",{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData["FishGraph","Graph","MinimalLocalCrossing"]//StyleGraphs

MinimalRectilinearLocalCrossing

GraphData["FishGraph",{"LocalCrossingNumber","RectilinearLocalCrossingNumber"}]

GraphData["FishGraph","Graph","MinimalRectilinearLocalCrossing"]//StyleGraphs

Circulant

GraphData["FishGraph","Circulant"]

GraphData["FishGraph","Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData["FishGraph","NotationRules","Circulant"]

(ci=CirculantIndices[GraphData["FishGraph"]])//Timing

CirculantGraph1@@@ci

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

CirculantGraph1@@@%

Complement graph

compl=GraphData["FishGraph","ComplementGraph","Name"]

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

gs=GraphComplement/@%

Select[%,!DegenerateGraphEmbeddingQ[#]&]

Line graph

GraphData["FishGraph","Line"]

LineGraphQ[GraphData["FishGraph"]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]==="FishGraph"&]

RootGraph[GraphData["FishGraph"]]

RecognizeGraph[%]

Halin

GraphData["FishGraph","Halin"]

GraphData["FishGraph","Graph","Halin"]//StyleGraphs

Rigid

GraphData["FishGraph","Rigid"]

GraphData["FishGraph","Graph","Rigid"]//StyleGraphs

Flexible

GraphData["FishGraph","Flexible"]

GraphData["FishGraph","Graph","Flexible"]//StyleGraphs

LCF

GraphData["FishGraph","LCF"]

GraphData["FishGraph","HamiltonianCycleCount"]

GraphData["FishGraph","LCFSignature"]

GraphData["FishGraph","LCFNotations"]

GraphData["FishGraph","Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData["FishGraph","UnitDistance"]

UnitDistanceGraphQ[GraphData["FishGraph"],Debug->True]//Timing

GraphData["FishGraph","Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData["FishGraph","VertexList"],GraphData["FishGraph","EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData["FishGraph"],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData["FishGraph"],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Select[IndexGraph/@gs,!DegenerateGraphEmbeddingQ[#]&&GraphSymmetryGroup[#]=!=TransformationGroup[{}]&]//Timing

gs={RotateGraph[,Pi/2],RotateGraph[,-Pi/2],LabelGraph@RotateGraph[,{1,4}]}

Matchstick

GraphData["FishGraph","Matchstick"]

GraphData["FishGraph","Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData["FishGraph","Edges"]]

3D construction

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

RecognizeGraph[g]

3D All

GraphData["FishGraph","Graph",{"3D","All"}]

3D UnitDistance

GraphData["FishGraph","Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData["FishGraph","Polyhedral"]

GraphData["FishGraph","Graph",{"3D","Polyhedron"}]

GraphData

GraphDataClassString

GraphDataClassString["FishGraph"]

Matrices

GraphDataMatrices["FishGraph"]

Construction

rg={6,56}