kernelization basics

140
Kernelization Evil is whatever distracts. Franz Kafka

Upload: aspak2014

Post on 29-Jun-2015

400 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Kernelization Basics

KernelizationEvil is whatever distracts.

― Franz Kafka

Page 2: Kernelization Basics

KernelizationEvil is whatever distracts.

― Franz Kafka

Page 3: Kernelization Basics
Page 4: Kernelization Basics
Page 5: Kernelization Basics
Page 6: Kernelization Basics

Preprocess

Page 7: Kernelization Basics

Preprocess

Page 8: Kernelization Basics

Preprocess

Page 9: Kernelization Basics

Preprocess

(x, k) (x �, k �)

Page 10: Kernelization Basics

Preprocess

(x, k) (x �, k �)FAST

SMALL

SANE

Page 11: Kernelization Basics

Preprocess

(x, k) (x �, k �)|x|O(1) time

SMALL

SANE

Page 12: Kernelization Basics

Preprocess

(x, k) (x �, k �)|x|O(1) time

|x �| = f(k) k � k �and

SANE

Page 13: Kernelization Basics

Preprocess

(x, k) (x �, k �)|x|O(1) time

|x �| = f(k) k � k �and

(x, k) � (x �, k �)

Page 14: Kernelization Basics

Examples

Page 15: Kernelization Basics

Max Sat

Page 16: Kernelization Basics

Input

Max Sat

A CNF Formula over n variables with m clauses.

Page 17: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 18: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

What if k is at most m/2?

Page 19: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

What if k is at most m/2?

Page 20: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

What if k is at most m/2?

Page 21: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Say YES.

What if k is at most m/2?

Page 22: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Say YES.

k > m/2?

What if k is at most m/2?

Page 23: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Say YES.

k > m/2?

The number of clauses is bounded by 2k.

What if k is at most m/2?

Page 24: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 25: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 26: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

variables

Page 27: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

variables

Page 28: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Configuration of x

variables

Page 29: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Configuration of x

If two variables x and y have the same “configuration”in the formula, then delete one of them.

variables

Page 30: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Configuration of x

variables

Page 31: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Configuration of x

We have at most variables left.3(2k)

variables

Page 32: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Configuration of x

We have at most variables left.3(2k)

variables

Page 33: Kernelization Basics

InputQuestion

Max Sat

Is there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

GOAL

We have at most variables left.k

Page 34: Kernelization Basics

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Variables

Clauses

Max Sat

Page 35: Kernelization Basics

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Variables

Clauses

Max Sat

Page 36: Kernelization Basics

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Max Sat

If we have at least k variables and we have a matching from Variables — Clauses

then we can say YES.

If we have at most k variables - nothing to do.

Page 37: Kernelization Basics

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Max Sat

Else, we have at least k variables, but no matching from Variables — Clauses.

Page 38: Kernelization Basics

Hall’s Theorem

Page 39: Kernelization Basics

Hall’s Theorem

If, in a bipartite graph with parts A and B,there is no matching from A to B,

then there is a subset X of Asuch that

|N(X)| < |X|

Page 40: Kernelization Basics

Hall’s Theorem

Page 41: Kernelization Basics

Hall’s Theorem

Such an “obstructing set” can be computed in polynomial time.

Page 42: Kernelization Basics

Hall’s Theorem

Such an “obstructing set” can be computed in polynomial time.[inclusion-minimal]

Page 43: Kernelization Basics

Such an “obstructing set” can be computed in polynomial time.[inclusion-minimal]

Max Sat

V

C

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 44: Kernelization Basics

Such an “obstructing set” can be computed in polynomial time.[inclusion-minimal]

Max Sat

V

C

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 45: Kernelization Basics

Max Sat

V

C

removed |X| variables

removed |N(X)| clauses

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 46: Kernelization Basics

Max Sat

Ask now if k - |N(X)| clauses can be satisfied.

V

C

removed |X| variables

removed |N(X)| clauses

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 47: Kernelization Basics

Max Sat

V

C

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Page 48: Kernelization Basics

Max Sat

V

C

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

We removed an inclusion-minimal violating set.

Page 49: Kernelization Basics

MAX SAT

V

C

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Get rid of one vertex…

Page 50: Kernelization Basics

MAX SAT

V

C

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

Get rid of one vertex…

Page 51: Kernelization Basics

MAX SAT

V

C

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

The rest of it can be matched!

Get rid of one vertex…

Page 52: Kernelization Basics

MAX SAT

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

This implies a kernel with at most k variables and 2k clauses.

Page 53: Kernelization Basics

MAX SAT

InputQuestionIs there an assignment satisfying at least k clauses?

A CNF Formula over n variables with m clauses.

This implies a kernel with at most k variables and 2k clauses.

