final touches
This commit is contained in:
@@ -135,7 +135,8 @@
|
||||
|
||||
#show: ams-article.with(
|
||||
paper-size: "a4",
|
||||
title: [Implementation of the Kauffman Polynomial in SageMath],
|
||||
title: [Implementation of the \ Kauffman Polynomial in Python],
|
||||
page-title: [Implementation of the Kauffman Polynomial in Python],
|
||||
authors: (
|
||||
(
|
||||
name: "Antonio De Lucreziis",
|
||||
@@ -150,9 +151,9 @@
|
||||
],
|
||||
)
|
||||
|
||||
= Introduction
|
||||
#pagebreak()
|
||||
|
||||
Actually we don't like Python so we will be using Rust and then write bindings for Python that can be used in SageMath.
|
||||
= Introduction
|
||||
|
||||
== The Kauffman Polynomial
|
||||
|
||||
@@ -174,6 +175,8 @@ The defining axioms of the Kauffman polynomial are the following, given a link d
|
||||
|
||||
We will later be seeing that the Kauffman polynomial can be defined in a more explicit way, using a recursive definition that is the one we will be using to derive our algorithm.
|
||||
|
||||
#pagebreak()
|
||||
|
||||
= Computational Knot Theory
|
||||
|
||||
The first problem in computational knot theory is to find a good representation for knots and links. There are various common representations in the literature, such as:
|
||||
@@ -295,19 +298,22 @@ $
|
||||
epsilon(#skein-generic(direction: (+1, -1))) = -1
|
||||
$
|
||||
|
||||
*Algorithm*:
|
||||
#pagebreak()
|
||||
|
||||
```
|
||||
Input: An oriented link diagram with starting points on each component
|
||||
Output: List<List<(Int, Int)>>
|
||||
*Algorithm*: The input is an oriented link diagram with starting points on each component and the output is a list of components where each component is a list of pairs of numbers
|
||||
|
||||
1. Label each crossing with a number in order
|
||||
|
||||
2. For each component:
|
||||
|
||||
1. Walk along it from the starting point in its orientation
|
||||
|
||||
2. At each crossing with label $i$, write a tuple with components
|
||||
|
||||
- $+i$ or $-i$ if this is an over-crossing or under-crossing
|
||||
|
||||
- $+1$ or $-1$ if this is a left-handed or right-handed
|
||||
|
||||
- Label each crossing with a number in order
|
||||
- For each component:
|
||||
- Walk along it from the starting point in its orientation
|
||||
- At each crossing, write a tuple with components
|
||||
- +i or -i if this is an over-crossing or under-crossing
|
||||
- +1 or -1 if this is a left-handed or right-handed
|
||||
```
|
||||
|
||||
Converting one code to the other is not too much work as one just need to first do a labelling step to convert crossing labels and then convert the over/under-strand and left/right-handedness relations between the two notations.
|
||||
|
||||
@@ -579,8 +585,6 @@ So PD codes are simpler and compact to store (and generate from a diagram) but S
|
||||
// ),
|
||||
// $
|
||||
|
||||
#pagebreak()
|
||||
|
||||
== Link reconstruction from code
|
||||
|
||||
We briefly mention that reconstructing a link from a PD or SG code is not trivial and there are various approaches used by various softwares that can be used for this task.
|
||||
@@ -616,6 +620,8 @@ Another approach used by #link("https://knotfol.io/")[KnotFolio] is based on #li
|
||||
|
||||
This condition that every point is the average of its neighbors can be easily expressed as a system of linear equations where some points on a chosen outer face have been fixed. When the graph is planar and 3-vertex-connected the linear system is non degenerate and has a unique solution.
|
||||
|
||||
#pagebreak()
|
||||
|
||||
= Computing the Polynomial
|
||||
|
||||
Let's now recap the main formal algorithm for computing the Kauffman polynomial.
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#let ams-article(
|
||||
// The article's title.
|
||||
title: [Paper title],
|
||||
page-title: [Paper title],
|
||||
// An array of authors. For each author you can specify a name,
|
||||
// department, organization, location, and email. Everything but
|
||||
// but the name is optional.
|
||||
@@ -64,7 +65,7 @@
|
||||
if i == 1 { return }
|
||||
set text(size: script-size)
|
||||
align(center)[
|
||||
#upper(title)
|
||||
#upper(page-title)
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user