Near-Optimal Sublinear Time Algorithms for Ulam Distance Alexandr Andoni∗ Abstract We give near-tight bounds for estimating the edit distance between two non-repetitive strings (Ulam distance) with constant approximation, in sub-linear time. For two strings of length d√and at edit distance R, our algorithm runs in time ˜ O(d/R + d) and outputs a constant approximation to R. We also prove a matching lower bound (up to logarithmic terms). Both upper and lower bounds are improvements over previous results from, respectively, [Andoni-IndykKrauthgamer, SODA’09] and [Batu-Ergun-Kilian-MagenRaskhodnikova-Rubinfeld-Sami, STOC’03].
1
Introduction
The edit distance (aka Levenshtein distance) between two strings A and B, denoted ed(A, B), is the minimum number of character insertions, deletions, and substitutions needed to transform one string into the other. This distance is of key importance in several fields such as computational biology and text processing, and consequently computational problems involving the edit distance were studied quite extensively. The Ulam metric is a specialization of edit distance to non-repetitive strings, where a string is non-repetitive if every symbol appears at most once in it. There are several motivations for studying this variant. From a practical perspective, strings with limited or no repetitions appear in several important contexts, such as ranking of objects such as webpages (see, e.g., [AJKS02] and [Mar95]). From a theoretical point of view, Ulam metric presents a concrete waypoint towards the elusive goal of designing algorithms for edit distance over general (or even binary) strings. Indeed, there are two reasons for this. First, Ulam metric appears to retain one of the core difficulties of the edit distance on general strings, namely the existence of “misalignments” between the two strings. In fact, there is no known lower bound
Huy L. Nguyen† that would strictly separate general edit distance from Ulam metric: all known lower bounds are nearly the same (quantitatively) for both metrics. These include non-embeddability into normed spaces results [KR06, AK07], lower bounds on sketching complexity [AK07], and sub-linear time algorithms [BEK+ 03]. Second, Ulam distance is no harder than edit distance over binary strings, at least up to constant approximation (see Theorem 1.2 from [AK07]). Thus, the Ulam metric is a specific roadblock that we must overcome before we may obtain improved results for general edit distance. Moreover, algorithms for Ulam metric have already found applications for a certain smoothed model for edit distance over binary strings [AK08]. We will discuss this application later. In this paper, we give a near-tight bounds for estimating the Ulam distance up to a constant approximation, in sublinear time. Formally, given two nonrepetitive strings A and B of length d over an alphabet Σ, with |Σ| ≥ d, the problem is to output a constant approximation to R = ed(A, B). We show that √ ˜ Θ(d/R + d) time is sufficient and required for this problem. Theorem 1.1. (Upper Bound) There exists a constant α > 1 for which there exists a randomized algorithm that, given two non-repetitive strings A, B ∈ Σd , approximates R = ed(A, B) up to factor α in √ ˜ O(d/R + d) time, with 2/3 success probability. Theorem 1.2. (Lower Bound) For every constant α > 1, if an algorithm approximates Ulam distance up to a factor α with ≥ 2/3 success √ probability, then the algorithm must take Ω(d/R + d) time, where R is the edit distance between the two input strings. The lower bound holds for edit distance over binary strings as well.
Our √ upper bound improves over the bound of ˜ O(d/ R) obtained in [AIK09]. We note that the bound ∗ Center for Computational Intractability at Princeton Univerfrom [AIK09] is tight in two extreme regimes: when sity (
[email protected]). The work was done while the author was R ≈ Θ(d) and R ≈ Θ(1). In contrast, our algorithm a student at MIT. Supported in part by NSF CAREER award is tight in all the regimes of R, up to logarithmic facCCR-0133849, David and Lucille Packard Fellowship and Alfred tors. Our √ lower bound improves over the bound of P. Sloan Fellowship . † Princeton University (
[email protected]). The work Ω(d/R + R) that follows from [BEK+ 03] and folklore, √ was done while the author was a student at MIT. giving a tighter (near-optimal) bound when R = Ω( d).
We further note that, in comparison, the best known upper bounds for general edit distance are currently much weaker: all sublinear time algorithms achieve a polynomial approximation only. Specifically, [BEK+ 03] can distinguish between ed(x, y) < d1− ˜ 1−2 ) time. The algoand ed(x, y) = Ω(d) in O(d rithm of [AO09] can distinguish ed(x, y) < nα from ed(x, y) > nβ in nα+2(1−β)+o(1) time. Finally, an application of our upper bound theorem is a near-tight distance estimation algorithm for the smoothed edit distance model over binary strings defined in [AK08]. There, the authors provided a general reduction from distance estimation in the smoothed model of edit distance over binary strings to distance estimation of (worst-case) Ulam distance. (We will not define precisely the smoothed model of [AK08] as it will not appear further in the present article.) Corollary 1.1. (Informal) Let x, y ∈ {0, 1}d be strings drawn from the smoothed model defined in [AK08]. Then, for every > 0, we can compute ed(x, y) with O(1) approximation in time ˜ 1+ / ed(x, y) + d0.5+ ). O(d 1.1 Overview of techniques We now describe the main ideas involved in proving Theorems 1.1 and 1.2. Both the upper bound and lower bound exploit the fact that the Ulam metric is decomposable as a sumproduct of Ulam metrics. The sum-product of Ulam metrics is a metric on k-tuples of non-repetitive strings, i.e., (A1 , . . . Ak ) ∈ (Σ` )k , with the distance between tuples (A1 , . . . Ak ) and (B1 , . . . Bk ) being defined as Pk i=1 ed(Ai , Bi ). The resulting metric is a submetric of Ulam (over strings of length `k), as it can be realized by Ulam distance between two strings: A0 = A1 ◦A2 ◦. . . Ak and B 0 = B1 ◦ B2 ◦ . . . Bk , where for each coordinate i we relabel the symbols with new symbols from a fresh alphabet Σi , and ◦ is the concatenation operator. Before presenting the ideas behind the upper bound, we rather start by presenting the ideas used for our lower bound, which is both simpler and instructive for presenting the ideas of the upper bound theorem. In the following, we will refer only to the testing problem, which asks to distinguish cases ed(A, B) < R versus ed(A, B) > αR, for some approximation factor α and fixed threshold R > 1. We note that considering algorithms for the testing problem is sufficient (and necessary) for both the upper and lower bound theorems. Lower bound. here is proving √ √ The main question the bound of Ω( d), for R > d, since the bound of Ω(d/R) follows immediately from the lower bound on testing Hamming distance. We first review the construction from [BEK+ 03], which gives a weaker
√ bound, of Ω( R). Suppose the testing algorithm wants to distinguish the case ed(A, B) < R (“close pair”) versus ed(A, B) > 2R (“far pair”). Then, the hard distribution generates A randomly from Σd , for |Σ| d, and B is obtained from A by a cyclic rotation of A by an amount t chosen at random from either [R] (for a “close pair”) or [100R] (for a “far pair”). Then, invoking a birthday paradox argument, √ one can show that the algorithm must sample Ω( R) positions in order to distinguish the two distributions. √ To prove a sample lower bound of Ω( d), we consider the sum-product of k ≈ d/R copies of Ulam metric on strings of length R. To generate a “close pair” (A0 , B 0 ), we pick A0 = (A1 , . . . Ak ) randomly, and construct B 0 = (B1 , . . . Bk ) from A0 where each Bi is a cyclic shift of Ai by an amount ti chosen at random from [R2 /d]. To generate a “far pair”, we do the same, except that for one position i∗ ∈ [d/R], we generate Bi∗ from Ai∗ via a cyclic rotation by a random amount ti ∈ [R]. Now, for a coordinate i, to distinguish between a random shift ti ∈ [R2 /d] versus ti ∈ [R], by a birthday p paradox argument, the algorithm needs to sample Ω( R2 /d) positions from Ai and Bi . Furthermore, since the algorithm does not p know the value i∗ , the algorithm has to sample Ω( R2 /d) positions for most of the√coordinates i ∈ [d/R]. This gives a total bound of Ω( d) samples. Upper bound. We are now ready to describe the ideas behind our upper bound. At a very high level, the upper bound does the converse of the lower bound. Suppose we want to test whether ed(A, B) < R or ed(A, B) > αR, where the approximation factor α is a large enough constant. First, we decompose the Ulam distance between input strings A, B into sum-product ˜ of k = O(d/R) strings of length O(R) by partitioning the strings A = AP 1 ◦ . . . Ak and B = B1 ◦ . . . Bk such that ed(A, B) = i ed(Ai , Bi ). Second, we design an algorithm for distinguishing whether the sum-product of P Ulam distances i ed(Ai , Bi ) is at most R or is bigger than αR. We reduce this step to the problem of gap testing the Ulam distance between two strings: given strings u, v ∈ {0, 1}` , distinguish whether ed(u, v) < a or ed(u, v) > b for a b. In the third step, we design an algorithm√for this gap-testing of Ulam distance, that ˜ · a/b) time, where ` is the length of strings runs in O(` u, v. Each of these steps requires additional ideas, which we now briefly sketch. We implement the first step, of reducing to testing of sum-product of k = O(d/R) Ulam distances of strings ˜ of O(R) length, as follows. Note that, in general, we cannot just directly partition A (andP B) into blocks of equal length d/k since, in this case, i ed(Ai , Bi ) can become as high as k · ed(A, B). Instead, we proceed
as follows. Consider the longest common substring of A and B, and let its positions in A and B be SA and SB respectively. We find some matching positions a1 , . . . ak−1 ∈ SA and b1 , . . . bk−1 ∈ SB such that A[ai ] = B[bi ]. Then, we partition the strings as A = A[1, a1 − 1] ◦ A[a1 , a2 − 1] ◦ . . . ◦ A[ak−1 , d] and B = B[1, b1 − 1] ◦ B[b1 , b2 − 1] ◦ . . . ◦ B[bk−1 , d]. We show this can be done such that √ all the lengths of the ˜ ˜ substrings are O(R), in O(d/R + d) total time. In the second step, weP reduce testing sum-product of k Ulam metrics, E = i ed(Ai , Bi ), to (many invocations of) the gap-testing problem of Ulam distance. The idea is to partition the coordinates i ∈ [k] into levels corresponding to the contributing weight, and estimate separately the contribution of each level to E. Namely, we estimate cj , the number of coordinates i ∈ [k] such j that i , yi ) ≥ 2 , for all j = 0, . . . log R. Then, P ed(x j j cj · 2 is a constant-factor approximation to E. For each j, we estimate cj by subsampling coordinates i with rate ≈ 2j /R, and, for subsampled i’s, testing whether ed(xi , yi ) ≥ 2j . So far, it looks like we did not save much: say, for j = 1, we subsample most of coordinates i for which we have to test whether √ ed(Ai , Bi ) ≥ R/2. Naively, this would√take at least Ω( R) time per coordinate, and Ω(d/ R) for all coordinates. However, we note that, say, a big fraction of coordinates actually have distance ed(Ai , Bi ) ≤ O(1). Thus, at least for a fraction of i’s, we need to only distinguish between ed(Ai , Bi ) ≤ O(1) and ed(Ai , Bi ) ≥ R/2. Indeed, our gap-testing algorithm manages to do so in almost constant time. More generally, the approach from above requires a gap-tester that can distinguish ed(x, y) < a versus ed(x, y) > b for all a b ≤ R. Our gap tester does so √ ˜ · a ), where ` is the length of the strings x in time O(` b and y. Note that, for the specific case of b = O(a), our algorithm’s performance recovers the performance of the algorithm from [AIK09]. To obtain our gap-testing algorithm, we develop an alternative characterization of Ulam distance, based on characterizations of [ACCL07, GJKK07]. In the end, when using our gap tester in the algorithm for testing sum-product of k Ulam distances of strings √ of length ≤ `, we obtain a total time of ˜ ˜ ` · (k + kR)). When k = O(d/R) and ` = O(R) (as O( R obtained √ in the first step), the running time becomes ˜ O(d/R + d). We proceed to describing our algorithms and the lower bound in detail.
the set of characters in that substring. If an index i is outside of the string A ∈ Σl , we extend, by convention, the string with extra symbols. Namely, for i ≤ 0, we let A[i] = i, and, for i > l, we let A[i] = (i − l) (in particular the extension is the same for all strings). Then Σ will denote the extended alphabet. We assume all logs are in base 2. In the rest of the paper, we will make extensive use of the Chernoff bounds, which we recall below (see, e.g., [MR95]). Fact 2.1. (Chernoff bound, [MR95]) Let X1 , X2 ,. . ., Xn be i.i.d. random variables and p = E [Xi ], > 0, Xi ∈ {0, 1}. Then, we have that Pn • If ≤ 2e − 1, then Pr[| i=1 Xi − pn| ≥ pn] ≤ 2 2 · e− pn/4 , Pn • If ≥ 2e − 1, then Pr[| i=1 Xi − pn| ≥ pn] ≤ 2−(1+)pn . 3
Distance Estimation for Ulam Distance
We now describe our algorithm for sublinear time distance estimation of Ulam distance, thus proving Theorem 1.1. The main subroutine is for testing the Ulam distance between two strings. Namely, the tester has the following promise for input strings A, B ∈ Σd , and a given threshold log5 d ≤ R ≤ d: R , then the tester returns CLOSE • If ed(A, B) < 1400 with probability at least 2/3.
• If ed(A, B) > R but ed(A, B) ≤ 2R, then the tester returns FAR with probability at least 2/3.
We note that such a tester is sufficient to approximate the distance R∗ = ed(A, B). Indeed, we can run the tester for Ulam distance for each “guess” R = d/2, d/4, d/8, . . ., and stop once the tester returns “FAR”. More precisely, for each guess of R, we run the tester for Ulam distance for O(log d) times and take the majority answer. If the majority answer is “FAR”, then we return the current value of R as an approximation to R∗ . Our tester for Ulam distance is described in Figure 1, and is named UlamTest(A, B, R). The tester works as follows. In step one, we decompose A and B into k = O(d/R) substrings A1 , . . . , Ak and B1 , . . . , Bk such that the sum ed(A1 , B1 ) + . . . + ed(Ak , Bk ) equals ed(A, B). We refer to the distance between (A1 , . . . Ak ) and (B1 , . . . Bk ) as the sum-product of k copies of Ulam distance. In step two, the algorithm tests whether the 2 Preliminaries and Notation sum of Ulam distances ed(A1 , B1 ) + . . . + ed(Ak , Bk ) For a string A, let A[i, j] denote the substring of A is bigger than R or is smaller than R/1400. The from position i to position j and, abusing notation, also first step is described below, and its main statement
is Lemma 3.1. The second step is described in the next ai , bi , i ∈ [k], belonging to some fixed longest comsection, Section 4, and its main ingredient is Lemma 4.2. mon subsequence (LCS) of A and B and such that ˜ The two lemmas together imply Theorem 1.1. |ai+1 − ai |, |bi+1 − bi | ≤ O(R) for all i. The main idea is as follows. Let SA and SB be the positions of the LCS in A and B respectively. First we Procedure UlamTest(A, B, R) partition the strings A into substrings of equal length 1. a, b, m ← PartialAlign(A, B, 2R) βR, where β = C1 log3 d for large enough constant C1 . 2. Return UlamProductTest((A[1, a1 ], B[1, b1 ]), We consider each such substring A[(i − 1) · βR + 1, i · βR] . . . , (A[ad/2βR + 1, d], B[bd/2βR + 1, d]), R) and take the corresponding substring of B of length Figure 1: The tester determining whether ed(A, B) > R βR starting at si (where the notion “corresponding” or ed(A, B) < R/1400. We assume that ed(A, B) ≤ 2R. will be clear momentarily; for the moment assume that Here, β = C1 log3 d for a sufficiently large constant |si − (i − 1) · βR| ≤ O(R)). For each such pair of substrings A[(i−1)·βR+1, i·βR] and B[si , si +βR−1], C1 > 0. we find a pair of positions ai , bi that belong to the sets SA and SB . We note that this is always possible since ed(A, B) ≤ 2R and thus for each matching pair of Procedure PartialAlign(A, B, R) positions ai , bi (in the LCS), we have that |ai −bi | ≤ 2R. 1. Split A and B into blocks of size βR. The notion of “corresponding substring” roughly means 2. m0 ← 0 that we sequentially correct the start of the ith substring d 3. For i ← 1 to βR of B according to the displacement obtained from the 4. For j ← 4 to log 4R previous matching pair (ai−1 , bi−1 ); i.e., si = (i − 1) · 5. Pick a random location p in [(i − 1) · βR + bi−1 − ai−1 . th βR + 4R, i · βR − 4R] of the i block. To find one such pair of positions (ai , bi ), we employ j/2 Pick γ · 2 random positions from each random sampling from the two substrings and hope for j j of A[p, p + 2 ] and B[p + mi−1 − 2 , p + a collision via the birthday paradox. In general, since j mi−1 + 2 · 2 ]. the substrings may be at √ distance up to O(R), we might If there is at least one collision A[u] = need to sample roughly R positions, which √ proves to B[v], then do the following. Choose any ˜ be too much (and gives a bound of O(d/ R) only). such collision ui , vi . Set mi ← vi − Instead, the algorithm adapts to the local distance ui , ai ← ui , bi ← vi . Stop the j loop in the ith pair of substrings of A and B. Thus, if and jump to the next i. the ith pair of substrings are√at distance fi , then the 6. If the j-loop did not stop, then fail. algorithm will sample roughly fi samples for this value 7. Return vectors a, b, and m. of i (since, intuitively, the matching symbols differ in position by at most fi , once we make the aforementioned Figure 2: Partial alignment of two strings. Here γ = correction to the start of the B’s substring). This C2 log d for a sufficiently large constant C2 > 0. adaptation to the local distance between substrings is what gives us the improved bound: indeed, for P As described before, in the first step, we partition every sequence fi with fi ≤ O(R), we have that √ strings A and B as A = A[1, a1 − 1] ◦ A[a1 , a2 − 1] ◦ Pd/R √ fi ) = O(d/R + d). i=1 (O(1) + . . . ◦ A[ak−1 , d] and B = B[1, b1 − 1] ◦ B[b1 , b2 − 1] ◦ The complete details of the algorithm are presented . . . ◦ B[bk−1 , d] for some k = O(d/R), where ai , bi are in Figure 2. We prove the following lemma. such that positions a , b belong to the longest common i
i
subsequence of A and B respectively and A[ai ] = B[bi ]. In this case, it is immediate to note that ed(A, B) = ed(A1 , B1 )+. . .+ed(Ak , Bk ). While this may not always be possible, we show we can do it under the assumption that ed(A, B) ≤ 2R. To be useful for the second step, we also need that ˜ |ai+1 − ai |, |bi+1 − bi | ≤ O(R) for all i. In the next subsection, we show how to find the positions ai , bi with the required properties. 3.1 Decomposition into a Sum Product of Ulam Distances We now show how to find positions
Lemma 3.1. (PartialAlign) Consider two nonrepetitive strings A and B at distance ed(A, B) ≤ R for some R ∈ [d]. Let SA , SB be the sets of indices of characters in A and B respectively of the longest common subsequence of A and B (note that |SA | = |SB | ≥ d − R). Then, with probability at least 2/3, the following all hold. The vectors a and b returned by PartialAlign(A, B) are subsets of SA and SB . Furthermore, |ai+1 − ai |, |bi+1 − bi | ≤ 2βR for all i ∈ [d/βR]. Finally, the running time of PartialAlign(A, B)
˜ is O(d/R +
√
d).
Proof. We prove that all ai are from SA with at least 0.9 probability. Since A and B are non-repetitive and bi are such that A[ai ] = B[bi ], then all bi must be from SB as well. The proof is by induction on i. For convenience of notation, we set a0 = b0 = 0. Now assume the inductive hypothesis: that all ak ∈ SA for k < i. We prove that, conditioned on this event, the algorithm generates an ai ∈ SA with probability at least 1 − ti , where ti is a function of ai−1 and will be defined later. We then prove that, conditioned on all ai ∈ SA , we have that P ti ≤ O(γ 2 log d/β), which will let us bound the failure probability. Let fi be the number of “bad positions” from the last match A[ai−1 ] = B[bi−1 ] to the end of the ith block in A and B. Formally, fi is the number of positions in A[ai−1 , i · βR] \ SA plus the number of positions in B[bi−1 , mi−1 + i · βR] \ SB . The next claim bounds the probability that a “bad position” s 6∈ SA appears amongst the collisions for a fixed j, where a collision is a sampled pair (u, v) such that A[u] = B[v].
A[p, p + 2j ] ∩ SA . Then Ep |T¯j | ≤
fi (β−8)R
· 2j+1 . By
20fi Markov’s inequality, with probability at least 1− (β−8)R , j ¯ we have that |Tj | ≤ 0.1 · 2 .
Claim 3.2. The j-loop stops for some j satisfying 2j ≤ 21fi 2fi , with probability at least (β−8)R . If fi = 0, then jloop stops at j = 4. Proof. Take the smallest j such that 2j ≥ fi . Condition on the event that |T¯j | ≤ 0.1 · 2j . Then |Tj | ≥ 0.9 · 2j . Note that each s ∈ Tj ⊆ A[p, p + 2j ] also appears in B[p+mi−1 −2j , p+mi−1 +2·2j ] by definition of fi ≤ 2j . Out of γ2j/2 samples in A[p, p + 2j ], at least 0.8γ · 2j/2 are in Tj , with high probability (by usual Chernoff bound for γ = Ω(log d)). Let this set of samples belonging to Tj be denoted by W . Then, we can compute the probability that, out of the γ2j/2 sampled characters in B[p + mi−1 − 2j , p + mi−1 + 2 · 2j ], at least one is also in W : this probability is at least j/2 2 γ2j/2 ≥ 1 − e−Ω(γ ) ≥ 1 − d−ω(1) . 1 − (1 − 0.8γ2 3·2j +1 ) Thus, we have at least one collision and the j-loop 20fi stops with probability at least 1 − d−ω(1) − (β−8)R ≥ 1−
21fi (β−8)R .
Claim 3.1. Fix some j ≤ log 4R. The probability that We can now completely bound the probability that a position s 6∈ SA appears in the set of collisions is at ai ∈ SA and the algorithm finishes successfully the 2 iγ corresponding ith step. Indeed, this probability is at . most fβR 2 2 21fi iγ − (β−8)R ≥ 1 − 2γ βlog R · fRi . We least 1 − log 2R · fβR Proof. Note that we need to care only about symbols 2γ 2 log R fi · R. β s ∈ A[(i − 1) · βR + 4R, i · βR] \ SA . The probability of set ti = Finally, the probability that there exists somePi for a fixed such symbol s yielding a collision is bounded P 2 f j which a ∈ 6 S is at most ti ≤ 4γ βlog R · Ri i . i A i by the probability that s ∈ A[p, p + 2 ], times the P probability that s is sampled from A[p, p + 2j ] and We claim that i fi ≤ 4R. Indeed, for fixed i, fi γ2j/2 is the number of positions in A[ai−1 , i · βR] \ SA plus 2j +1 j B[p + mi−1 , p + mi−1 + 2 ], which is (β−8)R · 2j +1 · the number of positions in B[bi−1 , mi−1 + i · βR] \ SB j/2 2 γ2 γ In this 3·2j ≤ βR . We now apply a union bound over all (conditioned on the fact that ai−1 ∈ SA ). s ∈ A[(i − 1) · βR + 4R, i · βR] \ SA and use the fact that case, each position k 6∈ SA contributes to fi for at |A[(i − 1) · βR + 4R, i · βR] \ SA | ≤ fi , and thus obtain most 2 values of i (and same for k 6∈ SB ). Since P the desired conclusion. also |SA | = |SB | ≥ d − R, we have that i fi ≤ 4R. Therefore, the probability that there exists some i for The probability that ai 6∈ SA is bounded by the which ai 6∈ SA is at most 16γ 2 log R/β < 0.1. probability that, for any j ≤ log 4R, there exists a It remains to bound the running time. Assume position s 6∈ SA that appears amongst the collisions. that all ai ∈ SA . Using Claim 3.2, the running The latter probability is obtained by applying a union time of the algorithm is Pd/βR O(1 + γ √f log d) = i q √i=1 d bound over all j to the bound from Claim 3.1, resulting d d ˜ ˜ 2 O( βR + γ βR · R) = O( d + R ), where we have iγ . in a bound of log 2R · fβR We also need to bound the probability that a j-loop applied the Cauchy-Schwartz the additional O(log d) fails to stop. We bound this event using the claim from appears because of the implementation of checking for below, which specifies an upper bound on j at which collisions). the j-loop will stop. Before stating and proving the claim, we introduce 4 Tester for Sum-product of Ulam Distance more notation. Consider fixed p and j. Let Tj be In this section, we describe a tester for a sum product of the set of symbols in A[p, p + 2j ] \ SA , and let T¯j = Ulam distances between tuples of strings. Given k pairs
˜ √a/b) of strings (A1 , B1 ), . . . , (Ak , Bk ), where each string has probability at least 2/3, GapUlamTest runs in O(` Pk time and distinguishes between the case ed(A, B) < a length at most βR, for β > 1, and √ i=1 ed(Ai , Bi ) = ˜ O(R), the tester runs in O(β(k + kR)) time and has and the case ed(A, B) > b. the following promise: Assuming the properties of GapUlamTest, we now Pk state the formal properties of UlamProductTest. • If ed(A , B ) < R , then the tester returns i=1
i
i
1400
CLOSE with probability at least 23 .
Lemma 4.2. (UlamProductTest) Given k pairs of nonrepetitive strings (A1 , B1 ), . . . , (Ak , Bk ) of characters in • If i=1 ed(Ai , Bi ) > R, then the tester returns [d] where the length of each string is bounded by βR and 2 Pk FAR with probability at least 3 . at least 2/3, i=1 ed(Ai , Bi ) = O(R). With probability √ ˜ time and corUlamProductTest runs in O(β(k + kR)) P rectlyPdistinguishes between the cases i ed(Ai , Bi ) > R Procedure UlamProductTest((A1 , B1 ), . . . , and i ed(Ai , Bi ) < R/1400. (Ak , Bk ), R) 1. for i ← 0 to log R Proof. Firstly, we prove the following approximation bi ← 0 2. C claim. 3. Take a set S of pairs by picking each pair (Au , Bu ), u ∈ [k], independently with Claim 4.1. Consider a set S of n elements and a subset i 3 T of m elements. Pick a random subset X of S by pickprobability pi = min(6400 2 logR(kR) , 1). ing each element independently with probability p. Let 4. For each s ∈ S q = |X ∩ T |. Picking hX can be implemented in expected 5. For j ← 1 to i − 9 i 6. Run GapUlamTest(As , Bs , 2j , 2i ) for O(pn) time and Pr |q/p − m| ≥ 0.1m + 6400plog n ≤ O(log(kR)) times and take the major1 n3 . ity answer. Stop the j loop if the majority answer is CLOSE. Proof. We pick X as follows. Divide S into blocks of bi 7. If the j-loop is never stopped, increase C size p1 and use the binomial distribution to compute by p1i = max( 6400·2i R , 1). the number of samples in each block. Finally, pick the log3 (kR) P log R bi . samples from each block according to the computed 8. Compute the estimate db = i=0 2i C number of samples. The expected running time is b 9. If d > 0.85R, return FAR. Otherwise, return O(pn). Now consider two cases. CLOSE. Pk
Figure 3: Closeness tester for sum product of Ulam distance. The tester UlamProductTest is described in details in Figure 3. The idea of the tester is to partition the pairs of strings into buckets of pairs of roughly equal distances and then approximate the number of pairs in each bucket. Specifically, let Ci be the number of indices u such that ed(Au , Bu ) ≥ 2i . For each i, we compute an approximation of Ci with small additive andPmultiplicative errors. Finally, an approximation k of ed(Au , Bu ) can be obtained from the sum Plog Ru=1i i=0 2 Ci . A subroutine GapUlamTest(A, B, a, b) is used to differentiate between the case ed(Au , Bu ) < a and the case ed(Au , Bu ) > b. Formally, GapUlamTest satisfies the following properties, which will be proved in a later section.
1. m ≤ m| ≥ 2. m >
6400 log n p(2e−1) . By the Chernoff bound, Pr[|q/p 6400 log n log n m · 6400pm ] ≤ 2−(1+ mp )pm ≤ n13 . 6400 log n p(2e−1) .
−
By the Chernoff bound, Pr[|q/p − 2
m| ≥ 0.1m] ≤ 2e−(0.1)
pm/4
≤e
16 log n 2e−1
≤
1 n3 .
This concludes the proof of claim 4.1.
By the Chernoff bound, the probability that the majority answer of O(log(kR)) runs of GapUlamTest (on line 6 of UlamProductTest) is wrong, is bounded by k31R3 . The majority answer is taken O(k log2 (kR)) times, so by the union bound, all majority answers from runs of GapUlamTest are correct with probability at 1 least 1− kR . Thus, from now on, we assume all majority answers are correct. Now we proceed to give upper and lower bounds on b We consider bi , and hence, the distance estimate d. C R Lemma 4.1. (GapUlamTest) Suppose we are given two the case i < log 6400·log3 (kR) (so pi < 1). When i non-repetitive strings A and B of length `A and `B , is large enough so that pi = 1, the following bounds respectively, of characters in [d] and two constants a, b still hold because several estimation steps become exact b satisfying a ≤ 512 . Let ` = max(`A , `B ). With computation.
bi and We start by showing an upper bound for C b Let Ni be the number of indices s ∈ [k] such that d. 2i . Let Xi be the number of indices ed(As , Bs ) > 512 2i s ∈ S such that ed(As , Bs ) > 512 . By Claim 4.1, R 1 1 b pi Xi ≤ 1.1Ni + 2i log2 (kR) , w.h.p. Hence, Ci ≤ pi Xi ≤ P 1.1Ni + 2i logR2 (kR) and db ≤ i 2i (1.1Ni + 2i logR2 (kR) ) < Pk R 1130 i=1 ed(Ai , Bi ) + log(kR) . b Let Mi be bi and d. Next we show a lower bound for C the number of indices s ∈ [k] such that ed(As , Bs ) > 2i . Let Yi be the number of indices s ∈ S such that ed(As , Bs ) > 2i . By Claim 4.1, p1i Yi ≥ 0.9Mi − R bi ≥ 1 Yi ≥ 0.9Mi − w.h.p. Hence, C pi 3·2i log2 (kR) P R R i b≥ and d 2 (0.9M − ) ≥ 0.9 · 2 i i i 2 log (kR) 2i log2 (kR) Pk R i=1 ed(Ai , Bi ) − log(kR) . Therefore, with probability at least 2/3, if Pk b i=1 ed(Ai , Bi )P> R, then d > 0.9R − R/ log(kR) > k b 0.85R, and if i=1 ed(Ai , Bi ) ≤ R/1400, then d < 1130R/1400 + R/ log kR < 0.85R. We now prove the stated running time of the algorithm. The expected number of times a fixed bi is pair (Au , Bu ) is selected when we compute C O(2i log3 (kR)/R). When a pair (Au , Bu ) is selected, the j-loop stops as soon as 2j > ed(Au , Bu ). Thus, the expected running time of the algorithm is log k XR X
˜ 2 log (kR)/R · O
i=0 u=1
≤
k X
i
3
βR(
p
ed(Au , Bu ) + 1) 2i
!
p √ ˜ ˜ ed(Au , Bu ) + 1)) = O(β(k + kR)). O(β(
u=1
4.1 Gap Closeness Tester for Ulam distance In this section, we describe the details of GapUlamTest, a closeness tester differentiating between the case where the Ulam distance is very large and the case where the Ulam distance is very small. Specifically, we have two distance thresholds a and b satisfying a < b/512 and the algorithm should return F AR if the distance is at least b, and return CLOSE if the distance is at most a. The tester GapUlamTest is described in details in Figure 4. The idea of the algorithm is to divide both strings into small blocks and estimate the contribution of each block to the total distance. The contribution from each block comes from two sources: character movements within each block, and character movements between different blocks. Intuitively, the first kind of movements can be detected by character inversions within corresponding blocks in two strings. We approximate the number of movements of this kind by the number of characters witnessing a lot of inversions
in their neighborhoods (similar to the characterizations from [ACCL07, GJKK07, AIK09]). The number of movements of the second kind is exactly the difference between the set of characters in the block in the first string and the set of characters in the corresponding block in the second string, which can be approximated by counting collisions between samples from two strings. Furthermore, since only an approximation of the sum of contributions from the blocks is needed, instead of computing the contributions from all blocks, we only sample some subset of blocks to estimate the sum. Specifically, for each i, we estimate ni , the number of blocks contributing approximately 2i or more. The total P distance can be estimated by considering the sum i ni 2i . Intuitively, the larger i is, the finer the estimation of ni we need, so the number of sampled blocks grows with i. On the other hand, the larger the distance 2i , the easier it is to find mismatches between the corresponding blocks in two strings. It turns out these two effects cancel each other out and for each i, we can estimate the contributions from blocks contributing 2i or more √ a ` ˜ ). Summing over all i, the total running time in O( √b ` a ˜ is O( b ). The algorithm uses the following characterization of the Ulam distance in order to approximate the two aforementioned forms of movement. We note that this lemma can be seen as a refinement of the characterizations from [ACCL07, GJKK07, AIK09]. Lemma 4.3. Consider two non-repetitive strings A and B. Let `A , `B be the length of A and B, respectively. P`A /a W.l.o.g. assume `A ≤ `B . Define X = k=0 |A[ka + 1, (k + 1)a] \ B[(k − 1)a + 1, (k + 2)a]| i.e. the number of characters occurring in A[ka + 1, (k + 1)a] but not in B[(k − 1)a + 1, (k + 2)a] for k ∈ [`A /a]. Let δ ≤ 1/2 be a constant. Define Yδ to be the number of pairs of indices u, v such that A[u] = B[v], A[u] ∈ A[ka + 1, (k + 1)a] ∩ B[(k − 1)a + 1, (k + 2)a] for some k and the symmetric difference |A[u − t, u − 1]∆B[v − t, v − 1]| > 2δt for some t ≤ 4a. Then • If ed(A, B) ≤ a, then X ≤ a and Yδ ≤ 4a/δ. • If ed(A, B) ≥ b + `B − `A , then X + Yδ ≥
b(1−δ) . 2
Proof. A character is called red if it contributes to either X or Yδ . First, we show that if ed(A, B) ≤ a, then X ≤ a and Yδ ≤ 4a/δ. Let SA , SB be the set of indices of characters in A and B belonging to the longest common subsequence of A and B. Note that |SA | = |SB | ≥ `B − a. The characters in SA cannot contribute to X, so X ≤ a. Let Tδ be the set of all pairs of indices u, v such that A[u] = B[v], and the symmetric
Procedure GapUlamTest(A, B, a, b) 1. Let `A , `B be the length of A and B. If |`B − `A | > b/10, return FAR. 2. Split A into `A /a blocks of size a. 3. For i ← 0 to log a − 1 bi ← 0 4. Set X 5. Pick a set S of blocks by picking each block k ∈ [`A /a] independently with probability i 3 ` ), 1). min(O( 2 log b 6. For each sampled √ block k ∈ S 7. If 2i ≤ 6400 a log `, 8. Compute the number of characters in A[ka + 1, (k + 1)a] that are not also contained in B[(k − 1)a + 1, (k + 2)a] (i.e., characters contributing to X) by reading the blocks entirely. Increase bi by 1 if this number of characters is X at least 2i√ . 9. If 2i > 6400 a log `, 10. Read each character in A[ka + 1, (k + 1)a] and B[(k − 1)a + 1, (k + 2)a] independently with probability p = √ ` min(O( a2log ), 1) and let C be the i number of collisions between the characters being read in A and in B. If bi by 1. a − pC2 > 0.9 · 2i then increase X 11. Read each character in A[ka + 1, (k + 1)a] and B[(k − 1)a + 1, (k + 2)a] independently with probability r = ` min(O( log ), 1) and find the collisions. 2i/2 For each collision A[u] = B[v], run YContributingTest(A, B, u, v, a). Let D be the number of characters for which the answer is CONTRIBUTING. If pD2 > i 0.9 · 2P , then increase Ybi byP 1. b b b b← b b 12. Set X X and Y ← 3 3 Yi i b + Yb > 13. If X CLOSE.
i log ` b 10 , return
i log `
FAR. Otherwise return
Figure 4: Tester distinguishing between the case ed(A, B) < a and the case ed(A, B) > b.
back until reaching the beginning of A. At position i, do the following. If A[i − 1] is not red, proceed to i − 1. If A[i − 1] is red, let j < i be the largest index where A[j] is not red and A[j] precedes A[i] in B. Remove A[j + 1, i − 1] and proceed to position j. The remaining string after the above process finishes is the common subsequence we need. Now we bound the number of removed characters when we reach the ith position and A[i] is not red. Because A[i] is not red, A[i] = B[u] for some u satisfying |i − u| ≤ 2a. Consider two cases. 1. i − j ≤ 4a. Because A[i] is not red, |A[j + 1, i − 1]∆B[u − i + j + 1, u − 1]| ≤ 2δ(i − j − 1). All non-red characters in A[j + 1, i − 1] contribute to the symmetric difference |A[j + 1, i − 1]∆B[u − i + j + 1, u − 1]| so at least 1 − δ fraction of the deleted characters are red. 2. i − j > 4a. Because A[i] is not red, |A[i − 4a + 1, i − 1]∆B[u − 4a + 1, u − 1] ≤ 8δa. Thus, in A[i − 4a + 1, i − 1], at most 4δa characters are not red. We now show that all characters in A[j + 1, i − 4a] are red. Indeed, any non-red character in A[j + 1, i − 4a] must appear after the character A[i] = B[u] in B by the definition of j, and thus it contributes to X and is red. Therefore, all characters in A[j + 1, i − 4a] are red. In total, at least 4a − 4δa + (i − 4a − j) > (i − j − 1)(1 − δ) red characters are removed. In all cases, at least 1 − δ fraction of the deleted characters are red. Therefore, we get a common subsequence of A and B of length greater than `A − 2b so ed(A, B) < b + `B − `A . This concludes the proof of Lemma 4.3. The tester works by estimating the quantity X and Y = Yδ , for δ = 1/2 in the above lemma. To detect characters contributing to Yδ , we use the YContributingTest described in Figure 5. The following lemma shows that YContributingTest correctly tests if a character contributes to Y .
Lemma 4.4. (YContributingTest) With probability at least 1 − `12 , if |A[u − z, u − 1]∆B[v − z, v − 1]| > difference |A[u − t, u − 1]∆B[v − t, v − 1]| > 2δt for some z for some z < 4a, then YContributingTest returns t ≤ `B . Notice that Yδ ≤ |Tδ |. By [AIK09, Lemma 2.2], CONTRIBUTING, and if |A[u − z, u − 1]∆B[v − z, v − |Tδ | ≤ 4a/δ. 1]| < 0.8z for all z < 4a, then YContributingTest Second, we show the contra-positive of the second returns NOT-CONTRIBUTING. The expected running ˜ √a). then ed(A, B) < time of YContributingTest is O( assertion, i.e. if X + Yδ < b(1−δ) 4 b + `B − `A . We select a common subsequence of A and B by the following removal procedure. For convenience, Proof. Let Nt = |A[u − 1.01t , u − 1] ∩ B[v − 1.01t , v − 1]|. add two different special characters at the end of A and Let Dt be the number of collisions between samples from B and they are not red. Start from the end of A and go |A[u − 1.01t , u − 1] and B[v − 1.01t , v − 1]|. We have
E Dt /q 2 = Nt and Var[Dt /q 2 ] = (1−q 2 )Nt /q 2 . By the Chebyshev inequality, Pr[|Dt /q 2 − Nt | ≥ 0.05 · 1.01t ] ≤ 400(1−q 2 )Nt 1 < 10 . Consider two cases. q 2 1.012t
2. Nk ≤ Nk | ≥
0.1·2i 2 2e−1 . By the Chernoff bound, Pr[|Ck /p i −(1+0.1·2i /Nk )p2 Nk Nk 0.1·2 < `12 . Nk ] ≤ 2
−
Thus, with high probability, | Cp2k − Nk | < 0.1 · 2i . Therefore, the test on line 10 passes if Mk ≥ 2i and fails if Mk < 0.8 · 2i . Let Hi be the number of indices k ∈ [`/a] such that |A[ka+1, (k+1)a]\B[(k−1)a+1, (k+ 2)a]| ≥ 2i and Ki be the number of indices k ∈ [`/a] such that |A[ka+1, (k +1)a]\B[(k −1)a+1, (k +2)a]| > 0.8 · 2i . b b By Claim 4.1, with high probability, 2i log 3 ` Xi < 2. |A[u − z, u − 1]∆B[v − z, v − 1]| < 0.8z for all b b 1.1·2 b< 1.1Ki + 2i log2 ` and thus, X 0.8 X + log ` . Similarly, z < 4a. Therefore, N > 0.6 · 1.01t . By the Chernoff b bi > 0.9Hi − i b 2 and bound, with probability at least 1 − `12 , the number with high probability, 2i log3 ` X 2 log ` b > 0.9X − b . of collisions is at least 0.55 · 1.01t the majority of thus, X log ` the times for all t and the algorithm returns NOTWe now show Yb approximates Y . Let Pk,t be the CONTRIBUTING. number of characters A[u] = B[v] such that ka + 1 ≤ The expected number of characters being read by u ≤ (k + 1)a and (k − 1)a + 1 ≤ v ≤ (k + 2)a, YContributingTest, and hence, the expected running and |A[u − z, u − 1]∆B[v − z, v − 1]| > 2tz for some ˜ √a). This concludes the proof of Lemma 4.4. z < 4a. By Lemma 4.4 and the union bound, with time, is O( probability at least 1 − 1` , all YContributingTest calls give correct answers. Each character contributing to Y Procedure YContributingTest(A, B, u, v, a) is picked in both A and B on line 11 with probability 1. For t ← 0 to log1.1 4a 2 r2 = O( log2i ` ). By Claim 4.1, with high probability, 2. Repeat the following O(log `) times. 2i 2i D < 1.1 · Pk,0.4 + log 3. Read each character in A[u − 1.01t , u − 1] ` and D > 0.9 · Pk,0.5 − log ` . Let Pi be the number of indices k ∈ [`A /a] such that and B[v−1.01t , v−1] independently with 1 Pk,0.5 > 2i and Qi be the number of indices k ∈ [`A /a] probability q = O( √1.01 ) and count the t such that Pk,0.4 > 0.8 · 2i . By Claim 4.1, with high number of collisions. b b probability, 0.9 · Pi − 2i log 2 ` < 2i log3 ` Yi < 1.1Qi + 4. If the number of collisions is at most 0.55 · b 1.01t the majority of the times then return . Thus, 0.9 · Y0.5 − logb ` < Yb < 2.5Y0.4 + logb ` . 2i log2 ` CONTRIBUTING. Therefore, with high probability, if ed(A, B) < a, 5. If CONTRIBUTING is never returned then b + Yb < 3a + 2.5·4 a + 2b < b/10 and if ed(A, B) > b X 0.4 log ` return NOT-CONTRIBUTING. b + Yb > 0.8b(1−0.5) ≥ b/10. and |`B − `A | < b/10, X 2 Figure 5: A procedure for checking if |A[u − t, u − Therefore, the algorithm answers correctly. The expected running time of the algorithm is 1]∆B[v − t, v − 1]| is large for some t < 4a. 1. |A[u−z, u−1]∆B[v −z, v −1]| > z for some z < 4a. Choose t = blog1.01 zc. Then, |A[u − 1.01t , u − 1]∆B[v − 1.01t , v − 1]| > 0.98 · 1.1t . Therefore, N < 0.51 · 1.1t . By the Chernoff bound, with probability at least 1 − `12 , for the majority of the times, the number of collisions is at most 0.55·1.01t and the algorithm returns CONTRIBUTING.
log Xa
Now we proceed to proving Lemma 4.1. b approximates X. Consider Proof. We first show X a sampled block A[ka + 1, (k + 1)a]. Let Mk = |A[ka + 1, (k + 1)a] \ B[(k − 1)a + 1, (k + 2)a]| and Nk = |A[ka + 1, (k + 1)a] ∩ B[(k − 1)a + 1, √(k + 2)a]|. Note that Mk + Nk = a. When 2i ≤ 6400 a log `, we get the exact value of Mk and Nk by reading √ the whole block. Now consider the case 2i > 6400 a log `. Let Ck be the number of collisions between samples from A[ka + 1, (k + 1)a] and samples from B[(k − 1)a + 1, (k + 2)a] when reading each symbol with probability p. We have E [Ck ] = p2 Nk . Consider two cases.
i=0
√ √ `2i log3 ` ˜ a a a a O min(a, 2i ) + i = ab 2 ˜ O
5
√ ` a . b
Lower bound: Proof of Theorem 1.2
To prove Theorem 1.2, we follow the outline given in d the techniques section. The lower bound Ω( R ) follows directly from the folklore lower bound on testing the Hamming distance, so we concentrate on the regime √ 2 d ≤ R ≤ d/4α. Let ` = 4αR and r = R2 /d. We define two i 2 . By the Chernoff bound, Pr[|C /p − 1. Nk > 0.1·2 k 2e−1 distributions over pairs of permutations of [`]. Let µf be i 1 −(0.1·2i /Nk )2 p2 Nk /4 Nk | ≥ Nk 0.1·2 ] ≤ 2e < . the distribution over pairs (A, B) where A is a random Nk `2
permutation of [`] and B is obtained from A by a cyclic rotation of A, moving tf characters at the end of A to the beginning with tf drawn uniformly from [`/4, `/2]. Let µc be the distribution over pairs (A, B) where A is a random permutation and B is obtained from A by a cyclic rotation of A by an amount tc drawn uniformly from [r/4, r/2]. By an argument similar to [BEK+ 03, Theorem 3], there is a constant c such that any deterministic algorithm that, with probability at least 5/9, distinguishes a pair (A, B) drawn from µf √ from a pair (A, B) drawn from µc , must make at least c r queries. For completeness, below we include the sketch of the proof of the claim. Lemma 5.1. ([BEK+ 03])√For any deterministic algorithm M making at most r/5 queries, Pr [M (A, B) = 1] − Pr [M (A, B) = 1] (A,B)←µf
(A,B)←µc
< 1/9.
We now proceed to proving Theorem 1.2. Assume for contradiction that there is an algorithm M 0 that √ d queries with probability at least 2/3, takes at most 216α and approximates the Ulam distance between two input strings A, B up to a constant factor α. One can construct √ an algorithm to distinguish µc and µf with at most r/5 samples as follows. Given some pair (A, B) from either µc or µf , construct a new pair (P, Q), which consists of d/` blocks each, where one block at a random index k ∈ [d/`] is (A, B) and all the others are drawn i.i.d. from µc . Run M 0 on (P, Q). If M 0 queries the R times, then the algorithm block (A, B) at least 5√ d aborts. Now, our output is “FAR” iff either 1. M 0 outputs “FAR”, or, R 2. M 0 takes at least 5√ from the block (A, B) (i.e., d the algorithm aborts). R queries Clearly, our algorithm makes at most 5√ d to (A, B). Now, we prove the correctness of the algorithm. R When (A, B) is drawn from µc , ed(P, Q) ≤ dr/` = 4α . When (A, B) is drawn from µf , ed(P, Q) ≥ `/4 = αR. R Because 4α · α < R, if aborting is ignored, M should output the correct answer with probability at least 2/3. If (A, B) ∈ µf , then with probability at least 2/3, the output would be “FAR” (at least by criterion 1). Now consider the case (A, B) ∈ µc . With probability at least 2/3, criterion 1 cannot happen. Let Ni be the number of queries M makes on the ith block. All blocks are drawn i.i.d. from µc regardless of the value of k and k is not revealed to M so E [Ni ] = E [N |k = 1] = ... = h i i
Proof. [Proof sketch.] Let B be a cyclic rotation of A by an amount t ≤ `/2. The longest common subsequence of A and B has length exactly ` − t. Thus, when (A, B) is drawn from µf , ed(A, B) ≥ tf ≥ `/4. When (A, B) is drawn from µc , ed(A, B) ≤ 2tc ≤ r. Define Rc to be the event that the input to M is drawn from µc and M queries some position i in A and position i + tc in B for some i ∈ [`]. Also define Rf to be event that the Pd/` E input to M is drawn from µf and M queries i in A and i=1 Ni E [Ni |k = d/`] ∀i. Thus, E [Nk ] = ≤ 54R√d . d/` i + tf in B for some i ∈ [`]. When Rc and Rf does not inequality, with probability at least happen, all queried characters are distinct and random By the Markov R √ 8/9, N ≤ so criterion 2 cannot happen, either. k so M can not distinguish between µc and µf . Thus, 6 d Therefore, with probability at least 5/9, the output when (A, B) ∈ µc would be “CLOSE”. The resulting algorithm distinguishes µc from µf Pr [M (A, B) = 1] − Pr [M (A, B) = 1] (A,B)←µf (A,B)←µc which contradicts Lemma 5.1. The claim for edit distance on binary strings follows ≤ max(Pr[Rc ], Pr[Rf ]). immediately using Theorem 1.2 of [AK07].
When M finds two identical characters, it can correctly distinguish between µf and µc . When M References has not seen two identical characters in A and B, all [ACCL07] N. Ailon, B. Chazelle, S. Comandur, and D. Liu. queried characters are random and distinct. Therefore, Estimating the distance to a monotone function. Ranadaptivity does not help and we can assume M makes dom Structures and Algorithms, 31:371–383, 2007. Preall queries at once. After q queries on A and B, at viously appeared in RANDOM’04. most (q/2)2 shifts are checked and because tc and tf [AIK09] Alexandr Andoni, Piotr Indyk, and Robert are chosen uniformly at random, we have Krauthgamer. Overcoming the `1 non-embeddability (q/2)2 (q/2)2 max(Pr[Rc ], Pr[Rf ]) ≤ max( , ) < 1/9. r/4 `/4 This concludes the proof of Lemma 5.1.
barrier: Algorithms for product metrics. In Proceedings of the ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 865–874, 2009. [AJKS02] Mikl´ os Ajtai, T. S. Jayram, Ravi Kumar, and D. Sivakumar. Approximate counting of inversions in
a data stream. In Proceedings of the Symposium on Theory of Computing (STOC), pages 370–379, 2002. [AK07] Alexandr Andoni and Robert Krauthgamer. The computational hardness of estimating edit distance. In Proceedings of the Symposium on Foundations of Computer Science (FOCS), pages 724–734, 2007. Accepted to SIAM Journal on Computing (FOCS’07 special issue). [AK08] Alexandr Andoni and Robert Krauthgamer. The smoothed complexity of edit distance. In Proceedings of International Colloquium on Automata, Languages and Programming (ICALP), pages 357–369, 2008. [AO09] Alexandr Andoni and Krzysztof Onak. Approximating edit distance in near-linear time. In Proceedings of the Symposium on Theory of Computing (STOC), pages 199–204, 2009. [BEK+ 03] Tu˘ gkan Batu, Funda Erg¨ un, Joe Kilian, Avner Magen, Sofya Raskhodnikova, Ronitt Rubinfeld, and Rahul Sami. A sublinear algorithm for weakly approximating edit distance. In Proceedings of the Symposium on Theory of Computing (STOC), pages 316–324, 2003. [GJKK07] Parikshit Gopalan, T. S. Jayram, Robert Krauthgamer, and Ravi Kumar. Estimating the sortedness of a data stream. In Proceedings of the ACMSIAM Symposium on Discrete Algorithms (SODA), pages 318–327, 2007. [KR06] Robert Krauthgamer and Yuval Rabani. Improved lower bounds for embeddings into l1 . In Proceedings of the ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 1010–1017, 2006. [Mar95] John I. Marden. Analyzing and Modeling Rank Data. Monographs on Statistics and Applied Probability 64. CRC Press, 1995. [MR95] R. Motwani and P. Raghavan. Randomized Algorithms. Cambridge University Press, 1995.