Planar Hypohamiltonian Graph

Author

Eric W. Weisstein
April 6, 2024

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

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

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

Table

All

Tally[Sort[GraphData[{"Planar","Hypohamiltonian"},"V"]]]

Named

Grid[
PlanarHypohamiltonianGraphs=Sort[GraphData[#,{"V","#"}]&/@Cases[GraphData[{"Planar","Hypohamiltonian"}],_String|{"PlanarHypohamiltonian",{45,1}}]],
Dividers->All,Alignment->{{Decimal,Left}}
]

Nontrivial automorphisms

TextGrid[Sort[DeleteCases[GraphData[#,{"V","AutomorphismCount","#"}]&/@GraphData[{"Planar","Hypohamiltonian"}],{_,1,_}]],Dividers->All,Alignment->{{{Decimal},Left}}]

Figure

GraphicsGrid[Partition[Show[GraphData[#]//StyleGraphs,PlotLabel->TextCell[GraphData[#,"Name"],PageWidth->125,TextAlignment->Center],LabelStyle->Directive[14,Italic,FontFamily->"Times",Black]]&/@PlanarHypohamiltonianGraphs[[All,2]],UpTo[4]],ImageSize->800,Alignment->Top,Dividers->All]

Construction/import

http://www.jooyandeh.com/Combinatorics/Data/PlanarHypohamiltonian.aspx

SetDirectory["/Users/eww/Documents/Mathematica/Paclets/GraphData/Collections/PlanarHypohamiltonian/"]

files=FileNames["*.pc"]

TextGrid[Sort[With[{gs=ImportPlanarCode[#]},{VertexCount[gs[[1]]],Length[gs]}]&/@files],Dividers->All,Alignment->Decimal]

40

RecognizeGraph/@ImportPlanarCode["Hypo40.code.pc"]

GraphicsGrid[Partition[GraphData/@GraphData[{"Planar","Hypohamiltonian"},40]//StyleGraphs,UpTo[8]],ImageSize->1000]

42

DeleteCases[MapIndexed[{42,#2[[1]]}->RecognizeGraph[#]&,ImportPlanarCode["Hypo42.code.pc"]],HoldPattern[_->{"PlanarHypohamiltonian",_}]]

GraphicsGrid[Partition[GraphData/@GraphData[{"Planar","Hypohamiltonian"},42]//StyleGraphs,UpTo[8]],ImageSize->1000]

43

RecognizeGraph/@ImportPlanarCode["Hypo43.code.pc"]//Flatten

GraphData/@GraphData[{"Planar","Hypohamiltonian"},43]//StyleGraphs

45

GraphData

GraphData/@GraphData[{"Planar","Hypohamiltonian"},45]//StyleGraphs

Construction

Notice that a planar hypohamiltonian graph can have girth at most 5, since a planar hypohamiltonian graph has a simple dual, and the average degree of a simple plane graph is less than 6.  There are no hypohamiltonian planar graphs with girth 5 on fewer than 45 vertices, and there is exactly one such graph on 45 vertices.

Length[v0={{131.66796875`,99.44921875`},{153.03125`,97.125`},{166.109375`,116.0859375`},{142.89453125`,130.66015625`},{165.21484375`,143.5625`},{153.94140625`,162.3125`},{132.6171875`,162.8359375`},{121.734375`,142.3984375`},{120.984375`,114.6640625`},{123.953125`,76.44921875`},{159.9375`,75.46484375`},{183.3984375`,106.55859375`},{183.921875`,155.15234375`},{161.8515625`,183.9921875`},{124.234375`,182.58203125`},{100.2890625`,156.859375`},{102.609375`,108.203125`},{143.078125`,66.265625`},{182.265625`,74.421875`},{199.52734375`,113.34375`},{200.87890625`,144.72265625`},{182.28125`,186.5078125`},{143.03515625`,194.5234375`},{102.7109375`,186.9921875`},{83.9140625`,143.8984375`},{86.07421875`,116.11328125`},{103.140625`,73.5`},{142.13671875`,50.015625`},{191.203125`,48.4765625`},{212.203125`,96.10546875`},{237.16015625`,129.57421875`},{215.3125`,163.15234375`},{191.42578125`,211.3125`},{143.3203125`,211.5234375`},{94.73828125`,209.73828125`},{70.30859375`,163.02734375`},{49.52734375`,129.38671875`},{70.79296875`,94.3125`},{94.4140625`,48.23046875`},{201.38671875`,28.16796875`},{261.65625`,130.41796875`},{202.515625`,233.36328125`},{85.56640625`,234.1796875`},{25.796875`,129.7421875`},{84.0234375`,26.16796875`}}]

{{x0,x1},{y0,y1}}=Through[{Min,Max}[#]]&/@Transpose[v0]

Subtract@@@%

Max[Abs[%]]

v=((#-{x0,y0})&/@v0)/235.859375`

v={{0.4488737992712819`,0.31069890692282215`},{0.5394501490559788`,0.3008446505465386`},{0.5948989731699238`,0.3812355084465055`},{0.49647234183504474`,0.4430274925472011`},{0.5911063265982114`,0.4977310367671415`},{0.5433090427293806`,0.5772275587943028`},{0.45289831069890696`,0.5794468367008944`},{0.4067572043723087`,0.49279562769128854`},{0.40357734349122226`,0.37520702219277907`},{0.4161642928121895`,0.21318317323617092`},{0.5687313680026499`,0.20900960582974495`},{0.6682013911891355`,0.3408413381914541`},{0.6704206690957271`,0.5468698244451805`},{0.5768466379595892`,0.669145412388208`},{0.4173567406425969`,0.6631666114607486`},{0.31583305730374295`,0.5541073203047366`},{0.3256707519046042`,0.34781384564425305`},{0.49725074527989405`,0.17000662471016895`},{0.6633984763166612`,0.20458761179198412`},{0.7365849619079166`,0.36960914210003315`},{0.7423153362040411`,0.502649884067572`},{0.6634647234183505`,0.6798111957601856`},{0.49706856575024844`,0.7137959589267969`},{0.32610135806558466`,0.6818648559125539`},{0.24640609473335542`,0.4991553494534614`},{0.2555647565419013`,0.38135144087446177`},{0.3279231533620404`,0.20067903279231533`},{0.4932593574031136`,0.10110963895329579`},{0.7012918184829414`,0.09458429943689964`},{0.7903279231533621`,0.2965220271613117`},{0.8961411063265983`,0.43842331897979464`},{0.803511096389533`,0.5807883405101028`},{0.702235839682014`,0.784978469691951`},{0.4982775753560782`,0.7858728055647566`},{0.29229877442861874`,0.778304074196754`},{0.1887214309373965`,0.5802583636965883`},{0.10061278569062604`,0.437628353759523`},{0.19077509108976484`,0.2889201722424644`},{0.2909241470685658`,0.09354090758529314`},{0.7444683670089434`,0.00847962901623054`},{1.`,0.4420006624710169`},{0.7492547201059954`,0.8784696919509771`},{0.253411725736999`,0.8819311030142432`},{0.`,0.43913547532295466`},{0.24686982444518052`,0.`}};

g=System`Graph[Range[45],UndirectedEdge@@@(Sort/@Union[
{{37,44},{35,43},{33,42},{31,41},{29,40},{39,45},{1,9},{2,3},{36,25},{35,24},{24,16},{24,15},{34,23},{7,8},{14,22},{22,33},{26,38},{27,39},{17,27},{10,27},{28,18},{21,32},{13,22},{5,6},{20,30},{11,19},{19,12},{29,19}},
Sequence@@Partition[#,2,1,1]&/@{Range[40,45],Range[28,39],{4,9,17,26,25,16,8},{4,5,13,21,20,12,3},{15,23,14,6,7},{10,1,2,11,18}}]),VertexCoordinates->v,VertexLabels->"Name"]

SetProperty[g,VertexLabels->None]//StyleGraphs[#,VertexSize->.5]&

Girth[CombinatoricaGraph[g]]

PlanarGraphQ[g]

HamiltonianGraphQ[g]

HypohamiltonianGraphQ[g,Debug->True]

48

RecognizeGraph/@ImportPlanarCode["Hypo48-Zamfirescu.code.pc"]

57

RecognizeGraph/@ImportPlanarCode["Hypo57-Hatzel.code.pc"]

94

v={{31,719.25},{457,720.25},{463,34.25},{36,30.25},{60,693.25},{141,671.25},{248,664.25},{348,672.25},{431,691.25},{416,622.25},{406,374.25},{420,126.25},{438,59.25},{355,78.25},{248,83.25},{146,78.25},{64,58.25},{76,126.25},{86,374.25},{72,624.25},{116,374.25},{149,444.25},{186,430.25},{214,402.25},{225,374.25},{213,345.25},{184,320.25},{150,305.25},{377,374.25},{346,445.25},{306,430.25},{281,405.25},{267,373.25},{279,349.25},{310,317.25},{345,306.25},{248,636.25},{214,622.25},{182,597.25},{213,569.25},{249,563.25},{279,570.25},{309,596.25},{279,627.25},{250,115.25},{216,126.25},{193,155.25},{215,180.25},{247,187.25},{282,182.25},{307,152.25},{283,127.25},{339,114.25},{381,128.25},{347,169.25},{341,211.25},{337,268.25},{336,487.25},{334,542.25},{346,584.25},{376,627.25},{332,636.25},{155,637.25},{148,581.25},{155,541.25},{159,485.25},{157,259.25},{159,208.25},{149,168.25},{118,127.25},{200,209.25},{213,235.25},{248,223.25},{284,235.25},{299,210.25},{296,263.25},{282,290.25},{247,305.25},{210,290.25},{199,263.25},{246,334.25},{247,414.25},{251,445.25},{217,460.25},{201,487.25},{215,516.25},{247,525.25},{280,514.25},{296,483.25},{280,457.25},{295,542.25},{198,540.25}};

v0=(#-Mean[v])&/@v;
vv=v0/Max[Abs[Flatten[v0]]]//N

Length[vv]

v=Join[vv,{{-1,1}vv[[61]],{-1,1}vv[[53]]}];

ShowLabeledGraph[g=RemoveMultipleEdges[AddEdges[Graph[{},List/@v],
Join[
Join@@(Partition[#,2,1]&/@{{4,17,16,15,14,13,3},{1,5,6,7,8,9,2},{5,20,19,18,17},{9,10,11,12,13},{19,21},{29,11},{18,70,94,16},{14,53,54,12},{20,93,63,6},{8,62,61,10},{15,45},{7,37},{93,64,65,66,22,21,28,67,68,69,70},{61,60,59,58,30,29,36,57,56,55,54},{63,38,37,44,62},{94,46,45,52,53},{69,47,46},{55,51,52},{64,39,38},{44,43,60},{22,23,24,25,26,27,28},Range[30,36],{25,33},{47,48,49,50,51},{39,40,41,42,43},{65,92,40},{41,87},{73,49},{92,86},{42,91,88},{91,59},{66,85},{89,58},{23,84},{90,31},{27,79},{26,81,34},{24,82,83},{82,32},{67,80},{76,57},{74,75,50},{75,56},{68,71,72},{71,48},{78,81},{35,77}}),
Join@@(Partition[#,2,1,1]&/@{{1,2,3,4},Range[83,90],{72,73,74,76,77,78,79,80}})]]
],VertexStyle->Disk[.02]]

V[g]

Tally[Degrees[g]]

Girth[g]

RecognizeGraph[g]

CubicQ[g]

PlanarQ[g]

ConnectedQ[g]

HypohamiltonianGraphQ[g,False]//Timing

HamiltonianQ[g]//Timing

HamiltonianPaths[g,{}]//Timing

105

RecognizeGraph/@ImportPlanarCode["Hypo105-Thomasson.code.pc"]

g=ImportPlanarCode["Hypo105-Thomasson.code.pc"][[1]]

PlanarGraph[g]

From paper:

v={{-0.0038224187160357374`,0.3104448742746615`},{0.27664179791839366`,0.09284332688588008`},{0.17509440913696234`,-0.2504835589941973`},{-0.20208160633692548`,-0.2504835589941973`},{-0.30362899511835684`,0.097678916827853`},{0.005848761167910104`,0.5425531914893617`},{0.33950446716404165`,0.43133462282398455`},{0.5135857050750667`,0.1653771760154739`},{0.5184212950170397`,-0.18762088974854932`},{0.315326517454177`,-0.44390715667311414`},{0.0010131712259371835`,-0.5309477756286267`},{-0.3278069448282214`,-0.4197292069632495`},{-0.5163949525651653`,-0.16827852998065765`},{-0.5163949525651653`,0.15570599613152805`},{-0.293957815234411`,0.4410058027079304`},{0.10739614994934144`,0.6344294003868471`},{0.21861471861471862`,0.6054158607350096`},{0.29598415768628533`,0.5715667311411993`},{0.4749009855392834`,0.4410058027079304`},{0.5087501151330939`,0.3829787234042553`},{0.561941604494796`,0.30077369439071566`},{0.6296398636824169`,0.08800773694390715`},{0.6344754536243898`,-0.013539651837524178`},{0.6296398636824169`,-0.10058027079303675`},{0.557106014552823`,-0.31334622823984526`},{0.5039145251911209`,-0.38104448742746616`},{0.4507230358294188`,-0.44874274661508706`},{0.27180620797642074`,-0.5647969052224371`},{0.194436768904854`,-0.5889748549323017`},{0.11223173989131435`,-0.6131528046421664`},{-0.10053421755549415`,-0.6228239845261122`},{-0.19724601639495257`,-0.5889748549323017`},{-0.293957815234411`,-0.5551257253384912`},{-0.46803905314543615`,-0.4148936170212766`},{-0.5067237726812195`,-0.3665377176015474`},{-0.5695864419268675`,-0.2988394584139265`},{-0.6227779312885696`,-0.08123791102514506`},{-0.6276135212305425`,0.0009671179883945841`},{-0.6276135212305425`,0.07833655705996131`},{-0.5647508519848945`,0.2911025145067698`},{-0.5018881827392466`,0.3733075435203095`},{-0.4390255134935986`,0.45551257253384914`},{-0.293957815234411`,0.5764023210831721`},{-0.18757483651100673`,0.6054158607350096`},{-0.11987657732338583`,0.6295938104448743`},{-0.11020539743944`,0.7601547388781431`},{0.10739614994934144`,0.7553191489361702`},{0.37335359675785207`,0.6537717601547389`},{0.5522704246108502`,0.52321083172147`},{0.677995763102146`,0.3346228239845261`},{0.7360228424058212`,0.1218568665377176`},{0.7553652021737128`,-0.13926499032882012`},{0.6876669429860919`,-0.3617021276595745`},{0.5329280648429585`,-0.5502901353965184`},{0.33466887722206873`,-0.6856866537717602`},{0.09288938012342268`,-0.7485493230174082`},{-0.11020539743944`,-0.7485493230174082`},{-0.37616284424795066`,-0.6518375241779497`},{-0.5599152620429216`,-0.5164410058027079`},{-0.6759694206502718`,-0.33268858800773693`},{-0.7485032697798655`,-0.1344294003868472`},{-0.7388320898959196`,0.12669245647969052`},{-0.6759694206502718`,0.32978723404255317`},{-0.5163949525651653`,0.5570599613152805`},{-0.35682048448005893`,0.6682785299806576`},{0.1219029197752602`,0.8762088974854932`},{0.27180620797642074`,0.8230174081237911`},{0.43621626600350005`,0.769825918762089`},{0.6296398636824169`,0.6199226305609284`},{0.7166804826379295`,0.4990328820116054`},{0.7940499217094962`,0.3829787234042553`},{0.8714193607810629`,0.16054158607350097`},{0.8714193607810629`,-0.013539651837524178`},{0.8714193607810629`,-0.15377176015473887`},{0.7650363820576587`,-0.3955512572533849`},{0.682831353044119`,-0.511605415860735`},{0.5957907340886064`,-0.6421663442940039`},{0.39269595652574374`,-0.7823984526112185`},{0.2621350280924749`,-0.8210831721470019`},{0.10739614994934144`,-0.8646034816247582`},{-0.11020539743944`,-0.8694390715667312`},{-0.2842866353504651`,-0.816247582205029`},{-0.4438611034355715`,-0.758220502901354`},{-0.6227779312885696`,-0.5938104448742747`},{-0.7049829603021093`,-0.4922630560928433`},{-0.782352399373676`,-0.390715667311412`},{-0.8548862485032698`,-0.15377176015473887`},{-0.8548862485032698`,-0.008704061895551257`},{-0.8548862485032698`,0.13152804642166344`},{-0.7726812194897301`,0.3829787234042553`},{-0.6759694206502718`,0.5087040618955513`},{-0.5840932117527862`,0.6344294003868471`},{-0.40517638389978816`,0.7794970986460348`},{-0.2552730956986276`,0.8181818181818182`},{-0.11504098738141291`,0.8762088974854932`},{-0.0038224187160357374`,0.9922630560928434`},{0.6102975039145252`,0.7988394584139265`},{0.9536243897946025`,0.3152804642166344`},{0.9439532099106567`,-0.31334622823984526`},{0.557106014552823`,-0.816247582205029`},{-0.0038224187160357374`,-1.`},{-0.6276135212305425`,-0.7823984526112185`},{-0.9661048171686469`,-0.33268858800773693`},{-0.9564336372847011`,0.3104448742746615`},{-0.5695864419268675`,0.8036750483558994`}};

ShowLabeledGraph[g=RemoveMultipleEdges[AddEdges[Graph[{},List/@v],
Join[
Join@@(Partition[#,2,1]&/@{{1,2,3,4,5,1},{1,6},{2,8},{3,10},{4,12},{5,14},{95,96,66},{68,97,69},{71,98,72},{74,99,75},{77,100,78},{80,101,81},{83,102,84},{86,103,87},{89,104,90},{92,105,93},{18,7,19},{21,8},{8,22},{24,9,25},{27,10,28},{30,11,31},{33,12,34},{36,13,37},{39,14,40},{42,15,43},{45,6,16},{23,73},{26,76},{29,79},{32,82},{85,35},{88,38},{91,41},{94,44},{17,67},{20,70},Sequence@@Partition[Range[46,65],2]}),
Join@@(Partition[#,2,1,1]&/@{Range[6,15],Range[96,105],
{22,51,72,73,74,52,24,23},{30,29,28,55,78,79,80,56},{33,32,31,57,81,82,83,58},{36,35,34,59,84,85,86,60},{39,38,37,61,87,88,89,62},{92,64,42,41,40,63,90,91},{93,65,43,44,45,46,95,94},{66,67,68,48,18,17,16,47},{19,49,69,70,71,50,21,20},{25,26,27,54,77,76,75,53}})]]
],VertexStyle->Disk[.02]]

Tally[Degrees[g]]

Girth[g]

V[g]

RecognizeGraph[g]

HamiltonianQ[g]//Timing

PlanarQ[g]

ConnectedQ[g]

HypohamiltonianGraphQ[g,False]//Timing

HamiltonianPaths[Graph[{"ThomassenGraph105"}],{}]//Timing

HamiltonianPaths[g]//Timing

Canonical embeddings

data=Partition[#,UpTo[10]]&/@Table[Graphics3D[{Red,GraphData[#,"Polyhedron"],Opacity[.8],Yellow,Sphere[]},Boxed->False]&/@GraphData[{"Planar","Hypohamiltonian"},n],{n,{40,42,45}}];

thick=Thickness[.007];
dividers=Thread[Accumulate[Prepend[Length/@data,1]]->thick];

GraphicsGrid[Flatten[data,1],Dividers->{{thick,{True},thick},{True,dividers}},ImageSize->700]

40

42

Embeddings

<<MathWorld`Graphs`

34

{"PlanarHypohamiltonian", {34, 1}} == "TsaiGraphG7"

Names

GraphData[{"PlanarHypohamiltonian",{34,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

img=Import["/Users/eww/Downloads/arXiv-2403.18384v1/img/fig_2ph34.pdf","ImageResolution"->300][[1]]

e[1,2]

g70=CenterGraph@EdgeAdd[VertexAddWithCoordinates[,{{.1,.9},{.9,.1},{.27,.68},{.73,.33}}],UndirectedEdge@@@{{11,31},{31,1},{30,32},{32,13},{31,33},{28,33},{33,34},{34,32},{3,34}}]

g7=Graph[VertexList[g70],Sort[Sort/@EdgeList[g70]],VertexCoordinates->GraphEmbedding[g70]]

g7=;

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[g7]]

Primary

GraphData[{"PlanarHypohamiltonian",{34,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{34,1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{34,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{34,1}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{34,1}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{34,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{34,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{34,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{34,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

Tutte embedding construction 5 #1

g=Graph[RotateGraph[,-4Pi/5]]

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

RecognizeGraph[g]

Tutte embedding construction 4 #1

GraphPlot[RotateGraph[,Pi/4]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{34,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,1}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{34,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{34,1}}],"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[{"PlanarHypohamiltonian",{34,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{34,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{34,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{34,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{34,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{34,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{34,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{34,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{34,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{34,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{34,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{34,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{34,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{34,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{34,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{34,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{34,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{34,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

g=;

Matchstick

GraphData[{"PlanarHypohamiltonian",{34,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{34,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{34,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{34,1}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{34,1}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {34, 2}} == "TsaiGraphG8"

Names

GraphData[{"PlanarHypohamiltonian",{34,2}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

g80=EdgeAdd[VertexAddWithCoordinates[CenterGraph@RotateGraph[,Pi/2],Take[GraphEmbedding[g7],-4]],UndirectedEdge@@@{e[11,32,30],e[1,31,13],e[31,33,34,32],{4,33},{25,34}}]

g8=Graph[VertexList[g80],Sort[Sort/@EdgeList[g80]],VertexCoordinates->GraphEmbedding[g80]]

g8=;

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[g8]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{34,2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{34,2}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{34,2}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Configuration"]//StyleGraphs

config=%[[1]]

AddAllConfigurationEdges[config]//RecognizeGraph

ConfigurationDiagram[config,2]

lines=ConfigurationLinesFromGraph[config]

r=LeviGraph[lines]//RecognizeGraph

FirstCase[GraphData[r,"StandardNames"],{"Incidence",_}]

Perspective

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{34,2}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{34,2}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{34,2}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{34,2}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{34,2}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

Tutte embedding construction 5

g=Graph[RotateGraph[]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{34,2}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,2}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{34,2}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{34,2}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{34,2}}],"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[{"PlanarHypohamiltonian",{34,2}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{34,2}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{34,2}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{34,2}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{34,2}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{34,2}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{34,2}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{34,2}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{34,2}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{34,2}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{34,2}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{34,2}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{34,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{34,2}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{34,2}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{34,2}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedral"]

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

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{34,2}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{34,2}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{34,2}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

37

{"PlanarHypohamiltonian", {37, 1}} == "TsaiGraphG9"

Names

GraphData[{"PlanarHypohamiltonian",{37,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

img=Import["/Users/eww/Downloads/arXiv-2403.18384v1/img/fig_6ph37-1.pdf","ImageResolution"->300][[1]]

g=EdgeAdd[VertexAddWithCoordinates[CenterGraph@ScaleGraph@,{{0,-.2},{-.35,.4},{.35,.4},{-.35,0},{.35,0},{-.2,.2},{.2,.2}}],UndirectedEdge@@@{e[11,32,1,33,13],e[32,36,37,33],e[21,34,36],e[34,31,35,37],{30,31},{35,25}}]

g9=Graph[VertexList[g],Sort[Sort/@EdgeList[g]],VertexCoordinates->GraphEmbedding[g]]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[g9]]

Primary

GraphData[{"PlanarHypohamiltonian",{37,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{37,1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{37,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{37,1}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{37,1}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{37,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{37,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{37,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{37,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

Tutte embedding construction

g=Bilateralize@Graph[RotateGraph[,-2Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{37,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,1}}],TimeConstraint->1])//AbsoluteTiming

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

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

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

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,1}}],"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[{"PlanarHypohamiltonian",{37,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{37,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{37,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{37,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{37,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{37,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{37,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{37,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{37,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{37,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{37,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{37,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{37,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{37,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{37,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{37,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{37,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{37,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{37,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{37,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{37,1}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{37,1}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {37, 2}} == "TsaiGraphG10"

Names

GraphData[{"PlanarHypohamiltonian",{37,2}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

img=Import["/Users/eww/Downloads/arXiv-2403.18384v1/img/fig_6ph37-1.pdf","ImageResolution"->300][[1]]

g=EdgeAdd[VertexAddWithCoordinates[RotateGraph[CenterGraph@ScaleGraph@,Pi/2],{{0,-.2},{-.35,.4},{.35,.4},{-.35,0},{.35,0},{-.2,.2},{.2,.2}}],UndirectedEdge@@@{e[2,34,36,37,35,28],{11,31},e[34,31,35],e[1,32,13,33,30],{36,32},{37,33}}]

g10=Graph[VertexList[g],Sort[Sort/@EdgeList[g]],VertexCoordinates->GraphEmbedding[g]]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[g10]]

IsomorphicGraphQ[g9,10]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{37,2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{37,2}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{37,2}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{37,2}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{37,2}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{37,2}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{37,2}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{37,2}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Bilateralize@Graph[RotateGraph[,2Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{37,2}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,2}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,2}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,2}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,2}}],"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[{"PlanarHypohamiltonian",{37,2}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{37,2}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{37,2}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{37,2}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{37,2}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{37,2}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{37,2}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{37,2}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{37,2}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{37,2}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{37,2}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{37,2}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{37,2}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{37,2}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{37,2}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedral"]

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

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{37,2}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{37,2}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{37,2}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {37, 3}} == "HoG51093"

Names

GraphData[{"PlanarHypohamiltonian",{37,3}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

v={{82,293},{217,263},{174,263},{152,248},{108,248},{82,263},{38,264},{206,230},{190,209},{160,222},{127,217},{91,222},{64,209},{49,232},{250,186},{223,184},{162,184},{142,186},{128,186},{113,186},{93,185},{30,184},{7,186},{206,138},{190,162},{164,149},{126,152},{95,148},{63,161},{49,138},{217,107},{174,107},{174,77},{147,122},{103,123},{82,107},{39,107}};

v=(#-v[[19]])&/@v;

HoG51093=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@(UndirectedEdge@@@{e[33,31,15,2,3,4,1,7,23,37,36,35,33,19,1],e[37,19,2],{23,22},{16,15},e[36,30,22,14,6,5,4],{6,7},e[35,34,32,24,16,8,3],e[30,29,13,14],e[24,25,9,8],e[29,28,27,26,25],e[13,12,11,10,9],e[35,28,21,12,5],e[34,26,17,10,4],e[21,20,27,18,11,20],{17,18},{31,32}})],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51093]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{37,3}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{37,3}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{37,3}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{37,3}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{37,3}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{37,3}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{37,3}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{37,3}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,-4Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{37,3}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,3}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,3}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,3}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,3}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,3}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,3}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,3}}],"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[{"PlanarHypohamiltonian",{37,3}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{37,3}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{37,3}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{37,3}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{37,3}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{37,3}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{37,3}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{37,3}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{37,3}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{37,3}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{37,3}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{37,3}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,3}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{37,3}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

UnitDistanceGraphEmbeddingQ@

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

g=;

Matchstick

GraphData[{"PlanarHypohamiltonian",{37,3}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{37,3}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{37,3}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{37,3}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{37,3}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {37, 4}} == "HoG51094

Names

GraphData[{"PlanarHypohamiltonian",{37,4}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{37,4}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

(v[[#]]=Reverse[v[[#]]])&/@{20,18};

HoG51094=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[33,31,15,2,3,4,1,7,23,37,36,35,33,19,1],e[37,19,2],{23,22},{16,15},e[36,30,22,14,6,5,4],{6,7},e[35,34,32,24,16,8,3],e[30,29,13,14],e[24,25,9,8],e[29,28,27,26,25],e[13,12,11,10,9],e[35,28,21,12,5],e[34,26,17,10,4],e[21,20,17,18,21],{31,32},{20,27},{11,18}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51094]]

Primary

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

All

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

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{37,4}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{37,4}},"Edges"]

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

RecognizeGraph[g]

Degenerate

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

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

Configuration

GraphData[{"PlanarHypohamiltonian",{37,4}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{37,4}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{37,4}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{37,4}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{37,4}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{37,4}},"Graph","IGraph"]//StyleGraphs

Bilateral

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

Circular

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

Circular construction

GraphData[{"PlanarHypohamiltonian",{37,4}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{37,4}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{37,4}},"Planar"]

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

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{37,4}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{37,4}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,-2Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{37,4}},{"RCN","CN"}]

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

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,4}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,4}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,4}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,4}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,4}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,4}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,4}}],"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[{"PlanarHypohamiltonian",{37,4}},"Circulant"]

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

Circulant construction

GraphData[{"PlanarHypohamiltonian",{37,4}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{37,4}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{37,4}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{37,4}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{37,4}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{37,4}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{37,4}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{37,4}},"Halin"]

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

Rigid

GraphData[{"PlanarHypohamiltonian",{37,4}},"Rigid"]

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

Flexible

GraphData[{"PlanarHypohamiltonian",{37,4}},"Flexible"]

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

LCF

GraphData[{"PlanarHypohamiltonian",{37,4}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{37,4}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{37,4}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{37,4}},"LCFNotations"]

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

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,4}},"UnitDistance"]

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

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

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

UnitDistanceGraphEmbeddingQ@

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{37,4}},"Matchstick"]

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

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{37,4}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedral"]

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

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{37,4}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{37,4}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{37,4}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {37, 5}} == "HoG51095

Names

GraphData[{"PlanarHypohamiltonian",{37,5}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

v={{45,165},{64,193},{15,195},{51,283},{74,228},{61,241},{102,284},{139,320},{158,301},{177,282},{145,266},{111,241},{113,213},{88,186},{76,132},{93,152},{116,157},{124,144},{119,179},{154,156},{138,187},{143,222},{160,193},{180,199},{174,235},{222,236},{209,219},{214,180},{186,162},{111,101},{136,117},{170,123},{185,113},{229,157},{265,197},{229,106},{139,70}};

v=(#-Mean[v[[{21,23}]]])&/@v;

HoG51095=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[37,36,35,26,10,9,8,4,3,1,15,30,37,33,34,35],e[3,6,7,8],e[30,31,32,33],e[32,29,28,34],e[28,27,26],e[6,5,2,1],e[15,16,14,2],e[15,17,36,9],e[5,12,13,14],e[7,11,10],e[12,11,25,27],e[13,22,25],e[16,18,19,13],{18,31},e[18,20,29],e[19,21,22,23,24],e[21,20,23],e[29,24,25],{4,17}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51095]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{37,5}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{37,5}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{37,5}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{37,5}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{37,5}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{37,5}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{37,5}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{37,5}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,-4Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{37,5}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,5}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,5}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,5}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,5}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,5}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,5}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,5}}],"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[{"PlanarHypohamiltonian",{37,5}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{37,5}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{37,5}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{37,5}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{37,5}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{37,5}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{37,5}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{37,5}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{37,5}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{37,5}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{37,5}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{37,5}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,5}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{37,5}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

g=;

Matchstick

GraphData[{"PlanarHypohamiltonian",{37,5}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{37,5}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{37,5}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{37,5}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{37,5}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {37, 6}} == "HoG51096

Names

GraphData[{"PlanarHypohamiltonian",{37,6}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

(v[[#]]=Reverse[v[[#]]])&/@{21,23};

HoG51096=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[37,36,35,26,10,9,8,4,3,1,15,30,37,33,34,35],e[3,6,7,8],e[30,31,32,33],e[32,29,28,34],e[28,27,26],e[6,5,2,1],e[15,16,14,2],e[15,17,36,9],e[5,12,13,14],e[7,11,10],e[12,11,25,27],e[13,22,25],e[16,18,19,13],{18,31},e[18,20,29],e[22,23,24,21,19,23],e[29,24,25],{4,17},{20,21}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51096]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{37,6}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{37,6}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{37,6}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{37,6}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{37,6}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{37,6}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{37,6}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{37,6}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,-2Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{37,6}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,6}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,6}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,6}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,6}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{37,6}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,6}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{37,6}}],"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[{"PlanarHypohamiltonian",{37,6}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{37,6}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{37,6}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{37,6}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{37,6}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{37,6}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{37,6}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{37,6}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{37,6}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{37,6}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{37,6}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{37,6}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,6}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{37,6}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

g=;

Matchstick

GraphData[{"PlanarHypohamiltonian",{37,6}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{37,6}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{37,6}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{37,6}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{37,6}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

38

{"PlanarHypohamiltonian", {38, 1}} == "HoG51152"

Names

GraphData[{"PlanarHypohamiltonian",{38,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

img=Import["/Users/eww/Downloads/arXiv-2403.18384v1/img/fig_2ph38.pdf","ImageResolution"->300][[1]]

{w,h}=ImageDimensions[img]

imgs=ImagePartition[img,{w/2,h}]//Flatten

g0=CenterGraph@;

v=GraphEmbedding[g0];

g1=EdgeAdd[VertexAddWithCoordinates[g0,.4v[[{17,18,14,23}]]],UndirectedEdge@@@{e[31,33,32,34,31,17],{23,34},{14,33},{18,32}}]

g2=EdgeAdd[VertexAddWithCoordinates[g1,{{-.4,.4},{.4,-.4},{-.23,.18},{.23,-.18}}],UndirectedEdge@@@{e[35,37,38,36],e[11,35,1],e[30,36,13],{28,37},{3,38}}]

HoG51152=With[{g=g2},Graph[VertexList[g],Sort[Sort/@EdgeList[g]],VertexCoordinates->GraphEmbedding[g]]]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51152]]

Primary

GraphData[{"PlanarHypohamiltonian",{38,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{38,1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{38,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{38,1}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{38,1}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{38,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{38,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{38,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{38,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,-4Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{38,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,1}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{38,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{38,1}}],"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[{"PlanarHypohamiltonian",{38,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{38,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{38,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{38,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{38,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{38,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{38,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{38,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{38,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{38,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{38,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{38,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{38,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{38,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{38,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{38,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{38,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{38,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{38,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{38,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{38,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{38,1}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{38,1}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

(can=FindCanonicalPolyhedron[Polyhedron[],WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {38, 2}} == "HoG51153"

Names

GraphData[{"PlanarHypohamiltonian",{38,2}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

img=Import["/Users/eww/Downloads/arXiv-2403.18384v1/img/fig_2ph38.pdf","ImageResolution"->300][[1]]

{w,h}=ImageDimensions[img]

imgs=ImagePartition[img,{w/2,h}]//Flatten

imgs[[2]]

g0=RotateGraph[CenterGraph@,Pi/2];

v=GraphEmbedding[g0];

g1=EdgeAdd[VertexAddWithCoordinates[g0,.4v[[{17,18,14,23}]]],UndirectedEdge@@@{e[31,33,32,34,31,17],{23,34},{14,33},{18,32}}]

g2=EdgeAdd[VertexAddWithCoordinates[g1,{{-.4,.4},{.4,-.4},{-.23,.18},{.23,-.18}}],UndirectedEdge@@@{e[1,35,13],e[11,36,30],e[35,37,38,36],{4,37},{25,38}}]

HoG51153=With[{g=g2},Graph[VertexList[g],Sort[Sort/@EdgeList[g]],VertexCoordinates->GraphEmbedding[g]]]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51153]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{38,2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{38,2}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{38,2}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{38,2}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{38,2}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{38,2}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{38,2}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{38,2}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{38,2}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,2}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{38,2}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{38,2}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{38,2}}],"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[{"PlanarHypohamiltonian",{38,2}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{38,2}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{38,2}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{38,2}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{38,2}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{38,2}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{38,2}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{38,2}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{38,2}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{38,2}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{38,2}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{38,2}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{38,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{38,2}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,};

Matchstick

GraphData[{"PlanarHypohamiltonian",{38,2}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{38,2}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedral"]

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

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{38,2}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{38,2}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{38,2}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

40

{"PlanarHypohamiltonian", {40, 1}}

GraphData[{"PlanarHypohamiltonian",{40,1}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,1}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,1}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,1}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{40,1}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,1}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,1}}],MaxIterations->1000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,1}}],"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,1}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,1}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,1}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,1}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,1}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 2}}

GraphData[{"PlanarHypohamiltonian",{40,2}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,2}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,2}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,2}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,2}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{40,2}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,2}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

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

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,2}}],"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,2}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,2}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,2}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,2}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,2}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,2}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 3}}

GraphData[{"PlanarHypohamiltonian",{40,3}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,3}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,3}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,3}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,3}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,3}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{40,3}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,3}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

UnitDistanceEmbeddingRefine[Graph@GraphData[{"PlanarHypohamiltonian",{40,3}},"Edges"]]

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

FindSubgraphIsomorphism

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,3}}],TimeConstraint->86400,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

gs={,,,};

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,3}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,3}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,3}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,3}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,3}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,3}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 4}}

GraphData[{"PlanarHypohamiltonian",{40,4}},"StandardName"]

All

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

LCF

GraphData[{"PlanarHypohamiltonian",{40,4}},"LCFSignature"]

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,4}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,4}}],Debug->True]

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

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,4}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

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

FindSubgraphUnitDistanceEmbedding

Print[{#,FindSubgraphUnitDistanceEmbedding[GraphData[#],"Results"->All,TimeConstraint->86400,Debug->Full]//Timing}]&/@{{"PlanarHypohamiltonian",{40,4}}}

gs=UniqueEmbeddings[l]

Matchstick

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

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,4}},{"RCN","CN"}]

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

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,4}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,4}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,4}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 12}}

GraphData[{"PlanarHypohamiltonian",{40,12}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,12}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,12}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,12}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,12}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,12}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{40,12}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,12}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

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

FindSubgraphIsomorphism

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,12}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,12}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,12}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,12}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,12}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,12}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,12}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 15}}

GraphData[{"PlanarHypohamiltonian",{40,15}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,15}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,15}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,15}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,15}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,15}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{40,15}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,15}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,15}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindSubgraphIsomorphism

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,15}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,15}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,15}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,15}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,15}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,15}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,15}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 16}}

GraphData[{"PlanarHypohamiltonian",{40,16}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,16}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,16}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,16}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,16}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,16}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{40,16}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,16}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,16}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,16}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,16}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,16}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,16}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,16}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,16}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,16}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,16}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 17}}

GraphData[{"PlanarHypohamiltonian",{40,17}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,17}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,17}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,17}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,17}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,17}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,17}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,17}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,17}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,17}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,17}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,17}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,17}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,17}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,17}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,17}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 18}}

GraphData[{"PlanarHypohamiltonian",{40,18}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,18}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,18}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,18}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,18}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,18}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,18}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,18}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,18}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,18}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,18}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,18}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,18}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,18}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,18}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,18}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 22}}

GraphData[{"PlanarHypohamiltonian",{40,22}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,22}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,22}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,22}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,22}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,22}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,22}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,22}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,22}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,22}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,22}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,22}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,22}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,22}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,22}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,22}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 23}}

GraphData[{"PlanarHypohamiltonian",{40,23}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,23}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,23}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,23}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,23}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,23}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,23}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,23}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,23}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,23}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,23}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,23}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,23}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,23}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,23}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,23}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 24}}

GraphData[{"PlanarHypohamiltonian",{40,24}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,24}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,24}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,24}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,24}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,24}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{40,24}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,24}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,24}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,24}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,24}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,24}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,24}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,24}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,24}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,24}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 25}}

GraphData[{"PlanarHypohamiltonian",{40,25}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{40,25}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,25}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,25}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,25}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,25}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,25}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{40,25}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,25}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{40,25}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,25}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,25}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,25}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,25}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,25}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,25}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {40, 26}}

Names

GraphData[{"PlanarHypohamiltonian",{40,26}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"StandardNames"]

Construction

https://arxiv.org/pdf/2403.18384.pdf

v={{210,103},{186,109},{201,129},{175,132},{161,122},{171,161},{151,145},{128,118},{94,122},{106,145},{87,158},{82,133},{70,109},{56,131},{46,103},{159,86},{141,87},{114,86},{97,87},{128,40},{187,66},{162,54},{128,57},{95,53},{69,66},{151,29},{106,29},{86,14},{56,46},{14,88},{14,127},{64,176},{107,193},{151,193},{194,175},{244,127},{243,87},{201,43},{170,16},{129,8}};

g=ScaleGraph@Graph[Range@Length@v,UndirectedEdge@@@{e[40,39,38,37,36,35,34,33,32,31,30,29,28,40,20],e[32,11,10,7,6,35],e[30,14,11],e[6,3,37],e[28,27,26,39],e[29,25,24,23,22,21,38],{24,27},{26,22},e[31,15,28],e[39,1,36],e[33,12,15],e[34,4,1],e[14,13,9,8,5,2,3],e[12,20,4],{13,25},{2,21},e[9,19,24],e[5,16,22],e[19,18,8,17,16],e[18,23,17],{9,10},{5,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Through[{PlanarGraphQ,HypohamiltonianGraphQ}[g]]

GroupOrder[GraphAutomorphismGroup[g]]

Primary

GraphData[{"PlanarHypohamiltonian",{40,26}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{40,26}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,26}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{40,26}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{40,26}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{40,26}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{40,26}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{40,26}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{40,26}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction 8

GraphPlot[RotateGraph[,Pi/2]]

v=UnitCirclePoints[8];
v=Join[v,Rest@Subdivide[v[[8]],{-1/2,-1/2},3],Rest@Subdivide[v[[5]],{-1/2,1/2},3],Rest@Subdivide[v[[1]],{1/2,-1/2},3],Rest@Subdivide[v[[4]],{1/2,1/2},3],Delete[Subdivide[{-1/2,0},{1/2,0},6],{4}]];
v=Join[v,{0,v[[#,2]]}&/@{9,12},Subdivide[v[[14]],v[[20]],6][[2;;-2]]];
v=Join[v,{v[[#,1]],v[[13,2]]}&/@{29,30,32,33},{v[[#,1]],v[[10,2]]}&/@{30,31,32}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,8},1,15,16,17,26,20,19,18,4],e[8,9,10,11,21,14,13,12,5],{6,14},{20,3},{7,11},{17,2},e[10,38,39,40,16],e[9,27,15],{27,39},e[{29,33}],e[12,28,18],e[12,34,35,28,36,37],e[35,31,36],{13,29},{33,19},e[29,22,38,23,30],e[32,24,40,25,33],{21,22},{25,26},{23,24},{34,30},e[32,37,18]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Tutte embedding construction 5 #1

GraphPlot[RotateGraph[,0]]

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

RecognizeGraph[g]

Tutte embedding construction 5 #2

GraphPlot[RotateGraph[,-4Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,26}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,26}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,26}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,26}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,26}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,26}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,26}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,26}}],"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[{"PlanarHypohamiltonian",{40,26}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{40,26}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{40,26}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{40,26}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{40,26}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{40,26}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{40,26}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{40,26}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{40,26}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{40,26}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{40,26}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,26}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,26}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,26}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{40,26}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{40,26}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,26}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,26}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,26}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,26}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{40,26}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{40,26}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{40,26}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {40, 27}}

Names

GraphData[{"PlanarHypohamiltonian",{40,27}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"StandardNames"]

Construction

https://arxiv.org/pdf/2403.18384.pdf

v={#/10,#2/9}&@@@{{0,0},{8,0},{10,0},{1,1},{7,1},{8,1},{1,2},{3,2},{7,2},{0,3},{1,3},{2,3},{3,3},{5,3},{7,3},{8,3},{10,3},{3,4},{4,4},{6,4},{7,4},{1,5},{9,5},{0,6},{2,6},{3,6},{5,6},{7,6},{8,6},{9,6},{10,6},{3,7},{7,7},{9,7},{2,8},{3,8},{9,8},{0,9},{2,9},{10,9}};
g=ScaleGraph@Graph[Range@Length@v,UndirectedEdge@@@{e[1,2,3,17,31,40,39,38,24,10,1,4,5,6],e[4,7,11],e[{10,17}],e[{24,31}],e[1,22,38],e[3,23,40],e[12,25,35,39],e[35,36,37,40],e[7,8,9],{22,23},e[8,13,18,26,32,36],e[2,6,16,29],e[5,9,15,21,28,33],e[30,34,37],e[18,19,27,20,21],e[19,14,20],e[32,33,34]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Through[{VertexCount,PlanarGraphQ,HypohamiltonianGraphQ}[g]]

GroupOrder[GraphAutomorphismGroup[g]]

Primary

GraphData[{"PlanarHypohamiltonian",{40,27}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{40,27}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,27}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{40,27}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{40,27}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{40,27}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{40,27}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{40,27}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{40,27}}],"OuterFace"->#]&/@faces

g=;

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,27}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,27}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,27}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,27}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,27}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,27}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,27}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,27}}],"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[{"PlanarHypohamiltonian",{40,27}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{40,27}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{40,27}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{40,27}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{40,27}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{40,27}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{40,27}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{40,27}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{40,27}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{40,27}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{40,27}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,27}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,27}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,27}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{40,27}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{40,27}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,27}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,27}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,};

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,27}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,27}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{40,27}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{40,27}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{40,27}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {40, 28}}

Names

GraphData[{"PlanarHypohamiltonian",{40,28}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"StandardNames"]

Construction

https://arxiv.org/pdf/2403.18384.pdf

v={#/10,#2/9}&@@@{{0,0},{8,0},{10,0},{0,1},{7,1},{8,1},{9,1},{10,1},{1,2},{3,2},{7,2},{1,3},{2,3},{3,3},{5,3},{7,3},{8,3},{-1,4},{11,4},{3,5},{4,5},{6,5},{7,5},{2,6},{3,6},{5,6},{7,6},{8,6},{9,6},{3,7},{7,7},{9,7},{0,8},{1,8},{2,8},{3,8},{10,8},{0,9},{2,9},{10,9}};
g=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[1,2,3,19,40,39,38,18,1,4,5,6,7,8],e[4,33,38],e[3,8,37,40],{18,19},e[4,9,10,11],e[7,29,32],e[{33,37}],e[9,12,34],e[20,21,26,22,23],e[21,15,22],e[{12,17}],e[2,6,17,28],e[30,31,32],e[13,24,35,39],e[{24,29}],e[10,14,20,25,30,36],e[5,11,16,23,27,31],{32,37}}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Through[{VertexCount,PlanarGraphQ,HypohamiltonianGraphQ}[g]]

GroupOrder[GraphAutomorphismGroup[g]]

Primary

GraphData[{"PlanarHypohamiltonian",{40,28}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{40,28}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,28}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{40,28}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{40,28}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{40,28}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{40,28}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{40,28}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{40,28}}],"OuterFace"->#]&/@faces

g=;

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,28}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,28}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,28}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,28}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,28}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,28}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,28}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,28}}],"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[{"PlanarHypohamiltonian",{40,28}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{40,28}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{40,28}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{40,28}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{40,28}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{40,28}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{40,28}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{40,28}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{40,28}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{40,28}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{40,28}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,28}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,28}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,28}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{40,28}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{40,28}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,28}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,28}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,28}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,28}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{40,28}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{40,28}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{40,28}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {40, 29}}

Names

GraphData[{"PlanarHypohamiltonian",{40,29}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"StandardNames"]

Construction

https://arxiv.org/pdf/2403.18384.pdf

v={{64,64},{89,52},{123,38},{124,56},{124,73},{154,86},{94,86},{123,101},{182,110},{170,132},{156,122},{124,117},{89,121},{76,132},{67,109},{41,102},{52,130},{82,160},{102,147},{145,146},{168,160},{198,129},{205,102},{181,64},{156,53},{146,29},{101,29},{81,15},{50,45},{9,87},{9,126},{58,176},{102,191},{146,192},{188,176},{238,126},{238,87},{195,43},{166,15},{124,6}};
g=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[{28,40},28,27,26,39],e[4,5,7,8,12],e[8,6,5],e[29,1,15,17],e[38,24,9,22],e[31,16,28],e[36,23,39],e[32,18,19,20,21,35],e[30,17,18],e[21,22,37],e[15,13,19],e[9,11,20],e[16,14,33],e[34,10,23],e[13,12,11],e[1,2,4,25,24],e[13,7,2,27],e[26,25,6,11],{3,40},e[14,3,10]}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Through[{VertexCount,PlanarGraphQ,HypohamiltonianGraphQ}[g]]

GroupOrder[GraphAutomorphismGroup[g]]

Primary

GraphData[{"PlanarHypohamiltonian",{40,29}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{40,29}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,29}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{40,29}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{40,29}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{40,29}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{40,29}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{40,29}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{40,29}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction 8

g=GraphPlot[RotateGraph[,-6Pi/8]]

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

RecognizeGraph[g]

Tutte embedding construction 5

g=GraphPlot[RotateGraph[,0]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,29}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,29}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,29}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,29}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,29}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,29}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,29}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,29}}],"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[{"PlanarHypohamiltonian",{40,29}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{40,29}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{40,29}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{40,29}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{40,29}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{40,29}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{40,29}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{40,29}}]]

RecognizeGraph[%]

Halin

GraphData[{"PlanarHypohamiltonian",{40,29}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{40,29}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{40,29}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,29}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,29}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,29}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{40,29}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{40,29}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,29}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,29}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,29}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,29}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{40,29}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{40,29}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{40,29}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {40, 30}}

Names

GraphData[{"PlanarHypohamiltonian",{40,30}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"StandardNames"]

Construction

https://arxiv.org/pdf/2403.18384.pdf

v={#/8,#2/11}&@@@{{0,0},{6,0},{8,0},{1,1},{5,1},{6,1},{1,2},{3,2},{5,2},{0,3},{1,3},{2,3},{3,3},{4,3},{5,3},{6,3},{8,3},{4,4},{3,5},{5,5},{1,6},{7,6},{4,7},{0,8},{2,8},{3,8},{4,8},{5,8},{6,8},{7,8},{8,8},{3,9},{5,9},{7,9},{2,10},{3,10},{7,10},{0,11},{2,11},{8,11}};
g=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[1,2,3,17,31,40,39,38,24,10,1,4,5,6],e[{10,17}],e[5,9,15,20,28,33],e[7,8,9],e[4,7,11],e[14,18,19,23,20,18],{23,27},{21,22},e[1,21,38],e[3,22,40],e[35,36,37],e[{24,31}],e[12,25,35,39],e[30,34,37,40],e[8,13,19,26,32,36],e[2,6,16,29],e[32,33,34]}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Through[{VertexCount,PlanarGraphQ,HypohamiltonianGraphQ}[g]]

GroupOrder[GraphAutomorphismGroup[g]]

Primary

GraphData[{"PlanarHypohamiltonian",{40,30}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{40,30}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,30}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{40,30}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{40,30}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{40,30}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{40,30}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{40,30}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{40,30}}],"OuterFace"->#]&/@faces

g=;

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,30}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,30}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,30}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,30}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,30}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,30}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,30}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,30}}],"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[{"PlanarHypohamiltonian",{40,30}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{40,30}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{40,30}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{40,30}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{40,30}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{40,30}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{40,30}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{40,30}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{40,30}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{40,30}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{40,30}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,30}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,30}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,30}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{40,30}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{40,30}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,30}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,30}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,};

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,30}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,30}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{40,30}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{40,30}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{40,30}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {40, 31}}

Names

GraphData[{"PlanarHypohamiltonian",{40,31}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"StandardNames"]

Construction

https://arxiv.org/pdf/2403.18384.pdf

v={#/8,#2/11}&@@@{{0,0},{6,0},{8,0},{0,1},{5,1},{6,1},{7,1},{8,1},{1,2},{3,2},{5,2},{1,3},{2,3},{3,3},{4,3},{5,3},{6,3},{4,4},{-1,5},{9,5},{3,6},{5,6},{4,7},{2,8},{3,8},{4,8},{5,8},{6,8},{7,8},{3,9},{5,9},{7,9},{0,10},{1,10},{2,10},{3,10},{8,10},{0,11},{2,11},{8,11}};
g=ScaleGraph@Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[1,2,3,20,40,39,38,19,1,4,33,38],e[3,8,37,40],{19,20},e[{33,37}],e[{4,8}],e[4,9,12,34],e[2,6,17,28],e[{24,29}],e[9,10,11],e[{12,17}],e[7,29,32],e[30,31,32],e[13,24,35,39],e[10,14,21,25,30,36],e[15,18,21,23,26],e[23,22,18],e[5,11,16,22,27,31],{32,37}}],VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

Through[{VertexCount,PlanarGraphQ,HypohamiltonianGraphQ}[g]]

GroupOrder[GraphAutomorphismGroup[g]]

Primary

GraphData[{"PlanarHypohamiltonian",{40,31}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{40,31}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{40,31}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{40,31}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{40,31}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{40,31}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{40,31}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{40,31}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{40,31}}],"OuterFace"->#]&/@faces

g=;

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{40,31}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,31}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,31}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,31}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,31}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{40,31}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,31}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{40,31}}],"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[{"PlanarHypohamiltonian",{40,31}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{40,31}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{40,31}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{40,31}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{40,31}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{40,31}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{40,31}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{40,31}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{40,31}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{40,31}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{40,31}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{40,31}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,31}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{40,31}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{40,31}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{40,31}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,31}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{40,31}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{40,31}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{40,31}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{40,31}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{40,31}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{40,31}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

41

{"PlanarHypohamiltonian", {41, 1}} == "HoG51150"

Names

GraphData[{"PlanarHypohamiltonian",{41,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

img=Import["/Users/eww/Downloads/arXiv-2403.18384v1/img/fig_2ph41.pdf","ImageResolution"->300][[1]]

g9=LabelGraph@

HoG51150a=EdgeAdd[VertexAddWithCoordinates[g9,.4v[[{17,14,18,23}]]],UndirectedEdge@@@{e[17,38,39,40,41,38],{23,41},{14,39},{40,18}}]

HoG51150=Graph[VertexList[HoG51150a],Sort[Sort/@EdgeList[HoG51150a]],VertexCoordinates->GraphEmbedding[HoG51150a]]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51150]]

Primary

GraphData[{"PlanarHypohamiltonian",{41,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{41,1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{41,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{41,1}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{41,1}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{41,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{41,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{41,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{41,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Bilateralize@Graph[RotateGraph[,-4Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{41,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,1}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{41,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{41,1}}],"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[{"PlanarHypohamiltonian",{41,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{41,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{41,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{41,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{41,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{41,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{41,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{41,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{41,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{41,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{41,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{41,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{41,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{41,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{41,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{41,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{41,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{41,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{41,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{41,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{41,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{41,1}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{41,1}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

Quit

{"PlanarHypohamiltonian", {41, 2}} == "HoG51151"

Names

GraphData[{"PlanarHypohamiltonian",{41,2}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

img=Import["/Users/eww/Downloads/arXiv-2403.18384v1/img/fig_2ph41.pdf","ImageResolution"->300][[1]]

g10=LabelGraph@

v=GraphEmbedding[g10];

HoG51151a=EdgeAdd[VertexAddWithCoordinates[g10,.4v[[{17,14,18,23}]]],UndirectedEdge@@@{e[17,38,39,40,41,38],{23,41},{14,39},{40,18}}]

HoG51151=With[{g=HoG51151a},Graph[VertexList[g],Sort[Sort/@EdgeList[g]],VertexCoordinates->GraphEmbedding[g]]]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51151]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{41,2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{41,2}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{41,2}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{41,2}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{41,2}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{41,2}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{41,2}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{41,2}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Bilateralize[RotateGraph[,-4Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{41,2}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,2}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{41,2}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{41,2}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{41,2}}],"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[{"PlanarHypohamiltonian",{41,2}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{41,2}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{41,2}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{41,2}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{41,2}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{41,2}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{41,2}}&]

Halin

GraphData[{"PlanarHypohamiltonian",{41,2}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{41,2}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{41,2}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{41,2}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{41,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{41,2}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{41,2}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{41,2}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedral"]

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

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{41,2}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{41,2}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{41,2}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

42

{"PlanarHypohamiltonian", {42, 1}}

Names

GraphData[{"PlanarHypohamiltonian",{42,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{42,1}},"StandardNames"]

All

GraphData[{"PlanarHypohamiltonian",{42,1}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,1}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,1}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{42,1}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,1}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,1}}],MaxIterations->100,"ReturnWithMessage"->True]

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,1}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,1}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,1}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,1}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,1}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,1}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 5}} == "WienerArayaGraph"

GraphData[{"PlanarHypohamiltonian",{42,5}},"StandardName"]

{"PlanarHypohamiltonian", {42, 6}}

GraphData[{"PlanarHypohamiltonian",{42,6}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,6}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,6}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,6}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,6}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,6}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,6}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,6}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

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

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,6}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,6}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,6}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,6}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,6}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,6}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,6}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 8}}

GraphData[{"PlanarHypohamiltonian",{42,8}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,8}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,8}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,8}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,8}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,8}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{42,8}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,8}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,8}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,8}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,8}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,8}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,8}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,8}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,8}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,8}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 9}}

GraphData[{"PlanarHypohamiltonian",{42,9}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,9}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,9}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,9}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,9}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,9}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{42,9}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,9}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,9}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,9}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,9}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,9}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,9}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,9}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,9}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,9}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 10}}

GraphData[{"PlanarHypohamiltonian",{42,10}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,10}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,10}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,10}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,10}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,10}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,10}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,10}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,10}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,10}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,10}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,10}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,10}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,10}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,10}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,10}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,10}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 11}}

GraphData[{"PlanarHypohamiltonian",{42,11}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,11}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,11}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,11}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,11}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,11}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,11}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,11}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,11}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,11}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

g=;

RecognizeGraph@g

UnitDistanceGraphEmbeddingQ@g

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,11}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,11}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,11}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,11}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,11}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,11}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,11}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 12}}

GraphData[{"PlanarHypohamiltonian",{42,12}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,12}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,12}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,12}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,12}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,12}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,12}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,12}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,12}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,12}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,12}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,12}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,12}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,12}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,12}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,12}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 13}}

GraphData[{"PlanarHypohamiltonian",{42,13}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,13}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,13}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,13}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,13}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,13}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,13}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,13}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,13}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,13}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,13}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,13}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,13}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,13}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,13}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,13}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,13}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 14}}

GraphData[{"PlanarHypohamiltonian",{42,14}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,14}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,14}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,14}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,14}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,14}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,14}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,14}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,14}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,14}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,14}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,14}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,14}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,14}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,14}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,14}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 26}}

GraphData[{"PlanarHypohamiltonian",{42,26}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,26}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,26}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,26}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,26}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,26}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,26}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,26}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,26}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,26}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,26}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,26}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,26}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,26}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,26}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,26}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,26}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 45}}

GraphData[{"PlanarHypohamiltonian",{42,45}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,45}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,45}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,45}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,45}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,45}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,45}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,45}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,45}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,45}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,45}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,45}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,45}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,45}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,45}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,45}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 48}}

GraphData[{"PlanarHypohamiltonian",{42,48}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,48}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,48}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,48}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,48}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,48}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,48}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,48}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,48}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,48}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,48}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,48}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,48}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,48}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,48}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,48}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 49}}

GraphData[{"PlanarHypohamiltonian",{42,49}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,49}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,49}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,49}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,49}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,49}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,49}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,49}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,49}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,49}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,49}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,49}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,49}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,49}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,49}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,49}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,49}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 50}}

GraphData[{"PlanarHypohamiltonian",{42,50}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,50}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,50}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,50}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,50}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,50}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,50}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,50}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,50}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,50}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,50}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,50}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,50}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,50}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,50}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,50}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 51}}

GraphData[{"PlanarHypohamiltonian",{42,51}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,51}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,51}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,51}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,51}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,51}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,51}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,51}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,51}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,51}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,51}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,51}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,51}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,51}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,51}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,51}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 54}}

GraphData[{"PlanarHypohamiltonian",{42,54}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,54}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,54}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,54}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,54}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,54}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,54}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,54}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,54}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,54}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,54}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,54}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,54}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,54}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,54}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,54}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 55}}

GraphData[{"PlanarHypohamiltonian",{42,55}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,55}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,55}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,55}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,55}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,55}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,55}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,55}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,55}}],MaxIterations->5500,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,55}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,55}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,55}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,55}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,55}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,55}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,55}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 56}}

GraphData[{"PlanarHypohamiltonian",{42,56}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,56}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,56}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,56}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,56}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,56}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,56}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,56}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,56}}],MaxIterations->5600,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,56}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,56}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,56}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,56}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,56}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,56}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,56}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 57}}

GraphData[{"PlanarHypohamiltonian",{42,57}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,57}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,57}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,57}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,57}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,57}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,57}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,57}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,57}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,57}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,57}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,57}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,57}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,57}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,57}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,57}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,57}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 58}}

GraphData[{"PlanarHypohamiltonian",{42,58}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,58}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,58}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,58}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,58}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,58}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,58}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,58}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,58}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,58}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,58}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,58}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,58}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,58}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,58}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,58}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 59}}

GraphData[{"PlanarHypohamiltonian",{42,59}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,59}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,59}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,59}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,59}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,59}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,59}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,59}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,59}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,59}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,59}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,59}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,59}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,59}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,59}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,59}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 60}}

GraphData[{"PlanarHypohamiltonian",{42,60}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,60}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,60}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,60}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,60}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,60}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,60}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,60}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,60}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,60}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,60}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,60}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,60}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,60}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,60}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,60}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 61}}

GraphData[{"PlanarHypohamiltonian",{42,61}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,61}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,61}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,61}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,61}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,61}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,61}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,61}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,61}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,61}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,61}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,61}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,61}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,61}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,61}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,61}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 62}}

GraphData[{"PlanarHypohamiltonian",{42,62}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,62}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,62}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,62}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,62}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,62}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,62}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,62}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,62}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,62}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,62}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,62}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,62}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,62}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,62}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,62}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 65}}

GraphData[{"PlanarHypohamiltonian",{42,65}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,65}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,65}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,65}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,65}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,65}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,65}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,65}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,65}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,65}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,65}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,65}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,65}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,65}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,65}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,65}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 76}}

GraphData[{"PlanarHypohamiltonian",{42,76}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,76}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,76}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,76}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,76}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,76}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,76}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,76}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,76}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,76}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,76}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,76}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,76}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,76}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,76}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,76}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 84}}

GraphData[{"PlanarHypohamiltonian",{42,84}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,84}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,84}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,84}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,84}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,84}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{42,84}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,84}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,84}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,84}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,84}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,84}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,84}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,84}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,84}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,84}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 85}}

GraphData[{"PlanarHypohamiltonian",{42,85}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,85}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,85}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,85}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,85}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,85}}],Debug->True]

GraphData[{"PlanarHypohamiltonian",{42,85}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,85}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,85}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,85}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,85}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,85}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,85}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,85}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,85}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,85}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 86}}

GraphData[{"PlanarHypohamiltonian",{42,86}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,86}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,86}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,86}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,86}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,86}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,86}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,86}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,86}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,86}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,86}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,86}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,86}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,86}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,86}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,86}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 91}}

GraphData[{"PlanarHypohamiltonian",{42,91}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,91}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,91}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,91}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,91}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,91}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,91}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,91}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,91}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,91}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,91}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,91}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,91}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,91}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,91}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,91}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 95}}

GraphData[{"PlanarHypohamiltonian",{42,95}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,95}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,95}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,95}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,95}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,95}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,95}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,95}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,95}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,95}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,95}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,95}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,95}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,95}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,95}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,95}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,95}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 98}}

GraphData[{"PlanarHypohamiltonian",{42,98}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,98}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,98}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,98}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,98}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,98}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,98}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,98}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,98}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,98}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,98}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,98}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,98}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,98}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,98}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,98}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,98}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 99}}

GraphData[{"PlanarHypohamiltonian",{42,99}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,99}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,99}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,99}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,99}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,99}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,99}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,99}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,99}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,99}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,99}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,99}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,99}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,99}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,99}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,99}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,99}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 101}}

GraphData[{"PlanarHypohamiltonian",{42,101}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,101}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,101}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,101}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,101}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,101}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,101}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,101}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,101}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,101}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,101}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,101}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,101}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,101}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,101}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,101}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 103}}

GraphData[{"PlanarHypohamiltonian",{42,103}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,103}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,103}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,103}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,103}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,103}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,103}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,103}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,103}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,103}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,103}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,103}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,103}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,103}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,103}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,103}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,103}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 106}}

GraphData[{"PlanarHypohamiltonian",{42,106}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,106}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,106}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,106}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,106}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,106}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,106}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,106}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,106}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,106}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,106}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,106}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,106}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,106}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,106}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,106}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 109}}

GraphData[{"PlanarHypohamiltonian",{42,109}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,109}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,109}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,109}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,109}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,109}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,109}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,109}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,109}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,109}}],MaxIterations->1*^4,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,109}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,109}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,109}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,109}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,109}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,109}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,109}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 113}}

GraphData[{"PlanarHypohamiltonian",{42,113}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,113}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,113}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,113}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,113}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,113}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,113}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,113}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,113}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

Linux:

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,113}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,113}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,113}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,113}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,113}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,113}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,113}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

{"PlanarHypohamiltonian", {42, 116}}

GraphData[{"PlanarHypohamiltonian",{42,116}},"StandardName"]

All

GraphData[{"PlanarHypohamiltonian",{42,116}},"Graph","All"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{42,116}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{42,116}},"Graph","LCF"]//StyleGraphs

UnitDistance

GraphData[{"PlanarHypohamiltonian",{42,116}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{42,116}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{42,116}},"Graph","UnitDistance"]//StyleGraphs

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

Select[UnitDistanceEmbeddingRefine/@Complement@@(GraphData[{"PlanarHypohamiltonian",{42,116}},"Graph",#]&/@{"All","UnitDistance"}),UnitDistanceGraphEmbeddingQ]

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{42,116}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

l=FindSubgraphIsomorphism[GraphData[{"PlanarHypohamiltonian",{42,116}}],TimeConstraint->300,"Results"->All]//Timing

gs=UniqueEmbeddings[l]

Matchstick

GraphData[{"PlanarHypohamiltonian",{42,116}},"Graph","Matchstick"]//StyleGraphs

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{42,116}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{42,116}},"Graph","MinimalCrossing"]//StyleGraphs

3D

Graph3D[GraphData[{"PlanarHypohamiltonian",{42,116}},"Edges"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{42,116}},"Edges"]

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

RecognizeGraph[g]

MinimalCrossing Construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{42,116}}]]]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

43

{"PlanarHypohamiltonian", {43, 1}} == "HoG51107"

Names

GraphData[{"PlanarHypohamiltonian",{43,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

v={#/10,#2/8}&@@@{{0,0},{1,0},{8,0},{10,0},{1,1},{7,1},{8,1},{9,1},{10,1},{0,2},{1,2},{3,2},{7,2},{1,3},{2,3},{3,3},{5,3},{7,3},{8,3},{5/2,4},{3,4},{4,4},{6,4},{7,4},{2,5},{3,5},{5,5},{7,5},{8,5},{9,5},{3,6},{7,6},{9,6},{10,6},{0,7},{1,7},{2,7},{3,7},{9,7},{0,8},{2,8},{9,8},{10,8}};
HoG51107=Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[1,2,3,4,9,34,43,42,41,40,35,10,1,20,40],e[4,20,43],e[2,5,11,14,36],e[35,36,37,38,39],e[5,6,7,8,9],e[10,11,12,13],e[3,7,19,29],e[25,26,27,28,29,30],e[8,30,33,39,42],e[12,16,21,26,31,38],e[14,15,16,17,18,19],e[6,13,18,24,28,32],e[15,25,37,41],e[31,32,33,34],e[17,23,27,22,17],{23,24},{21,22}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51107]]

Primary

GraphData[{"PlanarHypohamiltonian",{43,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{43,1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{43,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{43,1}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{43,1}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{43,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{43,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{43,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{43,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,2Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{43,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{43,1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{43,1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{43,1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{43,1}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{43,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{43,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{43,1}}],"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[{"PlanarHypohamiltonian",{43,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{43,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{43,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{43,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{43,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{43,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{43,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{43,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{43,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{43,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{43,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{43,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{43,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{43,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{43,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{43,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{43,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{43,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{43,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{43,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{43,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{43,1}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{43,1}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

45

{"PlanarHypohamiltonian", {45, 1}}

Names

GraphData[{"PlanarHypohamiltonian",{45,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"StandardNames"]

Primary

GraphData[{"PlanarHypohamiltonian",{45,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{45,1}},"EdgeList"]]

Default embedding

Old:

g=Graph@GraphData[{"PlanarHypohamiltonian",{45,1}},"Edges"]

GraphPlot@GraphData[{"PlanarHypohamiltonian",{45,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{45,1}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{45,1}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{45,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{45,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{45,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{45,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

Tutte embedding construction 7

g=Bilateralize[RotateGraph[,-6Pi/7]]

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

RecognizeGraph[g]

Tutte embedding construction 6

GraphPlot[RotateGraph[,Pi/6]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{45,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{45,1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{45,1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{45,1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{45,1}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{45,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{45,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{45,1}}],"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[{"PlanarHypohamiltonian",{45,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{45,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{45,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{45,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{45,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{45,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{45,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{45,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{45,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{45,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{45,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{45,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{45,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{45,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{45,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{45,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{45,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{45,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"PlanarHypohamiltonian",{45,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{45,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{45,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{45,1}},"Polyhedron"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{45,1}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->1000,MaxIterations->10000,PrecisionGoal->20])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

46

{"PlanarHypohamiltonian", {46, 1}} == "HoG51108"

Names

GraphData[{"PlanarHypohamiltonian",{46,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

v={#/12,#2/6}&@@@{{8,-1},{0,0},{2,0},{8,0},{12,0},{0,1},{1,1},{2,1},{4,1},{8,1},{10,1},{11,1},{2,2},{3,2},{4,2},{6,2},{8,2},{9,2},{10,2},{1,3},{2,3},{4,3},{5,3},{7,3},{8,3},{10,3},{11,3},{2,4},{3,4},{4,4},{6,4},{8,4},{9,4},{10,4},{1,5},{2,5},{4,5},{8,5},{10,5},{11,5},{12,5},{0,6},{4,6},{10,6},{12,6},{4,7}};
HoG51108=Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[1,5,41,45,46,42,6,2,1,46],e[2,3,4,5],e[6,7,8,9,10,11,12,27,40],{5,12},e[7,20,35,42,43,44,45],e[3,8,13,21,28,36],e[13,14,15,16,17,18,19],e[11,19,26,34,39,44],e[{35,41}],e[{28,34}],{20,21},{26,27},e[9,15,22,30,37,43],e[16,24,31,23,16],{22,23},{24,25},e[4,10,17,25,32,38],{18,33},{14,29}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51108]]

Primary

GraphData[{"PlanarHypohamiltonian",{46,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{46,1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{46,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Degenerate"]

Configuration

Perspective

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{46,1}},"NotationRules","HoneycombToroidal"]

Generalized-Petersen

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{46,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{46,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{46,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{46,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,Pi-Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{46,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,1}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{46,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{46,1}}],"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[{"PlanarHypohamiltonian",{46,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{46,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{46,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{46,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{46,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{46,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{46,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{46,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{46,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{46,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{46,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{46,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{46,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{46,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{46,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{46,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{46,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{46,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

Matchstick

GraphData[{"PlanarHypohamiltonian",{46,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{46,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{46,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{46,1}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{46,1}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {46, 2}} == "HoG51109"

Names

GraphData[{"PlanarHypohamiltonian",{46,2}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

v={#/10,#2/8}&@@@{{7,-1},{0,0},{2,0},{6,0},{10,0},{0,1},{1,1},{2,1},{4,1},{6,1},{8,1},{9,1},{2,2},{3,2},{4,2},{5,2},{6,2},{7,2},{8,2},{5,3},{1,4},{2,4},{4,4},{6,4},{8,4},{9,4},{5,5},{2,6},{3,6},{4,6},{5,6},{6,6},{7,6},{8,6},{1,7},{2,7},{4,7},{6,7},{8,7},{9,7},{10,7},{0,8},{4,8},{8,8},{10,8},{4,9}};
HoG51109=Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[2,1,5,41,45,46,42,6,2,3,4,5,12,26,40],e[{6,12}],e[7,21,35,42,43,44,45],{1,46},e[3,8,13,22,28,36],e[{35,41}],{21,22},{25,26},e[{13,19}],e[11,19,25,34,39,44],{14,29},e[9,15,23,30,37,43],e[16,20,24,27,23,20],e[{28,34}],{18,33},e[4,10,17,24,32,38],{27,31}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51109]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{46,2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{46,2}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{46,2}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{46,2}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{46,2}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{46,2}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{46,2}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{46,2}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Graph[RotateGraph[,-2Pi/5]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{46,2}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,2}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{46,2}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{46,2}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{46,2}}],"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[{"PlanarHypohamiltonian",{46,2}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{46,2}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{46,2}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{46,2}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{46,2}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{46,2}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{46,2}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{46,2}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{46,2}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{46,2}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{46,2}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{46,2}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{46,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{46,2}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{46,2}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{46,2}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedral"]

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

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{46,2}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{46,2}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{46,2}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

If[%===False,Quit[]]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

49

{"PlanarHypohamiltonian", {49, 1}} == "HoG51110"

Names

GraphData[{"PlanarHypohamiltonian",{49,1}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

v={#/14,#2/10}&@@@{{0,0},{14,0},{2,1},{7,1},{12,1},{4,2},{10,2},{2,3},{3,3},{5,3},{9,3},{11,3},{12,3},{0,4},{1,4},{3,4},{5,4},{7,4},{9,4},{11,4},{13,4},{14,4},{2,5},{5,5},{6,5},{8,5},{9,5},{0,6},{1,6},{3,6},{5,6},{7,6},{9,6},{11,6},{13,6},{14,6},{2,7},{3,7},{5,7},{9,7},{11,7},{12,7},{4,8},{10,8},{2,9},{7,9},{12,9},{0,10},{14,10}};
HoG51110=Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[1,2,22,23,36],e[36,49,48,28,23,14],e[14,1,3,4,5,2],e[48,45,46,47,49],e[3,8,15,29,37,45],e[8,9,6,4,7,12,13,21,22],e[6,10,17,24,31,39,43,38,30,16,9],{14,15},{28,29},{37,38},e[43,46,44,41,34,20,12],e[7,11,19,27,33,40,44],e[36,35,42,47],e[30,31,32,33,34],{41,42},e[24,25,32,26,18,25],e[16,17,18,19,20],{26,27},{10,11},{5,13},{21,35},{39,40}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51110]]

Primary

GraphData[{"PlanarHypohamiltonian",{49,1}}]//StyleGraphs[#,ImageSize->Small]&

All

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{49,1}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{49,1}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{49,1}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{49,1}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{49,1}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{49,1}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{49,1}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{49,1}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Bilateralize@Graph[RotateGraph[,Pi/2-2Pi/8]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{49,1}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,1}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,1}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,1}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,1}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,1}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{49,1}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{49,1}}],"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[{"PlanarHypohamiltonian",{49,1}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{49,1}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{49,1}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{49,1}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{49,1}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{49,1}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{49,1}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{49,1}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{49,1}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{49,1}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{49,1}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{49,1}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{49,1}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{49,1}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData[{"PlanarHypohamiltonian",{49,1}},"VertexList"],GraphData[{"PlanarHypohamiltonian",{49,1}},"EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{49,1}}],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

UnitDistanceGraphEmbeddingQ@

FindUnitDistanceEmbedding[GraphData[{"PlanarHypohamiltonian",{49,1}}],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={};

Matchstick

GraphData[{"PlanarHypohamiltonian",{49,1}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{49,1}},"Edges"]]

3D All

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph",{"3D","All"}]

3D UnitDistance

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedral"]

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{49,1}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{49,1}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{49,1}}],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

{"PlanarHypohamiltonian", {49, 2}} == "HoG51111"

Names

GraphData[{"PlanarHypohamiltonian",{49,2}},"StandardName"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"StandardNames"]

Construction

Tsai, C.-C.  "Small Planar Hypohamiltonian Graphs."  27 Mar 2024.  https://arxiv.org/abs/2403.18384

v={{0,0},{12,0},{2,1},{6,1},{10,1},{4,2},{8,2},{2,3},{3,3},{5,3},{7,3},{9,3},{10,3},{0,4},{1,4},{3,4},{5,4},{6,4},{7,4},{9,4},{11,4},{12,4},{2,6},{5,6},{7,6},{6,7},{0,8},{1,8},{3,8},{5,8},{6,8},{7,8},{9,8},{11,8},{12,8},{2,9},{3,9},{5,9},{7,9},{9,9},{10,9},{4,10},{8,10},{2,11},{6,11},{10,11},{0,12},{12,12},{6,5}};
HoG51111=Graph[Range@Length@v,Sort[Sort/@UndirectedEdge@@@{e[1,2,22,21,34,35,48,47,27,28,15,14,1,3,4,5,2],e[14,23,27],e[22,23,35],e[3,8,15],e[28,36,44,47],e[34,41,46,48],e[5,13,21],e[8,9,6,4,7,12,13],e[9,16,29,37,36],e[44,45,46],e[37,42,45,43,40,41],e[6,10,11,7],e[10,17,24,30,38,42],e[12,20,33,40],e[11,19,25,32,39,43],{38,39},e[18,49,25,26,24,49],e[16,17,18,19,20],e[{29,33}],{26,31}}],VertexCoordinates->v,VertexLabels->Automatic]

Through[{VertexCount,EdgeCount,PlanarGraphQ,HypohamiltonianGraphQ}[HoG51111]]

Primary

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

All

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","All"]//StyleGraphs

Inexact

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

Embedding types

GraphDataEmbeddings[GraphData[{"PlanarHypohamiltonian",{49,2}},"EdgeList"]]

Default embedding

GraphPlot@GraphData[{"PlanarHypohamiltonian",{49,2}},"Edges"]

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

RecognizeGraph[g]

Degenerate

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Degenerate"]

Configuration

GraphData[{"PlanarHypohamiltonian",{49,2}},"Configuration"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Configuration"]//StyleGraphs

Perspective

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Perspective"]//StyleGraphs

Perspective construction

GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"]

PolyhedronGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"]]

Manipulate[PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{x,y,z}],{x,-1,1},{y,-1,1},{z,-1,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{0,.01,.01}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{0,0,1}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{0,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{1,0.01,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{1,1,0}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{1,0,1,-Pi/2}]

PolyhedronProjectionGraph[GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"],{1,1,1}]

HoneycombToroidal construction

GraphData[{"PlanarHypohamiltonian",{49,2}},"NotationRules","HoneycombToroidal"]

GeneralizedPetersen

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","GeneralizedPetersen"]//StyleGraphs

IGraph

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","IGraph"]//StyleGraphs

Bilateral

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Bilateral"]//StyleGraphs

Circular

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Circular"]//StyleGraphs

Circular construction

GraphData[{"PlanarHypohamiltonian",{49,2}},"Hamiltonian"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"HamiltonianCycleCount"]

Planar

GraphData[{"PlanarHypohamiltonian",{49,2}},"Planar"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData[{"PlanarHypohamiltonian",{49,2}}]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData[{"PlanarHypohamiltonian",{49,2}}],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

RecognizeGraph/@gs

Tutte embedding construction

g=Bilateralize@Graph[RotateGraph[,-4Pi/8]]

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

RecognizeGraph[g]

MinimalCrossing

GraphData[{"PlanarHypohamiltonian",{49,2}},{"RCN","CN"}]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,2}}],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,2}}],TimeConstraint->10])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,2}}],TimeConstraint->60])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,2}}],TimeConstraint->3600])//AbsoluteTiming

(cn=CrossingNumber[GraphData[{"PlanarHypohamiltonian",{49,2}}],TimeConstraint->5 3600])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{49,2}}],"CrossingNumber"->cn])//PolyhedralGraphQ

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

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

Table[MinimalCrossingGraph[GraphData[{"PlanarHypohamiltonian",{49,2}}],"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[{"PlanarHypohamiltonian",{49,2}},"Circulant"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Circulant"]//StyleGraphs

Circulant construction

GraphData[{"PlanarHypohamiltonian",{49,2}},"NotationRules","Circulant"]

(ci=CirculantIndices[GraphData[{"PlanarHypohamiltonian",{49,2}}]])//Timing

Complement graph

compl=GraphData[{"PlanarHypohamiltonian",{49,2}},"ComplementGraph","Name"]

Line graph

GraphData[{"PlanarHypohamiltonian",{49,2}},"Line"]

LineGraphQ[GraphData[{"PlanarHypohamiltonian",{49,2}}]]//Timing

RootGraph

roots=Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== {"PlanarHypohamiltonian",{49,2}}&]

RootGraph[GraphData[{"PlanarHypohamiltonian",{49,2}}]]

Halin

GraphData[{"PlanarHypohamiltonian",{49,2}},"Halin"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Halin"]//StyleGraphs

Rigid

GraphData[{"PlanarHypohamiltonian",{49,2}},"Rigid"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Rigid"]//StyleGraphs

Flexible

GraphData[{"PlanarHypohamiltonian",{49,2}},"Flexible"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Flexible"]//StyleGraphs

LCF

GraphData[{"PlanarHypohamiltonian",{49,2}},"LCF"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"HamiltonianCycleCount"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"LCFSignature"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"LCFNotations"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","LCF"]//StyleGraphs

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

UnitDistance

GraphData[{"PlanarHypohamiltonian",{49,2}},"UnitDistance"]

UnitDistanceGraphQ[GraphData[{"PlanarHypohamiltonian",{49,2}}],Debug->True]//Timing

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","UnitDistance"]//StyleGraphs

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

UnitDistance by refinement

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

UnitDistanceGraphEmbeddingQ[%]

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

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance by FindUnitDistanceEmbedding

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

UnitDistanceGraphEmbeddingQ@

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

UnitDistance by FindSubgraphUnitDistanceEmbedding

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

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

gs={,};

Matchstick

GraphData[{"PlanarHypohamiltonian",{49,2}},"Matchstick"]

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData[{"PlanarHypohamiltonian",{49,2}},"Edges"]]

3D All

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

3D UnitDistance

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

3D Polyhedron

GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedral"]

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

Graphics3D[{FaceForm[Green,Red],GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron"]}]

3D Canonical

GraphData[{"PlanarHypohamiltonian",{49,2}},"Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData[{"PlanarHypohamiltonian",{49,2}},"Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData[{"PlanarHypohamiltonian",{49,2}}],1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->500000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

GraphData

<<MathWorld`Graphs`

file=OpenAppend["~/planar-hypohamiltonian.m"]

gs={,,,,,};

Do[WriteString[file,GraphDataString[g=gs[[i]],
"StandardName"->{"PlanarHypohamiltonian",{n=VertexCount[g],indx=25+i}},
"Name"->ToString[n]<>"\[Hyphen]planar hypohamiltonian graph "<>ToString[indx],
"Skip"->{"Arboricity","BurningNumber","ConnectedDominatingSet","ConnectedInducedSubgraphPolynomial","ConstructionNumber","CoolingNumber","IdiosyncraticPolynomial","IndependencePolynomial","IrredundancePolynomial","MatchingGeneratingPolynomial","MaximumIndependentVertexSets","MinimumConnectedDominatingSet","MinimumCyclicEdgeCuts","MinimumVertexColorings","MinimumWeightFractionalColoring","MinimumWeightFractionalEdgeColoring","Minors","QuadraticEmbeddingConstant","TotalDominationPolynomial","TuttePolynomial"}
]],{i,{6}}]

Close[file]