Transcript
Page 1: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

1

Exponential-time algorithms

Algorithms and Networks 2015/2016Hans L. Bodlaender

Johan M. M. van Rooij

Page 2: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

2

Today

Introduction to exponential-time algorithms. Techniques:

Dynamic programming Branching algorithms. Clever enumeration. Inclusion/exclusion. Local search.

Problems: TSP Maximum/maximal independent set. k-Satisfiability. Graph Colouring.

Page 3: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

3

INTRODUCTIONExponential-time algorithms – Algorithms and Networks

Page 4: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

4

What to do if a problem is NP-complete?

Solve on special cases Heuristics and approximations Algorithms that are fast on average Good exponential-time algorithms …

Exponential-time algorithms is one of many options. Practical applications exist.

If the instance is small, and a simple exponential-time algorithm exist, then why not use it?

Sometimes useful as a quick way to solve small subproblems. If one needs the guarantee that a optimal solution is

always to be found one has little other choice.

Page 5: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

5

Good exponential-time algorithms

Algorithms with a running time of O( cn p(n) ) c a constant p() a polynomial Notation: O*(cn)

Smaller c helps a lot!

O*(f(n)): hides polynomial factors, i.e., O*(f(n)) = O(p(n)*f(n)) for some polynomial p.

Page 6: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

6

Good exponential-time algorithms improve upon trivial algorithm

What is a trivial algorithm? An NP-Complete problem allows for certificates of

polynomial length that can be verified in polynomial time. Trivial algorithm: brute force enumerate all certificates and

check whether there is one proving that we have a ‘Yes’ instance.

There is some choice in these certificates, so there can be multiple ‘trivial algorithms’. Satisfiability: O*( 2n ) Vertex cover: O*( 2n ) TSP: O*( n! ) = O*( 2n log n ) or O*( 2m ).

Page 7: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

7

Exponential Time Hypothesis

Exponential Time Hypothesis (ETH): Satisfiability of n-variable 3-CNF formulas (3-SAT) cannot be decided in subexponential worst case time, e.g., it cannot be done in O*(2o(n)) time.

Assuming the ETH, one can show that many NP-Complete problems require exponential time. Not All! NP-Complete problems with algorithms with

subexponential running times exist. This is done using a form of reductions that is beyond the

scope of this course.

Strong Exponential Time Hypothesis: Satisfiability of n-variable general CNF formulas (SAT) cannot be decided faster than O*( 2n ) time.

Page 8: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

8

Example 1:Held-Karp algorithm for TSP

O(n22n) algorithm for TSP using dynamic programming. Improves the trivial O*( n! ) algorithm.

Take some starting vertex s. For set of vertices S (s Î S), vertex v Î S,

let B(S,v) = minimum length of a path, that Starts in s. Visits all vertices in S (and no other vertices). Ends in v.

Page 9: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

9

Example 1:Held-Karp algorithm for TSP

We compute B(S, v) for all sets S and vertices v. We start with all sets S for size 1, then size 2, etc.

B({s},s) = 0 B({s},v) = 1 if v s If |S| > 1, then

B(S,v) = minw Î X – {v}B(X-{v}, w}) + d(v,w)

From B(V,v) for different v we can compute the minimum length TSP tour by adding edge from v to s and ‘closing’ the tours. Then we pick the shortest tour.

Page 10: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

10

Example 2:Branching for Maximum Independent Set

Independent Set: Subset of the vertices s.t. no two vertices are adjacent.

Maximum Independent Set: Instance: graph G = (V,E), integer k. Question: does G have an independent set of size ¸ k?

Algorithm: If |V| = 0, return 0. Choose a vertex v 2 V of minimum degree. For v and each neighbour of v: u 2 N[v]

Solve the subproblem on G\N[u] (G without u and its neighbours). Return 1 + the maximum size solution found.

Page 11: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

11

Example 2: Analysis

