dKS, Spring 2009 1 Some practical information • Lecturers: Kristoffer Arnsfelt Hansen and Peter Bro Miltersen. • Homepage: www.daimi.au.dk/dKS • Kompendium will be available in GAD after easter. • Three compulsory assignments, hand in to your teaching assistant at the tutorial on time. • Tutorials start second week of quarter. Due to easter, second week of term starts April 15th. • Exam is oral, without preparation. 2 “Optimization” – a summary! Mixed Integer Linear Programming Exponential time (hard). … TSP … Polynomial time (easy) Linear Programming Min Cost Flow = reduction Max Flow Maximum matching Shortest paths 3 NP-completeness … TSP Exponential time (hard). Mixed Integer Linear Programming Polynomial time (easy) Linear Programming Min Cost Flow = reduction Max Flow Maximum matching Shortest paths 4 Rigorous Formalization “Problems” Languages “Efficient Algorithms” Turing Machines, P “Search Problems” NP “Reductions” Polynomial Reductions “Universal Search Problems” NPC 5 Problems: Languages • A language L is a subset of {0,1}*. • A language models a decision problem: Members of L are the yes-instances, nonmembers are the no-instances. • This is the only kind of problem our theory shall be concerned with! 6 Restriction: Inputs Boolean Strings • Strings over an arbitrary alphabet can be represented as Boolean Strings (Ex: ascii, unicode). • In reality, computers may only hold Boolean strings (their memory image is a bit string). • Arbitrary real numbers may not be represented but this is intentional! 7 Models of Computation • Model 1: Our computer holds exact real numbers. The size of the input is the number of real numbers in the input. The time complexity of an algorithm is the number of arithmetic operations performed. • Model 2: Our computer holds bits and bytes. The size of the input is the number of bits in the input. The time complexity of an algorithm is the number of bit-operations performed. • We know an efficient algorithm for linear programming in Model 2 but not model 1. • The NP-completeness theory is intended to capture Model 2 and not Model 1. 8 How to encode max flow instance? java MaxFlow 6#0|16|13|0|0|0#0|0|10|12|0|0 #0|4|0|0|14|0#0|0|9|0|0|20 #0|0|0|7|0|4|#0|0|0|0|0|0 9 Restriction: All inputs “legal”. • Any string should be either a yes-string or a no-string. • It would be nice to also have “malformed” strings. • However, we shall just lump the malformed strings with the no-strings. 10 Restriction: Output yes or no • Suppose we want to consider computing a function, f: {0,1}* ! {0,1}*. • Stand-in for f: Lf = {<x, b(j), y> | f(x)j = y} 11 Restriction: functions • OPT: Given description of F, f find x 2 F maximizing f(x). • There may be several optimal solutions. OPT does not seem to be captured easily by a function. • Stand-in for OPT: LOPT = { < desc(F), desc(f), b(), b() > | some x 2 F has f(x) ¸ / } 12 13 LOPT vs. OPT • LOPT may be easy to solve even though OPT is hard to solve, so LOPT is not a perfect stand-in. • However, if LOPT has no efficient solution, then OPT has no efficient solution, so LOPT can still be used to argue that OPT is hard. 14 Algorithms: Turing Machines 15 Turing Machines • A Turing machine consists of an infinite tape, divided into cells, each holding a symbol from alphabet that includes 0,1,#. • A tape head is at any point in time positioned at a cell. • A finite control reads the symbol at the head, updates the symbol at the head and the position of the head. 16 Finite Control • Finite set of states Q. The control is in exactly one of the state. Three special states: start, accept, reject. • Transition function: 17 Running the machine on an input • The input string is placed on the tape (surrounded by blanks) and the head positioned to the immediate left of the input. The initial state of the finite control is start. • If the finite control eventually goes to accept state, the input is accepted (“the machine outputs yes”). • If the finite control eventually goes to reject state, the input is rejected (“the machine outputs no”). • The machine is said to decide a language L if it accepts all members of L and rejects all members of {0,1}*-L. 18 Some Turing Machine Applets http://math.hws.edu/TMCM/java/labs/xTuringMachineLab.html http://www.igs.net/~tril/tm/tm.html http://web.bvu.edu/faculty/schweller/Turing/Turing.html 19 If you want to make rigorous the notion of an “efficient algorithm” why do you choose such a hopelessly inefficient device ??!? 20 Church-Turing Thesis Any decision problem that can be solved by some mechanical procedure, can be solved by a Turing machine. 21 Polynomial Church-Turing thesis A decision problem can be solved in polynomial time by using a reasonable sequential model of computation if and only if it can be solved in polynomial time by a Turing machine. 22 The complexity class P • P := the class of decision problems (languages) decided by a Turing machine so that for some polynomial p and all x, the machine terminates after at most p(|x|) steps on input x. • By the Polynomial Church-Turing Thesis, P is “robust” with respect to changes of the machine model. • Is P also robust with respect to changes of the representation of decision problems as languages? 23