I'm taking an algorithms course in which we are discussing proofs that problems are NP-Complete.
Our proofs usually take the form:
Given a problem $\Pi$,
1. Prove that $\Pi$ is NP.
2. Select an NP-C problem $\Pi'$.
3. Find a transformation $\propto$ from $\Pi'$ to $\Pi$.
4. Prove that $\propto$ is polynomial.
5. Prove that iff a solution $S$ to $\Pi'$ is correct, then $\propto(S)$ is a solution to $\Pi$.
I have a question about step $2$. When I'm attempting to prove that a problem $\Pi$ is NP-C, how do I go about selecting $\Pi'$? Is there a systematic approach I can use? If not, what is the intuition behind selecting $\Pi'$, and how can I practice and develop that intuition?