Arjun Suresh (talk | contribs) |
Arjun Suresh (talk | contribs) (→Reduction) |
||
Line 2: | Line 2: | ||
==Reduction== | ==Reduction== | ||
− | Reducing a problem A to problem B means converting an instance of problem A to problem B. Then, if we know the solution of problem B, we can solve problem A. | + | Reducing a problem <math>A</math> to problem <math>B</math> means converting an instance of problem <math>A</math> to an instance of problem <math>B</math>. Then, if we know the solution of problem <math>B</math>, we can solve problem <math>A</math> by using it. |
+ | |||
Consider the following example: | Consider the following example: | ||
− | You want to go from Bangalore to Delhi and you | + | You want to go from Bangalore to Delhi and you can get a ticket from Mumbai to Delhi. So, you ask your friend for a lift from Bangalore to Mumbai. So, the problem of going from Bangalore to Delhi got reduced to a problem of going from Mumbai to Delhi. |
+ | Consider problems $A$, $B$ and $C$ | ||
+ | Assume all reductions are done in polynomial time | ||
===2 Important Points=== | ===2 Important Points=== | ||
− | #If <math>A</math> is reduced to <math>B</math> and <math>B</math> $\in$ class $X$, then <math>A</math> cannot be harder than $X$, because we can always do a reduction from <math>A</math> to <math>B</math> and solve <math>B</math> instead of directly solving <math>A</math>. | + | #If <math>A</math> is reduced to <math>B</math> and <math>B</math> is$\in$ class $X$, then <math>A</math> cannot be harder than $X$, because we can always do a reduction from <math>A</math> to <math>B</math> and solve <math>B</math> instead of directly solving <math>A</math>. |
#If <math>A</math> is reduced to <math>B</math> and <math>A</math> $\in$ class $X$, then <math>B</math> cannot be easier than $X$. The argument is exactly same as for the one above. This reduction is used to show if a problem belongs to NP-Hard - just reduce some known NP-Hard problem to this problem | #If <math>A</math> is reduced to <math>B</math> and <math>A</math> $\in$ class $X$, then <math>B</math> cannot be easier than $X$. The argument is exactly same as for the one above. This reduction is used to show if a problem belongs to NP-Hard - just reduce some known NP-Hard problem to this problem | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Somethings to take care of=== | ===Somethings to take care of=== |
$P \subseteq NP \subseteq NPC \subseteq NPH$
Reducing a problem <math>A</math> to problem <math>B</math> means converting an instance of problem <math>A</math> to an instance of problem <math>B</math>. Then, if we know the solution of problem <math>B</math>, we can solve problem <math>A</math> by using it.
Consider the following example: You want to go from Bangalore to Delhi and you can get a ticket from Mumbai to Delhi. So, you ask your friend for a lift from Bangalore to Mumbai. So, the problem of going from Bangalore to Delhi got reduced to a problem of going from Mumbai to Delhi.
Consider problems $A$, $B$ and $C$ Assume all reductions are done in polynomial time
$P \subseteq NP \subseteq NPC \subseteq NPH$
Reducing a problem <math>A</math> to problem <math>B</math> means converting an instance of problem <math>A</math> to an instance of problem <math>B</math>. Then, if we know the solution of problem <math>B</math>, we can solve problem <math>A</math> by using it.
Consider the following example: You want to go from Bangalore to Delhi and you can get a ticket from Mumbai to Delhi. So, you ask your friend for a lift from Bangalore to Mumbai. So, the problem of going from Bangalore to Delhi got reduced to a problem of going from Mumbai to Delhi.
Consider problems $A$, $B$ and $C$ Assume all reductions are done in polynomial time