------------------------------------------------ COMP SCI 731 - Lecture 1 - Tuesday, Oct 24, 2000 ------------------------------------------------ Today: o This term o Background on NP-completeness o The problems 3SAT and CLIQUE This term --------- I was going to do just cryptography, but I decided to do NP-completeness, too. Maybe 6-8 lectures on NP-completeness, 1-2 lecture on probability, and then cryptography. This will help you understand cryptography better than if I begin with cryptography. And NP-completeness is a wonderful topic. Work: (1) Occasional homeworks (sometimes given in class) (2) Read a paper and report on it (3) written final (4) oral discussion Must attend, too! Reference for NP-Completeness: Garey and Johnson, "Computers and Intractability". Out of date, but still good. Reference for cryptography: none. I'll give you some things to read. Background on NP-completeness ----------------------------- * We had a lecture on NP-completeness last term --the last lecture-- but I never mentioned words like NP-completeness. Remember? SUBSET SUM // remind VERTEX COVER // remind We showed that IF you could solve SUBSET SUM by an efficient algorithm THEN you could solve VERTEX COVER by an efficient algorithm. We think you can NOT solve VERTEX COVER by an efficient algorithm. So this gives evidence that you can not solve SUBSET SUM by an efficient algorithm. Wouldn't it be better to just prove that you can't solve SUBSET SUM by an efficient algorithm? YES! So why don't we do that, instead? Because we don't know how. The theory of NP-completeness is, in some sense, an effective "second choice". * NP-completeness is the flip side of what we did last term. There we were trying to find good algorithms. Now we are tying to show that good algorithms do NOT exist. * NP-completeness shares with cryptography a focus on what is hard. In cryptograph we LIKE hardness. We are trying to create difference in hardness -- asymmetry. Tasks should be easy for the "good guys" and hard for the "bad guys". NP-completeness gives ONE notion of hardness. We will be seeing more. * Describe the historical development of NP-Completeness. Steven Cook, "The Complexity of Theorem-Proving Procedures", 1971 Richard Karp, "Reducibility among Computational Problems", 1972. Core idea --polynomial-time reductions-- implicit in work going back to the 1960's. Reductions now plays central role in theoretical computer science. * Fanciful description of how to keep your job, from the beginning of [Garey, Johnson] An example reduction -------------------- Probably don't remember the VERTEX COVER < SUBSET SUM reduction. Do another reduction. Slowly introduce two problems: * 3SAT Instance: A Boolean formula phi in 3CNF Question: Is phi satisfiable? A 3CNF formula is defined as follows. The formula is an and of _clauses_ . Each clause is the or of three _literals_. Each literal is a _variable_ or its complement. The variables of each clause are distinct. * CLIQUE Instance: A graph G=(V,E) and a number k. Question: Does G contain a k-clique? A k-clique is k mutually connected vertices.