Given a sequence of head to tail vectors forming a closed loop, how can I determine if they form a knot?

102 Views Asked by At

Consider if we have some sequence of vectors placed head to tail which form a closed loop. How can one determine whether they form a loop?

We assume that it is given that the vectors close, that is their vector sum is zero, and that the piecewise curve they form is non-intersecting. If it helps, we can also assume they have the same length. An example is shown here:

https://i.stack.imgur.com/Rp26t.jpg

An example of how such configurations might be generated is through self-avoiding random walks on a lattice, where each vector represents a single "step".

EDIT:

Okay so clearly this problem is not nearly as trivial as I had first thought. Some more details:

I am considering loops that are generated by a sequence of edges on a lattice. For example, we could take a cubic lattice, although in my case the lattice is non-Bravais. By construction, the loop does not self-intersect, as would be the case for a self-avoiding random walk. My idea was simply to determine whether or not the loop is the unknot or not (I use the loops for other purposes but thought it might be an interesting research thread to pursue to study their knotted-ness).

2

There are 2 best solutions below

3
On BEST ANSWER

Practically speaking, this is not quite so bad as others are making it out to be. There is a conjecture with much computational evidence that the Jones polynomial is an unknot detector (it's true, at least, for knot diagrams with up to 23 crossings). The Jones polynomial isn't so difficult to compute, and, assuming the conjecture, the given knot is the unknot if and only if the Jones polynomial is $1$.

For knots on a lattice, what you have to do is find a knot diagram. If you choose a random projection direction, almost surely the projection will be in general position: no two vertices project to the same point, no vertex projects onto the interior of any segment, and the projections of any two segments are transverse, i.e., when they intersect, they are not collinear. While extremely unlikely, if you find the projection is not in general position, you can try projecting in another random direction.

From here, for each pair of intersecting projected segments, you figure out which is 'over' and which is 'under'. It's convenient to then store the result in oriented PD format (see the Knot Atlas wiki and maybe this page about representing knots on computers). If you know how to read Mathematica, I once wrote a little bit about computing Jones polynomials in this answer: Software for computing virtual knot invariants

(I'm not just speaking theoretically that it's plausible to go through all this. A colleague of mine did the very same calculations for studying whether certain orbits in a discrete vector field in a triangulation of $S^3$ might be knotted.)

If you want to be absolutely sure your knot is unknotted, you can use Dynnikov's algorithm, for example. It's very slow, but it's not so hard to implement.

1
On

Basically what you are asking is for an overview of the theory of knots, which is rather too broad.

This wikipedia page contains a brief overview of what's known about the unknotting problem, which is the problem of algorithmically determining whether a given knot is an unknot. In short, it is algorithmically decidable, and the decision problem is known to be NP-complete.

For a more in depth look at knot theory, look at this other wikipedia page, or better pick up a good textbook such as Rolfsen's. You seem to know what the correct tags are, i.e. group-theory, knot-invariants, etc., and you'll find lots of information about those topics of you follow the links given..