A Linear Time Algorithm for Seeds Computation€¦ · A Linear Time Algorithm for Seeds Computation...

Preview:

Citation preview

A Linear Time Algorithmfor Seeds Computation

Tomasz Kociumaka, Marcin Kubica, JakubRadoszewski, Wojciech Rytter, Tomasz Waleń

University of Warsaw

LSD 2012 London, February 9, 2012

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 1/24

Periodicity and quasiperiodicity

Periodicity:

a a a a a a a a a a a ab b b b

a a a b

One of the key concepts in text algorithms.

A

a a a a a a a a a a a a ab b b b bb

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 2/24

Periodicity and quasiperiodicity

Periodicity:

a a a a a a a a a a a ab b b ba a a b

One of the key concepts in text algorithms.

A

a a a a a a a a a a a a ab b b b bb

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 2/24

Periodicity and quasiperiodicity

Periodicity:

a a a a a a a a a a a ab b b ba a a b

Quasiperiodicity:

a a a a a a a a a a a a ab b b b

bb

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 2/24

Periodicity and quasiperiodicity

Periodicity:

a a a a a a a a a a a ab b b ba a a b

Quasiperiodicity:

a a a a a a a a a a a a ab b b b bb

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 2/24

Covers and seeds

Cover:

a a a a a a a a a a a ab b b b b ba b b

Each letter of the word is covered by an occurrenceof the cover.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 3/24

Covers and seeds

Cover:

a a a a a a a a a a a ab b b b b ba b b

Each letter of the word is covered by an occurrenceof the cover.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 3/24

Covers and seeds

Seed:

a a a a a a a a a a a ab b b b b b

a b b

Each letter of the word is covered by an occurrenceof the seed. The occurrences can be external.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 3/24

Covers and seeds

Seed:

a a a a a a a a a a a ab b b b b b

a b b

Each letter of the word is covered by an occurrenceof the seed. The occurrences can be external.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 3/24

The main problem

Problem (Shortest-Seed)Given a word w of length n over an alphabet Σ,compute the shortest seed of w.

Problem (All-Seeds)Given a word w of length n over an alphabet Σ,compute an O(n)-sized representation of all theseeds of w.

Theorem (Our result)

The All-Seeds Problem for Σ ={

0, 1, . . . , nO(1)}

can be solved in O(n) time.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 4/24

The main problem

Problem (Shortest-Seed)Given a word w of length n over an alphabet Σ,compute the shortest seed of w.

Problem (All-Seeds)Given a word w of length n over an alphabet Σ,compute an O(n)-sized representation of all theseeds of w.

Theorem (Our result)

The All-Seeds Problem for Σ ={

0, 1, . . . , nO(1)}

can be solved in O(n) time.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 4/24

The main problem

Problem (Shortest-Seed)Given a word w of length n over an alphabet Σ,compute the shortest seed of w.

Problem (All-Seeds)Given a word w of length n over an alphabet Σ,compute an O(n)-sized representation of all theseeds of w.

Theorem (Our result)

The All-Seeds Problem for Σ ={

0, 1, . . . , nO(1)}

can be solved in O(n) time.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 4/24

Background

Seeds were introduced in 1993 by Iliopoulos,Moore & Park.In the same paper O(n log n)-time algorithmfor the All-Seeds Problem over fixed-sizealphabet was given.

No o(n log n) algorithm even for theShortest-Seed Problem for binary alphabet upto now, despite considerable effort given forthis problem. (Smyth, 2000).

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 5/24

Background

Seeds were introduced in 1993 by Iliopoulos,Moore & Park.In the same paper O(n log n)-time algorithmfor the All-Seeds Problem over fixed-sizealphabet was given.No o(n log n) algorithm even for theShortest-Seed Problem for binary alphabet upto now, despite considerable effort given forthis problem. (Smyth, 2000).

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 5/24

Background (cont’d)

An O(log n)-time PRAM algorithm forn processors, Ben-Amran et al., 1994.

For covers linear algorithms for similarproblems are known:

shortest covers of each prefix (Breslauer, 1992)all covers (Moore & Smyth, 1994)

Variants of seeds have been studied:approximate seeds (Christodoulakis et al., 2003)λ-seeds (Qing, Hui & Iliopoulos, 2006)

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 6/24

