Antilog Graph

Author

Eric W. Weisstein
July 26, 2026

This notebook downloaded from https://mathworld.wolfram.com/notebooks/GraphTheory/AntilogGraph.nb.

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

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

Figure

GraphicsGrid[
Partition[
StyleGraphs[
GraphData["AntilogGraph","Graph","All"]
],
UpTo[3]
],
Dividers->All
]

Embeddings

<<MathWorld`Graphs`

Names

GraphData["AntilogGraph","StandardName"]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData["AntilogGraph","EdgeList"]]

Default embedding

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

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

RecognizeGraph[g]

Robertson et al. 2019

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

RecognizeGraph[g]

MinimalRectilinearCrossing by planarization using subsets of added points

mc=MinimalCrossingGraph[GraphData["AntilogGraph"],"CrossingNumber"->3]

quads=AdjacencyList[mc,#]&/@Range[21,23]

Pairs[l_]:=Module[{twos={l[[1]],#}&/@Rest[l]},
{#,Complement[l,#]}&/@twos
]

ps=Pairs/@quads

Length[combs=Flatten[Flatten[Outer[List,Sequence@@ps,2],4],1]]

combs[[1]]

g0=Graph[Range[20],Select[EdgeList[mc],FreeQ[#,21|22|23]&],VertexCoordinates->Take[GraphEmbedding[mc],20]]

gs=EdgeAdd[g0,UndirectedEdge@@@#]&/@combs;

GraphPlot/@Pick[gs,IsomorphicGraphQ[#,GraphData["AntilogGraph"]]&/@gs]

MinimalRectilinearCrossing by planarization using subsets to make cubic

mc=MinimalCrossingGraph[GraphData["AntilogGraph"],"CrossingNumber"->3]

mc2=VertexDelete[mc,Range[21,23]]

d=VertexDegree[mc2]

add=Flatten[MapIndexed[Table[#2[[1]],#]&,3-d]]

Binomial[Binomial[12,2],6]

e=List@@@EdgeList[mc2];

Length[sub=Select[Subsets[Subsets[add,{2}],{Length[add]/2}],DisjointQ[e,#]&]]//Timing

sub[[1]]

Length[gs=EdgeAdd[mc2,UndirectedEdge@@@#]&/@sub]//Timing

(ss=SelectFirst[sub,IsomorphicGraphQ[Graph[UndirectedEdge@@@Union[e,#]],GraphData["AntilogGraph"]]&])//Timing

g=Graph[Range[20],UndirectedEdge@@@Union[e,ss],VertexCoordinates->Take[GraphEmbedding[mc],20]]

r=RecognizeGraph[g]

RectilinearCrossingCount@g

GraphPlot[g]

v={#/5,#2/8}&@@@{{0,0},{5,0},{5,8},{0,8},Sequence@@Thread[{Range[5],1}],{2,5/2},Sequence@@Thread[{2,Range[3,6]}],{3,6},{1,3},{1,7},{3,4},{4,7},{4,4}};
g=Graph[Range[Length[v]],UndirectedEdge@@@Sort[Sort/@{{1,2},{1,4},{3,4},{2,9},{3,19},{8,20},{5,6},{6,7},{7,8},{8,9},{1,10},{5,16},{16,17},{3,20},{17,19},{11,16},{6,10},{10,11},{11,12},{12,13},{13,14},{14,17},{4,13},{12,18},{7,18},{15,18},{14,15},{9,19},{15,20},{2,5}}],VertexLabels->"Name",VertexCoordinates->v]

VertexDegree[g]

r=RecognizeGraph[g]

rcn=RectilinearCrossingCount[g]

vs=ToCommonEdges[g,GraphData[r]]

Degenerate

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

Bilateral

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

Circular

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

Planar

GraphData["AntilogGraph","Planar"]

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

MinimalCrossing

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

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

MinimalCrossing construction

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

CrossingNumber[GraphData["AntilogGraph"],TimeConstraint->60]//AbsoluteTiming

g=RotateGraph[MinimalCrossingGraph[GraphData["AntilogGraph"],"CrossingNumber"->cn]]

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

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Circulant

GraphData["AntilogGraph","Circulant"]

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

Halin

GraphData["AntilogGraph","Halin"]

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

LCF

GraphData["AntilogGraph","LCF"]

GraphData["AntilogGraph","LCFSignature"]

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

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

LCF compute

Length[FindHamiltonianCycle[GraphData["AntilogGraph"],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData["AntilogGraph"],All])[[All,2]]]//Timing

gs=LCFGraph@@@lcf//StyleGraphs

gs=Join[With[{g=BilateralLCFEmbedding[#]},If[MissingQ[g],#,g]]&/@LCFGraph@@@DeleteCases[lcf,{_,1}],DeleteMissing[BilateralLCFEmbedding/@LCFGraph@@@Cases[lcf,{_,1}]]]

UnitDistance

GraphData["AntilogGraph","UnitDistance"]

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

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

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData["AntilogGraph","VertexList"],GraphData["AntilogGraph","EdgeList"]]]

UnitDistanceGraphEmbeddingQ[%]

UnitDistanceEmbeddingRefine/@Complement@@(GraphData["AntilogGraph","Graph",#]&/@{"All","UnitDistance"})

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

FindUnitDistanceEmbedding[GraphData["AntilogGraph"],MaxIterations->50000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData["AntilogGraph","Matchstick"]

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

3D default

Graph3D[GraphData["AntilogGraph","Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData["AntilogGraph","Polyhedral"]

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

GraphData

GraphDataString

file=OpenWrite["~/antilog.m"]

WriteString[file,GraphDataString[g,
"StandardName"->"AntilogGraph",
"Name"->"antilog graph",
TimeConstraint->10,
Debug->True,
"Skip"->{"Arboricity"}
]]

Close[file]