Overview  Model Viewer  ODE Solver  RootFinder  Geodesic  Algebraic  Knots  Unfolder 

Knots Home  Description  Gauss Code  Download 

Description of Book Knot Simplifier

Maria Andreeva, Ivan Dynnikov, Sergey Koval, Konrad Polthier, Iskander Taimanov

Here we offer a set of tools for manipulating knots and links in the three-space by using the three-page presentation of links, which was proposed and developed by I. Dynnikov in [1][2][3].

The approach is based on a simple and very well known observation that every link in the three-space is topologically equivalent to a link that lies entirely in a three-page book, i.e. the union of three half-planes with common boundary. Though being not convenient for human perception, this way of presenting links seems to be very efficient for handling knots by computer. It provides a very quick way from a combinatorial description of a link to its three-dimensional presentation. A three-page link admits a lot of transformations that preserve its isotopy class and can be easily found. This fact is used in the knot simplifying tool included herein.

This software for knot manipulation and simplification builds on the JavaView library [5].

Currently available ...

View a knot available on the server

Input your own knot as a 3D curve or a Gauss code

Simplify a knot

Edit a knot

Tools being developed ...

More editing tools

Converting to/from other formats

Comparing and recognizing knots

View a knot

To download a knot from the server click "Choose knot" button. At the present time, we have a collection of knots presented in .jkb format, as 3D curve (.txt files), and as a Gauss code (.gc files).

Files 31.jkb, 141.jkb, 322.jkb, and 539  have been generated automatically from hand-made (ID) planar diagrams of unknots having 31, 141, 322, and 539 crossings respectively. These unknots were used to test the simplifier. The unknot with 31 crossings is shown below.

The unknot with 539 crossings is a satellite of this unknot (see [1] for a picture).

The source of the knots in TXT format is the Knot-Plot web site created by Robert Scharein [4] which contains a collection of knots and links with small crossing number (less than or equal to 10). The files with .gc extension contain Gauss codes of the same links. These codes were generated automatically (SK) from the .txt files.

For converting a planar diagram to a three-page diagram the algorithm described in [1] is used.

Input a knot

To input your own knot click "Input knot" button and choose a method of input. Now available methods are by using 3D curve or the Gauss code. If you are already using some other knot presentation with another software, you are welcome to let us know the specification of the format you are using by sending e-mail at dynnikov@mech.math.msu.su. Then, we may make it possible to input a knot in your favorite format.

Simplify a knot

If you press the "Simplify" button, the knot simplifier starts. It implements an algorithm described in [1]. We shall explain very shortly the idea of the algorithm.

In the case of the three-page presentation of knots, a natural measure of complexity is the number of intersection points of the knot with the binding line of the three-page book. The simplifier performs operations on the knot that preserve the isotopy class of the knot and tries to make the complexity as less as possible. Let us consider how this works. Look at the following three-page knot, which is the trefoil knot in fact.

Its complexity equals 9. What if we replace the part of the knot marked in red with the curve marked in blue in the figure below?

We obtain a topologically equivalent knot of the same complexity, but now we obviously can simplify it by contracting the arc connecting the two rightmost points:

After doing that, we obtain a three-page knot of complexity 8.

The knot simplifier just tries to simplify a given knot by transformations of this kind. If sufficiently many subsequent trials are not successful, i.e. the knot is not simplified for a long time, the simplifier stops. More details about the transformations used in the simplifier see [1].

At the present state, the simplifier does not search among all three-page diagrams that can be obtain from the current one by available transforms and does not make a "canonical" choice. So, if you click the "Simplify" button again, the picture may change.

Edit a knot

The only available editing tool for now is cyclic permutation of vertices on the binding line, which is achieved by pressing the "Vertex permutation" button. Other editing tools coming soon.

Input a knot as a 3D curve

To input a knot presented by a 3D polygon just type coordinates of all vertices in the order they follow on the knot. Coordinates must be separated by blank spaces or new lines.
For example the trefoil knot is presented by a polygon with vertices (0,0,0), (3,0,1), (0,2,0), (1,0,1), (0,4,0), (4,0,1), (0,1,0), (2,0,1), (0,3,0), (0,0,1). To input it, type
0 0 0 3 0 1 0 2 0 1 0 1 0 4 0 4 0 1 0 1 0 2 0 1 0 3 0 0 0 1
and click "ok" button. The Gauss code of the knot appears. Click "ok" button again to see the three-page picture of the knot.

If your link consists of more than one connected component, separate records for different components by a blank line.

Warning: at the present state, for converting a 3D polygon to a planar diagram of a knot, projection along the z-axis is used. If the projection of your knot along the z-axis is not generic (i.e. two vertices are projected to the same point, a vertex is projected to an internal point of an edge, or a triple crossing occurs), then the conversion may fail.

Input the Gauss code of a knot

If you have planar diagram of a knot or link you may input it by typing its Gauss code. The diagram must be connected and have at least one crossing. We use an encoding a little different from what is usually called Gauss code, providing additional information that allows to distinguish knots from their mirror images. To input the link do the following.

For each component, choose an orientation and a starting point.

Assign different indices, which must be natural numbers, to all the crossings.

For each connected component, go along it starting from the marked point in the chosen direction, and each time you come through a crossing, write down the index of the crossing preceded by two symbols: the first one must be + or - indicating whether you go over or under the crossing, and the second must be  >  or  <  sign indicating whether you see the arc that you intersect going from left two the right or from right to the left, respectively. Entries for different crossings must be separated by spaces.

When you come back to the starting point of the chosen component, proceed with the next one. Separate entries for different components by keyword "component".

For example, for the diagram below

you get the following Gauss code:
->5 +<6  component  +<5 ->6 ->4 +<3 -<1 +>2 ->3 +<4 -<2 +>1

This way of inputting links seems to take much time. We are now working on a better format for input.

Description of the .jkb format

Still has to be written...

Editing tools being developed

Adding/removing vertices/arcs, coloring components, taking connected sum, and more.

Converting to/from other formats

In order to make the package more convenient for those who want to use it in their own research  we are going to provide converters to and from all popular formats for presenting knots. In particular, it will be possible to input a knot as a closure of a braid or a tangle word. If you are already using some format for presenting knots, please, send the specification of the format at dynnikov@mech.math.msu.su


[1] I. A. Dynnikov. Three-page link presentation and an untangling algorithm.
Proc. of the International Conference Low-Dimensional Topology and Combinatorial Group Theory,
Chelyabinsk, July, 31 - August 7, 1999; Kiev, 2000; pp. 112--130.

[2] I. A. Dynnikov. Three-page approach to knot theory. Universal semigroup. (Russian) Funktsional'nyi Analiz i Ego Prilozhenija, 34 (2000), no. 1, 29--40; translation in Functional Analysis and Its Appl. 34 (2000), no. 1, 24--32.

[3] I. A. Dynnikov. Three-page approach to knot theory. Encoding and local moves. (Russian)
Funktsional'nyi Analiz i Ego Prilozhenija, 33 (1999), no. 4, 25--37; translation in Functional Analysis and Its Appl. 33 (1999), no. 4, 260--269. MR 2000m:57007

[4] Robert Scharein Knot-Plot Homepage at http://www.pims.math.ca/knotplot.

[5] JavaView Homepage at http://www.javaview.de.

© 1997-2017 Last modified: 22.06.2017 --- www.javaview.de --- The JavaView Project