A common approach in solving problems is to transform them to different problems, solve the new ones, and derive the solutions for the original problems from those for the new ones. This approach is helpful when the new problems are simpler to solve, or when they usually have known algorithms for solving them. A similar approach is also very useful in the classification of problems according to their complexity.