• Aucun résultat trouvé

Sorting by Prefix Block-Interchanges

N/A
N/A
Protected

Academic year: 2022

Partager "Sorting by Prefix Block-Interchanges"

Copied!
56
0
0

Texte intégral

(1)Sorting by Prefix Block-Interchanges Anthony Labarre The 31st International Symposium on Algorithms and Computation (ISAAC). December 14th, 2020. 1.

(2) Motivations (sorting problems) General problem Transform X into Y using as few operations as possible from S; the length of an optimal sequence is the S-distance between X and Y .. 2.

(3) Motivations (sorting problems) General problem Transform X into Y using as few operations as possible from S; the length of an optimal sequence is the S-distance between X and Y .. Applications arise in: 1 computational biology:. 2. interconnection networks:. 3.

(4) Motivations (sorting problems) General problem Transform X into Y using as few operations as possible from S; the length of an optimal sequence is the S-distance between X and Y .. Applications arise in: 1 computational biology: • X and Y are genomes, S = mutations; • solution = evolutionary scenario between X and Y ; 2. interconnection networks:. 4.

(5) Motivations (sorting problems) General problem Transform X into Y using as few operations as possible from S; the length of an optimal sequence is the S-distance between X and Y .. Applications arise in: 1 computational biology: • X and Y are genomes, S = mutations; • solution = evolutionary scenario between X and Y ; 2. interconnection networks: • Cayley graph generated by S = network N; • X and Y are nodes in N; • solution = shortest routing path between X and Y ;. 5.

(6) Motivations (prefix constraints) Additional restrictions are sometimes placed on operations to simplify the underlying problems or to obtain a “better” structure.. Example (S4 : exchanges 7→ prefix exchanges) V = permutations of {1, 2, . . . , n} E = {{π, σ} s.t. ∃(i, j) : π(i, j) = σ} 32231144 4213 1243 1234 3241. 4321 31442213 |V | n!. 2134 2143. 44 21 33 12. 2341 2431. variant unrestricted. 13312244 4123. degree  n 2. 3142. 1432 1342 4312 3 4 1 2 4 1 32. n!. |E| n /2 2. diameter n−1.

(7) Motivations (prefix constraints) Additional restrictions are sometimes placed on operations to simplify the underlying problems or to obtain a “better” structure.. Example (S4 : exchanges 7→ prefix exchanges) V = permutations of {1, 2, . . . , n} E = {{π, σ} s.t. ∃(1, j) : π(1, j) = σ} 32231144 4213 1243 1234 3241. 4321 31442213 |V | n! n!. 2134 2143. 44 21 33 12. 2341 2431. variant unrestricted prefix. 13312244 4123. degree  n 2. n−1. 3142. 1432 1342 4312 3 4 1 2 4 1 32 |E| n! n2 /2 n!(n − 1)/2. diameter n−1 b3(n − 1)/2c.

(8) Motivations (block-interchanges) Block-interchanges swap any two nonintersecting intervals:. Example (sorting by block-interchanges) π=71 45 3 2 6→ 7 123456 →1234567 “unrestricted”. “prefix”. • Sorting by (unrestricted) block-interchanges is easy; • Sorting by prefix block-interchanges is: • NP-hard for strings [Cho+14]; • open for permutations;. • Block-interchanges generalise a few other operations;. 8.

(9) Current state of knowledge and context The complexity of sorting problems on permutations is . well-understood . . . Operation signed reversal reversal double cut-and-join signed double cut-and-join exchange block-transposition block-interchange. Unrestricted in P NP-hard NP-hard in P in P NP-hard in P. Prefix-constrained. (see paper for references). (You might know sorting by (signed) prefix reversals as (burnt) pancake flipping.). 9.

(10) Current state of knowledge and context The complexity of sorting problems on permutations is well-understood . . . except in the prefix setting. Operation signed reversal reversal double cut-and-join signed double cut-and-join exchange block-transposition block-interchange. Unrestricted in P NP-hard NP-hard in P in P NP-hard in P. Prefix-constrained open NP-hard open open in P open open. (see paper for references). (You might know sorting by (signed) prefix reversals as (burnt) pancake flipping.). 10.

