Crossing Number Graphs

Ed Pegg Jr and Geoffrey Exoo

Sudoku is just one of hundreds of great puzzle types. This column presents obscure logic puzzles of various sorts and challenges the readers to solve the puzzles in two ways: by hand and with Mathematica. For the latter, solvers are invited to send their code to edp@wolfram.com. The person submitting the most elegant solution will receive a prize.

The Brick Factory

In 1940, the Hungarian mathematician Paul Turán was sent to a forced labor camp by the Nazis. Though every part of his life was brutally controlled, he still managed to do serious mathematics under the most extreme conditions. While forced to collect wire from former neighborhoods, he would be thinking about mathematics. When he found scraps of paper, he wrote down his theorems and conjectures. Some of these scraps were smuggled to Paul Erdős. One problem he developed is now called the brick factory problem.

We worked near Budapest, in a brick factory. There were some kilns where the bricks were made and some open storage yards where the bricks were stored. All the kilns were connected to all the storage yards. The bricks were carried on small wheeled trucks to the storage yards. All we had to do was to put the bricks on the trucks at the kilns, push the trucks to the storage yards, and unload them there. We had a reasonable piece rate for the trucks, and the work itself was not difficult; the trouble was at the crossings. The trucks generally jumped the rails there, and the bricks fell out from them, in short this caused a lot of trouble and loss of time which was precious to all of us. We were all sweating and cursing at such occasions, I too; but nolens volens the idea occurred to me that this loss of time could have been minimized if the number of crossings of the rails had been minimized. But what is the minimum number of crossings? I realized after several days that the actual situation could have been improved, but the exact solution of the general problem with m kilns and n storage yards seemed to be very difficult. The problem occurred to me again at my first visit to Poland where I met Zarankiewicz [1].

Complete Graphs

Turán built the field of extremal graph theory while a prisoner. Many good puzzles come from graphs, such as the familiar problem of connecting water, gas, and electricity to three houses without the lines crossing. This would be equivalent to (Subscript[K, 3,3]) or 3 kilns, 3 storage yards. Without some form of cheating, the problem is impossible, since one crossing is required. (Try proving the impossibility with Euler’s formula: vertices+faces-edges=2). Consider the brick factory problem with 4 kilns at the top, and 3 storage yards at the bottom, or (Subscript[K, 3,4]). What is the minimal number of crossings? If you are looking at the notebook version of this column in Mathematica 6 or later, you can drag the vertices—first double-click a vertex twice.

Column[{GraphPlot[GraphData[{"CompleteBipartite",{3,4}},"EdgeRules"],VertexCoordinateRules->Thread[Range[7]-> Reverse/@GraphData[{"CompleteBipartite",{3,4}},"VertexCoordinates"]]],{"CompleteBipartite",{3,4}}},"Center"]

For (Subscript[K, 7,7]), in 1970 Kleitman proved the minimal number of crossings was 77, 79, or 81 [2]. He ended his paper with “Which?”—a question not solved until 1993, when Woodall showed the answer was 81 [3].

For many years, the number of crossings for the complete graph (Subscript[K, 10]) was known to be either 61 or 62, with a proof of 62 finally arriving in 2000 [4]. Below are pictures of the graph in two forms, one symmetric, the other with minimal crossings. Due to the tediousness of counting that many crossings by hand, and the 40-plus years required to solve it, I do not consider this a friendly puzzle for casual solving. The Rectilinear Crossing Number (RCN) project, maintained by Oswin Aichholzer, has solved all complete graphs up to (Subscript[K, 19]), with 1318 crossings [5]. The calculation and bounding of crossing numbers remains active to this day [6, 7].

