![Page 1: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/1.jpg)
Palindrome Recognition in the Streaming Model
P. Berenbrink, F. Ergun, F. Mallmann-Tren, E. Sadeqi-Azer
![Page 2: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/2.jpg)
Palindrome
A string which reads the same forwards and backwards.
![Page 3: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/3.jpg)
Palindrome
A string which reads the same forwards and backwards.
Kayak
Level
![Page 4: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/4.jpg)
Palindrome
A string which reads the same forwards and backwards.
Kayak
Level
Stressed? No tips? Spit on desserts.
(tip your waiter!)
![Page 5: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/5.jpg)
Goals/Model
Find long(est) palindrome in a given sequence Ideally, with errors. Currently, exact match,
approximate length. Streaming model
![Page 6: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/6.jpg)
Properties of Palindromes
P is a palindrome (eg AABBACCDDCCABBAA)
-- P consists of a string and its reverse on two sides of a midpoint.
P= P1P
1
R AABBACCD DCCABBAA
-- P contains nested, smaller palindromes inside it with the same midpoint.
AABBACCDDCCABBAA
![Page 7: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/7.jpg)
Finding Palindromes
Find palindromes in given text:
A A B A C A D D A C A B D A B A C
![Page 8: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/8.jpg)
Palindromes
Find palindromes in given text:
A A B A C A D D A C A B D A B A C
What about these?
Find long palindromes. (longest?)
![Page 9: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/9.jpg)
Outline
Preliminaries, observations An additive-error approximation An exact algorithm A multiplicative error approximation A quick look at a lower bound
![Page 10: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/10.jpg)
Observations and Definitions
A A B A C A D D A C A B D A B A C
m
P[m] denotes the maximal length palindrome centered at index m; its length is l(m).
The first half of the palindrome is the inverse of the second half.
![Page 11: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/11.jpg)
Odd Length Palindromes
What about palindromes such as
A B C D C B A?
Where is the midpoint?
Simple fix: double all letters.
A A B B C C D D C C B B A A
Length is doubled, palindromes are doubled.
Complexity not changed.
![Page 12: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/12.jpg)
Observations and Definitions
A A B A C A D D A C A B D A B A C
m
Palindromes show a “nested” structure.
![Page 13: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/13.jpg)
Observations and Definitions
A A B A C A D D A C A B D A B A C
m
Palindromes show a “nested” structure.
![Page 14: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/14.jpg)
Observations and Definitions
A A B A C A D D A C A B D A B A C
m
Palindromes show a “nested” structure.
Our goal is to find the maximal palindromes.
Compromise: find close to maximal
![Page 15: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/15.jpg)
Rabin-Karp Fingerprints
Commonly used in streaming string algorithms Can be combined/separated efficiently
a b
ab
f(a)
f(ab)
f(b)
![Page 16: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/16.jpg)
Rabin-Karp Fingerprints
Commonly used in streaming string algorithms Can be combined/separated efficiently
Trivial to keep running fingerprints of substrings and their reversals
a b
ab
f(a)
f(ab)
f(b)
![Page 17: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/17.jpg)
Computation of KR-Fingerprints
S is a string of length k.
Given prime p � {n4,n4} and a random
r � {1,...,p},
Φr,p
(S) =Σi=1..k
(S[i] ∙ ri) mod r
![Page 18: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/18.jpg)
Manipulating KR-Fingerprints
S = a b c d e f S' = b c d e f g
Given Φ(S), how do we get Φ(S')?
Let S'' = a b c d e f g
Φ(S) =Σi=1..k
(S[i] ∙ ri) mod r
Φ(S'') = ( Φ(S) + g ∙ ri ) mod r
Φ(S') = ( Φ(S'') - a ∙ r ) / r mod r
![Page 19: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/19.jpg)
Outline
Preliminaries, observations An additive-error approximation An exact algorithm A multiplicative error approximation A quick look at a lower bound
![Page 20: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/20.jpg)
First Algorithm
Given S of length n:
Finds all palindromes in S.
Lengths of these palindromes are approximated to an additive ε√n factor.
Space usage is O( √n/ε).
![Page 21: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/21.jpg)
How?
Let X' denote the reverse of a string X.
Any palindrome P is of the form XX'.
Guess the midpoint, compare fingerprints of substrings before the midpoint to those after.
A B C D A A B B A A D C B C C C
![Page 22: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/22.jpg)
Short Palindromes, Long Palindromes
We run a sliding window of length √n along S.
A short palindrome is length at most √n.
Easily found since it fits within the window.
A long palindrome must contain a short palindrome, so we can generate “candidates.”
![Page 23: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/23.jpg)
Long Palindrome Candidates
Window size = 6
Palindrome detected in window.
Size = 6, thus potential to be long.
A B C A D C C D B B D C C D A C D A
![Page 24: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/24.jpg)
Growing A Palindrome
4 characters later...
If we could compare the contents of the braces, we would note that there is a long palindrome.
But we cannot keep track of every substring.
A B C A D C C D B B D C C D A C D A
![Page 25: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/25.jpg)
Keeping Track
Insert a checkpoint every ε√n locations.
Remember the substring between every adjacent pair of checkpoints.
Altogether, O(√n/ε) space.
Can reconstruct any substring of S with some loss
c1
c2
c3
c4
![Page 26: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/26.jpg)
Keeping Track
Insert a checkpoint every ε√n locations.
Remember the substring between every adjacent pair of checkpoints.
Altogether, O(√n/ε) space.
Can reconstruct any substring of S with some loss
How much loss?
O(√n/ε) characters lost at each end of S if endpoints of S fall between checkpoints.
![Page 27: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/27.jpg)
More Keeping Track
For every candidate midpoint m, store the substring up to m.
Store prefix up to current character
Store everything forward and backward (not really necessary)
![Page 28: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/28.jpg)
Space Needs
Checkpointing not too bad.
Storing midpoints is potentially a problem.
We could be storing up to linear midpoints.
More on midpoint storage later.
![Page 29: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/29.jpg)
“Growing” A Palindrome
When we first notice a long palindrome, its size is exactly the same as the sliding window.
As we go, we “grow” our palindrome.
Once we can't grow anymore, we report it in terms of its
- Midpoint (we need to be exact)
- Length (we can underestimate a bit)
![Page 30: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/30.jpg)
“Growing” A Palindrome
The blue box is a known candidate palindrome centered at point m. We would like to grow this palindrome if possible.
This can only be done when we are at point m+d, where m-d is a checkpoint.
m-d m m+d
![Page 31: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/31.jpg)
“Growing” A Palindrome
We can reconstruct the string from a midpoint m to any checkpoint that comes before it (say at distance d).
At location m+d, we check the d spots before and after m: is P' reverse of P?
m-d m m+d
P' P
![Page 32: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/32.jpg)
Approximation
Any palindrome we detect necessarily starts at a checkpoint.
If the left endpoint of a palindrome falls between two checkpoints, the portion until the first checkpoint is missed.
![Page 33: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/33.jpg)
Approximation
Any palindrome we detect necessarily starts at a checkpoint.
If the left endpoint of a palindrome falls between two checkpoints, the portion until the first checkpoint is missed.
![Page 34: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/34.jpg)
Approximation Analysis
The distance between successive checkpoints is ε√n, which is an upper bound on the additive error.
![Page 35: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/35.jpg)
How Much Space?
We store O(√n/ε) fingerprints for everything except the midpoints.
Midpoints need to be stored as long as the palindrome around them is growing. There could be a linear number.
If any point is covered by a constant number of palindromes, we can process them separately.
It is possible that each character is in a linear number of palindromes. BAD!
![Page 36: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/36.jpg)
How Much Space?
If a point lies under many palindromes, these palindromes must be overlapping in a major way.
In pattern matching, overlaps are well understood -- they can occur in very specific ways and overlapping patterns can be compressed due to periodicity.
Overlapping palindromes show a very distinct pattern as well.
![Page 37: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/37.jpg)
Overlapping Palindromes
ABBAABBAABBAABBAABBAABBAABBAABBA
Palindromes cannot overlap arbitrarily.
If they do, they show a periodic pattern.
![Page 38: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/38.jpg)
Simple Example on Patterns
On general strings, studied in [PP,EJ,GB]
A B C D B C D B C D B B C D B C D B C K L
Simplified view: a pattern can overlap with another copy of itself either at periodic intervals, or at most once.
![Page 39: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/39.jpg)
More on Overlaps
A B C D B C D B C D B B C D B C D B C K L
Closely spaced (n/2 or closer) overlaps are indicators of a periodic string.
A periodic string can be summarized as:
Length, period/length of period, #repeats, suffix
(10, BCD, 3, B).
Then we can reconstruct substrings of the string on the fly.
![Page 40: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/40.jpg)
What about Overlapping Palindromes ?
A run is a contiguous sequence of midpoints with “small” distance between them.
A run must have the following form:
w w' w w' w w' w w'...
Where w is a short substring and w' is its reverse.
A run can be remembered and reconstructed on the fly using constant space.
![Page 41: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/41.jpg)
So, Ultimately...
Short palindromes: they fit in the sliding window,
Long palindromes, one of two cases:
They are far apart and we don't have too many; we can process them in O(1) space
They are close together, then they form a run; we can store in O(1) space again.
In either case we do not need to keep too many midpoints.
![Page 42: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/42.jpg)
Final Theorem
We can return all palindromes in stream S of length n in one pass using √n/ε space, where the lengths of the palindromes are underestimated by at most ε√n.
![Page 43: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/43.jpg)
Outline
Preliminaries, observations An additive-error approximation An exact algorithm A multiplicative error approximation A quick look at a lower bound
![Page 44: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/44.jpg)
What Can We Obtain from One More Pass?
Adding one more pass to our algorithm yields an exact algorithm that returns the following in O(√n) space:
A value lmax
which is the length of the longest
palindrome in S
All palindromes of length lmax
in S.
![Page 45: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/45.jpg)
An Exact Algorithm
Recall: our error due to left endpoints falling between checkpoints.
To fix this error, we need to remember this section that we never track.
Remember first turquoise, compare with second turquoise.
![Page 46: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/46.jpg)
Outline of Exact Algorithm
During the first pass, make note of palindromes that span the largest number of checkpoints.
During the second pass, pay more attention to each such palindrome: remember the intervals at both their ends (for runs, it suffices to remember the palindrome in the middle only).
Calculating the lengths exactly this way will not increase asymptotic space.
![Page 47: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/47.jpg)
Outline
Preliminaries, observations An additive-error approximation An exact algorithm A multiplicative error approximation A quick look at a lower bound
![Page 48: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/48.jpg)
A Logspace Algorithm
A slightly different question:
Find the (approximately) longest palindrome in stream S of length n.
Accuracy: of length at least lmax
/(1+ε)
in space O(log n/εlog(1+ε)).
We may not return the longest palindrome, but one which is very close.
![Page 49: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/49.jpg)
Intuition
Why is the previous algorithm space inefficient? It keeps track of many checkpoints.
If we reduce the number of checkpoints to logarithmic, additive error will jump to n/log n.
We will space checkpoints at exponentially dropping intervals as distance from current location grows.
![Page 50: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/50.jpg)
Exponentially Increasing Intervals
Technique used in many disguises in approximation algorithms:
As the potential length of a palindrome grows, so does the size of allowed multiplicative error. We will thus use sparser checkpoints for longer palindromes.
![Page 51: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/51.jpg)
Checkpoint Layers:X
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x S
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Level 1
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Level 2
x x x x x x x x xx x x x x xx x x x x x x x x x x x x x x x x x x x Level 3
x x x x x x x x x x x x x x x x x x x x x x x x x x x x Level 4
x x x xx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Level 5
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Level 6
![Page 52: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/52.jpg)
Space Use
In each layer we have four checkpoints.
Palindromes in each layer can be compressed as before (checkpointing is the main reason for space usage)
We have a logarithmic number of layers.
Space required is O(log n).
![Page 53: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/53.jpg)
Outline
Preliminaries, observations An additive-error approximation An exact algorithm A multiplicative error approximation A quick look at a lower bound
![Page 54: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/54.jpg)
Lower Bound
Additive √n-approximation to the longest palindrome requires √n space.
How?
For deterministic, generate a distribution whose inputs need to be separated.
Use Yao's technique to convert into randomized lower bound.
![Page 55: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/55.jpg)
Wish List/Future Work
A simpler technique exists which does not change complexity.
Palindromes with mismatches: what we would like for real applications. Hamming, and finally, Edit Distance.
Other structures than palindromes/generalized palindromes.
![Page 56: Palindrome Recognition in the Streaming Modeldimacs.rutgers.edu/Workshops/ParallelAlgorithms/... · Properties of Palindromes P is a palindrome (eg AABBACCDDCCABBAA)-- P consists](https://reader033.vdocuments.us/reader033/viewer/2022051812/602992893b5f6072534dff10/html5/thumbnails/56.jpg)
Thank youoy knahT