We generate d(v) + 1 subproblems, each with at least d(v) + 1 vertices removed.

Let T(n) be the number of leaves of the seach tree on a graph with n vertices, set s = d(v) + 1.

T(n) · s £ T( n – s ).

One can show T(n) = O*(sn/s). sn/s is maximal w.r.t. s if s = 3. So: T(n) = O*(3n/3) = O( 1.4423n ).

Improves the trivial O*( 2n ) algorithm.

Page 12: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

12

Example 2: Maximum and Maximal Independent Sets

Maximum independent set: maximum size over all independent sets in G.

Maximal independent set: maximal in the sense that we cannot add a vertex to the set.

We will use a slight modification of the algorithm to enumerate all maximal independent sets.

Because each leaf of the search tree contains at most one maximal independent set, this also proves a bound on the number of maximal independent sets in a graph.

Page 13: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

13

Example 2: Maximum and Maximal Independent Sets

Algorithm (modified for enumerating maximal independent sets): If |V| = 0, return ;. Choose a vertex v 2 V of minimum degree. For v and each neighbour of v: u 2 N[v]

Solve the subproblem on G\N[u] (G without u and its neighbours). Return all maximal independent sets found.

All maximal independent sets can be enumerated in O*(3n/3) = O( 1.4423n ) time.

Each leaf of the search tree at most one maximal independent set: so any graph has at most O*(3n/3) = O( 1.4423n ) maximal independent sets. This bound is tight: consider a collection of triangles.

Page 14: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

14

BRANCHING ALGORITHMSExponential-time algorithms – Algorithms and Networks

Page 15: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

15

Branching Algorithm: Divide and Conquer

Branching Algorithm: Algorithm that splits the current problem instance into multiple

easier subinstances that are solved recursively. Example: maximum/maximal independent set algorithm.

Let T(n) be the number of subproblems generated on an instance of size n.

Analysis of branching algorithm generating k subproblems, where subproblem i is di smaller than the original instance:

T( n ) · T( n – d1 ) + T( n – d2 ) + … + T( n – dk )

Solution of this recurrence is O*( an ) where a is the solution to: xn – xn-d1 – xn-d2 - … - xn-dk = 0. a often denoted as ¿( d1, d2, …, dk ).

Page 16: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

16

Branching Algorithm for k-SAT

k-SAT: Satisfiability where each clause has size at most k.

Algorithm for k-SAT formula F: If F contains the empty clause: return false. If F is the empty formula: return true. Choose the smallest clause ( l1, l2, ..., lc ) from F. Recursively solve:

F with l1 = true. F with l1 = false, l2 = true. ... F with l1 = false, l2 = false, ..., lc-1 = false, lc = true.

Return true if and only if any recursive call returned true.

Page 17: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

17

Branching Algorithm for k-SAT: Analysis

Algorithm is correct since in each clause at least one literal must be set to true.

Recurrence relation describing the algorithm:T( n ) · T( n – 1 ) + T( n – 2 ) + … + T( n – c )

Worst case:T( n ) · T( n – 1 ) + T( n – 2 ) + … + T( n – k )

For different values of k, this leads to: k = 3: ¿( 1,2,3 ) = 1.8393. O*( 1.8393n ). k = 4: ¿( 1,2,3,4 ) = 1.9276. O*( 1.9276n ). k = 5: ¿( 1,2,3,4,5 ) = 1.9660. O*( 1.9660n ).

Page 18: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

18

Reduction Rules for Independent Set

Mostly, branching algorithms use reduction rules.

For Maximum Independent Set we can formulate the following rules for any v 2 V:

Reduction rule 1: if v has degree 0, put v in the solution set and recurse on G-v.

Reduction rule 2: if v has degree 1, then put v in the solution set. Suppose v has neighbor w. Recurse on G – {v,w}. If v has degree 1, then there is always a maximum

independent set containing v. Reduction rule 3: if all vertices of G have degree at most