Background (cont’d)

An O(log n)-time PRAM algorithm forn processors, Ben-Amran et al., 1994.For covers linear algorithms for similarproblems are known:

shortest covers of each prefix (Breslauer, 1992)all covers (Moore & Smyth, 1994)

Variants of seeds have been studied:approximate seeds (Christodoulakis et al., 2003)λ-seeds (Qing, Hui & Iliopoulos, 2006)

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 6/24

Background (cont’d)

An O(log n)-time PRAM algorithm forn processors, Ben-Amran et al., 1994.For covers linear algorithms for similarproblems are known:

shortest covers of each prefix (Breslauer, 1992)all covers (Moore & Smyth, 1994)

Variants of seeds have been studied:approximate seeds (Christodoulakis et al., 2003)λ-seeds (Qing, Hui & Iliopoulos, 2006)

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 6/24

Constraints for seeds

Two different types of constraintsBorder constraints, easier

Maxgap constrains, harder

a a a a a a a a a a a ab b b b b

≤ 5

≤ 5

Maxgap is a maximal distance between the starting positionsof two consecutive occurrences of a given substring.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 7/24

Constraints for seeds

Two different types of constraintsBorder constraints, easierMaxgap constrains, harder

a a a a a a a a a a a ab b b b b

≤ 5

≤ 5

Maxgap is a maximal distance between the starting positionsof two consecutive occurrences of a given substring.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 7/24

Quasiseeds

The All-Seeds Problem can be linearly reducedto computing the maxgaps of all substrings(encoded in a suffix tree).No o(n log n) algorithm known.

Definition (Quasiseed)A substring v is a quasiseed of w if there are lessthan |v | letters both before its first occurrence andafter the last one and each letter between those twooccurrences is covered by an occurrence of v .

a a a a a a a a a a a ab b b b b b

all letters covered< 5

< 5

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 8/24

Quasiseeds

The All-Seeds Problem can be linearly reducedto computing the maxgaps of all substrings(encoded in a suffix tree).No o(n log n) algorithm known.

Definition (Quasiseed)A substring v is a quasiseed of w if there are lessthan |v | letters both before its first occurrence andafter the last one and each letter between those twooccurrences is covered by an occurrence of v .

a a a a a a a a a a a ab b b b b b

all letters covered< 5

< 5

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 8/24

Useful properties of quasiseeds

An O(n) representation on the suffix tree.

v

a

a

abaaaaa

non-quasiseeds

quasiseeds

aaaa aaaaa aaaaaa aaaaaaab b b

aaa aaaaab

aaa aaab

A family of ranges represented by the lower end(explicit node) and the depth of the upper end.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 9/24

Useful properties of quasiseeds

An O(n) representation on the suffix tree.

v

a

a

abaaaaa

non-quasiseeds

quasiseeds

aaaa aaaaa aaaaaa aaaaaaab b b

aaa aaaaab

aaa aaab

A family of ranges represented by the lower end(explicit node) and the depth of the upper end.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 9/24

Useful properties of quasiseeds (cont’d)

Lemma (Restricted-Quasiseeds)Given an integer d and a word w of length n, therepresentation of all quasiseeds of length in{d , d + 1, . . . , 2d} can be found in O(n) time.

The All-Seeds Problem can be linearly reducedto computing (the representation of) allquasiseeds.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 10/24

Useful properties of quasiseeds (cont’d)

Lemma (Restricted-Quasiseeds)Given an integer d and a word w of length n, therepresentation of all quasiseeds of length in{d , d + 1, . . . , 2d} can be found in O(n) time.

The All-Seeds Problem can be linearly reducedto computing (the representation of) allquasiseeds.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 10/24

Main problem

Problem (All-Quasiseeds)Given a word w of length n, compute therepresentation of all its quasiseeds.

Our solution is a recursive algorithm of a rathernonstandard structure.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 11/24

Main problem

Problem (All-Quasiseeds)Given a word w of length n, compute therepresentation of all its quasiseeds.

Our solution is a recursive algorithm of a rathernonstandard structure.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 11/24

Structure of the algorithm

Interval staircase (parametrized by an integer m).

w :

≥ 2m≥ 2m

