computational complexity:

164
Computational Complexity: P, NP and beyond CSA Summer School 2013 Chandan Saha

Upload: felcia

Post on 25-Feb-2016

83 views

Category:

Documents


0 download

DESCRIPTION

Computational Complexity:. 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?. - PowerPoint PPT Presentation

TRANSCRIPT

Slide 1

Computational Complexity:P, NP and beyond

CSA Summer School 2013

Chandan SahaWhat 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 CommunicationsWhat is Computational Complexity?Study of the amount of resources required by an algorithm to solve a problem. Mathematically formalized as Turing MachinesWhat is Computational Complexity?Study of the amount of resources required by an algorithm to solve a problem.

Language: Set of {0,1}* strings. Turing MachinesInput :

1 0 1 0 1 1 Turing MachineInput :

Work tape: 1 0 1 0 1 1 1 1 0 1 1 1 Head Turing MachineInput :

Work tape:

Output: 1 0 1 0 1 1 1 1 0 1 1 11 1 1 0 0 1 Turing MachineInput :

Work tape:

Output: 1 0 1 0 1 1 1 1 0 1 1 11 1 1 0 0 1Processor(states) Turing MachineInput :

Work tape:

Output: 1 0 1 0 1 1 1 1 0 1 1 11 1 1 0 0 1Processor(states)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 its based on silicon, DNA, neurons or some other alien technology can be simulated by a Turing machine. --- [quote from Arora-Baraks 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 its based on silicon, DNA, neurons or some other alien technology can be simulated by a Turing machine. --- [quote from Arora-Baraks 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 its based on silicon, DNA, neurons or some other alien technology can be simulated by a Turing machine. --- [quote from Arora-Baraks book]

Might or might not be true!Quantum computers ? In support of the CT thesisSeveral other computational models like, lamda calculus, cellular automata, pointer machines, bouncing billiard balls, Conways game of life, and so on.. are all equivalent to the Turing machine model of computation.

In support of the CT thesisSeveral other computational models like, lamda calculus, cellular automata, pointer machines, bouncing billiard balls, Conways 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 thesisSeveral other computational models like, lamda calculus, cellular automata, pointer machines, bouncing billiard balls, Conways 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 equationsInput: 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 equationsInput: 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 = 0Integer solutions for x, y, z? Example: Solving Diophantine equationsInput: 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 = 0Integer solutions for x, y, z?A question posed by David Hilbert in 1900 Computational limitations of TMThe problem, Solving Diophantine equations, cannot be solved by any Turing machines (no matter how much time & space we allow).

Computational limitations of TMThe 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 TMThe 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, well restrict our attention to computable (or decidable) problems.

Computational limitations of TMThe 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, well restrict our attention to computable (or decidable) problems.

Good idea to have a list of computable problems in mind! Problem set 1Multiplication: Given two integers a & b compute ab

Problem set 1Multiplication: Given two integers a & b compute ab

Solving linear system: Solve a system of m linear equations in n variables over rationals.

Problem set 1Multiplication: Given two integers a & b compute ab

Solving linear system: Solve a system of m linear equations in n variables over rationals.

1.5x + 0.5y z = 1.25

x + 2y = 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 2Vertex cover: Given a graph G and an integer k, check if theres 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 theres an assignment that satisfies all the clauses.

x + y + z + u = 1

x + y + u = 1

x + y + z = 1Boolean 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.

Number of Cycles: Given a directed graph G, count the number of simple cycles in G.

(VLSI design) 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 PPolynomial 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 PAll the problems in Set 1:

Integer Multiplication Solving linear system Shortest path Maximum matching can be solved in polynomial time. Problems in class PAll 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 membershipA valid set of polynomials h1, , hn is a certificate of the fact that g = h1f1 + + hnfn A simpler version of Ideal membershipA 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 + + hnfnVerification version of IM A simpler version of Ideal membershipA 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 + + hnfnIs this problem easy? A simpler version of Ideal membershipA 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 + + hnfnIs 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 NPA problem is in NP if: its solution or certificate size is small, solution or certificate can be verified efficiently.

Class NPA 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 problemare 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 NPA 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-completenessNP-complete problems hardest problems in NP

Notion of NP-completenessNP-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-completenessNP-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

NPCPLadners theorem (1975)NP 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 problemGiven 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 GEdge set of H Graph Isomorphism problemGiven 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

12431234GHG ~ H Graph Isomorphism problemGiven 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

12431234GHG ~ HNote: GI is in NP Complexity theoryP vs NPRole of RandomnessApproximation algorithmsAverage-case complexitySecrecy & securityCoping with NP-hardnessBoon of NP-hardness Complexity theoryP vs NPRole of RandomnessApproximation algorithmsAverage-case complexitySecrecy & securityCoping with NP-hardnessBoon of NP-hardness 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 MachineTuring Machine

M1 0 1 0 1 1additionalinput/powerr = random bits(each bit is 1 with prob. and 0 with prob. 1/2) Probabilistic Turing MachineTuring Machine

M1 0 1 0 1 1additionalinput/powerr = 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 generatorsfunctions 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 generatorsIn theory, true randomness can be found in quantum physics Example: Randomized QuicksortWorst-case complexity of Quick-sort on n numbers is O(n2).

Example: Randomized QuicksortWorst-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 QuicksortWorst-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 QuicksortWorst-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)),

