Net Graph

Author

Eric W. Weisstein
March 1, 2024

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

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

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

Embeddings

<<MathWorld`Graphs`

Names

GraphData["NetGraph","StandardName"]

GraphData["NetGraph","StandardNames"]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData["NetGraph","EdgeList"]]

Default embedding

GraphPlot@GraphData["NetGraph","Edges"]

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

RecognizeGraph[g]

Degenerate

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

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

Configuration

GraphData["NetGraph","Configuration"]

GraphData["NetGraph","Graph","Configuration"]//StyleGraphs

Perspective

GraphData["NetGraph","Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData["NetGraph","Polyhedron"]

Sunlet construction

SunletGraph[3,GraphLayout->#]&/@{Automatic,"CircularEmbedding","IGraphEmbedding","UnitDistanceEmbedding"}//StyleGraphs

HoneycombToroidal construction

GraphData["NetGraph","NotationRules","HoneycombToroidal"]

HoneycombToroidalGraph[]

RecognizeGraph[%]

GeneralizedHoneycombGraph construction

With[{n=6},Cases[Table[{k,g=GeneralizedHoneycombGraph[n,k],RecognizeGraph@g},{k,n-1}],{__,"NetGraph"}]]//Timing

g=GeneralizedHoneycombGraph[6,2]

RecognizeGraph@g

GeneralizedPetersen

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

IGraph

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

Bilateral

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

Circular

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

Circular construction

GraphData["NetGraph","Hamiltonian"]

GraphData["NetGraph","HamiltonianCycleCount"]

Planar

GraphData["NetGraph","Planar"]

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

MinimalCrossing

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

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

MinimalCrossing construction

(cn=CrossingNumber[GraphData["NetGraph"],TimeConstraint->1])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData["NetGraph"],"CrossingNumber"->cn])//PolyhedralGraphQ

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

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

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData["NetGraph","Circulant"]

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

Complement graph

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

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

gs=GraphComplement/@%

LabelGraph/@gs

DegenerateGraphEmbeddingTypes/@gs

g=RotateGraph[,Pi]

Line graph

GraphData["NetGraph","Line"]

LineGraphQ[GraphData["NetGraph"]]//Timing

RootGraph

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

RootGraph[GraphData["NetGraph"]]

RecognizeGraph[%]

GraphData[roots[[1]],"Graph","All"]

gs=LineGraph/@%

LabelGraph/@gs

EdgeList[%[[1]]]

Halin

GraphData["NetGraph","Halin"]

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

Rigid

GraphData["NetGraph","Rigid"]

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

Flexible

GraphData["NetGraph","Flexible"]

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

LCF

GraphData["NetGraph","LCF"]

GraphData["NetGraph","HamiltonianCycleCount"]

GraphData["NetGraph","LCFSignature"]

GraphData["NetGraph","LCFNotations"]

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

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

UnitDistance

GraphData["NetGraph","UnitDistance"]

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData["NetGraph","Matchstick"]

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

3D default

Graph3D[GraphData["NetGraph","Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData["NetGraph","Polyhedral"]

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

GraphData

GraphDataClassString

GraphDataClassString["NetGraph"]

Matrices

GraphDataMatrices["NetGraph"]