Table of Contents
Fetching ...

Constant-Time Dynamic Enumeration of Word Infixes in a Regular Language

Antoine Amarilli, Sven Dziadek, Luc Segoufin

TL;DR

If the language L belongs to the class ZG and is extensible and is extensible, then dynamic enumeration of L-infixes can be achieved with a simple algorithm that ensures constant-time updates and constant delay, but not constant additional memory.

Abstract

For a fixed regular language $L$, the enumeration of $L$-infixes is the following task: we are given an input word $w = a_1 \cdots a_n$ and we must enumerate the infixes of $w$ that belong to $L$, i.e., the pairs $i \leq j$ such that $a_i \cdots a_j \in L$. We are interested in dynamic enumeration of $L$-infixes, where we must additionally support letter substitution updates on $w$ (e.g., "replace the $i$-th letter of $w$ by a letter $a$"). Each update changes the set of infixes to enumerate, and resets the enumeration state. We study for which regular languages $L$ we can perform dynamic enumeration of $L$-infixes in constant delay (i.e., the next infix is always produced in constant time) and constant additional memory throughout the enumeration, while supporting each update in constant time. We show that, for languages $L$ with a neutral letter, if the language $L$ belongs to the class ZG and is extensible (i.e., if $u \in L$ and $u$ is a factor of $v$ then $v \in L$), then dynamic enumeration of $L$-infixes can be achieved with a simple algorithm that ensures constant-time updates and constant delay, but not constant additional memory. Our main contribution is then to show an algorithm that additionally uses only constant additional memory, and applies to a more general class of semi-extensible ZG languages for which we give several equivalent characterizations. We further discuss whether our results can be generalized to larger language classes and show some (conditional) lower bounds.

Constant-Time Dynamic Enumeration of Word Infixes in a Regular Language

TL;DR

If the language L belongs to the class ZG and is extensible and is extensible, then dynamic enumeration of L-infixes can be achieved with a simple algorithm that ensures constant-time updates and constant delay, but not constant additional memory.

Abstract

For a fixed regular language , the enumeration of -infixes is the following task: we are given an input word and we must enumerate the infixes of that belong to , i.e., the pairs such that . We are interested in dynamic enumeration of -infixes, where we must additionally support letter substitution updates on (e.g., "replace the -th letter of by a letter "). Each update changes the set of infixes to enumerate, and resets the enumeration state. We study for which regular languages we can perform dynamic enumeration of -infixes in constant delay (i.e., the next infix is always produced in constant time) and constant additional memory throughout the enumeration, while supporting each update in constant time. We show that, for languages with a neutral letter, if the language belongs to the class ZG and is extensible (i.e., if and is a factor of then ), then dynamic enumeration of -infixes can be achieved with a simple algorithm that ensures constant-time updates and constant delay, but not constant additional memory. Our main contribution is then to show an algorithm that additionally uses only constant additional memory, and applies to a more general class of semi-extensible ZG languages for which we give several equivalent characterizations. We further discuss whether our results can be generalized to larger language classes and show some (conditional) lower bounds.
Paper Structure (23 sections, 4 theorems, 7 equations, 1 figure, 3 algorithms)

This paper contains 23 sections, 4 theorems, 7 equations, 1 figure, 3 algorithms.

Key Result

theorem 1

Let $L$ be a regular language.

Figures (1)

  • Figure 1: Right information: for every $a\in\Sigma$ and then for every $b\in\Sigma$

Theorems & Definitions (28)

  • theorem 1: Special case of Theorem 1.1 in amarilliICALP21
  • proof : Proof of \ref{['prp:zgupdates']}
  • definition 1: Extensible language
  • corollary 1
  • definition 2: Semi-extensible ZG language, algebraic definition
  • definition 3: Semi-extensible ZG language, operational definition
  • definition 4: Semi-extensible ZG language, self-contained definition
  • proof
  • proof
  • proof
  • ...and 18 more