In knot theory, two link diagrams are equivalent if and only if they can be related by performing a finite number of Reidemeister moves. But sometimes it is so confusing that I don't know which type move should I perform on link to get desired result. Is there an efficient procedure to relate one link diagram to another provided we know that the two links are equivalent? What is the computational complexity of determining knot equivalence? Is it NP complete?

Also, a related question: Is there any computer software which efficiently finds Reidemeister moves between equivalent diagrams? Because sometimes I find it is very difficult to visualise the link after some Reidemeister moves.