randomness never speeds up computation by more than a polynomial amount unless. --- (Impagliazzo, Wigderson 1997)

BPP = P Redemption for Randomness?Doesnt randomness give any significant computational power? Redemption for Randomness?Doesnt randomness give any significant computational power?It does Redemption for Randomness?Doesnt randomness give any significant computational power?It doesEver wondered why most of us tend to learn faster through interaction with an expert, as compared to reading books by ourselves? Interactive ProtocolIs x in L ? Interactive ProtocolIs x in L ?All powerful prover

(Expert) Verifier

(Learner)Agrees upon a protocolRandomized polynomial time machine Interactive ProtocolIs x in L ?All powerful prover

(Expert) Verifier

(Learner)sends a queryRandomized polynomial time machine Interactive ProtocolIs x in L ?All powerful prover

(Expert) Verifier

(Learner)answers the queryRandomized polynomial time machine Interactive ProtocolIs x in L ?All powerful prover

(Expert) Verifier

(Learner)sends a queryRandomized polynomial time machine Interactive ProtocolIs x in L ?All powerful prover

(Expert) Verifier

(Learner)Randomized polynomial time machineanswers the query Interactive ProtocolIs x in L ?All powerful prover

(Expert) Verifier

(Learner)Randomized polynomial time machine...poly(n) number of rounds|x| = n Interactive ProtocolIs x in L ?All powerful prover

(Expert) Verifier

(Learner)Randomized polynomial time machine...poly(n) number of rounds|x| = nIn the end, Verifier either outputs x in L, or x not in L Class IPIP: It is set of all problems (i.e. languages L) for which theres an interactive protocol satisfying the following: Class IPIP: It is set of all problems (i.e. languages L) for which theres an interactive protocol satisfying the following: (Completeness): If x in L, theres an honest Prover who convinces Verifier that x in L, with probability 1.

Class IPIP: It is set of all problems (i.e. languages L) for which theres an interactive protocol satisfying the following: (Completeness): If x in L, theres an honest Prover who convinces Verifier that x in L, with probability 1.

