P, NP and beyond CSA Summer School 2013 Chandan Saha What is Computational Complexity? Study of the amount of resources required by an algorithm to solve a problem. What is Computational Complexity? Study of the amount of resources required by an algorithm to solve a problem. • • • • Time (bit operations) Space (bits) Randomness Communications What is Computational Complexity? Study of the amount of resources required by an algorithm to solve a problem. • Mathematically formalized as Turing Machines What is Computational Complexity? Study of the amount of resources required by an algorithm to solve a problem. • Language: Set of {0,1}* strings. Turing Machines Input : 1 0 1 … 0 1 1 Turing Machine Input : 1 0 1 Work tape: 1 1 0 Head … 0 … 1 1 1 1 1 Turing Machine Input : 1 0 1 … Work tape: 1 1 0 Output: 1 1 1 0 1 1 … … 1 0 0 1 1 1 Turing Machine Input : 1 0 1 … Work tape: 1 1 0 Output: 1 1 Processor (states) 1 0 1 1 … … 1 0 0 1 1 1 Turing Machine Input : 1 0 1 … Work tape: 1 1 0 Output: 1 1 Processor (states) 1 0 1 1 … … 1 0 0 1 1 1 Finite set of instructions (transition functions) Why Turing Machines ? Natural & intuitive. Why Turing Machines ? Natural & intuitive. A formal model helps us study the power and limitations of computation mathematically. Why Turing Machines ? Natural & intuitive. A formal model helps us study the power and limitations of computation mathematically. Church-Turing thesis: “Every physically realizable computation device – whether it’s based on silicon, DNA, neurons or some other alien technology – can be simulated by a Turing machine”. --- [quote from Arora-Barak’s book] Why Turing Machines ? Natural & intuitive. A formal model helps us study the power and limitations of computation mathematically. Church-Turing thesis: “Every physically realizable computation device – whether it’s based on silicon, DNA, neurons or some other alien technology – can be simulated by a Turing machine”. --- [quote from Arora-Barak’s book] Might or might not be true! Why Turing Machines ? Natural & intuitive. A formal model helps us study the power and limitations of computation mathematically. Church-Turing thesis: “Every physically realizable computation device – whether it’s based on silicon, DNA, neurons or some other alien technology – can be simulated by a Turing machine”. --- [quote from Arora-Barak’s book] Might or might not be true! Quantum computers ? In support of the CT thesis Several other computational models like, “lamda calculus, cellular automata, pointer machines, bouncing billiard balls, Conway’s game of life, and so on..” are all equivalent to the Turing machine model of computation. In support of the CT thesis Several other computational models like, “lamda calculus, cellular automata, pointer machines, bouncing billiard balls, Conway’s game of life, and so on..” are all equivalent to the Turing machine model of computation. Can Turing machines solve any computational problem? In support of the CT thesis Several other computational models like, “lamda calculus, cellular automata, pointer machines, bouncing billiard balls, Conway’s game of life, and so on..” are all equivalent to the Turing machine model of computation. Can Turing machines solve any computational problem? Not really! Example: Solving Diophantine equations Input: A system of polynomial equations in many variables with integer coefficients. Output: Check if the system has integer solutions . Question: Is there an algorithm to solve this problem? Example: Solving Diophantine equations Input: A system of polynomial equations in many variables with integer coefficients. Output: Check if the system has integer solutions . Question: Is there an algorithm to solve this problem? x2y + 5y3 = 3 x2 + z5 – 3y2 = 0 y2 – 4z6 = 0 Integer solutions for x, y, z? Example: Solving Diophantine equations Input: A system of polynomial equations in many variables with integer coefficients. Output: Check if the system has integer solutions . Question: Is there an algorithm to solve this problem? x2y + 5y3 = 3 x2 + z5 – 3y2 = 0 Integer solutions for x, y, z? y2 – 4z6 = 0 A question posed by David Hilbert in 1900 Computational limitations of TM The problem, Solving Diophantine equations, cannot be solved by any Turing machines (no matter how much time & space we allow). Computational limitations of TM The problem, Solving Diophantine equations, cannot be solved by any Turing machines (no matter how much time & space we allow). Such problems are known as undecidable problems. There are many other examples. Computational limitations of TM The problem, Solving Diophantine equations, cannot be solved by any Turing machines (no matter how much time & space we allow). Such problems are known as undecidable problems. There are many other examples. For the rest of this talk, we’ll restrict our attention to computable (or decidable) problems. Computational limitations of TM The problem, Solving Diophantine equations, cannot be solved by any Turing machines (no matter how much time & space we allow). Such problems are known as undecidable problems. There are many other examples. For the rest of this talk, we’ll restrict our attention to computable (or decidable) problems. Good idea to have a list of computable problems in mind! Problem set 1 Multiplication: Given two integers a & b compute ab Problem set 1 Multiplication: Given two integers a & b compute ab Solving linear system: Solve a system of m linear equations in n variables over rationals. Problem set 1 Multiplication: Given two integers a & b compute ab Solving linear system: Solve a system of m linear equations in n variables over rationals. 1.5x + x+ 0.5y – 2y z = 1.25 = 0.25 2x - 0.33y + 0.7z = 2 rational solutions for x, y, z? Problem set 1 (contd.) Shortest path: Given a weighted graph and two vertices s & t, find the shortest path from s to t. Problem set 1 (contd.) Shortest path: Given a weighted graph and two vertices s & t, find the shortest path from s to t. Maximum matching: Given a graph, find a maximum matching. Problem set 1 (contd.) Shortest path: Given a weighted graph and two vertices s & t, find the shortest path from s to t. Maximum matching: Given a graph, find a maximum matching. Matching Problem set 2 Vertex cover: Given a graph G and an integer k, check if there’s a set of k vertices that covers all the edges. Vertex cover of size 5 Problem set 2 (contd.) Boolean 3-satisfiability: Given a set of m clauses in n variables check if there’s an assignment that satisfies all the clauses. ¬x + y + z + u = 1 x + ¬y + x + ¬y + z ¬u = 1 =1 Boolean solution for x,y,z,u? Problem set 2 (contd.) Travelling salesman problem: Given a list of pairwise distances between n cities, is there a route of length at most k that travels through all of them? Problem set 3 Smallest Boolean circuit: Find the smallest Boolean circuit equivalent to a given Boolean circuit. (VLSI design) Problem set 3 Smallest Boolean circuit: Find the smallest Boolean circuit equivalent to a given Boolean circuit. (VLSI design) Number of Cycles: Given a directed graph G, count the number of simple cycles in G. Which of the problems in Set 1, 2 and 3 can be solved efficiently? Which of the problems in Set 1, 2 and 3 can be solved efficiently? We need to formalize the notion of computational efficiency. Defining `Efficiency’: Class P Polynomial time computation: An algorithm runs in polynomial time if for every input of size n the running time of the algorithm is bounded by nc, where c is a constant independent of the input. c may vary from one algorithm to the other Why `polynomial time’? All computational models that are `equivalent’ to Turing machines, reduce to each other in polynomial time If you can solve one problem in one computational model, you can also solve it any other `equivalent’ computational model with just a polynomial slow down in the running time of the algorithm. Problems in class P All the problems in Set 1: • Integer Multiplication • Solving linear system • Shortest path • Maximum matching can be solved in polynomial time. Problems in class P All the problems in Set 1: • Integer Multiplication • Solving linear system • Shortest path • Maximum matching (Edmonds 1965) can be solved in polynomial time. Are all computable problems in P? Certainly not! Are all computable problems in P? Certainly not! • Ideal membership problem: Given multivariate polynomials g, f1, …., fn, check if there exist polynomials h1, …, hn such that g = h1f1 + … + hnfn Are all computable problems in P? Certainly not! • Ideal membership problem: Given multivariate polynomials g, f1, …., fn, check if there exist polynomials h1, …, hn such that g = h1f1 + … + hnfn IM is not in class P A simpler version of Ideal membership A valid set of polynomials h1, …, hn is a certificate of the fact that g = h1f1 + … + hnfn A simpler version of Ideal membership A valid set of polynomials h1, …, hn is a certificate of the fact that g = h1f1 + … + hnfn Simpler version of IM: Suppose an `alleged certificate’ h1, …, hn is given. Check if g = h1f1 + … + hnfn Verification version of IM A simpler version of Ideal membership A valid set of polynomials h1, …, hn is a certificate of the fact that g = h1f1 + … + hnfn Simpler version of IM: Suppose an `alleged certificate’ h1, …, hn is given. Check if g = h1f1 + … + hnfn Is this problem easy? A simpler version of Ideal membership A valid set of polynomials h1, …, hn is a certificate of the fact that g = h1f1 + … + hnfn Simpler version of IM: Suppose an `alleged certificate’ h1, …, hn is given. Check if g = h1f1 + … + hnfn Is this problem easy? The certificate h1, …, hn can be much larger than the original polynomials g, f1, …., fn ; implying that verification cannot be done in time polynomial in the size of g, f1, …., fn. Class NP A problem is in NP if: • its solution or certificate size is small, • solution or certificate can be verified efficiently. Class NP A problem is in NP if: • its solution or certificate size is small, • solution or certificate can be verified efficiently. Problems in set 2: • Vertex cover • Boolean 3-satisfiability • Travelling Salesman problem are all in class NP. The P versus NP question To summarize, • P: Problems that can be solved efficiently. • NP: Problems whose (alleged) solutions can be verified efficiently. must be of size at most polynomial in the input size of the problem The P versus NP question To summarize, • P: Problems that can be solved efficiently. • NP: Problems whose (alleged) solutions can be verified efficiently. P versus NP question: Can problems with efficiently verifiable solutions be also solved efficiently? Note: P is in NP The P versus NP question NP problems can be solved in exponential time. Simply go over all possible choices of certificates in 2poly(n) time. The P versus NP question NP problems can be solved in exponential time. P versus NP question: Can exponential search for solution be avoided? Philosophical implications of P vs NP A proof (solution or certificate) of a mathematical theorem is easier to verify that to actually prove (i.e find a solution to) the theorem. If P = NP then in principle computers can replace mathematicians some day! Notion of NP-completeness NP-complete problems hardest problems in NP Notion of NP-completeness NP-complete problems hardest problems in NP A problem L in NP is NP-complete if a polynomial time algorithm for L implies a polynomial time algorithm for every other problem in NP. Notion of NP-completeness NP-complete problems hardest problems in NP A problem L in NP is NP-complete if a polynomial time algorithm for L implies a polynomial time algorithm for every other problem in NP. All the problems in set 2 are NP-complete! along with thousands of other problems! Problems in NP but not in NPC U P? Are there problems in NP which are neither NP-complete nor in P? Problems in NP but not in NPC U P? Are there problems in NP which are neither NP-complete nor in P? Yes, if P ≠ NP NPC NP Ladner’s theorem (1975) P Natural problems in NP / (NPC U P)? Are there natural examples of problems which are neither NP-complete nor in P? Natural problems in NP / (NPC U P)? Are there natural examples of problems which are neither NP-complete nor in P? No one knows yet as that would imply P ≠ NP. Some researchers suspect that graph isomorphism, integer factoring could be examples of such problems. Graph Isomorphism problem Given two directed graphs G and H on the same vertex set V, check if there exist a permutation л on V such that (u,v) in EG (л(u), л(v)) in EH Edge set of G Edge set of H Graph Isomorphism problem Given two directed graphs G and H on the same vertex set V, check if there exist a permutation л on V such that (u,v) in EG (л(u), л(v)) in EH 1 2 1 2 4 3 G ~ H 4 3 G H Graph Isomorphism problem Given two directed graphs G and H on the same vertex set V, check if there exist a permutation л on V such that (u,v) in EG (л(u), л(v)) in EH 1 2 1 2 4 3 G ~ H 4 3 H G Note: GI is in NP Coping with NP-hardness Average-case complexity Approximation algorithms Boon of NP-hardness Complexity theory Role of Randomness P vs NP Secrecy & security Coping with NP-hardness Average-case complexity Approximation algorithms Boon of NP-hardness Complexity theory Role of Randomness P vs NP Secrecy & security Role of Randomness in computation Can randomness give additional power to computation? Role of Randomness in computation Can randomness give additional power to computation? • The answer depends on how we use randomness. • First, we need to make the model of probabilistic computation formal & precise. Probabilistic Turing Machine additional input/power 1 0 1 … 0 1 1 Turing Machine M r = random bits (each bit is 1 with prob. ½ and 0 with prob. 1/2) Probabilistic Turing Machine additional input/power 1 0 1 … 0 1 1 Turing Machine M r = random bits (each bit is 1 with prob. ½ and 0 with prob. 1/2) • Output of M depends on the value of r. • Ideally, number of bits of r = poly(n), where n is the input size. Probabilistic Turing Machine • A TM with the additional power of generating random bits. Probabilistic Turing Machine • A TM with the additional power of generating random bits. How can we generate random bits? Is this a realistic model? Probabilistic Turing Machine • A TM with the additional power of generating random bits. How can we generate random bits? • Practically, using psuedo-random number generators functions whose output behave like random numbers Probabilistic Turing Machine • A TM with the additional power of generating random bits. How can we generate random bits? • Practically, using psuedo-random number generators In theory, true randomness can be found in quantum physics Example: Randomized Quicksort Worst-case complexity of Quick-sort on n numbers is O(n2). Example: Randomized Quicksort Worst-case complexity of Quick-sort on n numbers is O(n2). In randomized QS, position of a pivot element is chosen at random (in every iteration or level of the recursion). Example: Randomized Quicksort Worst-case complexity of Quick-sort on n numbers is O(n2). In randomized QS, position of a pivot element is chosen at random (in every iteration or level of the recursion). Time complexity improves to O(n log n) with high probability. Randomness does help indeed! Example: Randomized Quicksort Worst-case complexity of Quick-sort on n numbers is O(n2). In randomized QS, position of a pivot element is chosen at random (in every iteration or level of the recursion). Time complexity improves to O(n log n) with high probability. Randomness does help indeed! But how much? Can randomness improve the efficiency of an algorithm from exponential-time to polynomial-time? Probabilistic polynomial-time computation Class BPP Probabilistic polynomial time computation: An algorithm runs in probabilistic polynomial time if for every input of size n: • the algorithm uses r = poly(n) random bits. Class BPP Probabilistic polynomial time computation: An algorithm runs in probabilistic polynomial time if for every input of size n: • the algorithm uses r = poly(n) random bits. • outputs the right answer with probability 99%. Class BPP Probabilistic polynomial time computation: An algorithm runs in probabilistic polynomial time if for every input of size n: • the algorithm uses r = poly(n) random bits. • outputs the right answer with probability 99%. • the running time of the algorithm is bounded by nc, where c is a constant independent of the input. Can randomness improve the efficiency of an algorithm from exponential-time to polynomial-time? Is NP in BPP ? Can randomness improve the efficiency of an algorithm from exponential-time to polynomial-time? Is NP in BPP ? Unlikely! Hardness vs Randomness • Under a widely believed complexity theoretic assumption on existence of hard functions in DTIME(2O(n)), BPP = P Hardness vs Randomness • Under a widely believed complexity theoretic assumption on existence of hard functions in DTIME(2O(n)), BPP = P “… randomness never speeds up computation by more than a polynomial amount unless…”. --- (Impagliazzo, Wigderson 1997) Redemption for Randomness? Doesn’t randomness give any significant computational power? Redemption for Randomness? Doesn’t randomness give any significant computational power? It does… Redemption for Randomness? Doesn’t randomness give any significant computational power? It does… Ever wondered why most of us tend to learn faster through interaction with an expert, as compared to reading books by ourselves? Interactive Protocol Is x in L ? Interactive Protocol Is x in L ? Verifier All powerful prover Agrees upon a protocol (Expert) (Learner) Randomized polynomial time machine Interactive Protocol Is x in L ? sends a query All powerful prover Verifier (Expert) (Learner) Randomized polynomial time machine Interactive Protocol Is x in L ? answers the query All powerful prover Verifier (Expert) (Learner) Randomized polynomial time machine Interactive Protocol Is x in L ? All powerful prover (Expert) sends a query Verifier (Learner) Randomized polynomial time machine Interactive Protocol Is x in L ? All powerful prover (Expert) Verifier answers the query (Learner) Randomized polynomial time machine Interactive Protocol Is x in L ? All powerful prover (Expert) |x| = n Verifier . . . poly(n) number of rounds (Learner) Randomized polynomial time machine Interactive Protocol Is x in L ? All powerful prover (Expert) |x| = n Verifier . . . (Learner) poly(n) number of rounds In the end, Verifier either outputs x in L, or x not in L Randomized polynomial time machine Class IP IP: It is set of all problems (i.e. languages L) for which there’s an interactive protocol satisfying the following: Class IP IP: It is set of all problems (i.e. languages L) for which there’s an interactive protocol satisfying the following: • (Completeness): If x in L, there’s an honest Prover who convinces Verifier that x in L, with probability 1. Class IP IP: It is set of all problems (i.e. languages L) for which there’s an interactive protocol satisfying the following: • (Completeness): If x in L, there’s an honest Prover who convinces Verifier that x in L, with probability 1. •(Soundness): If x not in L, there’s no Prover who can convince Verifier that x in L, with probability higher than 0.01 Class IP In essence, IP captures that set of all problems whose solutions an intelligent verifier can learn efficiently from an expert without getting fooled by quacks! Class IP In essence, IP captures that set of all problems whose solutions an intelligent verifier can learn efficiently from an expert without getting fooled by quacks! Needs to fix a protocol and ask intelligent questions Class IP In essence, IP captures that set of all problems whose solutions an intelligent verifier can learn efficiently from an expert without getting fooled by quacks! probabilistic polynomial-time Class IP In essence, IP captures that set of all problems whose solutions an intelligent verifier can learn efficiently from an expert without getting fooled by quacks! Soundness – this is where we actually need randomness! Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Not known to be in NP! Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Now ponder on this…. Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Verifier picks one of G1 and G2 at random – say, Gi , and a random permutation л on the vertices of Gi . Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Verifier picks one of G1 and G2 at random – say, Gi , and a random permutation л on the vertices of Gi . Verifier sends л(Gi) to the Prover (and expects the Prover to return i this is the protocol) Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Prover returns some j. Verifier picks one of G1 and G2 at random – say, Gi , and a random permutation л on the vertices of Gi . Verifier sends л(Gi) to the Prover (and expects the Prover to return i this is the protocol) Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Prover returns some j. Verifier checks if i = j. Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Prover returns some j. Verifier checks if i = j. If so, outputs G1 non- isomorphic to G2. Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Prover returns some j. Verifier checks if i = j. If so, outputs G1 non- isomorphic to G2. Otherwise, outputs G1 isomorphic to G2. Interactive Protocol for GNI Check if G1 is non-isomorphic to G2 Prover returns some j. Verifier checks if i = j. If so, outputs G1 non- isomorphic to G2. Otherwise, outputs G1 isomorphic to G2. Repeat this protocol a few times to reduce Verifier’s chance of making a mistake How big is the class IP? IP contains problems that are seemingly not in NP! (like GNI) IP = PSPACE IP = Set of all problems that can be solved by a TM using poly(n) space =: PSPACE IP = PSPACE IP = Set of all problems that can be solved by a TM using poly(n) space =: PSPACE NP is contained in PSPACE IP = PSPACE IP = Set of all problems that can be solved by a TM using poly(n) space =: PSPACE The power of PSPACE comes from the fact that space can be reused! IP = PSPACE IP = Set of all problems that can be solved by a TM using poly(n) space =: PSPACE • Take randomness away from the Verifier : (deterministic) IP = NP Randomness is absolutely essential for the Verifier! Yet another usefulness of randomness Ever wondered how a teacher checks so many answer scripts so quickly, without compromising on the fairness of the evaluation process? Probabilistically Checkable Proofs • Every NP problem admits a certificate (or a proof) of polynomial length that can be verified efficiently. Probabilistically Checkable Proofs • Every NP problem admits a certificate (or a proof) of polynomial length that can be verified efficiently. • Such a proof is static, in the sense that one has to read the entire proof to verify for correctness. Probabilistically Checkable Proofs • Every NP problem admits a certificate (or a proof) of polynomial length that can be verified efficiently. • Such a proof is static, in the sense that one has to read the entire proof to verify for correctness. • Can NP-proofs be written in a format that can be verified by reading very few random bits of the proof? Probabilistically Checkable Proofs • Every NP problem admits a certificate (or a proof) of polynomial length that can be verified efficiently. • Such a proof is static, in the sense that one has to read the entire proof to verify for correctness. • Can NP-proofs be written in a format that can be verified by reading very few random bits of the proof? Such a proof is known as a PCP The PCP theorem Theorem: Every NP problem has a PCP of length poly(n) that can be verified with high probability for correctness, by reading only constantly many locations of the proof. NP = PCP (O(log n), O(1)) The PCP theorem Theorem: Every NP problem has a PCP of length poly(n) that can be verified with high probability for correctness, by reading only constantly many locations of the proof. NP = PCP (O(log n), O(1)) Number of random bits required The PCP theorem Theorem: Every NP problem has a PCP of length poly(n) that can be verified with high probability for correctness, by reading only constantly many locations of the proof. NP = PCP (O(log n), O(1)) Number of locations read Coping with NP-hardness Average-case complexity Approximation algorithms Boon of NP-hardness Complexity theory Role of Randomness P vs NP Secrecy & security Approximation algorithms In practice, for many of the NP-complete problems we would be quite happy to compute a good approximate of the optimum solution. Approximation algorithms In practice, for many of the NP-complete problems we would be quite happy to compute a good approximate of the optimum solution. Example: For TSP, even an approximately short route might be good enough. Approximate (Euclidean) TSP “For every ε, there is a poly(n (log n)O(1/ε))-time algorithm that given Euclidean distances between n cities, comes up with a tour that is at most a factor (1+ε) worse than the optimal tour.” --- Arora (1996) Some other approximation algorithms Vertex cover has a factor 2 approximation algorithm. MAX 3-SAT has a 7/8 approximation algorithm. … and many others. MAX 3-SAT Given a 3-SAT formula φ, find the maximum number of clauses that can be satisfied (simultaneously) by any assignment . MAX 3-SAT Given a 3-SAT formula φ, find the maximum number of clauses that can be satisfied (simultaneously) by any assignment . Of course, the problem is NP-hard MAX 3-SAT Given a 3-SAT formula φ, find the maximum number of clauses that can be satisfied (simultaneously) by any assignment . A 7/8-approximation algorithm outputs an assignment that satisfies 7/8. (the maximum number of satisfiable clauses). MAX 3-SAT Given a 3-SAT formula φ, find the maximum number of clauses that can be satisfied (simultaneously) by any assignment . A 7/8-approximation algorithm outputs an assignment that satisfies 7/8. (the maximum number of satisfiable clauses). Wonder where the 7/8 come from? MAX 3-SAT Ponder on this… On expectation how many clauses does a random assignment satisfy? Hardness of approximation One cannot hope to keep optimizing these approximation factors for ever. Hardness of approximation One cannot hope to keep optimizing this approximation factors for ever. How much can we optimize the approximation factor before the problem becomes hard again? Hardness of approximation One cannot hope to keep optimizing this approximation factors for ever. Theorem: For every constant ε > 0, if there is a polynomial time (7/8 + ε)-approximation algorithm for MAX-3SAT then P=NP. Hardness of approximation One cannot hope to keep optimizing this approximation factors for ever. Theorem: For every constant ε > 0, if there is a polynomial time (7/8 + ε)-approximation algorithm for MAX-3SAT then P=NP. Proof uses PCP theorem Coping with NP-hardness Average-case complexity Approximation algorithms Boon of NP-hardness Complexity theory Role of Randomness P vs NP Secrecy & security Average-case complexity An NP-complete problem is supposedly hard in the worst-case, meaning that it’s unlikely there’s an algorithm that solves it efficiently on all input instances. Average-case complexity An NP-complete problem is supposedly hard in the worst-case, meaning that it’s unlikely there’s an algorithm that solves it efficiently on all input instances. This does not rule out the possibility that there’s an efficient algorithm that solves it on most input instances. Class distP A distributional problem is a pair <L, D>, where L is a subset of {0,1}* and D = {Dn} is a sequence of distributions. Distribution on {0,1}n Class distP A distributional problem is a pair <L, D>, where L is a subset of {0,1}* and D = {Dn} is a sequence of distributions. A problem <L, D> is in distP if there’s an algorithm for L such that Ex ε D[time(x)] = nc , where c is a constant Clique number on random graphs Random n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability ½. Clique number on random graphs Random n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability ½. Clique number of a graph G: Size of the largest complete subgraph in G. Clique number on random graphs Random n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability ½. Clique number problem: Given G, find it’s clique number. Clique number on random graphs Random n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability ½. Clique number problem: Given G, find it’s clique number. NP-hard in the worst case Clique number on random graphs Random n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability ½. Clique number problem: Given G, find it’s clique number. But easy on random graphs! Clique number on random graphs Random n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability ½. Theorem: With very high probability, clique number of a random n-vertex graph is about 2log n Clique number on random graphs Random n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability ½. Theorem: With very high probability, clique number of a random n-vertex graph is about 2log n Why? nO(log n) algorithm for the clique number problem on random graphs Coping with NP-hardness Average-case complexity Approximation algorithms Boon of NP-hardness Complexity theory Role of Randomness P vs NP Secrecy & security One-way functions Impagliazzo’s complexity worlds World 1: Algorithmica P=NP or NP in BPP World is a computational Utopia. Computers can do the jobs that require significant creativity in engineering, programming and mathematics. Modern day cryptography collapses! World 2: Heuristica P≠NP but NP in distP (average-case easy). Efficient algorithms for all real life problem instances for NP-complete problems. Encryption gets trickier! World 3: Pesiland P≠NP and NP problems hard on average. One-way function does not exist. Modern day cryptography relies on the presumed existence of one-way functions World 4: Minicrypt P≠NP; NP problems hard on average; and one-way functions exist. Yet, some of the structured NP-problems like integer factoring, discrete logarithm are in P. No public-key cryptography? World 5: Cryptomania NP-problems like integer factoring are exponentially hard on average. Most of the researchers believe that this is the world we reside in! World 5: Cryptomania NP-problems like integer factoring are exponentially hard on average. Most of the researchers believe that this is the world we reside in! A central goal of complexity theory is to mathematically establish in which of these possible worlds we actually reside in. Thank you!
© Copyright 2024 Paperzz