The Use of Coding Theory in Computational Complexity 1 Introduction
Total Page:16
File Type:pdf, Size:1020Kb
The Use of Co ding Theory in Computational Complexity Joan Feigenbaum ATT Bell Lab oratories Murray Hill NJ USA jfresearchattcom Abstract The interplay of co ding theory and computational complexity theory is a rich source of results and problems This article surveys three of the ma jor themes in this area the use of co des to improve algorithmic eciency the theory of program testing and correcting which is a complexity theoretic analogue of error detection and correction the use of co des to obtain characterizations of traditional complexity classes such as NP and PSPACE these new characterizations are in turn used to show that certain combinatorial optimization problems are as hard to approximate closely as they are to solve exactly Intro duction Complexity theory is the study of ecient computation Faced with a computational problem that can b e mo delled formally a complexity theorist seeks rst to nd a solution that is provably ecient and if such a solution is not found to prove that none exists Co ding theory which provides techniques for robust representation of information is valuable b oth in designing ecient solutions and in proving that ecient solutions do not exist This article surveys the use of co des in complexity theory The improved upp er b ounds obtained with co ding techniques include b ounds on the numb er of random bits used by probabilistic algo rithms and the communication complexity of cryptographic proto cols In these constructions co des are used to design small sample spaces that approximate the b ehavior of large sample spaces Co des are also used to prove lower b ounds on the complexity of approximating numerous combinatorial optimization functions Finally co ding theory plays an imp ortant role in new characterizations of traditional complexity classes such as NP and PSPACE and in an emerging theory of program testing Section reviews the concepts from b oth complexity theory and co ding theory that we will need in the following sections Section demonstrates how co des are used to prove complexity theoretic upp er b ounds The theory of program testing and correcting is presented in Section Lower b ound applications and new characterizations of standard complexity classes are presented in Section Preliminaries This section briey reviews the basic elements of the two discplines under consideration ie com plexity theory and co ding theory If more than a brief review is needed refer to one of the standard textb o oks Complexity Theory We assume that the reader is familiar with the Turing machine TM mo del of computation A formal denition of this mo del can b e found in any intro ductory b o ok on computational complexity eg Garey and Johnson or Papadimitriou However most of the denitions presented in this section require only an intuitive understanding of the notions of time complexity or space complexity of a computational problem readers unfamiliar with the denition of a TM can understand our main p oints in terms of the numb er of op erations p erformed or the numb er of memory lo cations used by a standard computer program In general a function we are interested in computing is dened on some innite domain I There is a sequence of sub domains I I such that I I and a constant c such that for n n c c all x I n jxj n where jxj is the numb er of bits in some suitable binary enco ding of x n n For example we may have I f g and I f g in which case we can take c If p is n n an nbit prime then I may consist of ntuples of elements in GFp in which case we can take n n c We refer to elements of I as inputs of size n So size is a generalization of binary length n A polynomialtime Turing machine is a TM for which there is a sp ecic p olynomial say pn that b ounds the running time that is on inputs of size n the machine always halts after at most pn steps We denote by FP the class of functions computable by p olynomialtime TMs Note that a TM that computes a b o olean function can also b e interpreted as recognizing a language For example computing f where f x if x enco des a planar graph and f x otherwise is the same as recognizing the language of planar graphs In general the deterministic Turing machine M is said to recognize the language fx j f x g which is denoted LM Thus FP is a generalization of the complexity class P of p olynomialtime recognizable languages Polynomial space Turing machines and the complexity classes FPSPACE and PSPACE are dened in exactly the same manner as p olynomialtime TMs FP and P except that the computational resource that is b ounded by the p olynomial pn is space instead of time Exponentialtime Turing machines and the complexity classes FEXP and EXP are dened analogously to p olynomialtime TMs FP and P except that all o ccurrences of p olynomial and pn are replaced by exp onential and pn A nondeterministic polynomialtime Turing machine is a p olynomialtime TM that at each step in the computation has several choices for its next move The set of all p ossible computations of such a machine M on input x I can b e viewed as a tree Because the total running time of n M is b ounded by pn the paths from the ro ot to the leaves of the computation tree may all b e taken to have length exactly pn short computation paths may b e padded with dummy steps if necessary Each leaf in the computation tree is lab elled with the output that M pro duces on input x if during the computation it makes the sequence of choices represented by the path to this leaf If all of the lab els are s and s then we can dene the language LM accepted by M The input x is in LM if there is at least one leaf in the computation tree that is lab elled The path to such a leaf is called an accepting computation of M on input x or a witness that x LM The set of all languages accepted by nondeterministic p olynomialtime TMs constitutes the complexity class NP NP plays a prominent role in computational complexity Indeed the central unsolved problem in complexity theory is the P NP question The main reason for the centrality of the complexity class NP is the large numb er of natural computational problems that can b e formalized as NP languages Examples include Satisability of prop ositional formulae The NP language SAT consists of strings that enco de satisable prop ositional formulae in conjunctive normal form CNF For example x x x x is an element of the language SAT b ecause the assignment x T x T satises x x is not in SAT b ecause none of the b oth clauses On the other hand x x x four truth assignments to the variables x and x satises all three clauses simultaneously In most settings it suces to consider the language SAT in which the formulae are conjuncts of clauses that are themselves disjuncts of three literals Colorability of graphs The NP language COLOR consists of pairs G k such that the graph G is k colorable That is G k is in COLOR if and only if there is a mapping from V G to f k g such that if fv w g E G then v w Clique numb er of graphs The NP language CLIQUE consists of pairs G k such that the graph G has a k clique That is G k is in CLIQUE if and only if there is a subset fv v g k of V G such that fv v g E G for i j k i j These three NP languages along with thousands of others that arise naturally in applications 0 are NPcomplete A language L is NPcomplete if it is in NP and for any other language L in 0 NP there is a function R in FP called a polynomialtime reduction such that x L if and only if Rx L This means for example that if there were a p olynomialtime decision algorithm for SAT there would b e a p olynomialtime algorithm for every L in NP To decide whether x is in L compute Rx and test whether it is in SAT Thus the NPcomplete languages are as hard as any language in NP and barring an unexp ected resolution of the P NP question in the armative they cannot b e decided by deterministic p olynomialtime algorithms See Garey and Johnson for a comprehensive formal treatment of the theory of NPcompleteness The concept of NPcompleteness and the pro of that SAT is NPcomplete were put forth in the seminal pap er of Co ok Similar ideas were develop ed indep endently by Levin Shortly thereafter Karp established the fundamental imp ortance of the concept by proving the NP completeness of many languages that arise naturally in applications including SAT CLIQUE and COLOR In the ensuing years thousands of NPcompleteness results were proven A standard question along with a b o dy of technique for answering it was established in the computer sci ence rep etoire When confronted with a combinatorial problem for which you cannot nd a go o d algorithm formulate it as a languagerecognition problem and try to prove that the language is NPcomplete Such problems are now divided into those for which p olynomialtime algorithms are known eg maximum matching and network ow those that are NPcomplete and a few eg graph isomorphism whose status is unknown Before Co ok and Karp established the concept 1 Although there is no proof that graph isomorphism is not NPcomplete nor is one exp ected any time so on b ecause such a pro of would imply that P 6 NP there is some evidence that it is not see Boppana Hstad and Zachos or Schoning of NPcompleteness there was no coherent explanation for the fact that certain problems like matching had ecient algorithms while others that did not seem very dierent at rst glance like CLIQUE did not With the theory of NPcompleteness in hand such an explanation is easy A p olynomialtime