Testing Quasiperiodicity

📅 2025-08-04
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This paper addresses the string covering problem: given a string (S), determine whether there exists a substring (C) (a *cover*) of length less than (|S|) such that every position in (S) is covered by at least one occurrence of (C). This NP-hard problem is tackled with the first streaming-capable, near-linear-time algorithm. Our method combines KMP and suffix array techniques for efficient pattern matching, achieving (O(n log n)) preprocessing time and (O(1)) amortized query time. The algorithm uses only (O(n)) space—significantly improving upon prior (O(n^2)) solutions—and enables real-time coverage verification on massive datasets for the first time. Experiments on real-world text and genomic sequences demonstrate speedups of two to three orders of magnitude. The approach provides both a scalable theoretical framework and a practical tool for analyzing periodic structures in strings.

Technology Category

Application Category

📝 Abstract
A cover (or quasiperiod) of a string $S$ is a shorter string $C$ such that every position of $S$ is contained in some occurrence of $C$ as a substring. The notion of covers was introduced by Apostolico and Ehrenfeucht over 30 years ago [Theor. Comput. Sci. 1993] and it has received significant attention from the combinatorial pattern matching community. In this note, we show how to efficiently test whether $S$ admits a cover. Our tester can also be translated into a streaming algorithm.
Problem

Research questions and friction points this paper is trying to address.

Efficiently test if a string has a cover
Determine quasiperiodicity of a given string
Streaming algorithm for cover detection
Innovation

Methods, ideas, or system contributions that make the work stand out.

Efficient quasiperiodicity testing algorithm
Streaming algorithm for cover detection
Combinatorial pattern matching technique