(11) Results. 1. We give a 2-approximation algorithm for sorting by prefix block-interchanges;. 2. We show how to obtain tighter lower and upper bounds;. 3. We prove that the diameter (i.e. the maximum value the distance can reach) is b2n/3c); (see paper). 11.

(12) The breakpoint graph G (π) [HP99] Given a permutation π in Sn :. Example (for π = 7 1 4 5 3 2 6). 7. 1. 4. 5. 3. 2. 6.

(13) The breakpoint graph G (π) [HP99] Given a permutation π in Sn : 0 0 ) = (2π − 1, 2π ); 1 πi 7→ (π2i−1 , π2i i i. Example (for π = 7 1 4 5 3 2 6). 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6.

(14) The breakpoint graph G (π) [HP99] Given a permutation π in Sn : 0 0 ) = (2π − 1, 2π ); 1 πi 7→ (π2i−1 , π2i i i 0 0 2 add π0 = 0 and π2n+1 = 2n + 1;. Example (for π = 7 1 4 5 3 2 6). 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6. 15.

(15) The breakpoint graph G (π) [HP99] Given a permutation π in Sn : 0 0 ) = (2π − 1, 2π ); 1 πi 7→ (π2i−1 , π2i i i 0 0 2 add π0 = 0 and π2n+1 = 2n + 1; 0 , π0 3 black edges: {π2i 2i+1 };. (consecutive positions). Example (for π = 7 1 4 5 3 2 6). 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6. 15.

(16) The breakpoint graph G (π) [HP99] Given a permutation π in Sn : 0 0 ) = (2π − 1, 2π ); 1 πi 7→ (π2i−1 , π2i i i 0 0 2 add π0 = 0 and π2n+1 = 2n + 1; 0 , π0 3 black edges: {π2i 2i+1 }; 4 grey edges: {2i, 2i + 1};. (consecutive positions) (consecutive values). Example (for π = 7 1 4 5 3 2 6). 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6. 15.

(17) The breakpoint graph G (π) [HP99] Given a permutation π in Sn : 0 0 ) = (2π − 1, 2π ); 1 πi 7→ (π2i−1 , π2i i i 0 0 2 add π0 = 0 and π2n+1 = 2n + 1; 0 , π0 3 black edges: {π2i 2i+1 }; 4 grey edges: {2i, 2i + 1};. (consecutive positions) (consecutive values). Example (for π = 7 1 4 5 3 2 6). 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12. 15. 6. G (π) is a collection of alternating cycles; • length of cycle = number of black edges; • goal: obtain only trivial (= length 1) cycles (see next slide);.

(18) (Prefix) Block-interchanges • The block-interchange β(i, j, k, `) swaps intervals [i · · · j − 1] and [k · · · ` − 1] in permutation π (1 ≤ i < j ≤ k < ` ≤ n + 1); • If i = 1, then β is a prefix block-interchange (pbi for short); • Goal: sort π using as few pbis as possible;. Example (for π = 7 1 4 5 3 2 6). 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12. 15. 6. 18.

(19) (Prefix) Block-interchanges • The block-interchange β(i, j, k, `) swaps intervals [i · · · j − 1] and [k · · · ` − 1] in permutation π (1 ≤ i < j ≤ k < ` ≤ n + 1); • If i = 1, then β is a prefix block-interchange (pbi for short); • Goal: sort π using as few pbis as possible;. Example (for π = 7 1 4 5 3 2 6). 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12. 15. 6. 19.

(20) (Prefix) Block-interchanges • The block-interchange β(i, j, k, `) swaps intervals [i · · · j − 1] and [k · · · ` − 1] in permutation π (1 ≤ i < j ≤ k < ` ≤ n + 1); • If i = 1, then β is a prefix block-interchange (pbi for short); • Goal: sort π using as few pbis as possible;. Example (for π = 7 1 4 5 3 2 6). 0. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6. 13. 14. 15. 7. 20.

(21) (Prefix) Block-interchanges • The block-interchange β(i, j, k, `) swaps intervals [i · · · j − 1] and [k · · · ` − 1] in permutation π (1 ≤ i < j ≤ k < ` ≤ n + 1); • If i = 1, then β is a prefix block-interchange (pbi for short); • Goal: sort π using as few pbis as possible;. Example (for π = 7 1 4 5 3 2 6). 0. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6. 13. 14. 15. 7. 21.

(22) (Prefix) Block-interchanges • The block-interchange β(i, j, k, `) swaps intervals [i · · · j − 1] and [k · · · ` − 1] in permutation π (1 ≤ i < j ≤ k < ` ≤ n + 1); • If i = 1, then β is a prefix block-interchange (pbi for short); • Goal: sort π using as few pbis as possible;. Example (for π = 7 1 4 5 3 2 6). 0. 3. 4 2. 5. 6 3. 1. 2 1. 7. 8 4. 9. 10 5. 11. 12 6. 13. 14. 15. 7. 22.

(23) (Prefix) Block-interchanges • The block-interchange β(i, j, k, `) swaps intervals [i · · · j − 1] and [k · · · ` − 1] in permutation π (1 ≤ i < j ≤ k < ` ≤ n + 1); • If i = 1, then β is a prefix block-interchange (pbi for short); • Goal: sort π using as few pbis as possible;. Example (for π = 7 1 4 5 3 2 6). 0. 3. 4 2. 5. 6 3. 1. 2 1. 7. 8 4. 9. 10 5. 11. 12 6. 13. 14. 15. 7. 23.

(24) (Prefix) Block-interchanges • The block-interchange β(i, j, k, `) swaps intervals [i · · · j − 1] and [k · · · ` − 1] in permutation π (1 ≤ i < j ≤ k < ` ≤ n + 1); • If i = 1, then β is a prefix block-interchange (pbi for short); • Goal: sort π using as few pbis as possible;. Example (for π = 7 1 4 5 3 2 6). 0. 1. 2 1. 3. 4 2. 5. 6 3. 7. 8 4. 9. 10 5. 11. 12 6. 13. 14. 15. 7. This shows that the prefix block-interchange distance of π (pbid(π)) is at most 3.. 24.

(25) A first upper bound We use the following function: n + 1 + c(G (π)) − c1 (G (π)) − g (π) = 2. . 0 if π1 = 1, 1 otherwise..

(26) A first upper bound We use the following function: n + 1 + c(G (π)) − c1 (G (π)) − g (π) = 2. . 0 if π1 = 1, 1 otherwise.. Our algorithm proves the following:. Theorem For any π in Sn , we have pbid(π) ≤ g (π).. 26.

(27) A first upper bound We use the following function: n + 1 + c(G (π)) − c1 (G (π)) − g (π) = 2. . 0 if π1 = 1, 1 otherwise.. Our algorithm proves the following:. Theorem For any π in Sn , we have pbid(π) ≤ g (π). We assume π1 6= 1 (otherwise we simply move the longest sorted prefix 1 2 · · · k of π right before k + 1). Remarks: • Computations are easy but omitted lest the audience fall asleep; • g (π) is a lower bound on two other prefix distances;. 27.

(28) The approximation algorithm: the case where π1 6= 1 Lemma ([HP99]) Every grey edge in a nontrivial cycle intersects another grey edge.. 28.

(29) The approximation algorithm: the case where π1 6= 1 Lemma ([HP99]) Every grey edge in a nontrivial cycle intersects another grey edge. We distinguish between “outer” grey edges and “inner” grey edges:. outer grey edge. inner grey edge. 29.

(30) The approximation algorithm: the case where π1 6= 1 Lemma ([HP99]) Every grey edge in a nontrivial cycle intersects another grey edge. We distinguish between “outer” grey edges and “inner” grey edges:. outer grey edge. inner grey edge. ... because some grey edges are only intersected by outer grey edges.. Example inner outer 0. 7. 8 4. outer 1. 2 1. 9. 10 5. 3. 4 2. 11. 12 6. 5. 6 3. 13.

(31) The approximation algorithm: the case where π1 6= 1 Proof (pbid(π) ≤ g (π)). By the previous lemma, the first grey edge {1, j} intersects a grey edge {i, k};. 31.

(32) The approximation algorithm: the case where π1 6= 1 Proof (pbid(π) ≤ g (π)). By the previous lemma, the first grey edge {1, j} intersects a grey edge {i, k}; 1. if {i, k} is inner, apply β(1, i, j, k): a. 1. b. c. i. d. e. j. f. g. k. h. a. f. g. d. e. b. c. h. 32.

(33) The approximation algorithm: the case where π1 6= 1 Proof (pbid(π) ≤ g (π)). By the previous lemma, the first grey edge {1, j} intersects a grey edge {i, k}; 1. if {i, k} is inner, apply β(1, i, j, k): a. 2. 1. b. c. i. d. e. j. f. g. k. h. a. f. g. d. e. b. c. h. b. c. h. if {i, k} is outer with j < k, apply β(1, i, j, k): a. 1. b. c. i. d. e. j. f. g. k. h. a. f. g. d. e. 33.

(34) The approximation algorithm: the case where π1 6= 1 Proof (pbid(π) ≤ g (π)). By the previous lemma, the first grey edge {1, j} intersects a grey edge {i, k}; 1. if {i, k} is inner, apply β(1, i, j, k): a. 2. b. c. i. d. e. j. f. g. k. h. a. f. g. d. e. b. c. h. b. c. h. if {i, k} is outer with j < k, apply β(1, i, j, k): a. 3. 1. 1. b. c. i. d. e. j. f. g. k. h. a. f. g. d. e. otherwise {i, k} is outer with j = k; apply β(1, i, i, k): a. b. c. d. e. f. a. d. e. b. c. f. 34.

(35) The approximation algorithm: the case where π1 6= 1 Proof (pbid(π) ≤ g (π)). By the previous lemma, the first grey edge {1, j} intersects a grey edge {i, k}; 1. if {i, k} is inner, apply β(1, i, j, k): a. 2. b. c. i. d. e. j. f. g. k. h. a. f. g. d. e. b. c. h. b. c. h. if {i, k} is outer with j < k, apply β(1, i, j, k): a. 3. 1. 1. b. c. i. d. e. j. f. g. k. h. a. f. g. d. e. otherwise {i, k} is outer with j = k; apply β(1, i, i, k): a. b. c. d. e. f. a. d. e. b. c. f. Each choice yields g (πβ) − g (π) ≤ −1 (details omitted), so pbid(π) ≤ g (π).. 35.

(36) Lower bounding pbid (outline) We bound pbid using the following framework [Lab13]: • G (π) is itself a permutation (which we write π);.

(37) Lower bounding pbid (outline) We bound pbid using the following framework [Lab13]: • G (π) is itself a permutation (which we write π); • the mapping π 7→ πβ translates to π 7→ π(β)π ;.

(38) Lower bounding pbid (outline) We bound pbid using the following framework [Lab13]: • G (π) is itself a permutation (which we write π); • the mapping π 7→ πβ translates to π 7→ π(β)π ; • the image of a pbi β is β(1, j, k, `) = (j, `)(1, k);.

(39) Lower bounding pbid (outline) We bound pbid using the following framework [Lab13]: • G (π) is itself a permutation (which we write π); • the mapping π 7→ πβ translates to π 7→ π(β)π ; • the image of a pbi β is β(1, j, k, `) = (j, `)(1, k);. Theorem For all π ∈ Sn , we have pbid(π) ≥ g (π)/2.. Proof idea.. ... and therefore the approximation has ratio 2. 39.

(40) Lower bounding pbid (outline) We bound pbid using the following framework [Lab13]: • G (π) is itself a permutation (which we write π); • the mapping π 7→ πβ translates to π 7→ π(β)π ; • the image of a pbi β is β(1, j, k, `) = (j, `)(1, k);. Theorem For all π ∈ Sn , we have pbid(π) ≥ g (π)/2.. Proof idea. • Every sequence of pbis for π yields a sequence of special pairs of 2-cycles for π ⇒ pbid(π) ≥ “special distance”(π).. ... and therefore the approximation has ratio 2. 40.

(41) Lower bounding pbid (outline) We bound pbid using the following framework [Lab13]: • G (π) is itself a permutation (which we write π); • the mapping π 7→ πβ translates to π 7→ π(β)π ; • the image of a pbi β is β(1, j, k, `) = (j, `)(1, k);. Theorem For all π ∈ Sn , we have pbid(π) ≥ g (π)/2.. Proof idea. • Every sequence of pbis for π yields a sequence of special pairs of 2-cycles for π ⇒ pbid(π) ≥ “special distance”(π). • For every pbi β, we have g (πβ) − g (π) = g (πβ) − g (π) ≥ −2;. ... and therefore the approximation has ratio 2. 41.

(42) Lower bounding pbid (outline) We bound pbid using the following framework [Lab13]: • G (π) is itself a permutation (which we write π); • the mapping π 7→ πβ translates to π 7→ π(β)π ; • the image of a pbi β is β(1, j, k, `) = (j, `)(1, k);. Theorem For all π ∈ Sn , we have pbid(π) ≥ g (π)/2.. Proof idea. • Every sequence of pbis for π yields a sequence of special pairs of 2-cycles for π ⇒ pbid(π) ≥ “special distance”(π). • For every pbi β, we have g (πβ) − g (π) = g (πβ) − g (π) ≥ −2; • Therefore: pbid(π) ≥ “special distance”(π) ≥ g (π)/2.. ... and therefore the approximation has ratio 2. 42.

(43) A provably better upper bound using “short” cycles Recall that we can always decrease g (·) by one. A more involved analysis of the proof (and additional ideas) yields:. Proposition If G (π) contains a “nonleftmost” 2-cycle, then there is a pbi that decreases g (π) by 2.. 43.

(44) A provably better upper bound using “short” cycles Recall that we can always decrease g (·) by one. A more involved analysis of the proof (and additional ideas) yields:. Proposition If G (π) contains a “nonleftmost” 2-cycle, then there is a pbi that decreases g (π) by 2. Letting c2∅ (G (π)) denote the number of such 2-cycles, we get:. 44.

(45) A provably better upper bound using “short” cycles Recall that we can always decrease g (·) by one. A more involved analysis of the proof (and additional ideas) yields:. Proposition If G (π) contains a “nonleftmost” 2-cycle, then there is a pbi that decreases g (π) by 2. Letting c2∅ (G (π)) denote the number of such 2-cycles, we get:. Theorem For any π in Sn , we have pbid(π) ≤ g (π) − dc2∅ (G (π))/2e.. 45.

(46) A provably better upper bound using “short” cycles Recall that we can always decrease g (·) by one. A more involved analysis of the proof (and additional ideas) yields:. Proposition If G (π) contains a “nonleftmost” 2-cycle, then there is a pbi that decreases g (π) by 2. Letting c2∅ (G (π)) denote the number of such 2-cycles, we get:. Theorem For any π in Sn , we have pbid(π) ≤ g (π) − dc2∅ (G (π))/2e. The “/2” part stems from the fact that exploiting a 2-cycle sometimes leads to “destroying” another 2-cycle.. 46.

(47) A probably better lower bound using “components” A component of G (π) is a connected component of the intersection graph of its nontrivial cycles.. Example (for π = 7 1 4 5 3 2 6). 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6. 15.

(48) A probably better lower bound using “components” A component of G (π) is a connected component of the intersection graph of its nontrivial cycles.. Example (for π = 7 1 4 5 3 2 6) C1 C2. 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12 6. 15.

(49) A probably better lower bound using “components” A component of G (π) is a connected component of the intersection graph of its nontrivial cycles.. Example (for π = 7 1 4 5 3 2 6) C1 C2. 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12. 15. 6. • Pbis are restricted block-interchanges, so pbid(π) ≥ bid(π);.

(50) A probably better lower bound using “components” A component of G (π) is a connected component of the intersection graph of its nontrivial cycles.. Example (for π = 7 1 4 5 3 2 6) C1 C2. 0. 13. 14 7. 1. 2 1. 7. 8 4. 9. 10 5. 5. 6 3. 3. 4 2. 11. 12. 15. 6. • Pbis are restricted block-interchanges, so pbid(π) ≥ bid(π); • The number of components (=CC (G (π))) will help improve on this trivial result;.

(51) A probably better lower bound Theorem  For any π in Sn , we have pbid(π) ≥ bid(π) + CC (G (π)) −. 0 1. if π1 = 1, otherwise.. Proof idea.. Example C1. 0. 5. 6 3. 3. C2. 4 2. 1. 2 1. 7. 8 4. 13. 14 7. 11. 12 6. 9. 10. 15. 5. 51.

(52) A probably better lower bound Theorem  For any π in Sn , we have pbid(π) ≥ bid(π) + CC (G (π)) −. 0 1. if π1 = 1, otherwise.. Proof idea. • Merging components does not “help” ⇒ sort each of them separately;. Example C1. 0. 5. 6 3. 3. C2. 4 2. 1. 2 1. 7. 8 4. 13. 14 7. 11. 12 6. 9. 10. 15. 5. 52.

(53) A probably better lower bound Theorem  For any π in Sn , we have pbid(π) ≥ bid(π) + CC (G (π)) −. 0 1. if π1 = 1, otherwise.. Proof idea. • Merging components does not “help” ⇒ sort each of them separately; • Sorting each component separately cannot be achieved with less than bid(π) operations;. Example C2. 0. 1. 2 1. 3. 4 2. 5. 6 3. 7. 8 4. 13. 14 7. 11. 12 6. 9. 10. 15. 5. 53.

(54) A probably better lower bound Theorem  For any π in Sn , we have pbid(π) ≥ bid(π) + CC (G (π)) −. 0 1. if π1 = 1, otherwise.. Proof idea. • Merging components does not “help” ⇒ sort each of them separately; • Sorting each component separately cannot be achieved with less than bid(π) operations; • “Accessing” each component except the leftmost one requires an additional operation.. Example C2. 0. 1. 2 1. 3. 4 2. 5. 6 3. 7. 8 4. 13. 14 7. 11. 12 6. 9. 10. 15. 5. 54.

(55) Future work. • Complexity? • Can an approximation ratio lower than 2 be achieved? • Can tighter bounds be obtained? • Impacts of results on sorting strings by pbis?. Thanks! Questions?. 55.

(56) Selected references. [Cho+14]. Shih-Wen Chou et al. “Prefix Block-Interchanges on Binary Strings”. Proceedings of the International Computer Symposium on Intelligent Systems and Applications. Vol. 274. Frontiers in Artificial Intelligence and Applications. Taichung, Taiwan, 2014, pp. 1960–1969. doi: 10.3233/978-1-61499-484-8-1960.. [HP99]. Sridhar Hannenhalli and Pavel A. Pevzner. “Transforming Cabbage into Turnip: Polynomial Algorithm for Sorting Signed Permutations by Reversals”. Journal of the ACM 46.1 (1999), pp. 1–27. doi: 10.1145/300515.300516.. [Lab13]. Anthony Labarre. “Lower Bounding Edit Distances between Permutations”. SIAM Journal on Discrete Mathematics 27.3 (2013), pp. 1410–1428. doi: 10.1137/13090897X..

(57)

Références

Documents relatifs

Daniel FROELICH, Elisabeth MARIS, Valérie MASSARDIER, Feliks BEZATI - Addition of tracers into the polypropylene in view of automatic sorting of plastic wastes using X-ray

But they maybe find their main application where kinetic formulations appear, whether for scalar conservation laws, isentropic gas dynamics (see [11] and [12] by Lions, Perthame

Our contributions are as follows: we prove tight upper and lower bounds on the so-called prefix block-interchange distance; we give an approximation algorithm which we prove to be

Our contributions are as follows: we prove tight upper and lower bounds on the so-called prefix block-interchange distance; we give an approximation algorithm which we prove to be

The final section will be devoted to the study of the boundary near the critical point Qo.. McKean, who most generously guided m y path throughout this work

– exhibits a strong analogy between sorting and Pascal’s triangle, – allows to sort in lattices with quadratic complexity, and that it – is in fact a generalization of insertion

Our contribution is a case study where we use UTP [19] and its implementation Isabelle/UTP [12] to verify the functional correctness of insertion sort and quicksort represented as

The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.. L’archive ouverte pluridisciplinaire HAL, est