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?
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?
The linking number does not tell if two knots are linked, see for example the Whitehead link: http://en.wikipedia.org/wiki/Whitehead_link
I think that the best algorithms for the unlink problem follow closely the ones for the unknot, none of these being polynomial. The starting reference for these is Hass, Lagarias and Pippenger, who proved that the problem is in NP, and their algorithm relies on normal surface theory.
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) .
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.