Lemma (Short Quasiseeds)A substring v of length ≤ m is a quasiseed of w ifand only if it is a quasiseed of each substringcorresponding to an interval of the staircase.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 12/24

Structure of the algorithm

Interval staircase (parametrized by an integer m).

w :

≥ 2m

≥ 2m

Lemma (Short Quasiseeds)A substring v of length ≤ m is a quasiseed of w ifand only if it is a quasiseed of each substringcorresponding to an interval of the staircase.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 12/24

Structure of the algorithm

Interval staircase (parametrized by an integer m).

w :

≥ 2m≥ 2m

Lemma (Short Quasiseeds)A substring v of length ≤ m is a quasiseed of w ifand only if it is a quasiseed of each substringcorresponding to an interval of the staircase.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 12/24

Structure of the algorithm

Interval staircase (parametrized by an integer m).

w :

≥ 2m≥ 2m

Lemma (Short Quasiseeds)A substring v of length ≤ m is a quasiseed of w ifand only if it is a quasiseed of each substringcorresponding to an interval of the staircase.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 12/24

Structure of the algorithm (cont’d)

The total length of the intervals in a staircase(size of the staircase) is at least n.

If it were e.g. ≤ 12n, the recursion could yield alinear algorithm.We need to reduce the staircase.

not needed

=w :

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 13/24

Structure of the algorithm (cont’d)

The total length of the intervals in a staircase(size of the staircase) is at least n.If it were e.g. ≤ 12n, the recursion could yield alinear algorithm.

We need to reduce the staircase.

not needed

=w :

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 13/24

Structure of the algorithm (cont’d)

The total length of the intervals in a staircase(size of the staircase) is at least n.If it were e.g. ≤ 12n, the recursion could yield alinear algorithm.We need to reduce the staircase.

not needed

=w :

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 13/24

Structure of the algorithm (cont’d)

The total length of the intervals in a staircase(size of the staircase) is at least n.If it were e.g. ≤ 12n, the recursion could yield alinear algorithm.We need to reduce the staircase.

not needed

=w :

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 13/24

Structure of the algorithm (cont’d)

Outline:1 Find an appropriate reduced staircase2 Find the long quasiseeds (non-recursively)3 Find the short quasiseeds (by recursive calls)4 Merge the results of those calls

Main issueHow to find an appropriate staircase such that

the reduced staircase is small,long quasiseeds can be found in O(n).

Due to the Restricted-Quasiseeds Lemma,m = Θ(n) would suffice for the second condition.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 14/24

Structure of the algorithm (cont’d)

Outline:1 Find an appropriate reduced staircase2 Find the long quasiseeds (non-recursively)3 Find the short quasiseeds (by recursive calls)4 Merge the results of those calls

Main issueHow to find an appropriate staircase such that

the reduced staircase is small,long quasiseeds can be found in O(n).

Due to the Restricted-Quasiseeds Lemma,m = Θ(n) would suffice for the second condition.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 14/24

Structure of the algorithm (cont’d)

Outline:1 Find an appropriate reduced staircase2 Find the long quasiseeds (non-recursively)3 Find the short quasiseeds (by recursive calls)4 Merge the results of those calls

Main issueHow to find an appropriate staircase such that

the reduced staircase is small,long quasiseeds can be found in O(n).

Due to the Restricted-Quasiseeds Lemma,m = Θ(n) would suffice for the second condition.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 14/24

f -factorization

A variant of a well known LZ-factorization

Definition (f -factorization)An f -factorization f1f2 . . . fk of w is constructedgreedily: fi is either just the first occurrence of aletter or the longest prefix of the remaining suffixthat is a substring of f1 . . . fi−1.

a a a a a a a a ab b b b b b c

Theorem (Crochemore, 1983; Crochemore et al.2009; Crochemore, Tischler 2011)The f -factorization over integer alphabet can becomputed in O(n) time.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 15/24

f -factorization

Definition (f -factorization)An f -factorization f1f2 . . . fk of w is constructedgreedily: fi is either just the first occurrence of aletter or the longest prefix of the remaining suffixthat is a substring of f1 . . . fi−1.

a a a a a a a a ab b b b b b c

Theorem (Crochemore, 1983; Crochemore et al.2009; Crochemore, Tischler 2011)The f -factorization over integer alphabet can becomputed in O(n) time.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 15/24

