1870’s Tait, Kirkman, and Little compute knots up to 10 crossings
Takes about 25 years
250 knots
1960’s Conway computes knots up to 11 crossings
“A few hours”
802 knots
By Computer
1980’s Dowker and Thistlethwaite compute up to 13 crossings
First using a computer
12,966 knots
1990’s Hoste, Thistlethwaite, and Weeks compute up to 16 crossings
Computer runtime on the order of weeks
1,701,936 knots
2020’s Burton computes up to 19 crossings
350 Million knots
KnotInfo
C. Livingston and A. H. Moore, KnotInfo: Table of Knot Invariants, https://knotinfo.math.indiana.edu/, today’s date (eg. August 24, 2023)
Conway
How did Conway compute 25 years of work in "a few hours"?
Tangles
“We define a tangle as a portion of a knot diagram from which there emerge just 4 arcs pointing in the compass directions NW, NE, SW, SE.” - Conway, J.H.
Conway, J.H. “An Enumeration of Knots and Links, and Some of Their Algebraic Properties.” In Computational Problems in Abstract Algebra, 329-58. Elsevier, 1970. https://doi.org/10.1016/B978-0-08-012975-4.50034-5
For any $N$ an obvious twist vector is the twist vector of all $1$s
$$[1\ 1\ 1\ \cdots\ 1]$$
Noting that when we write this sequence, we have $N-1$ spaces.
If we choose to place a $+$ instead of the left most space we get
$$[1+1\ 1\ \cdots\ 1]=[2\ 1\ \cdots\ 1]$$
we’re free to make this choice for each space
this gives $N-1$ choices between ‘$+$’ and space
$$[1\square 1\square 1\square\cdots\square1]$$
letting us generate twist vectors by simply counting from $0\to 2^{N-1}$.
stateDiagram-v2
direction LR
state if_done <<choice>>
State_i: i=0
State_ipp: i++
state "Construct TV from i as a bitfield" as tv_calc{
state "tmplt=i;j=0;cnt=N" as State_temp
State_jpp: j++
State_cntmm: cnt--
State_sum_tv: TV[j]++
State_rsh: tmplt=tmplt>>1
state if_lsb <<choice>>
state if_cnteo <<choice>>
State_store_tv: Store TV
[*] --> State_temp
State_temp --> if_cnteo
if_cnteo--> State_cntmm: if cnt>0
if_cnteo--> State_store_tv: if cnt==0
State_store_tv --> [*]
State_cntmm -->if_lsb
if_lsb -->State_sum_tv: if (tmplt & 0x01u)==1u
State_sum_tv --> State_rsh
if_lsb -->State_jpp: if (tmplt & 0x01u)==0u
State_jpp --> State_rsh
State_rsh --> if_cnteo
}
[*] --> State_i
State_i --> if_done
if_done --> tv_calc: if i < 2**(N-1)
tv_calc --> State_ipp
State_ipp --> if_done
if_done --> [*]: if i == 2**(N-1)
i
tmplt
cnt
j
tv
0
0000
5
0
[1,1,1,1,1]
0
0000
4
1
[1,1,1,1,1]
0
0000
3
2
[1,1,1,1,1]
0
0000
2
3
[1,1,1,1,1]
0
0000
1
4
[1,1,1,1,1]
0
0000
0
4
[1,1,1,1,1]
i
tmplt
cnt
j
tv
6
0110
5
4
[1,1,1,1,1]
6
0011
4
1
[1,1,1,1,1]
6
0001
3
1
[1,2,1,1,1]
6
0000
2
1
[1,3,1,1,1]
6
0000
1
2
[1,3,1,1,1]
6
0000
0
2
[1,3,1,1,1]
i
tmplt
cnt
j
tv
7
0111
5
0
[1,1,1,1,1]
7
0011
4
0
[2,1,1,1,1]
7
0001
3
0
[3,1,1,1,1]
7
0000
2
0
[4,1,1,1,1]
7
0000
1
1
[4,1,1,1,1]
7
0000
0
1
[4,1,1,1,1]
Canonical Twist Vectors
We can write a canonical twist vector by taking the odd length vectors (appending $0$ where needed).
The rational number for a twist vector is computed by taking the twist vector as a finite continued fraction, that is:
$$\LB a\ b\ c\RB=c+\frac{1}{b+\frac{1}{a}}$$
Conway, J.H. “An Enumeration of Knots and Links, and Some of Their Algebraic Properties.” In Computational Problems in Abstract Algebra, 329-58. Elsevier, 1970. https://doi.org/10.1016/B978-0-08-012975-4.50034-5
To play with twist vectors and continued fractions, visit: