Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
aa:intro:complexity_theory [2016/08/03 11:29] malex |
aa:intro:complexity_theory [2016/08/03 11:34] (current) malex |
||
---|---|---|---|
Line 414: | Line 414: | ||
==== 1.6.1 Remark (Practical applications of reductions) ==== | ==== 1.6.1 Remark (Practical applications of reductions) ==== | ||
- | //As illustrated before, reductions of the type $math[\leq_p] are a theoretical tool which is useful for providing $math[NP]-hardness. Reductions also have practical applications. For instance, most $math[NP]-complete problems are solved by employing $math[SAT] solvers, which, as discussed in the former chapters, may be quite fast in general case. Thus, a specific problem instance is cast (via an appropriate transformation) into a formula $math[\varphi], such that $math[varphi] is satisfiable iff the answer to the instance is// yes. | + | //As illustrated before, reductions of the type $math[\leq_p] are a theoretical tool which is useful for providing $math[NP]-hardness. Reductions also have practical applications. For instance, most $math[NP]-complete problems are solved by employing $math[SAT] solvers, which, as discussed in the former chapters, may be quite fast in general case. Thus, a specific problem instance is cast (via an appropriate transformation) into a formula $math[\varphi], such that $math[\varphi] is satisfiable iff the answer to the instance is// yes. |
+ | |||
+ | ==== $math[SAT]. The first $math[NP]-complete problem. ==== | ||
+ | We observe that the "//hen and eggs//" issue still holds in our scenario. To apply our technique, we need an initial $math[NP]-hard problem in the first place. This problem is provided by Cook's Theorem, which proves that $math[SAT] is $math[NP]-complete. The technique for the proof relies on building, for each $math[NTM \mbox{ } M] (and hence, for each problem in $math[NP]), a formula $math[\varphi_M] such that it is satisfiable iff there exists a sequence in the computation tree leading to **success**. |