two, solve the problem directly. (Easy in O(n+m) time.)

Page 19: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

19

A faster algorithm

New branching rule: Take vertex v of maximum degree Take best of two recursive steps:

• v not in solution: recurse of G – {v}• v in solution: recurse on G – N[v]; add 1 to solution size.

Algorithm: Exhaustively apply all reduction rules. Apply branching rule.

Analysis: T(n) £ T(n – 1) + T(n – 4), As v has degree at least 3, we loose

in the second case at least 4 vertices. O*( ¿(1,4)n ) = O(1.3803n).

Page 20: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

20

Maximum Independent Set:Final remarks

More detailed analysis gives better bounds. Many possibilities for improvement. Many papers with huge case analyses exist.

Current best known: O(1.1844n) (Robson, 2001) Extensive, computer generated case analysis! Includes memorization (DP)

The measure and conquer technique allows for better analysis of branch and reduce algorithms (Fomin, Grandoni, Kratsch, 2005) Much simpler algorithm and only slightly slower compared to

Robson.

Page 21: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

21

GRAPH COLOURING BY CLEVER ENUMERATION

Exponential-time algorithms – Algorithms and Networks

Page 22: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

22

Graph Colouring

Graph colouring Several applications: scheduling, frequency assignment

(usually more complex variants). Different algorithms for small fixed number of colors (3-

coloring, 4-coloring, …) and arbitrary number of colors.

2-colouring is easy in O(n+m) time. k-colouring is NP-Complete for k ¸ 3.

Page 23: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

23

3-Colouring

O*(3n) is trivial or can we do this faster?

G is 3-colourable, if and only if there is a set of vertices S with: S is independent G[V-S] is 2-colorable

Algorithm: enumerate all sets, and test these properties 2n tests of O(n+m) time each.

So 3-colouring is ‘trivial’ to solve in O*( 2n ) time.

Page 24: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

24

3-Colouring

Lawler, 1976: We may assume S is a maximal independent set. Enumerating all maximal independent sets in O*(3n/3) =

O*(1.4423n) time – recall that there are O*(3n/3) maximal independent sets in any graph.

Thus O*(1.4423n) time algorithm for 3-colouring. Schiermeyer, 1994; O( 1.398n ) time. Beigel, Eppstein, 1995: O( 1.3446n ) time.

Page 25: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

25

4-Colouring in O*(2n) time

Lawler, 1976 G is 4-colourable, if and only if, we can partition the

vertices in two sets X and Y such that G[X] and G[Y] are both 2-colorable.

Enumerate all partitions For each, check both halves in O(n+m) time.

k-colouring is ‘trivial’ to solve in O*( dk/2en ) time. Enumerate all partitions into dk/2e disjoint sets. Check that each partition is 2-colourable (if k is odd, for all but

one partition).

Page 26: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

26

4-Colouring

Using 3-Colouring: Enumerate all maximal independent sets S. For each, check 3-colourability of G[V-S]. 1.4423n * 1.3446n = 1.939n.

Better: there is always a colour with at least n/4 vertices. Enumerate all m.i.s. S with at least n/4 vertices. For each, check 3-colourability of G[V-S]. 1.4423n * 1.34463n/4 = 1.8009n.

Byskov, 2004: O( 1.7504n ) time.

Page 27: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

27

Graph Colouring with dynamic programming

We now consider the graph colouring problem. The number of colours is not fixed as in k-colouring.

Lawler, 1976: using DP for solving graph colouring. C(G) = minS is m.i.s. in G 1+X(G[V-S]) Tabulate chromatic number of G[W] over all subsets W

In increasing size Using formula above 2n * 1.4423n = 2.8868n

Page 28: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

28

Graph Colouring

Lawler 1976: 2.4423n (improved analysis) Eppstein, 2003: 2.4151n

Byskov, 2004: 2.4023n All using O*(2n) memory Improvements on DP method

Björklund, Husfeld, 2005: 2.3236n