Page 54: Kernelization Basics

Vertex Cover

Page 55: Kernelization Basics

Input

Vertex Cover

A graph G = (V,E) with n vertices, m edges, and k.

Page 56: Kernelization Basics

Input

Question

Vertex Cover

Is there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 57: Kernelization Basics

Input

Question

Vertex Cover

Is there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

What if a vertex has more than k neighbors?

Page 58: Kernelization Basics

Input

Question

Vertex Cover

What if a vertex has more than k neighbors?

Is there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 59: Kernelization Basics

Input

Question

Vertex Cover

What if a vertex has more than k neighbors?

Is there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 60: Kernelization Basics

Input

Question

Vertex Cover

What if a vertex has more than k neighbors?

Is there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 61: Kernelization Basics

Input

Question

Vertex Cover

We cannot afford to leave v out ofany vertex cover of size at most k.

What if a vertex has more than k neighbors?

Is there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 62: Kernelization Basics

Vertex Cover

If a vertex has more than k neighbors,

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 63: Kernelization Basics

Vertex Cover

delete it from the graph and reduce the budget by one.

If a vertex has more than k neighbors,

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 64: Kernelization Basics

Vertex Cover

When we have nothing more to do…

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 65: Kernelization Basics

Vertex Cover

every vertex has degree at most k.

When we have nothing more to do…

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 66: Kernelization Basics

Vertex Cover

every vertex has degree at most k.

When we have nothing more to do…

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 67: Kernelization Basics

Vertex Cover

If the graph has more than k2 edges,

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 68: Kernelization Basics

Vertex Cover

reject the instance.

If the graph has more than k2 edges,

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 69: Kernelization Basics

Vertex Cover

Otherwise:

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 70: Kernelization Basics

Vertex Cover

the number of edges is at most k2.

Otherwise:

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Page 71: Kernelization Basics

Vertex Cover

the number of edges is at most k2.

Otherwise:

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

Vertices?

Page 72: Kernelization Basics

Vertex Cover

the number of edges is at most k2.

Otherwise:

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

k2 edges can be involved in at most 2k2 vertices.Throw away isolated vertices.

Vertices?

Page 73: Kernelization Basics

Vertex Cover

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

This implies a kernel with at most 2k2 vertices and k2 edges.

Page 74: Kernelization Basics

Vertex Cover

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

This implies a kernel with at most 2k2 vertices and k2 edges.

Page 75: Kernelization Basics

Vertex Cover

Input

QuestionIs there a subset of vertices S of size at most k that intersects all the edges?

A graph G = (V,E) with n vertices, m edges, and k.

This implies a kernel with at most 2k2 vertices and k2 edges.

[BUSS KERNELIZATION]

Page 76: Kernelization Basics

Feedback Arc Set on Tournaments

Page 77: Kernelization Basics

Input

Feedback Arc Set on Tournaments

A tournament on n vertices and an integer k.

Page 78: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

Page 79: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

A tournament has a cycle if, and only if, it has a triangle.

Page 80: Kernelization Basics
Page 81: Kernelization Basics
Page 82: Kernelization Basics
Page 83: Kernelization Basics
Page 84: Kernelization Basics
Page 85: Kernelization Basics
Page 86: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

A tournament has a cycle if, and only if, it has a triangle.

Delete a vertex if it does not belong to any triangle.

Page 87: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

A tournament has a cycle if, and only if, it has a triangle.

Delete a vertex if it does not belong to any triangle.

Page 88: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

Delete a vertex if it does not belong to any triangle.

Page 89: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

Delete a vertex if it does not belong to any triangle.

Page 90: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

Delete a vertex if it does not belong to any triangle.

Page 91: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

What about an edge that participates in more than k triangles?

Page 92: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

What about an edge that participates in more than k triangles?

Page 93: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament on n vertices and an integer k.

What about an edge that participates in more than k triangles?

Reverse it and decrease the budget by one.

Page 94: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

Page 95: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

At most k arcs in any solution.

Page 96: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

At most k arcs in any solution.

Page 97: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

At most k arcs in any solution.

Page 98: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

At most k arcs in any solution.

Every vertex is in a triangle, and everyarc “sees” at most k triangles.

Page 99: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

Page 100: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

After reducing the graph, if there are more thank2 + 2k vertices,

reject the instance.

Page 101: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

This implies a kernel with at most k2 + 2k vertices.

Page 102: Kernelization Basics

Input

Question

Feedback Arc Set on Tournaments

Is there a subset of k arcs that can be reversed to make the tournament acyclic?

A tournament T on n vertices and an integer k.

This implies a kernel with at most k2 + 2k vertices.

Page 103: Kernelization Basics

d-Hitting Set

Page 104: Kernelization Basics

Input

d-Hitting Set

