Theoretical complexity is a vital subfield of computer science that enables us to mathematically investigate computation and answer many interesting queries about the nature of computational problems. It provides theoretical tools to assess time and space requirements of computations along with assessing the difficultly of problems - classifying them accordingly. It also garners at its core one of the most important problems in mathematics, namely, the $\textbf{P vs. NP}$ millennium problem. In essence, this problem asks whether solution and verification reside on two different levels of difficulty. In this thesis, we introduce some of the most central concepts in the Theory of Computing, giving an overview of how computation can be abstracted using Turing machines. Further, we introduce the two most famous problem complexity classes $\textbf{P}$ and $\textbf{NP}$ along with the relationship between them. In addition, we explicate the concept of problem reduction and how it is an essential tool for making hardness comparisons between different problems. Later, we present the problem of Boolean Satisfiability (SAT) which lies at the center of NP-complete problems. We then explore some of its tractable as well as intractable variants such as Horn-SAT and 3-SAT, respectively. Last but not least, we establish polynomial-time reductions from 3-SAT to some of the famous NP-complete graph problems, namely, Clique Finding, Hamiltonian Cycle Finding, and 3-Coloring.
翻译:理论复杂性是计算机科学中一个至关重要的子领域,它使我们能够从数学角度调查计算和回答关于计算问题性质的许多令人感兴趣的问题。它提供了理论工具,评估计算的时间和空间要求,同时评估问题的困难性,对问题进行相应的分类。它也在其核心部分引起了数学中最重要的问题之一,即 $\ textbf{P vs. NP} 千年问题。实质上,问题在于解决方案和核查是否存在于两个不同的困难水平上。在这个论文中,我们在电子计算理论中引入了一些最核心的概念,概述了如何利用图灵机器来抽取计算的时间和空间要求。此外,我们引入了两个最著名的复杂问题类别 $\ textbf{P} 和 $\ textb{NP} 以及它们之间的关系。 此外,我们解释了减少问题的概念,以及它如何成为在不同问题之间进行硬度比较的基本工具。 稍后,我们提出了Boolean Satfility (SAT) 问题, 问题在于如何利用图灵敏度中心, 也就是NP- 3 SAT 的硬度变式, 然后我们分别探索了它的某些变式, 3 。