The.Algorithm.Design.Manual.Springer-Verlag.1998
The.Algorithm.Design.Manual.Springer-Verlag.1998 The.Algorithm.Design.Manual.Springer-Verlag.1998
Lecture 23 - approximation algorithms and Cook's theorem A subset of the set of strings over some alphabet is a formal language. Formal language theory concerns the study of how powerful a machine you need to recognize whether a string is from a particular language. Example: Is the string a binary representation of a even number? A simple finite machine can check if the last symbol is zero: No memory is required, except for the current state. Observe that solving decision problems can be thought of as formal language recognition. The problem instances are encoded as strings and strings in the language if and only if the answer to the decision problem is YES! What kind of machine is necessary to recognize this language? A Turing Machine! A Turing machine has a finite-state-control (its program), a two way infinite tape (its memory) and a readwrite head (its program counter) So, where are we? Each instance of an optimization or decision problem can be encoded as string on some alphabet. The set of all instances which return True for some problem define a language. Hence, any problem which solves this problem is equivalent to a machine which recognizes whether an instance is in the language! The goal of all this is going to be a formal way to talk about the set of problems which can be solved in file:///E|/LEC/LECTUR16/NODE23.HTM (5 of 11) [19/1/2003 1:35:35]
Lecture 23 - approximation algorithms and Cook's theorem polynomial time, and the set that cannot be. Non-deterministic Turing Machines Suppose we buy a guessing module peripherial for our Turing machine, which looks at a Turing machine program and problem instance and in polynomial time writes something it says is an answer. To convince ourselves it really is an answer, we can run another program to check it. Ex: The Traveling Salesman Problem The guessing module can easily write a permutation of the vertices in polynomial time. We can check if it is correct by summing up the weights of the special edges in the permutation and see that it is less than k. The class of languages which we can recognize in time polynomial in the size of the string or a deterministic Turing Machine (without guessing module) is called P. The class of languages we can recognize in time polynomial in the length of the string or a nondeterministic Turing Machine is called NP. Clearly, , since for any DTM program we can run it on a non-deterministic machine, ignore what the guessing module is doing, and it will just as fast. P ?= NP Observe that any NDTM program which takes time P(n) can simulated in time on a deterministic machine, by running the checking program times, once on each possible guessed string. The $10,000 question is whether a polynomial time simulation exists, or in other words whether P=NP?. Do there exist languages which can be verified in polynomial time and still take exponential time on deterministic machines? This is the most important question in computer science. Since proving an exponential time lower bound for a problem in NP would make us famous, we assume that we cannot do it. file:///E|/LEC/LECTUR16/NODE23.HTM (6 of 11) [19/1/2003 1:35:35]
- Page 987 and 988: Lecture 16 - applications of DFS an
- Page 989 and 990: Lecture 17 - minimum spanning trees
- Page 991 and 992: Lecture 17 - minimum spanning trees
- Page 993 and 994: Lecture 17 - minimum spanning trees
- Page 995 and 996: Lecture 17 - minimum spanning trees
- Page 997 and 998: Lecture 17 - minimum spanning trees
- Page 999 and 1000: Lecture 18 - shortest path algorthm
- Page 1001 and 1002: Lecture 18 - shortest path algorthm
- Page 1003 and 1004: Lecture 18 - shortest path algorthm
- Page 1005 and 1006: Lecture 18 - shortest path algorthm
- Page 1007 and 1008: Lecture 18 - shortest path algorthm
- Page 1009 and 1010: Lecture 19 - satisfiability Next: L
- Page 1011 and 1012: Lecture 19 - satisfiability Why? Th
- Page 1013 and 1014: Lecture 19 - satisfiability between
- Page 1015 and 1016: Lecture 19 - satisfiability Note th
- Page 1017 and 1018: Lecture 20 - integer programming Ex
- Page 1019 and 1020: Lecture 20 - integer programming Ne
- Page 1021 and 1022: Lecture 21 - vertex cover Proof: VC
- Page 1023 and 1024: Lecture 21 - vertex cover Question:
- Page 1025 and 1026: Lecture 21 - vertex cover seen to d
- Page 1027 and 1028: Lecture 22 - techniques for proving
- Page 1029 and 1030: Lecture 22 - techniques for proving
- Page 1031 and 1032: Lecture 22 - techniques for proving
- Page 1033 and 1034: Lecture 22 - techniques for proving
- Page 1035 and 1036: Lecture 23 - approximation algorith
- Page 1037: Lecture 23 - approximation algorith
- Page 1041 and 1042: Lecture 23 - approximation algorith
- Page 1043 and 1044: Lecture 23 - approximation algorith
- Page 1045 and 1046: About this document ... Up: No Titl
- Page 1047 and 1048: 1.1.6 Kd-Trees ● Point Location
- Page 1049 and 1050: 1.1.3 Suffix Trees and Arrays Send
- Page 1051 and 1052: 1.5.1 Clique ● Vertex Cover Go to
- Page 1053 and 1054: 1.6.2 Convex Hull Related Problems
- Page 1055 and 1056: Visual Links Index file:///E|/WEBSI
- Page 1057 and 1058: Visual Links Index file:///E|/WEBSI
- Page 1059 and 1060: Visual Links Index file:///E|/WEBSI
- Page 1061 and 1062: Visual Links Index file:///E|/WEBSI
- Page 1063 and 1064: Visual Links Index file:///E|/WEBSI
- Page 1065 and 1066: Visual Links Index file:///E|/WEBSI
- Page 1067 and 1068: Visual Links Index file:///E|/WEBSI
- Page 1069 and 1070: Visual Links Index file:///E|/WEBSI
- Page 1071 and 1072: Visual Links Index file:///E|/WEBSI
- Page 1073 and 1074: Visual Links Index file:///E|/WEBSI
- Page 1075 and 1076: Visual Links Index file:///E|/WEBSI
- Page 1077 and 1078: Visual Links Index file:///E|/WEBSI
- Page 1079 and 1080: Visual Links Index file:///E|/WEBSI
- Page 1081 and 1082: Visual Links Index file:///E|/WEBSI
- Page 1083 and 1084: About the Ratings About the Ratings
- Page 1085 and 1086: 1.2 Numerical Problems 1.2 Numerica
- Page 1087 and 1088: 1.4 Graph Problems -- polynomial-ti
Lecture 23 - approximation algorithms and Cook's theorem<br />
A subset of the set of strings over some alphabet is a formal language.<br />
Formal language theory concerns the study of how powerful a machine you need to recognize whether a<br />
string is from a particular language.<br />
Example: Is the string a binary representation of a even number? A simple finite machine can check if the<br />
last symbol is zero:<br />
No memory is required, except for the current state.<br />
Observe that solving decision problems can be thought of as formal language recognition. <strong>The</strong> problem<br />
instances are encoded as strings and strings in the language if and only if the answer to the decision<br />
problem is YES!<br />
What kind of machine is necessary to recognize this language? A Turing Machine!<br />
A Turing machine has a finite-state-control (its program), a two way infinite tape (its memory) and a readwrite<br />
head (its program counter)<br />
So, where are we?<br />
Each instance of an optimization or decision problem can be encoded as string on some alphabet. <strong>The</strong> set<br />
of all instances which return True for some problem define a language.<br />
Hence, any problem which solves this problem is equivalent to a machine which recognizes whether an<br />
instance is in the language!<br />
<strong>The</strong> goal of all this is going to be a formal way to talk about the set of problems which can be solved in<br />
file:///E|/LEC/LECTUR16/NODE23.HTM (5 of 11) [19/1/2003 1:35:35]