This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Lecture Notes CMSC 251 Here is how you might do this. Given an undirected graph G , create a directed graph G by just replacing each undirected edge { u, v } with two directed edges, ( u, v ) and ( v, u ) . Now, every simple path in the G is a simple path in G , and vice versa. Therefore, G has a Hamiltonian cycle if and only if G does. Now, if you could develop an efficient solution to the DHC problem, you could use this algorithm and this little transformation solve the UHC problem. Here is your algorithm for solving the undirected Hamiltonian cycle problem. You take the undirected graph G , convert it to an equivalent directed graph G (by edgedoubling), and then call your (supposed) algorithm for directed Hamiltonian cycles. Whatever answer this algorithm gives, you return as the answer for the Hamiltonian cycle. UHC to DHC Reduction bool Undir_Ham_Cycle(graph G) { create digraph G’ with the same number of vertices as G for each edge {u,v} in G { add edges (u,v) and (v,u) to G’ } return Dir_Ham_Cycle(G’) } You would now have a polynomial time algorithm for UHC. Since you and your boss both agree that this is not going to happen soon, he agrees to let you off. Nonhamiltonia n Ha miltonian Figure 37: Directed Hamiltonian cycle reduction. Notice that neither problem UHC or DHC has been solved. You have just shown how to convert a solution to DHC into a solution for UHC. This is called a reduction and is central to NPcompleteness. Lecture 28: NPCompleteness and Reductions (Thursday, May 7, 1998) Read: Chapt 36, through Section 36.4. Summary: Last time we introduced a number of concepts, on the way to defining NPcompleteness. In particular, the following concepts are important. Decision Problems: are problems for which the answer is either “yes” or “no.” The classes P and NP problems are defined as classes of decision problems. P: is the class of all decisions problems that can be solved in polynomial time (that is, O ( n k ) for some constant k ). 86 Lecture Notes CMSC 251 NP: is defined to be the class of all decision problems that can be verified in polynomial time. This means that if the answer to the problem is “yes” then it is possible give some piece of information that would allow someone to verify that this is the correct answer in polynomial time. (If the answer is “no” then no such evidence need be given.) Reductions: Last time we introduced the notion of a reduction. Given two problems A and B , we say that A is polynomially reducible to B , if, given a polynomial time subroutine for B , we can use it to solve A in polynomial time. (Note: This definition differs somewhat from the definition in the text, but it is good enough for our purposes.) When this is so we will express this as A ≤ P B....
View
Full
Document
This note was uploaded on 01/13/2012 for the course CMSC 351 taught by Professor Staff during the Fall '11 term at University of Louisville.
 Fall '11
 Staff

Click to edit the document details