# Classify knots in a closed bead-spring like polymer simulation

I'm trying to detect the crossing number (or another knot invariant) of a simulated polymer. A polymer is a closed bead spring, which means that it is represented by a set of points connected by segments which form a closed curve. I need to extract from this set of points a number which would let me classify the knots of the polymer.

I was doing some research and I found the self-linking number which would be the linking number between the curve and a framing of it, but I don't expect a good numerical stability from this algorithm although I am maybe wrong.

Actually, at this point, I would be satisfied just to find a numerical operator which would let me discern trefoil-knot from no-knot since I doubt that I have other kind of knots.

As an example, here are two polymer configurations which should both be trefoil knots:

-
Could you make a bit more explicit what kinds of data you're given to work with? Are you given a set of vertices in 3-space and a set of linear-segment edges connecting these vertices? If this is the case, it shouldn't be too hard to project the knot (in general position) on to a plane and keep track of orientation of crossings. Once you have the standard knot diagram, you can then use any manner of knot invariants (knot polynomials are the most robust, weak invariants like tricolourability are easier to calculate). – Dan Rust Jan 29 '13 at 12:42
What I have it's exactly what you said: set of vertices in 3-space with the segments which connect them. Probably I can make the knot diagram out of it as you say (I will try) but I would hope to instead have a mathematical formula for the links since some of the configuration are really convoluted (see edit). – Vittore F. Scolari Jan 29 '13 at 12:56
Finding the crossing number of a knot is a notoriously difficult problem. Finding the knot class of a particular knot diagram is an even harder problem. There isn't just 'some formula'. Anyway, to help you in your research, the type of knots you are studying are known as 'polygonal' knots. Although the writhe number of a knot isn't a knot invariant, you might find this article helpful: cs.duke.edu/~pankaj/publications/papers/writhe.pdf. I think polynomial invariants are going to be your best method of attack as they can actually be calculated and fairly easily programmed. – Dan Rust Jan 29 '13 at 18:07
@DanRust: There is a polynomial-time algorithm to determine of two knots are equivalent due to Haken. Unknot recognition, at the very least, is implemented in Regina - I think Ryan Budney was implementing the full algorithm, but I'm unsure if he's done so yet. – Mike Miller Aug 17 '15 at 18:32