How do I efficiently find a sequence of Reidemeister moves between equivalent link diagrams? 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.
 A: 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 
A: I think yanglee's answer gives the state-of-the-art as far as determining how many Reidemeister moves are needed to get between diagrams of equivalent knots. 
It is not known that knot recognition is NP-complete. 
For software to find equivalent diagrams, I would try out the program Gridlink written by Marc Culler, which allows one to experiment with grid diagrams of links, and perform the corresponding grid moves. If two projects of knots in grid position are equivalent by Reidemeister moves, then they will be equivalent by the grid moves. I think grid diagrams are easier to work with computationally and to render output on a computer. The Kirby calculator also allows certain Reidemeister moves to be performed, but is not specifically designed for this purpose.  