2006: Inclusion/Exclusion: 2n

Page 29: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

29

INCLUSION/EXCLUSIONExponential-time algorithms – Algorithms and Networks

Page 30: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

30

Space Improvement for Hamiltonian Cycle

Dynamic programming algorithm for Hamiltonian Cycle or TSP uses: O( n22n ) time. O( n2n ) space.

In practice space becomes a problem before time does.

Next, we give an algorithm for Hamiltonian Cycle that uses: O(n32n) time. O(n) space.

This algorithm counts Hamiltonian Cycles using the principle of Inclusion/Exclusion.

Page 31: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

31

Counting (Non-)Hamiltonian Cycles

Computing/counting tours is much easier if we do not care about which cities are visited. This uses exponential space in the DP algorithm.

Define: Walks[ vi, k ] = the number of ways to travel from v1 to vi traversing k times an edge. We do not care whether nodes/edges are visited (or twice).

Using Dynamic Programming: Walks[ vi, 0 ] = 1 if i = 0 Walks[ vi, 0 ] = 0 otherwise Walks[ vi, k ] = ∑vj ∈ N(vi) Walks[ vj, k – 1 ]

Walks[ v1, n ] counts all length n walks that return in v1. This requires O(n3) time and O(n) space.

Page 32: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

32

How Does Counting ‘Arbitrary’ Cycles Help?

A useful formula: Number of cycles through vj =

total number of cycles (some go through vj some don’t)- total number of cycles that do not go through vj.

Hamiltonian Cycle: cycle of length n that visits every city. Keeping track of whether every vertex is visited is hard.

Counting cycles that do not go through some vertex is easy.

Just leave out the vertex in the graph. Counting cycles that may go through some vertex is easy.

We do not care whether it is visited or not (or twice) anymore.

Page 33: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

33

Using the formula on every city

A useful formula: Number of cycles through vj =

total number of cycles (some go through vj some don’t)- total number of cycles that do not go through vj.

What if we apply the above formula to every city (except v1)? We get 2n-1 subproblems, were we count walks from v1 to v1 where

either the city is not allowed to be visited, or may be visited (not important whether it is visited, or twice, or not).

After combining the computed numbers from all 2n-1 subproblems using the above formula, we get: The number of cycles of length n visiting every vertex. I.e, the number of Hamiltonian cycles.

Page 34: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

34

Apply the formula to every city:the Inclusion/Exclusion formula

A useful formula: Number of cycles through vj =

total number of cycles (some go through vj some don’t)- total number of cycles that do not go through vj.

Let CycleWalks( V’ ) be the number of walks of length n from v1 to v1 using only vertices in V’, then:

Formula requires 2n times the counting of cyclic walks through a graph: O*( 2n ) algorithm using polynomial space.

Page 35: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

35

The Inclusion/Exclusion formula

General form of the Inclusion/Exclusion formula:

Let N be a collection of objects (anything). Let 1,2, ...,n be a series of requirements on objects. Finally, let for a subset W µ {1,2,...,n}, N(W) be the number

of objects in N that do not satisfy the requirements in W.

