today admin [[survey form]] motivation & goals background admin class cs579 Computational Complexity TR3:30-4:45, 1109 Siebel courses.engr.illinois.edu/cs579/ sign-up for piazza! me Prof. Michael A. Forbes miforbes@illinois.edu Siebel 3220 office hours: T5, R1, or by appointment TA Zander Kelley awk2@illinois.edu W4-6, SC 3303 grades 70%: 6 biweekly psets, starts Thursday [[get easier when project gets around]] [[exact late policy is online]] 30%: course project groups of 2+\eps read paper 30min presentation short report references "Introduction to the Theory of Computation", by Sipser 2nd or 3rd edition ok for ~first half of course "Computational Complexity", by Arora, Barak for ~second half of course course notes [[slightly illegible]] prereq models of computation: 374, 475, ... [[some overlap]] algorithms: 473, ... discrete math: 173, ... mathematical maturity: ... motivation 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 eavesdrop]] 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? which are hard? why are they hard? A. this is hard to answer Q. what is "convincing evidence" that a problem is hard? someone on the internet said it was hard we tried really hard and found no algorithm no algorithm of specific natural form can solve it "similar" problems can be proven to be hard unconditional mathematical proof of hardness in the correct model goals identify important computational problems shortest paths in graphs primality testing satisfiability of boolean formula ... identify important computational resources time space ability to solve a computational problem ... Q. does using more of a resource give more power? [[caffeine]] how do different types of resources compare? [[sleep vs caffeine]] problems vs resources? [[caffeine vs theorems]] this course structural complexity (3/4) [[ build a theory relating different computational resources on Turing machines few unconditional separations ]] concrete complexity (1/4) [[ work with finite computational objects such as circuits comparatively more unconditional results ]] background language defn dfa defn object acceptance regular language example 0*11* Fact: 0^n1^n is not regular digest limited of a computational model but we can understand it well but we need something stronger TM defn object one-tape acceptance example 0^n1^n Fact: HALTING problem is undecidable digest what it means proof idea we'll redo this later in complexity context Q. what can TM's do *efficiently* ? next time time complexity