algorithmic graph theory part i - review of basic notions in - profs

91
Algorithmic Graph Theory Part I - Review of Basic Notions in Graph Theory, Algorithms and Complexity Martin Milaniˇ c [email protected] University of Primorska, Koper, Slovenia Dipartimento di Informatica Universit` a degli Studi di Verona, March 2013 1 / 75

Upload: others

Post on 09-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Algorithmic Graph TheoryPart I - Review of Basic Notions in Graph Theory,

Algorithms and Complexity

Martin [email protected]

University of Primorska, Koper, Slovenia

Dipartimento di InformaticaUniversita degli Studi di Verona, March 2013

1 / 75

What we’ll do

1 Overview.2 Basic Graph Theoretic Definitions.3 Algorithms - Basic Definitions.4 Graph Representations.5 Basics of Complexity.

1 / 75

Routing Problems

Source: http://lia.ei.uvigo.es/projects/vrp/index.html

2 / 75

Routing Problems

Source: http://lia.ei.uvigo.es/projects/vrp/index.html

2 / 75

Traffic Flow Modeling

Source: http://sociologyiu09.wordpress.com/2010/01/13/

3 / 75

Shortest Paths

Source: https://maps.google.com/

4 / 75

Social Networks

Source: http://kikolani.com/becoming-accessible-social-networking-social-media.html

5 / 75

Social Networks

Source: http://www.digitaltrainingacademy.com/socialmedia/2009/06/social_networking_map.php

5 / 75

Computer Networks

Source: http://www.uws.edu.au/organisational_development/od/how_to_register

5 / 75

World Wide Web

Source: http://website-in-a-weekend.net/wp-content/uploads/2009/11/network_nodes.jpg

6 / 75

Protein Networks

Source:

http://www.mdc-berlin.de/de/research/research_teams/proteomics_and_molecular_mechanisms_of_neurodegenerative_diseases/research/research1/index.htm

7 / 75

Metabolic Networks

Source: http://www.readcube.com/articles/10.1186/1752-0509-5-81

8 / 75

Phylogenetic Networks

Source: http://r1blog.blogspot.com/2007/09/r1b1-neighbor-net.html

9 / 75

Map Drawing

Source: http://www.planetware.com/map/verona-map-i-ver.htm

10 / 75

Boolean Circuits

Source: http://www.cci-compeng.com/Unit_2_Electronics/2405_Simplifying_Boolean.htm

11 / 75

What we’ll do – Week 1

1 Tue March 5: Review of basic notions in graph theory,algorithms and complexity

2 Wed March 6: Graph colorings

3 Thu March 7: Perfect graphs and their subclasses, part 1

4 Fri March 8: Perfect graphs and their subclasses, part 2

12 / 75

What we’ll do – Week 2

1 Tue March 19: Further examples of tractable problems,part 1

2 Wed March 20:Further examples of tractable problems, part 2Approximation algorithms for graph problems

3 Thu March 21: Lectio Magistralis lecture, “Graph classes:interrelations, structure, and algorithmic issues”

13 / 75

BASIC GRAPH THEORETIC DEFINITIONS.

13 / 75

Graphs

Graph: G = (V ,E) ordered pair, whereV = finite set of vertices ,E ⊆

(V2

)

(2-element subsets of V ) set of edges

Notation: V (G) = V , E(G) = E .

Example: V = 1,2,3,4, E = 1,2, 1,3, 2,3, 3,4

1 2

3

4

13 / 75

Graphs

e = x , y ∈ E : we will write e = xy (= yx)x , y endpoints of the edge e

x

y

Petersen graph

14 / 75

Multigraphs

multigraphs :

parallel edges

loop

(E is a multisubset of(V

2

)

∪ V )

notation e = xy can be ambiguous for multigraphs; ifnecessary we use an incidence function: ψ(e) = xy

some authors use different terminology:graph = multigraphsimple graph = graph (without loops and parallel edges)

15 / 75

Digraphs

directed graphs (digraphs):D = (V ,A)V : vertices, A: directed edgesA ⊆ V × V

A digraph is simple if it has no loops and no directed paralleledges.

16 / 75

Neighborhoods and Degrees

We write x ∼ y , x is adjacent to y , if xy ∈ E(x and y are neighbors ).

Neighborhood of vertex x : N(x) = NG(x) := y : y ∼ x.

For X ⊆ V we write

N(X ) :=⋃

x∈X

N(x) \ X

X

N(X)

(We remove X from N(X )!)17 / 75

Handshaking Lemma

The degree of vertex x : d(x) = dG(x) := |NG(x)|.A vertex v is isolated if d(v) = 0.

Handshaking Lemma: For every graph G = (V ,E),∑

x∈V

d(x) = 2 · |E | .

Proof:∑

x d(x) =∑

x∑

y∼x 1 = 2 · |E |.

Corollary:The number of vertices of odd degree in a graph is even.

18 / 75

Degrees in Digraphs

If D = (V ,A) is a digraph, we define:

N+(x) := y ∈ V : xy ∈ A successors of vertex x

N−(x) := y ∈ V : yx ∈ A predecessors of vertex x

out-degree of vertex x : d+(x) := |N+(x)|

in-degree of vertex x : d−(x) := |N−(x)|

19 / 75

Isomorphisms

An isomorphism of graphs G1 = (V1,E1) and G2 = (V2,E2) isa bijective mapping ϕ : V1 → V2 that preserves adjacencies:

uv ∈ E1 ⇔ ϕ(u)ϕ(v) ∈ E2 .

If there exists an isomorphism of graphs G1 and G2, we saythat the graphs are isomorphic . We write G1

∼= G2.

Example:

x

y

z

a

b

c

ϕ(x)

ϕ(y)ϕ(z)

ϕ(a)

ϕ(b)

ϕ(c)

∼=

20 / 75

Isomorphisms

Example:

x

y

z

a

b

c

ϕ(x)

ϕ(y)ϕ(z)

ϕ(a)

ϕ(b)

ϕ(c)

∼=

Isomorphism is an equivalence relation. Typically, we will notdistinguish pairwise isomorphic graphs.

20 / 75

Subgraphs

A subgraph of a graph G = (V ,E):a graph G′ = (V ′,E ′) such that V ′ ⊆ V and E ′ ⊆ E(Note: in order for G′ to be a graph, we must have E ′ ⊆ E ∩

(V ′

2

)

.)

Example:

a 6∈ V ′

b

c

d

e 6∈ V ′

fg

A subgraph is:induced if E ′ = E ∩

(V ′

2

)

.Notation: G′ = G[V ′].spanning if V ′ = V .

21 / 75

Walks, Trails and Paths

A walk of length ℓ in a graph G = (V ,E) is a sequence

x0e1x1 · · · eℓxℓ ,

where xi ∈ V and ei = xi xi−1 ∈ E .

Remarks:

ℓ = number of edges

we usually write just x0x1 · · · xk (omitting the ei ’s)(not for multigraphs)

A trail is a walk with all edges distinct.

A path is a walk with all vertices distinct.

Sometimes we consider a path as a subgraph:

P = (x0, x1, . . . , xℓ, e1, . . . ,eℓ) .

22 / 75

Walks, Trails and Paths

Proposition

∃ x-y path in G ⇔ ∃ x-y walk in G.

Proof:(⇒): trivial(⇐): Let x = x0e1x1 · · · eℓxℓ = y be a shortest x-y walk.We claim that this is a path. If not, then ∃i < j : xi = xj . But then

x = x0e1x1 · · · eixi(= xj)ej+1xj+1 · · · eℓxℓ = y

is a shorter x-y walk, a contradiction.

23 / 75

Cycles

A walk is closed if xℓ = x0.

A cycle : a closed trail such that x0x1 · · · xℓ−1 is a path.

ℓ ≥ 3, except for multigraphs, where we can also haveℓ = 1 (loop) and ℓ = 2 (a pair of parallel edges).

When defining paths and cycles in digraphs we take intoaccount directions of edges.

24 / 75

Distances

The distance between two vertices x and y :d(x , y)(= dG(x , y))= length of a shortest x-y path (= ∞ if 6 ∃ x-y path)

x y

G

G′

dG(x, y) = 1, dG′(x, y) = 2

25 / 75

Components

A graph is connected if for every two vertices u, v ∈ V (G)there exists a path between them.

[x is a path of length 0]

Components of a graph G: maximal connected subgraphs

26 / 75

Euler Tours

An Euler tour (in G) is a closed trail passing through everyedge exactly once.

Source: the 7 bridges of Konigsberg

source: wikipedia

27 / 75

Euler Tours

Theorem (Euler, 1736)

A multigraph G without isolated vertices has an Euler tour ⇔G is connected and all vertices are of even degree.

Hence, the obvious necessary condition is also sufficient.

28 / 75

Hamiltonian Cycles

Hamiltonian cycle : a cycle going through every vertex exactlyonce.

Can we give a simple necessary and sufficient condition for theexistence of a Hamiltonian cycle in a graph?

Most likely not, since the decision problem whether a givengraph is Hamiltonian is NP-complete.

29 / 75

Operations on Graphs

The complement of a graph G = (V ,E) is the graphG = (V ,

(V2

)

\ E).(This is the graph with the same vertex set as G, in which twovertices are adjacent if and only if they are not adjacent in G.)

Example:

G G

v1

v2

v3

v4

v5 v1

v2

v3

v4

v5

30 / 75

Operations on Graphs

v ∈ V : G − v = the subgraph of G induced by the vertex setV \ v.

Similarly, we have G − U = G[V \ U] for U ⊆ V .

G − e = (V ,E \ e) for e ∈ E (spanning subgraph)

Similarly, G − F = (V ,E \ F ) for F ⊆ E .

31 / 75

Operations on Graphs

union of graphs:G ∪ H: graph (V (G) ∪ V (H),E(G) ∪ E(H))

intersection of graphs:G ∩ H: graph (V (G) ∩ V (H),E(G) ∩ E(H))

G + H: disjoint union of graphs G and H(Formally:V (G + H) = (V (G)× 1) ∪ (V (H)× 2),

E(G + H) = (u, 1)(v ,1) : uv ∈ E(G) ∪ (u, 2)(v , 2) : uv ∈ E(H))

G ∗ H join of graphs G and H:disjoint union of graphs G and H together with all possibleedges between V (G)× 1 and V (H)× 2

32 / 75

Complete and Complete Bipartite Graphs

A complete graph :KV := (V ,

(V2

)

), we usually write just Kn where n = |V |nG:= disjoint union of n copies of a graph G

K2 2K2

Complete bipartite graph : Km,n:graph G = (V ,E) such thatV = A ∪ B, A ∩ B = ∅, |A| = m, |B| = n andE = ab : a ∈ A,b ∈ B.

33 / 75

Paths and Cycles

Path Pn: graph G = (V ,E) withV = v1, . . . , vn andE = v1v2, . . . , vn−1vn.

Cycle Cn:graph G = (V ,E) withV = v1, . . . , vn andE = v1v2, . . . , vn−1vn, vnv1.

34 / 75

Forests and Trees

a forest = a graph without cycles (acyclic graph)a tree = a connected forest

Proposition

Let T = (V ,E) be a graph with n vertices. The following areequivalent:

1 T is a tree.2 T is a connected graph and |E | = n − 1.3 |E | = n − 1 and T is acyclic.4 Every pair of vertices in graph T is joined by a unique path.5 T is connected and for every edge e ∈ E(T ) the graph

T − e is not connected.6 T is an acyclic graph, but if we add an arbitrary edge to T ,

we obtain exactly one cycle.

35 / 75

ALGORITHMS - BASIC DEFINITIONS.

35 / 75

Algorithms

An algorithm is every well defined sequence of rules withwhich we compute something or solve some problem.

A mathematical formalization of an algorithm is given bythe notion of a Turing machine.

An algorithm transforms input data into output data.

Example:Algorithm that solves a system of linear equations Ax = b:Gaussian elimination with partial pivotingInput: A (an invertible matrix of order n), b (a vector of order n)Output: x (sought solution) if the decomposition of matrix Asucceeded, or a message that due to rounding errors decompositiondid not succeed

36 / 75

Algorithms

We require from an algorithm that it stops after a finite numberof calculation steps.

When developing an algorithm for a given problem, we shouldalso provide:

an analysis of the time complexity of the algorithm;

a proof of correctness .

The algorithms can be described either in the natural languageor in pseudocode.

37 / 75

Algorithms

Example:An algorithm that computes the product C of two squarematrices A and B of order n:

MATRIX MULTIPLICATION

Input: Real matrices A and B of size n × n.Output: Matrix C = A · B.for i = 1, . . . , n do

for j = 1, . . . , n doC[i, j] := A[i, 1] · B[1, j];for k = 2, . . . , n do

C[i, j] := C[i, j] + A[i, k ] · B[k , j];end for

end forend forreturn C;

The algorithm makes n3 multiplications and n2(n − 1) additions.Proof of correctness is obvious.

38 / 75

Instances and Their Sizes

We are given an (optimization, decision, ...) problem P.Examples:

“Compute the product of two given matrices of order n.”

“Find the smallest number among n given rationalnumbers.”

“Determine whether the given graph G has a Hamiltoniancycle.”

instance: concrete input data for problem P

size of the instance: the number of bits needed to store theinstance in the computer.

We need to choose an appropriate way of representing theinstance.

39 / 75

Representing the Instances

Examples:

We usually store a positive integer n with ⌊log2 n⌋+ 1 bits(sometimes also with n bits as 11 · · · 1 (n ones)).

We can store a matrix of n2 positive integers with at mostn2 log2 M bits where M is the biggest number in the matrix.

Or: with a set of triples (i , j ,aij) : aij 6= 0.This representation is particularly suitable for matrices withmany zero elements.

We can represent a graph in several ways (more about thislater).

40 / 75

Time Complexity of Algorithms

Let A be an algorithm that solves a problem P.

Running time of algorithm A = number of basic calculationsteps performed by A (additions, subtractions, multiplications,comparison of two numbers ...).

The time complexity of algorithm A is the function TA(n) thatmeasures the running time of A in the worst case:

TA : n 7→ largest running time of A of input instances of size ≤ n .

41 / 75

Time Complexity of Algorithms

Remarks:

Besides time complexity, space complexity of analgorithm might also be important (how much computermemory the algorithm needs).

If we have a probability distribution on the input instances,we can also estimate the expected time complexity ofthe algorithm.

42 / 75

Big O Notation

A function f : N → N is of order (at most) O(g), if there existsa constant C > 0 such that f (n) ≤ C · g(n) for all n ∈ N.

Notation: f = O(g)

If f = O(g), we also write g ∈ Ω(f ) and say that g is of order(at least) Ω(f ).

Two functions f and g are of the same order if f = O(g) andf = Ω(g). Notation: f = Θ(g).

43 / 75

Big O Notation

Some properties of O:

1 We can ignore the constant factor:For all k > 0, kf = O(f ).

2 Higher powers grow faster than lower ones:nr = O(ns) if r ≤ s.

3 The speed of growth of a sum is the speed of the fastestgrowing summand:If f = O(g), then f + g = O(g).(Example: 6n3 + 9n2 = O(n3).)

4 The order of a polynomial is equal to the order of theleading term: A polynomial of degree d is of order O(nd ).

5 Transitivity: If f = O(g) and g = O(h), then f = O(h).

44 / 75

Big O Notation

6 Exponential functions grow faster than power functions:For all k ≥ 0, b > 1, it holds nk = O(bn).(Example: n4 = O(2n), n4 = O(en), n4 = O(1.0001n).)

7 Logarithms grow slower than power functions:For all k > 0, b > 1, it holds logb n = O(nk ).(Example: log2 n = O(n1/2).)

8 Logarithms are of the same order:For all b,d > 1, it holds logb n = O(logd n).

9 If f = O(g) and h = O(r), then fh = O(gr).(Example: if f = O(n2) and g = O(log n), thenfg = O(n2 log n).)

45 / 75

Typical Time Complexities

Typical time complexities of algorithms:linear Θ(n)

finding a maximum element in a tableinner product of two vectors

quadratic Θ(n2)

matrix addition, matrix transposition, multiplication of amatrix and a vector (a matrix is of order n × n, a vector hasn components; we take n for the measure of size)

cubic Θ(n3)

typical matrix multiplication

polynomial O(p(n)), where p is a polynomial

exponential O(2p(n)), where p is a polynomial ofdegree ≥ 1 with positive leading coefficient

46 / 75

Polynomial Algorithms

An algorithm A is polynomial if its time complexity TA(n) is ofthe order O(nk ) for some k ∈ N.Polynomial algorihtms are also said to be efficient .

Example: The following table shows the amount of time analgorithm of time complexity f (n) would need on a computerthat performs million operations per second.

f (n) n = 50 n = 100 n = 200n 5 · 10−5 s 10−4 s 2 · 10−4 sn2 0.0025 s 0.01 s 0.04 sn3 0.125 s 1 s 8 s

1.1n 0.0001 s 0.014 s 190 s2n 35.7 years 4 · 1016 years 5 · 1046 years

47 / 75

Polynomial Algorithms

On a 1000 times faster computer:

f (n) n = 50 n = 100 n = 200n 5 · 10−8 s 10−7 s 2 · 10−7 sn2 2.5 · 10−6 s 10−5 s 4 · 10−5 sn3 1.25 · 10−4 s 10−3 s 8 · 10−3 s

1.1n 1.1 · 10−7 s 1.4 · 10−5 s 0.19 s2n 13 days 4 · 1013 years 5 · 1043 years

48 / 75

GRAPH REPRESENTATIONS.

48 / 75

Graph Representations

How to represent a graph in a computer?This depends on what graphs we will work with and whatoperations we want to preform on them.

Let G = (V ,E) whereV = v1, . . . , vn,E = e1, . . . ,em.

49 / 75

Adjacency Matrix A(G)

Adjacency matrix of a graph G:

A(G) =

a11 a12 . . . a1n

a21 a22 . . . a2n...

.... . .

...an1 an2 . . . ann

, aij =

1, if vi ∼ vj ;0, otherwise.

Order of magnitude of this representation: O(n2)

50 / 75

Adjacency Matrix A(G)

Example:

v1v2

v3

v4

v1

v2

v3

v4

0 1 1 01 0 1 01 1 0 10 0 1 0

v1 v2 v3 v4G

A(G)

The definition of adjacency matrix can also be generalized todigraphs and multigraphs. (How?)

51 / 75

Adjacency List Representation

Adjacency list representation:A collection of unordered lists, one for each vertex in the graph.Each list describes the set of neighbors of its vertex (in arbitraryorder).

Example:

v1v2

v3

v4

G

Adjacency lists:

v1

v2

v3

v4

v2

v2

v1

v1

v3

v3

v3

v4

Order of magnitude of this representation:n

i=1

[1 + d(vi)] = n +n

i=1

d(vi) = O(n + m)

52 / 75

Adjacency List Representation

This representation is particularly useful for sparse graphs(graphs with O(n) edges).

Many useful graphs are “sparse”:

In a country there are several 1000 cities, but only a smallnumber of roads goes out of each city.

In Italy there are about 60 million people, but each personhas only several 10 or several 100 acquaintances.

The adjacency list representation can also be generalized todigraphs and multigraphs. (How?)

53 / 75

Comparison of Representations

With adjacency matrix representation each of the followingoperations takes constant time O(1):

1 check if vi ∼ vj ,2 remove an edge,3 add an edge.

With adjacency list representation we need the followingtime for the three operations:

1 O(d(vi)), since we need to traverse the list of neighbors ofvi (or vj ),

2 O(maxd(vi), d(vj)), since we need to traverse both listsof neighbors (of vi and of vj ),

3 O(1), since we need to add vertex vi on the list ofneighbors of vj and vice versa

54 / 75

Comparison of Representations

The space complexity of the adjacency matrix representation isΘ(n2), independently of the number of edges.The space complexity of the adjacency list representation isO(n + m), which is O(n) for sparse graphs.

We say that a graph problem is solvable in linear time if it canbe solved by an algorithm of time complexity O(n + m) (wheren = |V |,m = |E |).

We assume adjacency list representation.

55 / 75

BASICS OF COMPLEXITY.

55 / 75

Decision Problems, Classes P, NP, and co- NP

Decision problem : a problem in which the set of instancesdivides into two sets depending on whether the answer is YESor NO.

We define three classes of decision problems:

P is the set of decision problems that can be solved by apolynomial algorithmIntuitively: P is the set of problems that can be solvedefficiently.

56 / 75

Decision Problems, Classes P, NP, and co- NP

Decision problem : a problem in which the set of instancesdivides into two sets depending on whether the answer is YESor NO.

We define three classes of decision problems:

NP is the set of decision problems with the followingproperty:If the answer is YES then there exists a certificate thatenables us to verify this fact in polynomial time.

56 / 75

Decision Problems, Classes P, NP, and co- NP

Decision problem : a problem in which the set of instancesdivides into two sets depending on whether the answer is YESor NO.

We define three classes of decision problems:

NP is the set of decision problems with the followingproperty:If the answer is YES then there exists a certificate thatenables us to verify this fact in polynomial time.Intuitively: NP is the set of problems for which we canquickly verify a positive answer if we are given a solution.

56 / 75

Decision Problems, Classes P, NP, and co- NP

Decision problem : a problem in which the set of instancesdivides into two sets depending on whether the answer is YESor NO.

We define three classes of decision problems:

NP is the set of decision problems with the followingproperty:If the answer is YES then there exists a certificate thatenables us to verify this fact in polynomial time.Intuitively: NP is the set of problems for which we canquickly verify a positive answer if we are given a solution.(Formally: NP is the set of languages recognizable by some Turing

machine in polynomial time.)

56 / 75

Decision Problems, Classes P, NP, and co- NP

Decision problem : a problem in which the set of instancesdivides into two sets depending on whether the answer is YESor NO.

We define three classes of decision problems:

co-NP is the set of decision problems with the followingproperty:If the answer is NO then there exists a certificate thatenables us to verify this fact in polynomial time.

56 / 75

Some Polynomial Graph Problems

The following problems are all in P:

TOPOLOGICAL SORT: find an ordering of the vertices of agiven digraph such that the first endpoint of each edge willprecede the last endpoint in the order

BREADTH-FIRST SEARCH (BFS): systematically checkeverything reachable from a given starting vertex

DEPTH-FIRST SEARCH (DFS): like BFS, but in a differentorder

SHORTEST PATHS: every edge has a length, find a shortestpath between two vertices

57 / 75

Some Polynomial Graph Problems (cont’d)

The following problems are all in P:

MINIMUM SPANNING TREE: every edge has a length, find aset of edges with minimum total length such that everyvertex is covered by an edge

MAXIMUM FLOW: every (directed) edge has a capacity, findthe maximum amount of flow from a source to a sink sothat the conservation of flow is preserved

MAXIMUM MATCHING: find a largest set of pairwise disjointedges in a graph

57 / 75

Example of a Problem in NP

Example:

SATISFIABILITY

Input: Boolean variables x1, . . . , xn,clauses C1, . . . ,Cm over x1, . . . , xn

[clause = a disjunction of literals

(variables or their negations)]

Question: Is there a satisfying truth assignment?

SATISFIABILITY is in NP :If the answer is YES then every satisfiable truth assignment is acertificate: we can verify in polynomial time whether this isindeed a satisfying assignment.

It is widely believed that SATISFIABILITY is not in P and not inco-NP , though nobody knows for sure.

58 / 75

Decision Problems, Classes P, NP, and co- NP

Proposition

P ⊆ NP ∩ co-NP .

Proof: P ⊆ NP : certificate is empty. We can verify a positiveanswer in polynomial time by solving the problem completely!Similarly for P ⊆ co-NP .

Conjecture: P 6= NP .One of the most important mathematical open questions.

Clay Mathematics Institute offers million $ for a correct solution to this

problem.

Conjecture: NP 6= co-NP .(If we are able to quickly verify a positive answer, there should be no

reason why we should be able to quickly verify a negative answer as

well.)

Conjecture: P = NP∩ co-NP .

59 / 75

Decision Problems, Classes P, NP, and co- NP

Jack Edmonds believes P = NP∩ co-NP :

Source: http://pretty.structures.free.fr/photos/photos6.html

60 / 75

NP-hard Problems

A problem Π is NP-hard ifthe existence of a polynomial algorithm for Π would implythe existence of a polynomial algorithm for every problem inNP .

In other words:

Π is NP-hard ⇔If Π is solvable in polynomial time then P = NP .

Intuitively: if we could solve efficiently just one NP-hard problem Π, thenwe would be able to solve efficiently every problem whose solution wecan verify quickly, by means of an algorithm for problem Π.

NP-hard problems are at least as hard as an arbitrary problem in NP.

61 / 75

NP-complete Problems

A problem is NP-complete if it is NP-hard and it belongs to NP.

These are the hardest problems in NP.

If there exists a polynomial time algorithm for just oneNP-complete problem, then all NP-complete problems arepolynomially solvable.

Thousands of NP-complete problems are known.A polynomial algorithm for either of them is very unlikely.

62 / 75

NP-complete Problems

co-NP NP

P

NP-hard

NP-complete

Figure: Most likely relations between classes NP , co-NP ,NP -complete and NP -hard problems

The existence of NP-complete problems is not immediatelyevident.

Theorem (Cook, Levin)

SATISFIABILITY is NP-complete.

63 / 75

Polynomial Reductions

Π1, Π2 decision problems

DefinitionProblem Π1 is polynomially reducible to Π2, if for everyinstance I for Π1 we can construct in polynomial time aninstance J = J(I) for problem Π2 such that the answer to Π1

given I is the same as the answer to Π2 given J.

Notation: Π1 ∝ Π2.

64 / 75

Polynomial Reductions

To show that a problem Π ∈ NP is NP -complete,we reduce a known NP -complete problem to Π.

Proposition

Suppose that for a problem Π ∈ NP there exists anNP -complete problem Π1 such that Π1 ∝ Π. Then Π isNP-complete.

65 / 75

Examples of NP-complete Problems

INDEPENDENT SET

Input: Graph G = (V ,E), k ∈ N

Question: Does G contain an independent set of size k?

independent set: a subset I ⊆ V such that u, v ∈ I ⇒ uv 6∈ E

Proposition

The INDEPENDENT SET problem is NP -complete.

Proof:1. INDEPENDENT SET ∈ NP : we can verify in polynomial timewhether I is an independent set of size k .

66 / 75

Examples of NP-complete Problems

2. Reduction from SATISFIABILITY.Example:The set of clauses

x1 ∨ x2 , x2 ∨ x3 ∨ x4 , x1 ∨ x3 ∨ x4 , x1 ∨ x2 ∨ x3 ∨ x4

over the variables x1, x2, x3, x4 gets mapped to (G,4), where 4is the number of clauses and G is the following graph:

x1

x1

x2

x2

x3

x4

x1

x3

x4

x3

x2

x4

x1

x1

x2

x4

67 / 75

Examples of NP-complete Problems (cont’d)

CLIQUE

Input: Graph G = (V ,E), k ∈ N

Question: Does G contain a clique of size k?

clique: a subset C ⊆ V such thatu, v ∈ C ∧ u 6= v ⇒ uv ∈ E

Proposition

The CLIQUE problem is NP -complete.

Proof:1. CLIQUE ∈ NP : we can verify in polynomial time whether C isa clique of size k .2. INDEPENDENT SET ∝ CLIQUE

I = (G, k) instance for INDEPENDENT SET 7→J(I) = (G, k) instance for CLIQUE

68 / 75

Examples of NP-complete Problems (cont’d)

VERTEX COVER

Input: Graph G = (V ,E), k ∈ N

Question: Does G contain a vertex cover of size k?

vertex cover: a subset C ⊆ V such that for all e ∈ E , e ∩C 6= ∅

Proposition

The VERTEX COVER problem is NP -complete.

Proof:1. VERTEX COVER ∈ NP : we can verify in polynomial timewhether C is a vertex cover of size k .2. INDEPENDENT SET ∝ VERTEX COVER

I = (G = (V ,E), k) instance for INDEPENDENT SET 7→J(I) = (G, |V | − k) instance for VERTEX COVER

69 / 75

Examples of NP-complete Problems (cont’d)

DOMINATING SET

Input: Graph G = (V ,E), k ∈ N

Question: Does G contain a dominating set of size k?

dominating set: a set D ⊆ V such that every vertex is either inD or has a neighbor in D

Proposition

The DOMINATING SET problem is NP -complete.

Proof:1. DOMINATING SET ∈ NP :we can verify in polynomial time whether D is a dominating setof size k .

70 / 75

Examples of NP-complete Problems (cont’d)

2. VERTEX COVER ∝ DOMINATING SET

I = (G = (V ,E), k) instance for VERTEX COVER 7→J(I) = (G′ = (V ′,E ′), k) instance for DOMINATING SET where:

V ′ = V ∪ E ,

V is a clique in G′,

E is an independent set in G′,

ve ∈ E(G′) ⇔ v ∈ V ,e ∈ E , v is an endpoint of e.

71 / 75

Some Further NP-complete Problems

The following problems are NP-complete:

3-SATISFIABILITY: just like SATISFIABILITY, except thatevery clause consists of exactly 3 literals

(2-SATISFIABILITY ∈ P.)

3-COLORABILITY: can the vertex set of a given graph bepartitioned into 3 (possibly empty) independent sets?

(2-COLORABILITY ∈ P.)

HAMILTIONIAN CYCLE: does a given graph have aHamiltonian cycle?

72 / 75

Some Further NP-complete Problems (cont’d)

The following problems are NP-complete:

TRAVELING SALESMAN: does a given edge-weighted graphhave a Hamiltonian cycle of total length ≤ L

METRIC TRAVELING SALESMAN: like TRAVELING

SALESMAN, except that the lengths satisfy triangleinequality

MAX CUT: does a given graph admit a partition of its vertexset into two sets such that there are at least k edgesbetween them?

72 / 75

How to Deal With NP -complete Problems?

There are several approaches on how to deal with theintractability of NP -complete problems:

polynomial algorithms for particular input instances

approximation algorithms

heuristics, local optimization

“efficient” exponential algorithms (e.g., 1.5n instead of 2n)

randomized algorithms

parameterized complexity(fixed-parameter tractable (FPT) algorithms)

73 / 75

What we’ll do – Week 1

1 Tue March 5: Review of basic notions in graph theory,algorithms and complexity X

2 Wed March 6: Graph colorings

3 Thu March 7: Perfect graphs and their subclasses, part 1

4 Fri March 8: Perfect graphs and their subclasses, part 2

74 / 75

What we’ll do – Week 2

1 Tue March 19: Further examples of tractable problems,part 1

2 Wed March 20:Further examples of tractable problems, part 2Approximation algorithms for graph problems

3 Thu March 21: Lectio Magistralis lecture, “Graph classes:interrelations, structure, and algorithmic issues”

75 / 75