Zachary Bryhtan, Nicholas Connolly, Isabel Darcy, Ethan Rooke, Joseph Starr*
Mathematics Department at The University of Iowa
Knot Tables
1860’s Tait computes knots up to 7 crossing
15 knots
1870’s Tait, Kirkman, and Little compute knots up to 10 crossing
Takes about 25 years
250 knots
1960’s Conway computes knots up to 11 crossings
“A few hours”
802 knots
1980’s Dowker and Thistlethwaite compute up to 13 crossings
First using a computer
12,966
1990’s Hoste, Thistlethwaite, and Weeks compute up to 16 crossings
Computer runtime on the order of weeks
1,701,936
2020’s Burton computes up to 19 crossings
350 Million
KnotInfo
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. “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}$.
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}}$$
Louis H. Kauffman and Sofia Lambropoulou. Classifying and applying rational knots and rational tangles. In DeTurck, editor, Contemporary Mathematics, volume 304, pages 223-259, 2001
Using The Tanglenomicon
Where we’re going
Montesinos
Existence of canonical diagrams for Montesinos tangles
Theorem (Bonahon and Siebenmann)
Every non-rational Montesinos tangle $T$ admits a canonical diagram satisfying the following construction:
$$T \cong L_1+\cdots+L_m+\frac{k}{1}$$ where each $L_i \cong \frac{p_i}{q_i}$ is a rational subtangle in canonical form with fraction satisfying $0<\frac{p_i}{q_i}<1$, and $\frac{k}{1}$ is a horizontal integer subtangle.
The Montesinos tangles of crossing number $N$ have a slightly simpler generation strategy compared to rational tangles. We again generate twist vectors but require that each entry $e$ of the twist vector satisfies $2\leq e < N.$ We call these restricted set of twist vectors stencils.
Now for each entry $e_i$ of the stencil, we generate a list of rational tangles of crossing number equal to $e_i$, with the restriction $0<\frac{p_i}{q_i}<1$. We then take all combinations of elements of these lists.
The construction for the canonical Montesinos tangles includes a trailing $\frac{k}{1}$ tangle. Our generation strategy seems to miss these.
What we’re actually generating with this algorithm is equivalent to allowing the boundary components of the tangle to move. To recover fixed boundary tangles we need to generate the next larger class of tangles.
We can note which stage a tangle was generated at to allow users to choose datasets for fixed or non-fixed boundary tangles.
Moon, Hyeyoung, and Isabel K. Darcy. “Tangle Equations Involving Montesinos Links.” Journal of Knot Theory and Its Ramifications 30, no. 08 (July 2021): 2150060.
https://doi.org/10.1142/S0218216521500607.
Generation
We just need to take our lists of Montesinos and rational tangles and glue them together with $\circ$.
Into the future
Algebraic
All possible tangles made from $+$ and $\vee$
Algebraic
A vertical sum of two Montesinos tangles.
Generation
Algebraic Tangle Trees
To generate all possible algebraic tangles, we can generate all possible algebraic expressions on the trivial tangles. Equivalently, all full binary trees with $N$ leaves. Where the tree’s internal nodes are labeled with combinations of $\vee$ and $+$ and leaves are labeled with all combinations of trivial tangles.
These binary trees are called Algebraic Tangle Trees.
Alain Caudron. Classification des nœuds et des enlacements, volume 4 of Publications Math ́ematiques d’Orsay 82 [Mathematical Publications of Orsay 82]. Universit ́e de ParisSud, D ́epartement de Mathe ́matique, Orsay, 1982.
Connolly, Nicholas. Classification and Tabulation of 2-String Tangles: The Astronomy of Subtangle Decompositions. University of Iowa, 2021,
https://doi.org/10.17077/etd.005978.
Kauffman, L. H., and S. Lambropoulou. “From Tangle Fractions to DNA.” In Topology in Molecular Biology, edited by Michail Ilych Monastyrsky, 69-110. Biological and Medical Physics, Biomedical Engineering. Berlin, Heidelberg: Springer Berlin Heidelberg, 2007.
https://doi.org/10.1007/978-3-540-49858-2_5.
Moon, Hyeyoung, and Isabel K. Darcy. “Tangle Equations Involving Montesinos Links.” Journal of Knot Theory and Its Ramifications 30, no. 08 (July 2021): 2150060.
https://doi.org/10.1142/S0218216521500607.
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.
Louis H. Kauffman and Sofia Lambropoulou. Classifying and applying rational knots and rational tangles. In DeTurck, editor, Contemporary Mathematics, volume 304, pages 223-259, 2001
Alain Caudron. Classification des nœuds et des enlacements, volume 4 of Publications Math ́ematiques d’Orsay 82 [Mathematical Publications of Orsay 82]. Universit ́e de ParisSud, D ́epartement de Mathe ́matique, Orsay, 1982.
Robert Glenn Scharein. Interactive topological drawing. ProQuest LLC, Ann Arbor, MI, 1998. Thesis (Ph.D. The University of British Columbia (Canada). URL:
https://www.knotplot.com/.
Jablan, S., & Sazdanović, R. (2007). Linknot. In Series on Knots and Everything. WORLD SCIENTIFIC.
https://doi.org/10.1142/6623
Dowker, C. H., & Thistlethwaite, M. B. (1983). Classification of knot projections. In Topology and its Applications (Vol. 16, Issue 1, pp. 19-31). Elsevier BV.
https://doi.org/10.1016/0166-8641(83)90004-4
Hoste, J., Thistlethwaite, M., & Weeks, J. (1998). The first 1,701,936 knots. In The Mathematical Intelligencer (Vol. 20, Issue 4, pp. 33-48). Springer Science and Business Media LLC.
https://doi.org/10.1007/bf03025227
Connolly, Nicholas. Classification and Tabulation of 2-String Tangles: The Astronomy of Subtangle Decompositions. University of Iowa, 2021,
https://doi.org/10.17077/etd.005978.
Programmatic Description
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 "tmp=i;j=0;cnt=N" as State_temp
State_jpp: j++
State_cntmm: cnt--
State_sum_tv: TV[j]++
State_rsh: tmp=tmp>>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 (tmp & 0x01u)==1u
State_sum_tv --> State_rsh
if_lsb -->State_jpp: if (tmp & 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)
Computations
Rational Number (continued fraction)
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}}$$
Louis H. Kauffman and Sofia Lambropoulou. Classifying and applying rational knots and rational tangles. In DeTurck, editor, Contemporary Mathematics, volume 304, pages 223-259, 2001
To play with twist vectors and continued fractions visit
Suppose that rational tangles with fractions $\frac{p}{q}$ and $\frac{p^{\prime}}{q^{\prime}}$ are given ( $p$ and $q$ are relatively prime and $0$<$p$. Similarly for $p^{\prime}$ and $q^{\prime}$.) If $K\left(\frac{p}{q}\right)$ and $K\left(\frac{p^{\prime}}{q^{\prime}}\right)$ denote the corresponding rational knots obtained by taking numerator closures of these tangles, then $K\left(\frac{p}{q}\right)$ and $K\left(\frac{p^{\prime}}{q^{\prime}}\right)$ are topologically equivalent if and only if
(1) $p=p^{\prime}$
(2) either $q \equiv q^{\prime}(\bmod p)$ or $q q^{\prime} \equiv 1(\bmod p)$.
Schubert, Horst. “Knoten mit zwei Brücken..” Mathematische Zeitschrift 65 (1956): 133-170.
http://eudml.org/doc/169591.
Tooling
Design Goals
The design for The Tanglenomicon project prioritizes flexibility and extensibility. We want a feature, maybe “calculate Jones polynomial,” to be runnable in a jupyter notebook or on a university cluster. We’re aiming for a “write once deploy anywhere” design.
To that end we’ve decoupled functionality wherever feasible, taking a layered
approach for system design.
A runner is a human/machine interface layer. This abstracts the routines in lower layers for a user to interact with. This could be a CLI, python binding, a Mathematica wrapper, or a web API.
Runnables
Generators
Generators create new data. A generator might look like a module to create rational tangles. They may use one or more Computations, Notations, or Translators.
Computation
Computations compute a value for a given data. A computation might look like a module for computing a Jones polynomial of a link, or a computing the writhe of a tangle.
Translators
Translators define a conversion between two Notations. A translator might look like a module for converting from PD notation to Conway notation and back again.
Data Wranglers
Notations
Notations define a notational convention for a link/tangle. They describe a method for converting to and from a string representation of a link/tangle and data structure describing that link/tangle.
Storage
A storage module defines a storage interface for the application. The main inter-module type is string and the calling module is responsible for en/decoding the string with a notation module.
Parallelization
sequenceDiagram
participant DB
participant Server
participant Client 1
participant Client 2
Server->>+Client 1: Dispatch job 1 for stencil starting from TV idx<br/>[0,0,0,...]
Server-->>DB: Mark job 1 as dispatched
Server->>+Client 2: Dispatch job 2 for stencil starting from TV idx<br/>[100,0,0,...]
Server-->>DB: Mark job 2 as dispatched
Client 1-->>-Server: job complete
Server-->>DB: store job 1 results and mark complete
Server->>+Client 1: Dispatch job 3 for stencil starting from TV idx<br/>[0,100,0,...]
Server-->>DB: Mark job 3 as dispatched
Client 2-->>-Server: job complete
Server-->>DB: store job 2 results and mark complete
Client 1-->>-Server: job complete
Server-->>DB: store job 3 results and mark complete