Column[{Row[Append[#,ImageSize->{100,Automatic}]&/@GraphData[{"Complete",10},"AllImages"]],{"Complete",10}},"Center"]

GraphData

GraphData is an extensive built-in data paclet included with Mathematica 7 [8]. It contains more than 3000 graphs, in excess of 200 graph properties, and one or more attractive embeddings for most of its constituent graphs. GraphData has been painstakingly compiled by Eric Weisstein and myself making use of extensive Mathematica computations, programming, hand-drawings, careful mining of the graph theoretic literature, and feedback from a number of prominent graph theorists. (If you have any additions to suggest for GraphData, please feel free to email them to eww@wolfram.com.) For example, here are a few 30-vertex graphs from GraphData[30].

Grid[Partition[Column[{Append[GraphPlot@GraphData[#],ImageSize->{70,Automatic}],#},"Center"]&/@
{{"CubicTransitive",57}, "FosterCage","LeviGraph","DoubleStarSnark","MeringerGraph","WongGraph" },3]]

Crossing Number Graphs

A graph with no crossings is a planar graph. Here is a Wolfram Demonstration (“Planarity”) for solving planar graph embedding puzzles [9, 10]. You can drag vertices.

SegmentIntersectionQ[{{{x1_,y1_},{x2_,y2_}},{{x3_,y3_},{x4_,y4_}}}]:=Quiet[If[Length[Intersection[SegmentPoints[{{x1,y1},{x2,y2}}],SegmentPoints[{{x3,y3},{x4,y4}}]]]>1,True,If[{x1,y1}=={x2,y2}||{x3,y3}=={x4,y4},True,If[{x1,y1}=={x3,y3}||{x1,y1}=={x4,y4}||{x2,y2}=={x3,y3}||{x2,y2}=={x4,y4},False,With[{LineIntersection=Solve[{Det[{{x,y,1},{x1,y1,1},{x2,y2,1}}]==0,Det[{{x,y,1},{x3,y3,1},{x4,y4,1}}]==0},{x,y}]},With[{LineIntX=FullSimplify[Flatten[{x,y}/.LineIntersection][[1]]],LineIntY=FullSimplify[Flatten[{x,y}/.LineIntersection][[2]]]},If[LineIntersection≠{}&&((((Positive[FullSimplify[x1-LineIntX]]&&Positive[FullSimplify[LineIntX-x2]])||(Negative[FullSimplify[x1-LineIntX]]&&Negative[FullSimplify[LineIntX-x2]]))||((Positive[FullSimplify[y1-LineIntY]]&&Positive[FullSimplify[LineIntY-y2]])||(Negative[FullSimplify[y1-LineIntY]]&&Negative[FullSimplify[LineIntY-y2]])))&&(((Positive[FullSimplify[x3-LineIntX]]&&Positive[FullSimplify[LineIntX-x4]])||(Negative[FullSimplify[x3-LineIntX]]&&Negative[FullSimplify[LineIntX-x4]]))||((Positive[FullSimplify[y3-LineIntY]]&&Positive[FullSimplify[LineIntY-y4]])||(Negative[FullSimplify[y3-LineIntY]]&&Negative[FullSimplify[LineIntY-y4]])))),True,False]]]]]]]

SegmentPoints[{{x1_,y1_},{x2_,y2_}}]:=If[x1==x2,Table[{x1,y},{y,Min[y1,y2],Max[y1,y2]}],Select[Table[{x,((y2-y1)/(x2-x1))*(x-x1)+y1},{x,Min[x1,x2],Max[x1,x2]}],IntegerQ[Last[#1]]&]]

crossings[{point_List,linelist_List}]:=({If[MemberQ[Last[Transpose[#1]],True],Red,Green],Line[(point[[#1]]&)/@#1[[1,1]]]}&)/@Split[Sort[Flatten[With[{lines=Subsets[linelist,{2}]},Table[({#1,SegmentIntersectionQ[Map[point[[#1]]&,lines[[kk]],{2}]]}&)/@lines[[kk]],{kk,1,Length[lines]}]],1]],First[#1]==First[#2]&];

UnsortedUnion[x_]:=Reap[Sow[1,x],_,#1&][[2]]

planar={"Hzu\\kK[","Hzu\\kKU","Hzu\\kLo","HzuXkMb","H|twwkR","H|twwkT","H|twwks","H|twwmW","H|twwkY","H|twWkZ","H|toyWN","H|twzHD","H|twzH`","H|twzGs","H|twzJG","H|tw~B@","H|tw~@c","H|toy[F","H|toy\\H","H|soy\\d"};

Manipulate[SeedRandom[sr];With[{graph=ImportString[planar[[index]],{"Graph6","EdgeRules"}][[1]]/.Rule->List},
With[{verts=Max[Flatten[graph]]},DynamicModule[{data=Take[UnsortedUnion[Partition[Table[RandomInteger[{1,9}],{80}],2]],verts]},LocatorPane[Dynamic[data[[Range[verts]]]],Dynamic[Block[{fit,x},
With[{points=Map[Min[9,Max[{1,Round[#]}]]&,data,{2}]},Graphics[{Gray,Point/@Complement[Flatten[Table[{a,b},{a,1,9,1},{b,1,9,1}],1],points],AbsolutePointSize[10],Blue,Point/@points,With[{overlap=Select[Split[Sort[points]],Length[#]>1&]},If[overlap≠{},{AbsolutePointSize[10],Red,Point/@overlap},Gray]],Green,crossings[{points,graph}]},ImageSize->{120,120}]]]],Appearance-> ""]]]],
{{sr,17,"random coordinates"},1,100,1, ImageSize-> Tiny},
{{index,4,"choose graph"},1,20,1,Appearance-> "Labeled", ImageSize-> Tiny},SaveDefinitions->True]

One piece of research I did, with substantial help from Geoffrey Exoo [11], was to catalog the smallest cubic graphs that require a certain number of crossings. I named these objects “crossing number graphs”, or CNGs in this column. We have already met CNG 1, since (Subscript[K, 3,3]) requires one crossing. With two crossings, there are two minimal cubic graphs, one the famous Petersen graph.

Row[{Column[{Append[GraphData["PetersenGraph","AllImages"][[7]],ImageSize->{100,Automatic}],"PetersenGraph"},"Center"],Column[{Append[GraphPlot[CrossingNumberGraph2B[[1]],VertexCoordinateRules->CrossingNumberGraph2B[[2]]],ImageSize->{100,Automatic}],"CNG 2B"},"Center"]}]

With the 3-crossing graphs, there are eight graphs to choose from, with two of them being famous. CNG 3E has been shown in a 3-crossing form; the rest are given as embedding puzzles.

Grid[Partition[Column[{Append[GraphPlot[#[[1,1]], VertexCoordinateRules-> #[[1,2]]],ImageSize->{70,Automatic}],#[[2]]},"Center"]&/@{{CrossingNumberGraph3A,"CNG 3A"},{CrossingNumberGraph3B,"CNG 3B"},{CrossingNumberGraph3C,"Heawood graph"},{CrossingNumberGraph3D,"CNG 3D"},{CrossingNumberGraph3E,"CNG 3E"},{CrossingNumberGraph3F,"CNG 3F"},{CrossingNumberGraph3G,"GP(7,2)"},{CrossingNumberGraph3H,"CNG 3H"}},4]]

In 4-crossing graphs, both are famous. The crossed-prism graph has been solved for you. The 4-crossing version of the Möbius–Kantor graph can probably be improved. This comment applies to almost all embeddings in this column.

Row[Column[{Append[GraphPlot[#[[1,1]], VertexCoordinateRules-> #[[1,2]]],ImageSize->{100,Automatic}],#[[2]]},"Center"]&/@{{CrossingNumberGraph4A,"Möbius-Kantor graph"},{CrossingNumberGraph4B,"8-crossed prism graph"}}]

With 5-crossing cubic graphs, one is famous. So far, all the crossing number graphs included a famous graph, and I thought I was seeing a trend. Both of these are difficult embedding puzzles.

Row[Column[{Append[GraphPlot[#[[1,1]], VertexCoordinateRules-> #[[1,2]]],ImageSize->{100,Automatic}],#[[2]]},"Center"]&/@{{CrossingNumberGraph5A,"Pappus graph"},{CrossingNumberGraph5B,"CNG 5B"}}]

At 6 crossings, all three graphs were incidence graphs for (Subscript[10, 3]) configurations. Configuration puzzle: arrange 10 points to make 10 lines of three points, with three lines through each point. There are 10 such configurations [12]. Again, one famous graph.

Row[Column[{Append[GraphPlot[#[[1,1]],VertexCoordinateRules-> #[[1,2]]],ImageSize->{100,Automatic}],#[[2]]},"Center"]&/@{{CrossingNumberGraph6A,"Desargues graph"},{CrossingNumberGraph6B,"((Subscript[10, 3]))_2-incidence"}, {CrossingNumberGraph6C,"((Subscript[10, 3]))_6-incidence"}}]

The trend of crossing number graphs being famous was shattered with the 7-crossing graphs. There are four such graphs, and none of them seems to be famous.

Row[Column[{Append[GraphPlot[#[[1,1]], VertexCoordinateRules-> #[[1,2]]],ImageSize->{70,Automatic}],#[[2]]},"Center"]&/@{{CrossingNumberGraph7A,"CNG 7A"},{CrossingNumberGraph7B,"CNG 7B"}, {CrossingNumberGraph7C,"CNG 7C"}, {CrossingNumberGraph7D,"CNG 7D"}}]

The five 8-crossing graphs contain the McGee graph and Foster 24A.

Row[Column[{Append[GraphPlot[#[[1,1]], VertexCoordinateRules-> #[[1,2]]],ImageSize->{55,Automatic}],#[[2]]},"Center"]&/@{{CrossingNumberGraph8A,"McGeeGraph"},{CrossingNumberGraph8B,"F024A"}, {CrossingNumberGraph8C,"CNG 8C"}, {CrossingNumberGraph8D,"CNG 8D"},  {CrossingNumberGraph8E,"CNG 8E"}}]

With 26 vertices and beyond, the authors make conjectures. With 26, 28, and 30 vertices, the conjectured maximal crossings are 10, 11, and 13. Note that 9 crossings would not be extremal. The authors welcome expansion of these results. A related existence question, still unsolved, involves the smallest cubic graph such that the crossing number is less than the rectilinear crossing number.

Row[Column[{Append[GraphPlot[#[[1,1]], VertexCoordinateRules-> #[[1,2]], AspectRatio-> 1],ImageSize->{100,100}],#[[2]]},"Center"]&/@{{CrossingNumberGraph10A,"McGee + edge"},{CrossingNumberGraph11A,"Coxeter graph"}, {CrossingNumberGraph13A,"Tutte 8-cage"}}]

No other crossing number graphs are known at this time. If you find any nice embeddings for any of these graphs, please send them to edp@wolfram.com. The crossing number graphs were found by co-author Geoffrey Exoo, using his program gnubar (nu, ν, represents a crossing number; a bar suggests rectilinearity). The many cubic graphs he tested were obtained from Brendan McKay’s nauty program [13]. A brief description of the gnubar analysis of 7-crossing graphs is as follows:

Set as the target the highest crossing number possible. So far, adding two vertices increases the maximum crossing number by one.

Run a fast drawing routine that looks for reasonably good drawings for each graph. An embedding with fewer crossings than the target number eliminates that graph. For n=22, out of 1435720 graphs, 50 graphs remained.

A different randomized graph embedding routine found drawings with six or fewer crossings for all but the four graphs.

Prove that there are no better drawings for these four graphs. This step takes the most time—roughly 150 hours per graph.

Solution for Number Link (Issue 10:3)

Recap of Number Link Rules

As mentioned in Volume 10, Issue 3, a Number Link puzzle follows four basic rules:

A continuous line must connect identical numbers.

Lines must go through the center of a cell horizontally or vertically and never go through the same cell twice.

Lines cannot cross, branch off, or go through other numbered cells.

Every unnumbered square must contain part of a path.

The only person sending in a solving method was Don Knuth.

“Has anybody to your knowledge pointed out that there’s an easy way to “reduce” Number Link to finding Hamiltonian paths? Namely, suppose there are four links, with the digit 1 in cells {1 a,1 b},…, and digit 4 in cells {4 a,4 b}. Extend the n×n grid graph by adding four new vertices [1], [2], [3], [4], and eight new edges 1b—[1]—2a,  2b—[2]—3a,  3b—[3]—4a,  4b—[4]—1a. A solution to the original puzzle is equivalent to a Hamiltonian path in this new graph.”

Don Knuth’s Method

First, for one of the puzzles, five extra points are added to make the base graph.

pts={{{1,1},{3,6}},{{3,2},{1,3}},{{6,2},{6,7}},{{2,1},{7,7}},{{5,3},{6,6}}};
graph = Flatten[{Select[Subsets[Tuples[Range[7],{2}],{2}],Norm[#[[1]]-#[[2]]]==1&],Flatten[MapIndexed[{{8,#2[[1]]+2}, #1}&,Partition[RotateLeft[Flatten[pts,1],1],2],{2}],1]},1];
Graphics[{
MapIndexed[Text[Style[#2[[1]],FontSize-> 14],#1]&,(pts-1/2),{2}],
First[GraphPlot[Rule@@@graph,VertexCoordinateRules->Thread[ Union[Flatten[graph,1]]-> Union[Flatten[graph,1]]-Table[{.5,.5},{54}]]]]},
GridLines-> {Range[0,8],Range[0,8]},PlotRange-> {{0,8},{0,7}},ImageSize->{120,100}]

After that, all Hamiltonian cycles for the graph are found—66648 different cycles in total. The desired graph has the defining point set in order.

<<GraphUtilities`
hamcyc =HamiltonianCycles[Rule@@@graph,100000];
Length[hamcyc]
Select[Range[Length[hamcyc]],Select[hamcyc[[#]],MemberQ[Flatten[pts,1],#]&]==Flatten[pts,1]&]

From that, the solution immediately follows.

solution = Select[Partition[hamcyc[[49823]],2,1,1],Not[MemberQ[Flatten[#],8]]&];
Graphics[{
MapIndexed[Text[Style[#2[[1]],FontSize->14],#1]&,(pts-1/2),{2}],
First[GraphPlot[Rule@@@solution,VertexCoordinateRules->Thread[ Union[Flatten[solution,1]]-> Union[Flatten[solution,1]]-Table[{.5,.5},{49}]]]]},
GridLines-> {Range[0,7],Range[0,7]},PlotRange-> {{0,7},{0,7}},ImageSize->{120,100}]

For solving, Don Knuth has received the Nikoli Puzzle Cyclopedia.

References

P. Turán, “A Note of Welcome,” Journal of Graph Theory, 1(1), 1977 pp. 7–9.

D. J. Kleitman, “The Crossing Number of (Subscript[K, 5,n]),” Journal of Combinatorial Theory, 9, 1970 pp. 315–323.

D. R. Woodall, “Cyclic-Order Graphs and Zarankiewicz’s Crossing-Number Conjecture,” Journal of Graph Theory, 17(6), 1993 pp. 657–691. doi.10.1002/jgt.3190170602.

A. Brodsky, S. Durocher, and E. Gethner. “The Rectilinear Crossing Number of (Subscript[K, 10]) Is 62.” (Sep 22, 2000) arxiv.org/abs/cs/0009023.

O. Aichholzer. “On the Rectilinear Crossing Number.” (2006) www.ist.tugraz.at/staff/aichholzer/research/rp/triangulations/crossing.

E. de Klerk, J. Maharry, D. V. Pasechnik, R. B. Richter, and G. Salazar. “Improved Bounds for the Crossing Numbers of (Subscript[K, m,n]) and (Subscript[K, n]).” (Apr 6, 2004) arxiv.org/abs/math/0404142.

“GraphData” from the Wolfram Mathematica Documentation Center. reference.wolfram.com/mathematica/ref/GraphData.html.

J. Pach, J. Spencer, and G. Tóth, “New Bounds on Crossing Numbers,” in Proceedings of the Fifteenth Annual Symposium on Computational Geometry (SCG'99), Miami Beach, FL (V. Milenkovic, ed.), New York: ACM Press, 1999 pp. 124–133.
citeseer.ist.psu.edu/520124.

E. Pegg Jr. “Planarity” from The Wolfram Demonstrations Project.
demonstrations.wolfram.com/Planarity.

E. W. Weisstein. “Planar Graph” from MathWorld—A Wolfram Web Resource.
mathworld.wolfram.com/PlanarGraph.

G. Exoo. “Rectilinear Drawings of Famous Graphs.” (2006) ginger.indstate.edu/ge/Graphs/RECTILINEAR.

B. Grunbaum, “Lectures on Configurations,” in Proceedings of the International Configurations 2004 Workshop, villa Plemelj, Bled, 2004.

B. D. McKay. “The Nauty Page.” (2008) cs.anu.edu.au/~bdm/nauty.

Initialization

CrossingNumberGraph2A ={{1->3,1->4,1->6,2->4,2->5,2->7,3->5,3->8,4->9,5->10,6->7,6->10,7->8,8->9,9->10},{1->{0.`,1.`},2->{-0.951`,0.309`},3->{-0.588`,-0.809`},4->{0.588`,-0.809`},5->{0.951`,0.309`},6->{0.`,2.`},7->{-1.902`,0.618`},8->{-1.176`,-1.618`},9->{1.176`,-1.618`},10->{1.902`,0.618`}}};

CrossingNumberGraph2B ={{1->2,1->3,1->7,2->4,2->8,3->5,3->9,4->6,4->10,5->6,5->7,6->8,7->9,8->10,9->10},{1->{0.623`,-0.699`},2->{0.623`,-0.137`},3->{0.953`,-1.153`},4->{0.953`,0.318`},5->{1.487`,-1.327`},6->{1.487`,0.492`},7->{2.022`,-1.153`},8->{2.022`,0.318`},9->{2.352`,-0.699`},10->{2.352`,-0.137`}}};

CrossingNumberGraph3A={{1->2,1->5,1->7,2->4,2->6,3->4,3->8,3->12,4->5,5->6,6->9,7->8,7->13,8->9,9->10,10->11,10->14,11->12,11->13,12->14,13->14},{1->{0.223`,0.975`},2->{-0.223`,0.975`},3->{-0.901`,-0.434`},4->{-1.`,0.`},5->{-0.901`,0.434`},6->{-0.623`,0.782`},7->{0.623`,0.782`},8->{0.901`,0.434`},9->{1.`,0.`},10->{0.901`,-0.434`},11->{-0.223`,-0.975`},12->{-0.623`,-0.782`},13->{0.223`,-0.975`},14->{0.623`,-0.782`}}};

CrossingNumberGraph3B={{1->2,1->8,1->12,2->3,2->6,3->5,3->7,4->5,4->8,4->12,5->6,6->7,7->11,8->9,9->10,9->14,10->11,10->13,11->14,12->13,13->14},{1->{0.901`,0.434`},2->{1.`,0.`},3->{0.223`,-0.975`},4->{-0.623`,-0.782`},5->{-0.223`,-0.975`},6->{0.901`,-0.434`},7->{0.623`,-0.782`},8->{0.623`,0.782`},9->{0.223`,0.975`},10->{-0.223`,0.975`},11->{-0.623`,0.782`},12->{-0.901`,-0.434`},13->{-1.`,0.`},14->{-0.901`,0.434`}}};

CrossingNumberGraph3C={{1->2,1->6,1->14,2->3,2->11,3->4,3->8,4->5,4->13,5->6,5->10,6->7,7->8,7->12,8->9,9->10,9->14,10->11,11->12,12->13,13->14},{1->{0.900969`,0.433884`},2->{0.62349`,0.781831`},3->{0.222521`,0.974928`},4->{-0.222521`,0.974928`},5->{-0.62349`,0.781831`},6->{-0.900969`,0.433884`},7->{-1.`,0},8->{-0.900969`,-0.433884`},9->{-0.62349`,-0.781831`},10->{-0.222521`,-0.974928`},11->{0.222521`,-0.974928`},12->{0.62349`,-0.781831`},13->{0.900969`,-0.433884`},14->{1.`,0}}};

CrossingNumberGraph3D={{1->2,1->3,1->6,2->5,2->14,3->4,3->10,4->5,4->7,5->9,6->7,6->8,7->12,8->9,8->13,9->11,10->11,10->13,11->12,12->14,13->14},{1->{-0.223`,0.975`},2->{0.223`,0.975`},3->{-0.623`,0.782`},4->{-0.901`,0.434`},5->{-1.`,0.`},6->{0.901`,-0.434`},7->{1.`,0.`},8->{0.623`,-0.782`},9->{-0.901`,-0.434`},10->{-0.223`,-0.975`},11->{-0.623`,-0.782`},12->{0.901`,0.434`},13->{0.223`,-0.975`},14->{0.623`,0.782`}}};

CrossingNumberGraph3E={{1->2,1->3,1->5,2->7,2->9,3->4,3->8,4->6,4->7,5->6,5->12,6->9,7->14,8->9,8->10,10->11,10->13,11->12,11->14,12->13,13->14},{1->{0,0},2->{0,3},3->{1,1},4->{1,2},5->{2,0},6->{2,2},7->{1,4},8->{3,1},9->{2,3},10->{3,2},11->{3,3},12->{4,0},13->{4,2},14->{4,4}}};

CrossingNumberGraph3F={{1->2,1->4,1->5,2->3,2->8,3->4,3->6,4->7,5->9,5->10,6->9,6->10,7->8,7->11,8->13,9->12,10->14,11->12,11->14,12->13,13->14},{1->{0.223`,0.975`},2->{0.623`,0.782`},3->{-0.223`,-0.975`},4->{-0.623`,-0.782`},5->{-0.223`,0.975`},6->{0.223`,-0.975`},7->{-0.901`,-0.434`},8->{0.901`,0.434`},9->{-0.623`,0.782`},10->{0.623`,-0.782`},11->{-1.`,0.`},12->{-0.901`,0.434`},13->{1.`,0.`},14->{0.901`,-0.434`}}};

CrossingNumberGraph3G={{1->3,1->6,1->8,2->4,2->7,2->9,3->5,3->10,4->6,4->11,5->7,5->12,6->13,7->14,8->9,8->14,9->10,10->11,11->12,12->13,13->14},{1->{0.623`,0.782`},2->{-0.223`,0.975`},3->{-0.901`,0.434`},4->{-0.901`,-0.434`},5->{-0.223`,-0.975`},6->{0.623`,-0.782`},7->{1.`,0.`},8->{1.247`,1.564`},9->{-0.445`,1.95`},10->{-1.802`,0.868`},11->{-1.802`,-0.868`},12->{-0.445`,-1.95`},13->{1.247`,-1.564`},14->{2.`,0.`}}};

CrossingNumberGraph3H={{1->2,1->10,1->13,2->5,2->9,3->4,3->6,3->13,4->5,4->8,5->7,6->7,6->10,7->12,8->9,8->11,9->14,10->11,11->12,12->14,13->14},{1->{0.901`,0.434`},2->{0.623`,0.782`},3->{-0.623`,-0.782`},4->{-0.223`,-0.975`},5->{0.223`,-0.975`},6->{0.901`,-0.434`},7->{0.623`,-0.782`},8->{-0.223`,0.975`},9->{0.223`,0.975`},10->{1.`,0.`},11->{-0.623`,0.782`},12->{-0.901`,0.434`},13->{-0.901`,-0.434`},14->{-1.`,0.`}}};

CrossingNumberGraph4A={{1->2,1->3,1->6,2->14,2->16,3->4,3->9,4->5,4->8,5->11,5->16,6->7,6->12,7->8,7->10,8->14,9->10,9->15,10->11,11->13,12->13,12->15,13->14,15->16},{1->{0,0},2->{0,5},3->{1,1},4->{1,3},5->{1,4},6->{2,0},7->{2,2},8->{2,3},9->{3,1},10->{3,2},11->{3,3},12->{4,0},13->{4,3},14->{4,4},15->{5,1},16->{5,5}}};

CrossingNumberGraph4B={{1->2,1->8,1->16,2->3,2->11,3->4,3->10,4->5,4->13,5->6,5->12,6->7,6->15,7->8,7->14,8->9,9->10,9->16,10->11,11->12,12->13,13->14,14->15,15->16},{1->{0.924`,0.383`},2->{0.383`,0.924`},3->{-0.383`,0.924`},4->{-0.924`,0.383`},5->{-0.924`,-0.383`},6->{-0.383`,-0.924`},7->{0.383`,-0.924`},8->{0.924`,-0.383`},9->{1.848`,0.765`},10->{0.765`,1.848`},11->{-0.765`,1.848`},12->{-1.848`,0.765`},13->{-1.848`,-0.765`},14->{-0.765`,-1.848`},15->{0.765`,-1.848`},16->{1.848`,-0.765`}}};

CrossingNumberGraph5A={{1->2,1->9,1->16,2->3,2->5,3->7,3->18,4->5,4->10,4->13,5->6,6->12,6->15,7->8,7->10,8->9,8->11,9->12,10->14,11->13,11->15,12->14,13->16,14->17,15->18,16->17,17->18},{1->{0,0},2->{0,3},3->{0,6},4->{1,1},5->{1,3},6->{1,5},7->{2,2},8->{2,3},9->{2,4},10->{3,2},11->{3,3},12->{3,4},13->{5,1},14->{4,3},15->{5,5},16->{6,0},17->{6,3},18->{6,6}}};

CrossingNumberGraph5B={{1->2,1->5,1->10,2->7,2->9,3->4,3->6,3->11,4->5,4->8,5->14,6->7,6->12,7->16,8->9,8->13,9->18,10->11,10->17,11->15,12->13,12->17,13->14,14->16,15->16,15->18,17->18},{1->{0,0},2->{0,6},3->{1,1},4->{1,3},5->{1,4},6->{2,2},7->{2,5},8->{3,3},9->{3,6},10->{4,0},11->{4,1},12->{4,2},13->{4,3},14->{4,4},15->{5,2},16->{5,5},17->{6,0},18->{6,6}}};

CrossingNumberGraph6A={{1->2,1->6,1->20,2->3,2->17,3->4,3->12,4->5,4->15,5->6,5->10,6->7,7->8,7->16,8->9,8->19,9->10,9->14,10->11,11->12,11->20,12->13,13->14,13->18,14->15,15->16,16->17,17->18,18->19,19->20},Thread[Range[20]-> {{0,0},{0,4},{0,6},{1,5},{1,2},{1,1},{2,1},{4,1},{4,3},{3,2},{6,2},{6,6},{5,5},{4,5},{2,5},{2,3},{3,4},{5,4},{5,1},{6,0}}]};

CrossingNumberGraph6B={{1->2,1->9,1->18,2->5,2->8,3->4,3->9,3->11,4->5,4->6,5->13,6->7,6->16,7->8,7->10,8->20,9->10,10->14,11->12,11->15,12->13,12->14,13->17,14->19,15->16,15->18,16->17,17->20,18->19,19->20},{1->{0,0},2->{0,7},3->{1,2},4->{1,3},5->{1,6},6->{2,3},7->{2,4},8->{2,7},9->{3,1},10->{3,4},11->{4,2},12->{4,5},13->{4,6},14->{5,4},15->{6,2},16->{6,3},17->{6,6},18->{7,0},19->{7,4},20->{7,7}}};

CrossingNumberGraph6C={{1->2,1->3,1->18,2->6,2->12,3->4,3->13,4->5,4->10,5->6,5->8,6->20,7->8,7->13,7->16,8->9,9->11,9->12,10->11,10->19,11->14,12->15,13->14,14->17,15->16,15->17,16->18,17->20,18->19,19->20},{1->{0,0},2->{0,6},3->{1,1},4->{1,3},5->{1,5},6->{1,6},7->{2,2},8->{2,5},9->{3,5},10->{3,3},11->{3,4},12->{4,5},13->{4,1},14->{4,4},15->{5,4},16->{5,2},17->{5,5},18->{6,0},19->{6,3},20->{6,6}}};

CrossingNumberGraph7A={{1->4,1->15,1->21,2->3,2->8,2->22,3->5,3->6,4->7,4->8,5->9,5->21,6->7,6->10,7->17,8->11,9->12,9->13,10->12,10->14,11->13,11->14,12->15,13->16,14->18,15->19,16->17,16->19,17->20,18->20,18->22,19->22,20->21},{1->{0,0},2->{0,7},3->{1,2},4->{1,5},5->{2,1},6->{2,3},7->{2,4},8->{2,6},9->{3,2},10->{3,3},11->{3,5},12->{4,2},13->{4,3},14->{4,5},15->{5,1},16->{5,3},17->{5,4},18->{5,6},19->{6,2},20->{6,5},21->{7,0},22->{7,7}}};

CrossingNumberGraph7B=
{{1->2,2->3,3->4,4->5,5->6,6->7,7->8,8->9,9->10,10->11,11->12,12->13,13->14,14->15,15->16,16->17,17->18,18->19,19->20,20->21,21->22,22->1,1->15,2->8,3->17,4->21,5->11,6->18,7->13,9->20,10->16,12->22,14->19},Thread[Range[22]-> {{0,0},{2,0},{7,0},{7,7},{6,6},{6,5},{2,5},{2,3},{4,3},{5,3},{5,6},{1,6},{1,5},{1,2},{1,1},{5,1},{6,1},{6,2},{3,2},{3,4},{3,7},{0,7}}]};

CrossingNumberGraph7C={{1->7,1->13,1->21,2->4,2->19,2->22,3->4,3->8,3->10,4->5,5->6,5->15,6->7,6->9,7->12,8->9,8->13,9->18,10->11,10->14,11->12,11->17,12->19,13->20,14->15,14->21,15->16,16->17,16->20,17->18,18->22,19->20,21->22},Thread[Range[22]->{{0,0},{8,0},{1,2},{2,2},{3,2},{6,2},{7,2},{1,3},{6,3},{2,4},{5,4},{7,4},{1,6},{2,6},{3,6},{4,6},{5,6},{6,6},{7,6},{4,7},{0,8},{8,8}}]};

CrossingNumberGraph7D={{1->2,1->5,1->18,2->7,2->22,3->4,3->8,3->21,4->5,4->16,5->9,6->7,6->8,6->10,7->17,8->11,9->10,9->12,10->20,11->12,11->14,12->13,13->17,13->19,14->15,14->18,15->16,15->20,16->17,18->19,19->21,20->22,21->22},{1->{0,0},2->{0,6},3->{1,1},4->{1,2},5->{1,3},6->{1,4},7->{1,5},8->{2,1},9->{2,3},10->{2,4},11->{3,1},12->{3,3},13->{3,4},14->{4,1},15->{4,2},16->{4,3},17->{4,4},18->{5,1},19->{5,3},20->{5,5},21->{6,0},22->{6,6}}};

CrossingNumberGraph8A={{1->4,1->7,1->23,2->3,2->12,2->24,3->5,3->8,4->6,4->12,5->7,5->10,6->9,6->11,7->14,8->9,8->13,9->15,10->11,10->16,11->18,12->17,13->19,13->23,14->15,14->21,15->20,16->17,16->19,17->20,18->22,18->24,19->21,20->22,21->24,22->23},{1->{0,0},2->{0,7},3->{1,3},4->{1,4},5->{2,3},6->{2,4},7->{3,1},8->{3,2},9->{3,3},10->{3,4},11->{3,5},12->{3,6},13->{4,1},14->{4,2},15->{4,3},16->{4,4},17->{4,5},18->{4,6},19->{5,3},20->{5,4},21->{6,3},22->{6,4},23->{7,0},24->{7,7}}};

CrossingNumberGraph8B={{1->2,1->4,1->7,2->3,2->12,3->5,3->18,4->6,4->13,5->8,5->9,6->10,6->11,7->8,7->22,8->15,9->10,9->14,10->17,11->12,11->16,12->21,13->14,13->23,14->19,15->16,15->19,16->20,17->18,17->20,18->24,19->21,20->22,21->24,22->23,23->24},{1->{0,0},2->{0,6},3->{0,7},4->{1,1},5->{2,3},6->{2,4},7->{3,0},8->{3,2},9->{3,3},10->{3,4},11->{3,5},12->{3,6},13->{4,1},14->{4,2},15->{4,3},16->{4,4},17->{4,5},18->{4,7},19->{5,3},20->{5,4},21->{6,6},22->{7,0},23->{7,1},24->{7,7}}};

CrossingNumberGraph8C={{1->2,1->3,1->4,2->5,2->6,3->19,3->23,5->7,5->8,6->18,7->12,9->7,9->10,9->11,10->13,10->4,11->17,11->19,12->22,13->14,13->15,14->16,14->8,15->6,15->17,16->24,17->20,18->12,18->21,19->21,20->22,21->16,22->24,23->20,23->8,24->4},Thread[Range[24]->{{0,0},{0,4},{5,1},{7,0},{0,7},{3,4},{1,5},{7,7},{1,2},{2,1},{4,2},{4,5},{2,3},{2,6},{3,3},{5,6},{4,3},{4,4},{5,2},{6,3},{5,4},{6,5},{6,1},{6,6}}]};

CrossingNumberGraph8D={{1->2,1->5,1->23,2->3,2->16,3->4,3->8,4->6,4->20,5->6,5->11,6->10,7->8,7->12,7->14,8->9,9->10,9->17,10->13,11->14,11->18,12->13,12->15,13->24,14->21,15->16,15->18,16->17,17->22,18->19,19->20,19->22,20->24,21->22,21->23,23->24},{1->{0,0},2->{0,3},3->{0,4},4->{0,7},5->{1,1},6->{1,6},7->{2,2},8->{2,4},9->{2,5},10->{2,6},11->{3,1},12->{3,2},13->{3,6},14->{4,1},15->{4,2},16->{4,3},17->{4,5},18->{5,2},19->{5,4},20->{5,7},21->{6,1},22->{6,5},23->{7,0},24->{7,6}}};

CrossingNumberGraph8E={{1->2,1->3,1->7,2->6,2->14,3->4,3->10,4->5,4->18,5->6,5->16,6->9,7->8,7->19,8->9,8->11,9->22,10->11,10->15,11->12,12->13,12->17,13->14,13->18,14->24,15->16,15->23,16->17,17->20,18->21,19->20,19->23,20->21,21->22,22->24,23->24},{1->{0,0},2->{0,6},3->{1,1},4->{1,2},5->{1,4},6->{1,5},7->{2,0},8->{2,2},9->{2,5},10->{3,1},11->{3,2},12->{3,3},13->{3,4},14->{3,6},15->{4,1},16->{4,2},17->{4,3},18->{4,4},19->{5,0},20->{5,3},21->{5,4},22->{5,5},23->{6,1},24->{6,6}}};

CrossingNumberGraph10A = 
{{1->5,1->7,1->25,2->3,2->6,2->24,3->4,3->12,4->8,4->11,5->6,5->9,6->15,7->8,7->22,8->14,9->10,9->13,10->11,10->18,11->21,12->13,12->16,13->19,14->15,14->17,15->20,16->17,16->25,17->18,18->23,19->20,19->22,20->21,21->26,22->23,23->24,24->26,25->26},{1->{0,0},2->{0,8},3->{2,2},4->{2,3},5->{2,4},6->{2,7},7->{4,1},8->{4,3},9->{4,4},10->{4,5},11->{4,6},12->{6,2},13->{6,3},14->{6,4},15->{6,6},16->{8,2},17->{8,4},18->{8,5},19->{10,3},20->{10,6},21->{10,7},22->{12,2},23->{12,5},24->{12,8},25->{14,0},26->{14,7}}};

CrossingNumberGraph11A =
{{1->2,1->8,1->24,2->5,2->28,3->6,3->7,3->27,4->5,4->7,4->10,5->18,6->12,6->19,7->11,8->9,8->14,9->10,9->12,10->23,11->15,11->20,12->13,13->16,13->26,14->15,14->21,15->16,16->18,17->18,17->19,17->22,19->24,20->24,20->25,21->22,21->27,22->23,23->25,25->26,26->28,27->28},{1->{0,0},2->{0,8},3->{1,1},4->{1,4},5->{1,7},6->{2,1},7->{2,2},8->{2,3},9->{2,4},10->{2,6},11->{3,2},12->{3,4},13->{3,5},14->{4,3},15->{4,4},16->{4,5},17->{5,4},18->{5,5},19->{6,1},20->{6,2},21->{6,3},22->{6,4},23->{6,6},24->{7,1},25->{7,4},26->{7,7},27->{8,0},28->{8,8}}};

CrossingNumberGraph13A =
{{1->2,1->6,1->29,2->4,2->26,3->4,3->5,3->9,4->17,5->12,5->13,6->7,6->11,7->8,7->12,8->24,8->28,9->10,9->27,10->11,10->18,11->15,12->20,13->14,13->22,14->15,14->25,15->16,16->17,16->21,17->24,18->19,18->23,19->20,19->26,20->21,21->30,22->23,22->29,23->24,25->26,25->28,27->28,27->30,29->30},{1->{0,0},2->{0,9},3->{1,1},4->{1,7},5->{2,2},6->{2,5},7->{2,6},8->{2,8},9->{3,1},10->{3,4},11->{3,5},12->{3,6},13->{4,2},14->{4,3},15->{4,5},16->{4,6},17->{4,7},18->{5,3},19->{5,4},20->{5,5},21->{5,6},22->{6,2},23->{6,3},24->{6,7},25->{7,2},26->{7,7},27->{8,1},28->{8,8},29->{9,0},30->{9,9}}};