pvg's college of engineering,nashik-04 · 2018. 3. 12. · pvg's college of...

62
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 and only being used for students reference and not for commercial purpose

Upload: others

Post on 01-Mar-2021

0 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

……………….

……………….

……………….

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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