0

I'm not a student taking a computational complexity course, just interested in the subject. I came across this section:

Suppose we have a problem that we've proven is hard to solve, and we have a similar new problem. We might suspect that it is also hard to solve. We argue by contradiction: suppose the new problem is easy to solve. Then, if we can show that every instance of the old problem can be solved easily by transforming it into instances of the new problem and solving those, we have a contradiction. This establishes that the new problem is also hard.

Source: Wikipedia

I can't seem to wrap my head around what this means. Can you explain this process in layman's terms (as much as possible) how a proof by contradiction as such would work?

Is the contradiction that we know the old problem is hard but we're able to reduce it to a new problem and solving that means old is at least as easy as new? This whole idea is confusing to me. Can someone explain it to me, who doesn't have a solid background in computational complexity theory?

rb612
  • 5,280
  • 3
  • 30
  • 68

1 Answers1

0

Say that we know for a fact that task A is a hard task. Now say we are given task B and asked to determine whether it's hard or not. Pretend that we figure out a way to efficiently break down task A into a few parts and each part turns out to be task B. That is, task A can be easily performed by doing a small number of task Bs. Now, can task B be easy? If it were, then I'd be able to do task A easily as well. That would be a contradiction though, since i know task A to be hard. Therefore task B must be hard as well.

It's important to note that all cases of task A must reduce to B in order for this to hold. If just some cases do then B could be easy but still not provide an easy solution to A in general, therfore there isn't necessarily a contradiction. Also, if it takes a lot to reduce A to B (ie the reduction itself is hard) then there isn't necessarily a contradiction if B is easy.

Philip
  • 1,526
  • 1
  • 14
  • 25
  • Beautifully said. Thank you. – rb612 May 21 '16 at 06:26
  • Follow up question: what if there's the chance that task B is actually easy, and we find out later that it is. Does this mean that task A is now as easy as task B, and this means the entire subset of NP collapses on itself (like NP-completeness) to form one large P class in essence? – rb612 May 21 '16 at 06:38
  • If B turns out to be easy then A is too, as well as every other previously thought to be hard task. This would amount to showing that P=NP. – Philip May 21 '16 at 06:47