Introduction Divide and conquer D.P. G.A. NP-completeness
Advanced algorithms
Based on texts from: H. Cormen, S. Dasgupta, G. Bertrand, and
- M. Couprie
- X. Hilaire
Advanced algorithms Based on texts from: H. Cormen, S. Dasgupta, G. - - PowerPoint PPT Presentation
Introduction Divide and conquer D.P. G.A. NP-completeness Advanced algorithms Based on texts from: H. Cormen, S. Dasgupta, G. Bertrand, and M. Couprie X. Hilaire ESIEE Paris, IT department October 15, 2018 Introduction Divide and conquer
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Show that n! = ω(2n) 2 Does ⌊log n⌋! admit a polynomial upper bound ? How about
Introduction Divide and conquer D.P. G.A. NP-completeness
1 if f (n) = O(g(n)) then g(n) = O(f (n)) 2 f (n) + g(n) = Θ(min(f (n), g(n))) (assuming that it exists) 3 if f (n) = O(g(n)) then log(f (n)) = O(log(g(n)) 4 if f (n) = O(g(n)) then 2f (n) = O(2g(n)) 5 f (n) = O(f 2(n)) 6 if f (n) = O(g(n)) then g(n) = Ω(f (n)) 7 f (n) = Θ(f (n/2)) 8 f (n) + o(f (n)) = Θ(f (n))
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
T(n/b^2) T(n/b^2) T(n/b^2) T(n/b^2) T(n) T(n/b) T(n/b) T(n/b) . . . . . . . . . . . . . . . . T(1) T(1) T(1) T(1)
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Show it is impossible to diagnose which chips are reliable if
2 Assuming that more than n/2 chips are good, show that only
3 Show that Θ(n) operations are sufficient to diagnose the good
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Optimal substructure: An1 optimal solution for a problem of
2 Any subproblem of size less than n is easier to solve than a
1Unicity is not required
Introduction Divide and conquer D.P. G.A. NP-completeness
S=a b c d e f g h i j=T
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Wouldn’t it be better to use a table so as to avoid recompute
2 Do we really need recursion?
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Initialize A to {a}, C[a] to 0, and other C’s to ∞. P need not
2 For all active vertices x ∈ A, look for neighbours y (that is, all
3 For all such y: if C[y] > C[x] + 1 then the path stemming
4 Insert y in A 5 Iterate to step 3 until no more y 6 Remove x from A 7 Iterate to step 3 unless y = j 8 Iterate to step 2 unless y = j or A is empty
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Run the above algorithm on the data of Fig. 1, and for each
2 Write the pseudo-code to print the solution of the shortest
3 What is the complexity of the above algorithm? Could you
Introduction Divide and conquer D.P. G.A. NP-completeness
2Only to keep the problem simple...
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
3We have changed the profits ci’s to 1’s
Introduction Divide and conquer D.P. G.A. NP-completeness
b1 e1 e2 b2 e7 e0 b8
Introduction Divide and conquer D.P. G.A. NP-completeness
4For otherwise, the subset would not be optimal
Introduction Divide and conquer D.P. G.A. NP-completeness
1 τm ∈ S⋆
2 Sim = ∅
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Don’t bother evaluating Smj : you won’t find anything
2 This results into a dramatically simple algorithm:
3 Complexity: θ(n) if tasks are given sorted by their ending
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
50000 a 2700 1800 900 600 300 800 800 b c d e 1 1 1 1
Introduction Divide and conquer D.P. G.A. NP-completeness
1 What is the optimal structure5 of a tree given an alphabet Λ
2 Assuming the optimal structure is know, where should
5The one which yields the lowest coding cost, not accounting for the
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Describe an naive θ(n2) algorithm to determine the scheduling
2 Try to improve this solution to an O(n log n) time algorithm,
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Consider 3 customers C1,C2,C3, with service duration 3,5,7,
2 Consider two schedulings φ1 and φ2, identical everywhere
3 Derive the expression of an evaluation function f which
4 Derive an algorithm for this problem, and justify it.
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Give a greedy algorithm that gives back change using coins of
2 Suppose now you have k + 1 coins whose values are powers of
3 Give a set of values for the coins for which the greedy solution
4 Give an optimal O(nk) algorithm which gives back change
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Propose an algorithm to solve this problem for p = 1.
2 Can you generalize your solution to p ≥ 2?
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
aPossibly infinite
1 QCQIP: Maximize f (x, y) = 2x2 − 3y + 7 over Z2 subject to
2 TSP: given a graph G = (V , E), find a cycle visiting all
3 CLIQUE: given a graph G = (V , E), find a clique of G with
Introduction Divide and conquer D.P. G.A. NP-completeness
1 QCQIP: Does there exists (x, y) ∈ Z2 such that
2 TSP: Does G = (V , E) admit a cycle with length ≤ k visiting
3 CLIQUE: Does G = (V , E) admit a clique of order k. In
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
6We do not bother what this string means: we just know there is an
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
f
f(x)
true iff x in L1 Final output: x
Introduction Divide and conquer D.P. G.A. NP-completeness
P NP−hard NP−complete NPC NP
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
a b c d x y z
Introduction Divide and conquer D.P. G.A. NP-completeness
7Check that otherwise, F would not be satisfiable
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
1 Show that ZOE is NP-complete. 2 Infer that ILP (integer linear programming) is NP-hard.
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness
Introduction Divide and conquer D.P. G.A. NP-completeness