A family F of d-sized sets over an universe U, and k.

Page 105: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Page 106: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Page 107: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

What if there are more than k sets with one element in common?

Page 108: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

☕�♤♧★☼

♕♖☕�♘♤ ⚖☕�✜✍♖

✂✍✎☕�♢

What if there are more than k sets with one element in common?

Page 109: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

What if there are more than k sets with one element in common?

☕�♤♧★☼

♕♖☕�♘♤ ⚖☕�✜✍♖

✂✍✎☕�♢

Page 110: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

What if there are more than k sets with one element in common, and every set is mutually disjoint otherwise?

Page 111: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

What if there are more than k sets with one element in common, and every set is mutually disjoint otherwise?

☕♤♧★☼

♕♖☕♘❀ ⚖☕✜✍♖

✂☞✎☕♢

Page 112: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

❀Sunflower Lemma

Page 113: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Sunflower Lemma

{1,2,53,54,55} {1,2,68,69,67} {1,2,15,12,11} {1,2,23,24,29} {1,2,72,71,70}

Page 114: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Sunflower Lemma

If a d-uniform family F has at least d!(k-1)d sets, then it has a subcollection of at least k sets that:

!have a common mutual intersection (a core)

are pairwise disjoint otherwise (petals).

Page 115: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Sunflower Lemma [By the way…]

Sunflowers can also be computed in polynomial time.

Page 116: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Intuition

As long as there is a sunflower involving at least k+1 petals, remove it and replace it with its core.

Page 117: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

{1,2,53,54,55} {1,2,68,69,67} {1,2,15,12,11} {1,2,23,24,29} {1,2,72,71,70}

Intuition

Page 118: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

{1,2}

Intuition

Page 119: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Sunflower Lemma

The rule destroys d-uniformity. Fix this by iterating over d.

What if the core is empty? This means we have more than k disjoint sets,

so we can reject the instance.

Page 120: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Sunflower Lemma

The rule destroys d-uniformity. Fix this by iterating over d.

What if the core is empty? This means we have more than k disjoint sets,

so we can reject the instance.

Page 121: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

Sunflower Lemma

The rule destroys d-uniformity. Fix this by iterating over d.

What if the core is empty? This means we have more than k disjoint sets,

so we can reject the instance.

Page 122: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

This implies a kernel with at most d!kd sets, and d(d!)kd elements.

Page 123: Kernelization Basics

Input

Question

d-Hitting Set

Does U have a subset S of size at most k that intersects every set in F?

A family F of d-sized sets over an universe U, and k.

This implies a kernel with at most d!kd sets, and d(d!)kd elements.

Page 124: Kernelization Basics

Take Away…

Page 125: Kernelization Basics
Page 126: Kernelization Basics

Eliminate “high” degree

vertices

The problem is simple on

“bounded degree” graphs

Page 127: Kernelization Basics

Eliminate “high” degree

vertices

The problem is simple on

“bounded degree” graphs

May have one, but not the other,eg., Dominating Set,

Connected Vertex Cover.

Page 128: Kernelization Basics

Eliminate “high” degree

vertices

The problem is simple on

“bounded degree” graphs

May have one, but not the other,eg., Dominating Set,

Connected Vertex Cover.

High Degree Rulesmay be involved.

Eg: Feedback Vertex Set

Page 129: Kernelization Basics
Page 130: Kernelization Basics

Combinatorial facts (such as the Sunflower Lemma)and structure theorems (like Hall’s theorem)

can be often (surprisingly) useful.

Page 131: Kernelization Basics

The Big Picture

Page 132: Kernelization Basics

A parameterized problem is fixed-parameter tractable !

if and only if !

it has a kernelization algorithm.

A fundamental connection with FPT-land…

Page 133: Kernelization Basics

If you have a f(k)-sized kernel…

Page 134: Kernelization Basics

Obtain kernel and solve the problemusing some algorithm with running time g().

poly(n) + g(f(k))

If you have a f(k)-sized kernel…

Page 135: Kernelization Basics

If you have a f(k)p(n) FPT Algorithm…

Page 136: Kernelization Basics

We are done if n is at most f(k).

If you have a f(k)p(n) FPT Algorithm…

Page 137: Kernelization Basics

We are done if n is at most f(k).

If you have a f(k)p(n) FPT Algorithm…

If not, f(k)p(n) is at most n(p(n)), so the “FPT”algorithm can be run in polynomial time

to obtain a trivial kernel.

Page 138: Kernelization Basics
Page 139: Kernelization Basics

Do FPT problems always havepolynomial-sized kernels?

Page 140: Kernelization Basics

Do FPT problems always havepolynomial-sized kernels?

Remember to ask the question with an“above guarantee” parameterization

after you find a ‘cheat’ kernel.