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