(Soundness): If x not in L, theres no Prover who can convince Verifier that x in L, with probability higher than 0.01 Class IPIn 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 IPIn 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 IPIn 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 IPIn 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 GNICheck if G1 is non-isomorphic to G2 Interactive Protocol for GNICheck if G1 is non-isomorphic to G2Not known to be in NP! Interactive Protocol for GNICheck if G1 is non-isomorphic to G2Now ponder on this. Interactive Protocol for GNIVerifier picks one of G1 and G2 at random say, Gi , and a random permutation on the vertices of Gi .Check if G1 is non-isomorphic to G2 Interactive Protocol for GNIVerifier 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)Check if G1 is non-isomorphic to G2 Interactive Protocol for GNIProver 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)Check if G1 is non-isomorphic to G2 Interactive Protocol for GNIProver returns some j.Verifier checks if i = j. Check if G1 is non-isomorphic to G2 Interactive Protocol for GNIProver returns some j.Verifier checks if i = j. If so, outputs G1 non-isomorphic to G2. Check if G1 is non-isomorphic to G2 Interactive Protocol for GNIProver returns some j.Verifier checks if i = j. If so, outputs G1 non-isomorphic to G2. Otherwise, outputs G1 isomorphic to G2.Check if G1 is non-isomorphic to G2 Interactive Protocol for GNIProver returns some j.Verifier checks if i = j. If so, outputs G1 non-isomorphic to G2. Otherwise, outputs G1 isomorphic to G2.Check if G1 is non-isomorphic to G2Repeat this protocol a few times to reduce Verifiers chance of making a mistake How big is the class IP?IP contains problems that are seemingly not in NP! (like GNI) IP = PSPACEIP = Set of all problems that can be solved by a TM using poly(n) space =: PSPACE IP = PSPACEIP = Set of all problems that can be solved by a TM using poly(n) space =: PSPACE NP is contained in PSPACE IP = PSPACEIP = 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 = PSPACEIP = Set of all problems that can be solved by a TM using poly(n) space =: PSPACE Take randomness away from the Verifier : (deterministic) IP = NPRandomness is absolutely essential for the Verifier! Yet another usefulness of randomnessEver 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 theoremTheorem: 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 theoremTheorem: 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 theoremTheorem: 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 Complexity theoryP vs NPRole of RandomnessApproximation algorithmsAverage-case complexitySecrecy & securityCoping with NP-hardnessBoon of NP-hardness Approximation algorithmsIn practice, for many of the NP-complete problems we would be quite happy to compute a good approximate of the optimum solution.

Approximation algorithmsIn 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) TSPFor 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 algorithmsVertex 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 Complexity theoryP vs NPRole of RandomnessApproximation algorithmsAverage-case complexitySecrecy & securityCoping with NP-hardnessBoon of NP-hardness Average-case complexity An NP-complete problem is supposedly hard in the worst-case, meaning that its unlikely theres 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 its unlikely theres an algorithm that solves it efficiently on all input instances.

This does not rule out the possibility that theres an efficient algorithm that solves it on most input instances.

Class distPA distributional problem is a pair , where L is a subset of {0,1}* and D = {Dn} is a sequence of distributions.

Distribution on {0,1}n Class distPA distributional problem is a pair , where L is a subset of {0,1}* and D = {Dn} is a sequence of distributions.

A problem is in distP if theres an algorithm for L such that Ex D[time(x)] = nc , where c is a constant

Clique number on random graphsRandom n-vertex graphs: Create a graph by choosing each of the possible n(n-1)/2 edges with probability .

Clique number on random graphsRandom 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 graphsRandom 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 its clique number.

Clique number on random graphsRandom 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 its clique number.

NP-hard in the worst case Clique number on random graphsRandom 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 its clique number.

But easy on random graphs! Clique number on random graphsRandom 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 graphsRandom 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

nO(log n) algorithm for the clique number problem on random graphs Why? Complexity theoryP vs NPRole of RandomnessApproximation algorithmsAverage-case complexitySecrecy & securityCoping with NP-hardnessBoon of NP-hardnessOne-way functions Impagliazzos complexity worlds World 1: AlgorithmicaP=NP or NP in BPPWorld is a computational Utopia.Computers can do the jobs that require significant creativity in engineering, programming and mathematics. Modern day cryptography collapses!

World 2: HeuristicaPNP but NP in distP (average-case easy).Efficient algorithms for all real life problem instances for NP-complete problems.Encryption gets trickier!

World 3: PesilandPNP 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: MinicryptPNP; 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: CryptomaniaNP-problems like integer factoring are exponentially hard on average.Most of the researchers believe that this is the world we reside in!

World 5: CryptomaniaNP-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!