today admin motivation computational resources admin class cs579 Computational Complexity MW3:30-4:45, 1105 Siebel courses.engr.illinois.edu/cs579/ sign-up for piazza me Prof. Michael A. Forbes miforbes@illinois.edu Siebel 3220 office hours: M2, W1, or by appointment TA Robert Andrews rgandre2@illinois.edu F2-4, lounge between 3304 and 3232 grades 70%: 6 biweekly psets, starts monday [[get easier when project gets around]] [[exact late policy is online]] 30%: course project groups of 2 read paper 30min presentation short report references "Computational Complexity", by Arora, Barak full copy online via library [[link on webpage]] course notes prereq algorithms [[374/473]] models of computation [[374/475]] discrete math mathematical maturity cryptography [[encryption is everywhere]] [[draw picture]] Alice <-> Bob Eve [[eavesdropper]] secret key k secret key k string x Enc(x,k)-> want: [[bob can decrypt]] Dec(Enc(x,k),k)=k [[algorithmic possibility]] [[Eve cannot evesdrop]] Crack(Enc(x,k)) "reveals nothing" about x [[requires formalization]] [[algorithmic impossibility]] punchline: cryptographic requires both easy problems and hard problems [[of a structured form]] Q. are there hard computational problems? if so, which are hard? perspectives problem-centric view identify important computational problems matching in graphs breaking cryptographic hash functions halting problem satisfiability of boolean formula establish the exact complexity of these problems ie, "on modern computers it takes 2^120 CPU-years to break AES" [[this is too hard]] resource-centric view identify important computational resources hierarchy theorems: more resources more power simulation theorems: simulate one resource by another completeness theorems: exhibit problems which capture the behavior of a resource prove lower bounds: exhibit problems which require lots of a certain resource barrier theorems: proving that we cannot prove computational resources time [[most important resource]] P={computational tasks where n-bit inputs are solved in poly(n) steps} =~ efficiently solvable problems \-> some polynomial [[recall turing-machine formalism next time]] Q. what problems are (not) in P? space L={computational tasks where n-bit inputs are solved in O(\log n) bits of memory} \subseteq P [[simulation theorem]] [[problems where don't require much RAM]] [[RAM is often limiting in modern computers, eg LHC]] Q. L=P? non-determinism NP={computational tasks where n-bit inputs can be verified in poly(n) steps} eg, travelling salesman problem [[draw graph]] Q. can we visit all nodes using \le 1000 dollars? [[too many possible paths to enumerate efficiently]] [[can verify a solution quickly]] Q. P=NP? [[prototypical question of the field answering it would be the start, not end, of computational complexity million dollars for solving]] randomness BPP={computational tasks where n-bit inputs are solved in poly(n) steps, when randomness is allowed} [[election polling uses randomness]] Q. P=BPP? parallelism NC={computational tasks where n-bit inputs are solved in polylog(n)-time and poly(n)-work} [[if we double number of processors can we halve the time used?]] Q. P=NC? non-uniformity P/poly={computational tasks where n-bit inputs are solved by a poly(n)-sized computer} [[if we double the length of our computer code, can we run twice as fast?]] Q. P vs P/poly? interaction NP TSP: G=(V,E), can we visit all nodes w/ a low-cost? Prover verifier all-powerful computationally bounded path -> can check if path is low-cost PH Angel Verifier Demon <-> <-> [[constant number of rounds]] wants "yes" answer wants "no" answer Q. P vs NP vs PH? communication Q. how *many* bits are needed in interaction? knowledge Q. can I prove to you a graph has a low-cost TSP tour without "revealing" the tour? Q. NP vs ZK? quantum [[quantum mechanics is widely successful physical theory]] Q. how can computational exploit quantum mechanics? P vs BQP? [[factoring known to be in BQP, not known to be in P]] approximation [[lower your standards, gosh]] Q. finding the shortest TSP tour vs finding a pretty-short TSP tour? punchline: most of these questions are open [[but we do understand some simulation hierarchy completeness etc ]] next time Turing machine recap time complexity time hierarchy theorem