Then, the number of objects X that satisfy all requirements is:

},...,2,1{

|| )()1(nW

W WNX

Page 36: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

36

The Inclusion/Exclusion formula:Alternative proofs

Various ways to prove the formula.1. See the formula as a branching algorithm branching on a

requirement: required = optional – forbidden

2. If an object satisfies all properties, it is counted in N(Æ).If an object does not satisfy all properties, say all but those in a set W’, then it is counted in all W µ W’ With a +1 if W is even, and a -1 if W is odd. W’ has equally many even as odd subsets: total contribution is 0.

},...,2,1{

|| )()1(nW

W WNX

Page 37: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

37

The Inclusion/Exclusion formula: Explanation of the even/odd subset proof

If we count all objects in N, we also some wrong objects that do not satisfy all properties.

So, subtract from this number all objects that do not satisfy property 1. Also subtract from this number all objects that do not satisfy property 2. Etc.

However, we now subtract too many, as objects that do not satisfy two or more properties are subtracted twice.

So, add for all pairs of properties, the number of objects that satisfy both properties.

But, then what happens to objects that avoid 3 vertices???

Continue, and note that the parity tells if we add or subtract…

This gives the formula of the previous slide.

Page 38: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

38

Graph Colouring with Inclusion/Exclusion

Björklund and Husfeld, and independently Koivisto, 2006 O*(2n) time algorithm for graph colouring. Covering G with independent sets.

Objects to count: sequences (I1,…,Ik) where each Ii is an independent sets.

Requirements: for every vertex v we require that v is contained in at least one independent set Ii.

Let ck(G) be the number of ways we can cover all vertices in G with k independent sets, where the independent sets may be overlapping, or even the same.

Lemma: G is k-colorable, if and only if ck(G) > 0

Page 39: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

39

Expressing ck in s

VX

kXk XVsGc )\()1()( ||

Let ck(G) be the number of ways we can cover all vertices in G with k independent sets, where the independent sets may be overlapping, or even the same.

Let for S µ V, s(S) be the number of independent sets in G[S].

Objects to count: sequences (I1,…,Ik) where each Ii is an independent set.

Requirements: for every vertex v we require that v is contained in at least one independent set Ii.

Page 40: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

40

Counting independent sets

Let for S µ V, s(S) be the number of independent sets in G[S].

Note: s(S) = s(S\{v}) + s(S\N[v]) for some v 2 S.

We can compute all values s(S) in O*(2n) time. Now use DP and store all values. Polynomial space slower algorithm also possible, by computing

s(X) each time again.

Page 41: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

41

The algorithm

Compute all s(S) for all S µ V by dynamic programming. Compute values ck(G) with the inclusion/exclusion formula.

Take the smallest k for which ck(G) > 0.

Polynomial space algorithm possible, but this requires exponentially more time.

O*(2n)

Page 42: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

42

LOCAL SEARCHExponential-time algorithms – Algorithms and Networks

Page 43: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

43

Local Search

Use exponential time to search a `local’ neighbourhood of possible solutions.

We consider 3-Satisfiability. For two truth assignment a1 and a2 that assign true/false to

the variables x1, ..., x2, we define the Hamming distance to be the number of variables on which a1 and a2 differ.

Lemma: Given any truth assignment a and a 3-SAT formula F, we can decide in O*(3d) time whether there is an truth assign-ment that satisfies F at Hamming distance at most d from a.

Page 44: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

44

Searching the Hamming-Ball

Lemma: Given any truth assignment a and a 3-SAT formula F, we can decide in O*(3d) time whether there is an truth assign-ment that satisfies F at Hamming distance at most d from a.

Proof: If truth assignment a is not a satisfying assignment, then there

is a clause C that is not satisfied by a. In any satisfying assignment at least one of the literals in C

must be flipped, so we generate a subproblem for each literal in C where the value of the corresponding variable is flipped.

If there is a satisfying assigment at Hamming distance at most k, then we should find it after branching k times in this way.

So, this requires O*(3d) time. For k-SAT this can be done in O*(kd) time.

Page 45: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

45

A Simple Local Search Algorithm for 3-Satisfiability

Any truth assignment lies either at Hamming distance at most n/2 from the all-true or the all-false assignment.

Algorithm: apply the local search algorithm and look within the Hamming-Balls of size n/2 from the all-true and all-false assignments.

Running time: O*( 3n/2 ) = O( 1.7321n ) This already improves the O( 1.8393n ) algorithm we saw

earlier.

Page 46: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

46

Randomised Local Search

We improve the previous local search algorithm for 3-SAT using randomisation.

Algorithm: Choose uniformly at random a truth assignment a. Search the Hamming ball of size n\4 centred around a for a

satisfying assignment. If found: output ‘Yes’. If not found, repeat (at most a large number of times). Output ‘No’.

Monte-Carlo Algorithm: If it outputs ‘Yes’ it is correct. If it outputs ‘No’ there is a probability that the algorithm is

wrong.

Page 47: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

47

Randomised Local Search: Analysis

Repeating the main loop of the algorithm at most ® times.

Running time: O*( ®3n/4 ) = O*( 1.5n ) By Stirling’s approximation the sum over

the binomials is roughly (256/27)n/4.

Given that a satisfying assignment exist, we find it in a Hamming ball of size n\4 with probability at least p: p = 100/®

Error probability: (1-100/®)® < e-100

Can be made arbitrarily small with more repetitions.

n

n

i i

n

p2

4/

1

4/

1

2100

n

i

n

i

n

Page 48: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

48

SORT AND SEARCH FORSUBSET SUM/KNAPSACK

Exponential-time algorithms – Algorithms and Networks

Page 49: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

49

Sort and Search: Subset Sum

Subset-sum Given: set of positive integers S={a1,a2,..,an}, integer t. Question: Is there a subset of S with total sum t?

We split S into two subsets S1 and S2 S1 = { a1, a2, …, an/2 }, S2 = { an/2+1, an/2+2,…,an}

For S1 and S2 we compute 2n/2 size tables containing all sum that can be made using elements from S1 and S2 respectively.

Sort the two tables in O( 2n/2 log( 2n/2 ) ) = O*( 2n/2 ) time. Start with the smallest value in S1 and the largest value in S2

and: Move one value further in S1 if the sum is too small. Move one value back in S2 if the sum is too large. Output ‘Yes’ if the sum is exactly t. Output ‘No’ if we finished searching S1 and S2.

Page 50: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

50

Sort and Search: Knapsack

Knapsack Given: Set S of items, each with integer value v and integer

weight w, integers W and V. Question: is there a subset of S of weight no more than W, with

total value at least V?

We split S into two subsets S1 and S2 S1 = { s1, s2, …, sn/2 }, S2 = { sn/2+1, sn/2+2,…,sn}

Page 51: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

51

Sort and Search: Knapsack

For S1 and S2 we compute 2n/2 size tables containing all subsets of items that can be picked from S1 or S2.

Sort the sets S1 and S2 by size. Remove all dominated subsets

Subsets for which there exists another subset with less (or equal) value and greater (or equal) size.

S1 and S2 are now sorted increasingly on size and decreasingly on value.

Start with the smallest item in S1 and the largest item in S2 and keep track of the highest value combination found that fits in the knapsack. Move one value further in S1 if the sum of the sizes is too small. Move one value back in S2 if the sum of the sizes is is too large. Output ‘Yes’ if the sum is exactly t. Output ‘No’ if we finished searching S1 and S2.

Page 52: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

52

Sort and Search Space Improvement

Both algorithms can be improved to use O*( 2n/2 ) time and O*( 2n/4 ) space (Schroeppel, Shamir, 1981).

Split S into four subsets S1, S2, S3, S4 of equal size. For each subset create a sorted table with all possible sums

that we can make using elements from that set. We again list all possible sums from elements from S1 [ S2 in

increasing order and all possible sums from elements from S3 [ S4 in decreasing order.

How to list all elements from S1 [ S2 in increasing order? Select the smallest element e from S1. Make a priority queue with all e + s2 with all elements s2 2 S2. Whenever we need the next element we take the smallest

element from the priority queue e + s2 and replace it by e’ + s2 (where e’ is the next biggest element after e in S1).

Then, return the next smallest element of the priority queue.

Page 53: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

53

CONCLUSIONExponential-time algorithms – Algorithms and Networks

Page 54: 1 Exponential-time algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij

54

Questions?

Research on exact exponential-time algorithms is still relatively recent.

Several interesting open problems.


Top Related