# How to tell if two or more knots are linked

Given a number of knots, I would like to know if they are linked. I know that the linking number can tell if two knots are linked.

There is any method that completely solves this problem?

-
In knot theory, people would use the terminology "is there an algorithm to decide if a link is split?" The answer is yes. Neil Hoffman's answer is one practical way to attack the problem. In practice there are many quite fast ways to solve the problem. – Ryan Budney Jun 23 '14 at 2:40

For this method, I am using the fact that a link is split if and only if the double branched cover of the link has a non-separating two sphere that does not bound a ball. Here is an algorithm that I believe is as "practical as it can be" using existing tools.

The first step is to check the homology of the double branched cover. If $G = <m_1,m_2, ... m_n |r_1,..,r_k>$ is a Wirtinger presentation for the link group, then the kernel of $f:G \rightarrow G/\langle \langle m_i^2 \rangle \rangle$ must have infinite abelianization for the link to be split. Strictly, speaking this step is unnecessary, but the next step is in going to be fairly slow, making it worth a mention.

The next step would be to check that the double branched cover of your link is reducible or irreducible. The software Regina can solve this problem. Because it enumerates and checks all normal surfaces, Regina will be slow for large links. If the double branched cover is reducible, Regina can cut along the normal and incompressible $S^2$. Checking the number of connected components determines if the sphere was separating. This can be done just using out of the box Regina. However, if you need to check a large set of complicated enough examples, you may be able to tweak the source code of the ${\tt T.isIrreducible()}$ function in order to tailor yourself a slightly better algorithm.

-

Marc Lackenby proved last year that one can split the unlink using only a polynomial number of Reidemeister moves. Therefore, an alternative algorithm is to brute force all the possible Reidemeister moves up to this polynomial bound ($48c^{11}$ if $c$ is the number of crossings) .
I don't understand: doesn't this give $48c^{11}$ in the EXPONENT of the running time? – Igor Rivin Jun 17 '14 at 15:25