f -staircase

Intuition:Stairs lying within a factor are not needed.

In reduced staircase no stairs should overlap.

w :

> 4m

2m 2m

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 16/24

f -staircase

Intuition:Stairs lying within a factor are not needed.In reduced staircase no stairs should overlap.

w :

> 4m

2m 2m

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 16/24

f -staircase

Intuition:Stairs lying within a factor are not needed.In reduced staircase no stairs should overlap.

w :

> 4m

2m 2m

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 16/24

f -staircase

Intuition:Stairs lying within a factor are not needed.In reduced staircase no stairs should overlap.

w :

> 4m

2m 2m

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 16/24

f -staircase

Intuition:Stairs lying within a factor are not needed.In reduced staircase no stairs should overlap.

w :

> 4m

2m 2m

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 16/24

f -staircase

Intuition:Stairs lying within a factor are not needed.In reduced staircase no stairs should overlap.

w :

> 4m

2m 2m

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 16/24

f -staircase

Intuition:Stairs lying within a factor are not needed.In reduced staircase no stairs should overlap.

w :

> 4m

2m 2m

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 16/24

Quasiseeds, staircase and factorization

LemmaLet F be the f -factorization of w (|w | = n) and vbe a quasiseed of w, |v | < n

16 . Then at most 2n|v | − 1

factors from F lie within [2n16 ,15n16 ].

2n16

n16g ≤ 2n|v | − 1 middle factors

The size of the f -staircase is at most3n16 + 4m(g + 1).

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 17/24

Quasiseeds, staircase and factorization

LemmaLet F be the f -factorization of w (|w | = n) and vbe a quasiseed of w, |v | < n

16 . Then at most 2n|v | − 1

factors from F lie within [2n16 ,15n16 ].

2n16

n16g ≤ 2n|v | − 1 middle factors

The size of the f -staircase is at most3n16 + 4m(g + 1).

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 17/24

Quasiseeds, staircase and factorization

LemmaLet F be the f -factorization of w (|w | = n) and vbe a quasiseed of w, |v | < n

16 . Then at most 2n|v | − 1

factors from F lie within [2n16 ,15n16 ].

2n16

n16g ≤ 2n|v | − 1 middle factors

The size of the f -staircase is at most3n16 + 4m(g + 1).

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 17/24

Key lemmas

The algorithm does not know the quasiseed, butcan find the number of middle factors.

Let g be the number of middle factors of the wordw , |w | = n > 48.

LemmaThere is no quasiseed v of w such that:

2ng+1 < |v | ≤

n16 .

LemmaIf m ≤ n

16(g+1) then the size of the f -staircase is< n2 .

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 18/24

Key lemmas

The algorithm does not know the quasiseed, butcan find the number of middle factors.Let g be the number of middle factors of the wordw , |w | = n > 48.

LemmaThere is no quasiseed v of w such that:

2ng+1 < |v | ≤

n16 .

LemmaIf m ≤ n

16(g+1) then the size of the f -staircase is< n2 .

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 18/24

Key lemmas

The algorithm does not know the quasiseed, butcan find the number of middle factors.Let g be the number of middle factors of the wordw , |w | = n > 48.

LemmaThere is no quasiseed v of w such that:

2ng+1 < |v | ≤

n16 .

LemmaIf m ≤ n

16(g+1) then the size of the f -staircase is< n2 .

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 18/24

Final structure of the algorithm

1 Find an f -factorization and the number ofmiddle factors (g)

2 m :=⌊

n16(g+1)

⌋3 Compute the f -staircase4 Compute the long quasiseeds (belonging to two

ranges of fixed ratio)5 If m > 0 compute the short quasiseeds by

recursive calls and merge the results

Merging needs some more attention.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 19/24

Final structure of the algorithm

1 Find an f -factorization and the number ofmiddle factors (g)

2 m :=⌊

n16(g+1)

⌋3 Compute the f -staircase4 Compute the long quasiseeds (belonging to two

ranges of fixed ratio)5 If m > 0 compute the short quasiseeds by

recursive calls and merge the results

Merging needs some more attention.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 19/24

Representation of quasiseeds

An O(n) representation on the suffix tree.

