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.



How do I efficiently find a sequence of Reidemeister moves between equivalent link diagrams?
In 2011 Coward-Lackenby proved the following, and they also provided an upper bound on the number of moves. 



> 
> There is a computable function F : N×N → N such that for any two connected
>  diagrams D1 and D2 of a link with n1 and n2 crossings, there is a sequence of
>  at most F(n1, n2) Reidemeister moves that takes D1 to D2. 
> 
> 
> There is an algorithm to solve the equivalence problem for links. In other words,
>  there is an algorithm that takes as input two link diagrams and determines
>  whether or not they represent equivalent links.
> 
> 
> 


The paper may contain arguments and references relevant to your question <http://people.maths.ox.ac.uk/lackenby/rei17611.pdf> 


