Website: http://www.cs.princeton.edu/theory/complexity/
This book is to be published. Its authors are Sanjeev Arora and Boaz Barak, two famous computer scientist in princeton university. I was recommended to read this book last two week, here I just demonstrate some idea and important definition, proof in this book. At last, I recommend this book to all that want to study complexity theory in computer science.
Basic Idea (section 1)
The basic idea of this paper is to introduce the computational model to the reader, Ranging from the encodings, modeling computation to the Turing Machine and its computation universality. In this section, the author introduces some definitions such as running time, Complexity class, Turing machine and so on. It starts from the encodings and languages, passing the operations involved in a specialized computation, and then reaching Turing Machine and its expressive power. At last, it gives the presentation of the running time and some relation topics.
Running Time
Let f : {0,1}*
-->{0,1}* and let T : N
-->{N be some functions. We say that a TM M computes function f if for every x∈{0,1}*, if M is initialized to the start configuration on input x, then it halts with f(x) written on its output tape. We say M computes f in T(n)-time if for all n and all inputs x of size n, the running time of M on that input is at most T(n).
Complexity Class
A complexity class is a set of functions that can be computed within a given resourse. In this place, we specify the resourse to the time and space .etc. For example, the P class is a class of decision problems which can be computed in polynomial time using deterministic Turing Machine.
The Criticisms to Turing Machine
I do think this part is mostly worth reading and studying because it gives the flaws of Turing Machine, as well as the flaws of today’s computational conditions.
Worst-case exact computation is too strict. The definition of
P only considers algorithms that compute the function exactly on every possible input. However, not all possible inputs arise in practice.
Other physical realizable models. 1. TM computes with discrete symbols, whereas physical quantities may be real numbers in R. 2. TM is defined as deterministic, it cannot describe the randomness. 3. Maybe quantum mechanics are more efficient and universal than TM, through we don’t know weather it can be realized in modern physics.
Some NP Problems:
Independent set: Given a graph G and a number k, decide if there is a k-size independent subset of G’s vertices.
Traveling salesperson: Given a set of n nodes, (2,n) numbers d(i,j) denoting the distances between all pairs of nodes, and a number k, decide if there is a closed circuit that visits every node exactly once and has total length at most k.
Subset sum: Given a list of n numbers A1,…,An and a number T, decide if there is a subset of the numbers that sums up to T.
Composite numbers: Given a number N decide if N is a composite number.
Vertex cover: Given a graph G and a number k, decide if there is a subset of G’s vertices denoted S, S covers all edges of G.
Hamiltonian path problem: Given a graph G, decide if there is a Hamiltonian path. (A Hamiltonian path is a cycle which visit every vertex exactly once and returns to the start point)
Some meaningful proof:
SAT is NP-Complete: I don't want to copy all detailed proof to here. I just want to show the basic concept for this proof. its main idea is to find out if a language L is NP, and x
∈L, whether we could find a CNF p, such that p is in SAT. The technique the proof use is Turing Machine, as we know, a NP language can be simulatd in non-deterministic TM in polynomial time, therefore, we give a polynomial-time TM denoted M, where M(x,u)=1; Then, we took the running process of this TM into account, let the snapshot be concerned, we just use one-step logic to consturct the snapshot to a CNF. And easily could we prove this CNFis in SAT.
Summation
In this note, I just want to introduce a book on complexity theory to you. It is now still a draft, waiting to be published. However, its authors are very strong and worth respectation. In this book, the author always try to tell the reader what the essential staff in complexity theory, but still should we know, this book is not concerned about algorithm, all it is about is the complexity theory in computer science, including complexity classes, proof techniques and so on.
Best wishes to you!