v

a

a

abaaaaa

non-quasiseeds

quasiseeds

aaaa aaaaa aaaaaa aaaaaaab b b

aaa aaaaab

aaa aaab

A family of ranges represented by the lower end(explicit node) and the depth of the upper end.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 20/24

Merging

We have to find the intersection of the sets ofquasiseeds of some substrings of w .

The quasiseeds of each substring are reportedas a family of ranges on the suffix tree of thissubstring.

We want the result to be on the suffix tree ofthe whole w .No direct relation between (explicit) nodes ofthose suffix trees and the suffix tree of w .But relation between leaves is straightforward.Solution: represent a range by a leaf with apair of depths.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 21/24

Merging

We have to find the intersection of the sets ofquasiseeds of some substrings of w .

The quasiseeds of each substring are reportedas a family of ranges on the suffix tree of thissubstring.We want the result to be on the suffix tree ofthe whole w .

No direct relation between (explicit) nodes ofthose suffix trees and the suffix tree of w .But relation between leaves is straightforward.Solution: represent a range by a leaf with apair of depths.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 21/24

Merging

We have to find the intersection of the sets ofquasiseeds of some substrings of w .

The quasiseeds of each substring are reportedas a family of ranges on the suffix tree of thissubstring.We want the result to be on the suffix tree ofthe whole w .No direct relation between (explicit) nodes ofthose suffix trees and the suffix tree of w .

But relation between leaves is straightforward.Solution: represent a range by a leaf with apair of depths.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 21/24

Merging

We have to find the intersection of the sets ofquasiseeds of some substrings of w .

The quasiseeds of each substring are reportedas a family of ranges on the suffix tree of thissubstring.We want the result to be on the suffix tree ofthe whole w .No direct relation between (explicit) nodes ofthose suffix trees and the suffix tree of w .But relation between leaves is straightforward.

Solution: represent a range by a leaf with apair of depths.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 21/24

Merging

We have to find the intersection of the sets ofquasiseeds of some substrings of w .

The quasiseeds of each substring are reportedas a family of ranges on the suffix tree of thissubstring.We want the result to be on the suffix tree ofthe whole w .No direct relation between (explicit) nodes ofthose suffix trees and the suffix tree of w .But relation between leaves is straightforward.Solution: represent a range by a leaf with apair of depths.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 21/24

Merging cont’d

The (leaf, depth, depth) representation is goodfor transferring only.

We need to go back to the original one. It canbe done with the aid of the following queries

Ancestor QueriesGiven an integer h and a leaf v , find the highestexplicit ancestor of v , whose depth is ≥ h.

Any q such queries can be answered offline inO(n + q) time.Once we’re back in the original representation,finding the intersection is elementary.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 22/24

Merging cont’d

The (leaf, depth, depth) representation is goodfor transferring only.We need to go back to the original one. It canbe done with the aid of the following queries

Ancestor QueriesGiven an integer h and a leaf v , find the highestexplicit ancestor of v , whose depth is ≥ h.

Any q such queries can be answered offline inO(n + q) time.Once we’re back in the original representation,finding the intersection is elementary.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 22/24

Merging cont’d

The (leaf, depth, depth) representation is goodfor transferring only.We need to go back to the original one. It canbe done with the aid of the following queries

Ancestor QueriesGiven an integer h and a leaf v , find the highestexplicit ancestor of v , whose depth is ≥ h.

Any q such queries can be answered offline inO(n + q) time.

Once we’re back in the original representation,finding the intersection is elementary.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 22/24

Merging cont’d

The (leaf, depth, depth) representation is goodfor transferring only.We need to go back to the original one. It canbe done with the aid of the following queries

Ancestor QueriesGiven an integer h and a leaf v , find the highestexplicit ancestor of v , whose depth is ≥ h.

Any q such queries can be answered offline inO(n + q) time.Once we’re back in the original representation,finding the intersection is elementary.

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 22/24

Conclusions

We have presented a linear algorithm for theAll-Quasiseeds Problem (over integeralphabet).This yields a linear algorithm for the All-SeedsProblem (over integer alphabet).

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 23/24

Thank you for your attention!

Tomasz Kociumaka A Linear Time Algorithm for Seeds Computation 24/24