pvg's college of engineering,nashik-04 · 2018. 3. 12. · pvg's college of...
TRANSCRIPT
![Page 1: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/1.jpg)
PVG's College of Engineering,Nashik-04
Third Year of Computer Engineering (2015 Course)
310250: Design and Analysis of Algorithms
Unit IV
Fundamentals
By Prof. Akshay R. Jain
Note: Material for this Notes are taken from Internet and books andonly being used for students reference and not for commercial purpose
![Page 2: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/2.jpg)
Outline
Turing Machine , Turing Degree
Polynomial and non polynomial problems
Deterministic and non deterministic algorithms
P ,NP, NP hard and NP Complete
NP Complete Proof- 3-SAT & Vertex Cover
NP hard Problem- Hamiltonian Cycle
Menagerie of complexity classes of Turing Degree
Randomization- Sorting algorithm
Approximation-TSP and Max Clique
![Page 3: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/3.jpg)
Turing Machin
![Page 4: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/4.jpg)
Turing machine
A Turing machine is a hypothetical device that
manipulates symbols on a strip of tape according
to a table of rules.
Despite its simplicity, a Turing machine can be
adapted to simulate the logic of any computer
algorithm, and is particularly useful in explaining
the functions of a CPU inside a computer.
![Page 5: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/5.jpg)
Turing Degree
A measure of the level of algorithmic unsolvability
of the decision problem of whether a given set of
natural numbers contains any given number.
![Page 6: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/6.jpg)
Outline
Turing Machine , Turing Degree
Polynomial and non polynomial problems
Deterministic and non deterministic algorithms
P ,NP, NP hard and NP Complete
NP Complete Proof- 3-SAT & Vertex Cover
NP hard Problem- Hamiltonian Cycle
Menagerie of complexity classes of Turing Degree
Randomization- Sorting algorithm
Approximation-TSP and Max Clique
![Page 7: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/7.jpg)
Polynomial Problems
Polynomial is an expression consisting of
variables (or indeterminates) and coefficients,
that involves only the operations of addition,
subtraction, multiplication, and non-negative
integer exponents.
An example of a polynomial of a single
indeterminate (or variable), x, is x2 − 4x + 7.
An Example of Polynomial algorithm is 0(log n)
![Page 8: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/8.jpg)
Non-Polynomial Problems
The set or property of problems for which no
polynomial-time algorithm is known.
This includes problems for which the only known
algorithms require a number of steps which
increases exponentially with the size of the
problem, and those for which no algorithm at all is
known.
Within these two there are problems which are "
provably difficult " and " provably unsolvable ".
![Page 9: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/9.jpg)
Outline
Turing Machine , Turing Degree
Polynomial and non polynomial problems
Deterministic and non deterministic algorithms
P ,NP, NP hard and NP Complete
NP Complete Proof- 3-SAT & Vertex Cover
NP hard Problem- Hamiltonian Cycle
Menagerie of complexity classes of Turing Degree
Randomization- Sorting algorithm
Approximation-TSP and Max Clique
![Page 10: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/10.jpg)
Deterministic Algorithm
Deterministic algorithm is an algorithm which,
given a particular input, will always produce the
same output, with the underlying machine always
passing through the same sequence of states.
![Page 11: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/11.jpg)
Nondeterministic algorithm
Nondeterministic algorithm is an algorithm that, even for
the same input, can exhibit different behaviors on different
runs, as opposed to a deterministic algorithm.
An algorithm that solves a problem in nondeterministic
polynomial time can run in polynomial time or exponential
time depending on the choices it makes during execution.
The nondeterministic algorithms are often used to find an
approximation to a solution, when the exact solution would
be too costly to obtain using a deterministic one.
![Page 12: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/12.jpg)
Outline
Turing Machine , Turing Degree
Polynomial and non polynomial problems
Deterministic and non deterministic algorithms
P ,NP, NP hard and NP Complete
NP Complete Proof- 3-SAT & Vertex Cover
NP hard Problem- Hamiltonian Cycle
Menagerie of complexity classes of Turing Degree
Randomization- Sorting algorithm
Approximation-TSP and Max Clique
![Page 13: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/13.jpg)
P Class
The informal term quickly, used above, means
the existence of an algorithm for the task that
runs in polynomial time.
The general class of questions for which some
algorithm can provide an answer in polynomial
time is called "class P" or just "P".
![Page 14: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/14.jpg)
NP Class
For some questions, there is no known way to
find an answer quickly, but if one is provided with
information showing what the answer is, it is
possible to verify the answer quickly.
The class of questions for which an answer can
be verified in polynomial time is called NP.
![Page 15: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/15.jpg)
NP- Hard Class NP-hard (Non-deterministic Polynomial-time
hard), is a class of problems that are, informally, "at least as hard as the hardest problems in NP".
More precisely, a problem H is NP-hard when every problem L in NP can be reduced in polynomial time to H.
As a consequence, finding a polynomial algorithm to solve any NP-hard problem would give polynomial algorithms for all the problems in NP, which is unlikely as many of them are considered hard
![Page 16: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/16.jpg)
NP Complete Class
In computational complexity theory, a decision
problem is NP-complete when it is both in NP
and NP-hard.
The set of NP-complete problems is often
denoted by NP-C or NPC.
The abbreviation NP refers to "nondeterministic
polynomial time".
![Page 17: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/17.jpg)
Relation between P,NP,NP hard and
NP Complete
![Page 18: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/18.jpg)
Reducibility
![Page 19: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/19.jpg)
Outline
Turing Machine , Turing Degree
Polynomial and non polynomial problems
Deterministic and non deterministic algorithms
P ,NP, NP hard and NP Complete
NP Complete Proof- 3-SAT & Vertex Cover
NP hard Problem- Hamiltonian Cycle
Menagerie of complexity classes of Turing Degree
Randomization- Sorting algorithm
Approximation-TSP and Max Clique
![Page 20: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/20.jpg)
3-Satisfiability(3-SAT)
Instance: A collection of clause C where each clause
contains exactly 3 literals, boolean variable v.
Question: Is there a truth assignment to v so that each
clause is satisfied?
Note: This is a more restricted problem than normal SAT.
If 3-SAT is NP-complete, it implies that SAT is NP-
complete but not visa-versa, perhaps longer clauses are
what makes SAT difficult?
1-SAT is trivial.
2-SAT is in P
![Page 21: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/21.jpg)
3-SAT is NP-Complete
Theorem: 3-SAT is NP-Complete
Proof:
1) 3-SAT is NP. Given an assignment, we can just
check that each clause is covered.
2) 3-SAT is hard. To prove this, a reduction from SAT to
3-SAT must be provided. We will transform each
clause independently based on its length.
![Page 22: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/22.jpg)
Reducing SAT to 3-SAT
• Suppose a clause contains k literals:
• if k = 1 (meaning Ci = {z1} ), we can add in two new
variables v1 and v2, and transform this into 4 clauses:
• {v1, v2, z1} {v1, v2, z1} {v1, v2, z1} {v1, v2, z1}
• if k = 2 ( Ci = {z1, z2} ), we can add in one variable v1 and
2 new clauses: {v1, z1, z2} {v1, z1, z2}
• if k = 3 ( Ci = {z1, z2, z3} ), we move this clause as-is.
![Page 23: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/23.jpg)
Continuing the Reduction….
if k > 3 ( Ci = {z1, z2, …, zk} ) we can add in k - 3 new
variables (v1, …, vk-3) and k - 2 clauses:
{z1, z2, v1} {v1, z3, v2} {v2, z4, v3} … {vk-3, zk-1, zk}
Thus, in the worst case, n clauses will be turned into n2
clauses. This cannot move us from polynomial to
exponential time.
If a problem could be solved in O(nk) time, squaring the
number of inputs would make it take O(n2k) time.
![Page 24: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/24.jpg)
Generalizations about SAT
Since any SAT solution will satisfy the 3-SAT instance and
a 3-SAT solution can set variables giving a SAT solution,
the problems are equivalent. If there were n clauses and m
distinct literals in the SAT instance, this transform takes
O(nm) time, so SAT == 3-SAT.
![Page 25: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/25.jpg)
Prove that: Vertex Cover is NP complete
Given a graph G = (N , E ) and an integer k, does there exist a subset S of atmost k vertices in N such that each edge in E is touched by at least onevertex in S ?
No polynomial-time algorithm is known Isin NP (short and verifiable solution):
If a graph is “k-coverable”, there exists k-subset S ⊆ N such that
each edge is touched by at least one of its vertices
Length of S encoding is polynomial in length of G encodingThere exists a polynomial-time algorithm that verifies whether S is a valid k-cover
Verify that |S |≤ k
Verify that, for any (u, v) ∈E , either u ∈S or v ∈S
Crescnzi and Kann (UniFi and KTH) Vertex cover October 2011
![Page 26: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/26.jpg)
NP-completeness
Reduction of 3 - S a t to Vertex Cover:Technique: component design
For each variable a gadget (that is, a sub-graph)
representing its truth value
For each clause a gadget representing the fact that one of its
literals is true
Edges connecting the two kinds of gadget
Gadget for variable u:pu nu
One vertex is sufficient and necessary to cover the edge
Gadget for clause c:fc
sc tc
Two vertices are sufficient and necessary to cover the threeedges
k = n + 2m, where n is number of variables and m is number of
clausesCrescenzi and Kann (UniFi and KTH) Vertex cover October 2011 26/ 7
![Page 27: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/27.jpg)
Connections between variable and clause gadgets
First (second, third) vertex of clause gadget connected to vertex
corresponding to first (second, third) literal of clause
Example: (x1∨x2∨x3)∧(x1∨x2∨x3)∧ (x1∨x2∨x3)
p1 n1 p2 n2 p3 n3
f1 f2 f3
s1 t1 s2 t2 s3 t3
Idea: if first (second, third) literal of clause is true (taken), then
first (second, third) vertex of clause gadget has not to be taken in
order to cover the edges between the gadgets
Crescenzi and Kann (UniFi and KTH) Vertex cover October 2011 27/ 7
![Page 28: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/28.jpg)
Proof of correctness
Show that Formula satisfiable ∩ Vertex cover exists:
Include in S all vertices corresponding to true literalsFor each clause, include in S all vertices of its gadget but the one
corresponding to its first true literal
Example
(x1∨x2∨x3)∧(x1∨x2∨x3)∧(x1∨x2∨x3)
x1 true, x2 and x3 falsep1 n2 n3
f2 f3
s1 t1 t2 s3
Show that Vertex cover exists ∩ Formula satisfiable:
Assign value true to variables whose p-vertices are in SSince k = n + 2m, for each clause at least one edge connecting its gadget to the variable gadgets is covered by a variable vertex
Clause is satisfied
Crescenzi and Kann (UniFi and KTH) Vertex cover October 2011 28/ 7
![Page 29: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/29.jpg)
Hamiltonian Cycle Problem
A Hamiltonian cycle in a graph is a cycle
t h a t v i s i t s e a c h v e r tex exa c t l y o n c e
Problem Statement
Given A directed graph G = (V,E)
To Find If the graph contains a Hamiltonian cycle
![Page 30: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/30.jpg)
Hamiltonian Cycle Problem
Hamiltonian Cycle Problem is NP-Complete
H a m i l t o n i a n C y c l e P r o b l e m i s i n N P.G i v e n a d i r e c t e d g r a p h G = ( V, E ) , a n d acertificate containing an ordered list of vertices ona H a m i l t o n i a n C y c l e . I t c a n b e v e r i f i e din polynomial time that the list contains each vertex exactly once and that each consecutive pair in the ordering is joined by an edge.
![Page 31: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/31.jpg)
Hamiltonian Cycle Problem
H a m i l t o n i a n C y c l e P r o b l e m i s N P H a r d
3-SAT ≤p Hamiltonian Cycle
W e b e g i n w i t h a n a r b i t r a r y i n s t a n c e o f 3 -
S A T h a v i n g v a r i a b l e s x 1 , … … . , x n a n d
clauses C1,…….,Ck
We model one by one, the 2n different ways in which
v a r i a b l e s c a n a s s u m e a s s i g n m e n t s , a n d t h e
constraints imposed by clauses.
![Page 32: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/32.jpg)
Hamiltonian Cycle Problem
To correspond to the 2n truth assignments,
we describe a graph containing 2n different
Hamiltonian cycles.
The graph is constructed as follows:
Construct n paths P1,…….,Pn.
• Each Pi consists of nodes vi1,….., vib,
where b = 2k (k being the number of clauses)
![Page 33: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/33.jpg)
……………….
……………….
……………….
P1
P2
P3
![Page 34: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/34.jpg)
Hamiltonian Cycle Problem
• Draw edges from vij to vi,j+1
……………….
……………….
……………….
P1
P2
P3
![Page 35: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/35.jpg)
Hamiltonian Cycle Problem
• Draw edges from vi,j+1 to vi,j
……………….
……………….
……………….
P1
P2
P3
![Page 36: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/36.jpg)
Hamiltonian Cycle Problem
• For each i = 1,2,……..,n-1, define edges from vi1 to vi+1,1 and to vi+1,b.
• Also, define edges from vib to vi+1,1 and vi+1,b
……………….
……………….
……………….
P1
P2
P3
![Page 37: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/37.jpg)
Add two extra nodes s and t. Define edges from s to v11 and v1b, from
vn1and vnb to t, and from t to s
s
t
……………….
……………….
……………….
P1
P2
P3
![Page 38: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/38.jpg)
Hamiltonian Cycle Problem
Observations:
Any Hamiltonian cycle must use the edge (t,s)
Each Pi can either be traversed left to right or right to left. This gives rise to 2n Hamiltonian cycles.
We have therefore modeled the n independent choices of how to set each variable; if Pi is traversed left to right, xi=1, else xi=0
![Page 39: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/39.jpg)
Hamiltonian Cycle Problem
We now add nodes to model the clauses
Consider the clause C = (x1’ν x2 ν x3’)
What is the interpretation of the clause?
The path P1 should be traversed right to left, or P2 should be traversed left to right, or P3 right to left.
![Page 40: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/40.jpg)
We add a node that does this
……………….
……………….
……………….
P1
P2
P3
s
t
C
![Page 41: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/41.jpg)
Hamiltonian Cycle Problem
In general
• We define a node cj for each clause Cj.
• In each path Pi, positions 2j-1 and 2j are reserved for variables that participate in clause Cj
• If Cj contains xi, add edges (vi,2j-1 , cj)and (cj , vi,2j)
• If Cj contains xi’, add edges (vi,2j , cj)and (cj, vi,2j-1)
Gadget constructed !
![Page 42: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/42.jpg)
Hamiltonian Cycle Problem
Consider an instance of 3-SAT having
4 variables : x1,x2 x3,x4
3 clauses C1 : (x1 v x2 v x3’)
C2 : (x2’ v x3 v x4)
C3 : (x1’ v x2 v x4’)
![Page 43: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/43.jpg)
Hamiltonian Cycle Problem
We reduce the given instance as follows:
n = 4 k = 3 b= 2*3 = 6
Construct 4 paths P1, P2, P3, P4
P1 consists of nodes v1,1, v1,2 ,…….., v1,6
P2 consists of nodes v2,1, v2,2 ,…….., v2,6
P3 consists of nodes v3,1, v3,2 ,…….., v3,6
P4 consists of nodes v4,1, v4,2 ,…….., v4,6
![Page 44: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/44.jpg)
1 2 6543 P1
1 2 6543 P2
1 2 643 P3
1 2 6543 P4
s
t
C1
5
C2
C3
![Page 45: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/45.jpg)
Hamiltonian Cycle Problem
Claim : 3-SAT instance is satisfiable if and only ifG has a Hamiltonian cycle
Proof: Part IGiven A satisfying assignment for the 3-SAT instance
If x i = 1, traverse Pi left to right, else right to left.Since each clause C j is satisfied by the assignment,there has to be at least one path Pi that moves in theright direction to be able to cover node cj. This Pi can bespliced into the tour there via edges incident on vi,2j-1 andvi,2j
![Page 46: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/46.jpg)
Hamiltonian Cycle Problem
Let us try to verify this with our example
Given A satisfying assignment for 3-SAT, say x1 = 1 x2 = 0 x3 = 1 x4 = 0
Let us check out a corresponding Hamiltonian cycle
![Page 47: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/47.jpg)
1 2 6543 P1
1 2 6543 P2
1 2 643 P3
1 2 6543 P4
s
t
C1
5
C2
C3
![Page 48: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/48.jpg)
Hamiltonian Cycle Problem
Part II
Given A Hamiltonian cycle in G.
Observe that if the cycle enters a node cj on
an edge from vi,2j-1 it must depart on an edge
to vi,2j.
Why?
![Page 49: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/49.jpg)
Hamiltonian Cycle Problem
Because otherwise, the tour will not be able
to cover this node while still maintaining the
Hamiltonian property
Similarly, if the path enters from vi,2j, it has to
d e p a r t i m m e d i a t e l y t o v i , 2 j - 1 .
![Page 50: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/50.jpg)
Hamiltonian Cycle Problem
However, in some situations it may so happen that the pathenters cj from the first (or last) node of Pi and departs at thefirst (or last) node of Pi+1.
In either case the following holds true:
The nodes immediately before and after any cj
in the cycle are joined by an edge in G, say e.
Let us consider the following Hamiltonian cycle given on our graph
![Page 51: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/51.jpg)
1 2 6543 P1
1 2 6543 P2
1 2 643 P3
1 2 6543 P4
s
t
C1
5
C2
C3
![Page 52: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/52.jpg)
Hamiltonian Cycle Problem
O b t a i n a H a m i l t o n i a n c y c l e o n t h e
subgraph G – {c1,……ck} by removing
c j a n d a d d i n g ‘e’ a s s h o w n b e l o w
![Page 53: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/53.jpg)
1 2 6543 P1
1 2 6543 P2
1 2 643 P3
1 2 6543 P4
s
t
C1
5
C2
C3
![Page 54: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/54.jpg)
Hamiltonian Cycle Problem
We now use this new cycle on the subgraph
t o o b t a i n t h e t r u t h a s s i g n m e n t s f o r t h e
3-SAT instance.
If it traverses P i left to right, set x i =1, else
set xi = 0.
We therefore get the following assignments:
x1 = 1 x2 = 0 x3 = 0 x4 = 1
![Page 55: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/55.jpg)
Hamiltonian Cycle Problem
Can we claim that the assignment thus
determined would sat isfy a l l c lauses .
YES !
Since the larger cycle visited each clause
node cj, at least one Pi was traversed in the
right direction relative to the node cj
![Page 56: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/56.jpg)
Outline
Turing Machine , Turing Degree
Polynomial and non polynomial problems
Deterministic and non deterministic algorithms
P ,NP, NP hard and NP Complete
NP Complete Proof- 3-SAT & Vertex Cover
NP hard Problem- Hamiltonian Cycle
Menagerie of complexity classes of Turing Degree
Randomization- Sorting algorithm
Approximation-TSP and Max Clique
![Page 57: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/57.jpg)
Menagerie of complexity classes of
Turing Degree
In computer science and mathematical logic the Turing degree (named after Alan Turing) or degree of unsolvability of a set of natural numbers measures the level of algorithmic unsolvability of the set. The concept of Turing degree is fundamental in computability theory, where sets of natural numbers are often regarded as decision problems. The Turing degree of a set tells how difficult it is to solve the decision problem associated with the set, that is, to determine whether an arbitrary number is in the given set.
![Page 58: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/58.jpg)
Menagerie of complexity classes of
Turing Degree
The menagerie is a dynamic diagram of
(downward closed) classes of Turing degrees.
Between 2002 and 2003, Bjørn Kjos-Hanssen put
together a remarkable diagram of classes of
Turing degrees.
![Page 59: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/59.jpg)
Menagerie of complexity classes of
Turing Degree
![Page 60: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/60.jpg)
Menagerie of complexity classes of
Turing Degree
Let’s start at the outermost class of all recognizable problems, also
known as decision problems.
In our study of the halting problem, we have seen that some problems
are simply undecidable.
So that’s why in this chart the class of decidable problems is contained
strictly inside the class of all problems. This is something we know and has been proven.
Now you see lots more complexity classes nested inside of the
decidable problems, such as EXPSPACE, which is the set of all
problems decidable by a Turing Machine in O(2^p(n)) tape space where
p(n) is a polynomial of n (which is the size of the input).
Now the diagram shows this as being strictly larger than EXPTIME,
which is the set of problems decidable in exponential time.
![Page 61: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/61.jpg)
Menagerie of complexity classes of
Turing Degree
EXPSPACE is a strict superset of PSPACE. By now
you should be able to guess what the definition of
PSPACE looks like: it is the set of problems decidable
by a Turing machine in O(p(n)) of space.
Here is something else we know and have already
encountered in Tech Tuesday. We saw that the class
of regular problems, which can be solved using finite
state machines, is strictly smaller than the class CFL,
which are the context free languages.
PS There are many more complexity classes than are
shown in the diagram above. You can find a
comprehensive listing in the Complexity Zoo.
![Page 62: PVG's College of Engineering,Nashik-04 · 2018. 3. 12. · PVG's College of Engineering,Nashik-04 Third Year of Computer Engineering (2015 Course) 310250: Design and Analysis of Algorithms](https://reader035.vdocuments.us/reader035/viewer/2022081620/610093b3230bf30d8b2832bf/html5/thumbnails/62.jpg)
Outline
Turing Machine , Turing Degree
Polynomial and non polynomial problems
Deterministic and non deterministic algorithms
P ,NP, NP hard and NP Complete
NP Complete Proof- 3-SAT & Vertex Cover
NP hard Problem- Hamiltonian Cycle
Menagerie of complexity classes of Turing Degree
Randomization- Sorting algorithm
Approximation-TSP and Max Clique