Papers by Duncan Adamson
10 paper(s) by this author
· All BibTeX
$2$-word-$π$-representable Graphs
This paper investigates the new notion of $2$-word-$π$-repre\-sentable graphs: the nodes of the graph correspond to the letters of the two words and there exists an edge between two nodes if the projections of any two letters of both words are equal. The benefit of not only using one word for a representation as introduced by Kitaev and Pyatkin is that every graph is $2$-word-$π$-representable. We present an algorithm that returns two representing words for any graph. Aside, we show that every permutation graph is representable by two $1$-uniform words and give constructions how graph operations on $2$-word-$π$-representable graphs can be realised on their representing words which give further insights into the representation of cographs.
(Sets of ) Complement Scattered Factors
Starting in the 1970s with the fundamental work of Imre Simon, \emph{scattered factors} (also known as subsequences or scattered subwords) have remained a consistently and heavily studied object. The majority of work on scattered factors can be split into two broad classes of problems: given a word, what information, in the form of scattered factors, are contained, and which are not. In this paper, we consider an intermediary problem, introducing the notion of \emph{complement scattered factors}. Given a word $w$ and a scattered factor $u$ of $w$, the complement scattered factors of $w$ with regards to $u$, $C(w, u)$, is the set of scattered factors in $w$ that can be formed by removing any embedding of $u$ from $w$. This is closely related to the \emph{shuffle} operation in which two words are intertwined, i.e., we extend previous work relating to the shuffle operator, using knowledge about scattered factors. Alongside introducing these sets, we provide combinatorial results on the size of the set $C(w, u)$, an algorithm to compute the set $C(w, u)$ from $w$ and $u$ in $O(\vert w \vert \cdot \vert u \vert \binom{w}{u})$ time, where $\binom{w}{u}$ denotes the number of embeddings of $u$ into $w$, an algorithm to construct $u$ from $w$ and $C(w, u)$ in $O(\vert w \vert^2 \binom{\vert w \vert}{\vert w \vert - \vert u \vert})$ time, and an algorithm to construct $w$ from $u$ and $C(w, u)$ in $O(\vert u \vert \cdot \vert w \vert^{\vert u \vert + 1})$ time.
Word Chain Generators for Prefix Normal Words
In 2011, Fici and Lipták introduced prefix normal words. A binary word is prefix normal if it has no factor (substring) that contains more occurrences of the letter 1 than the prefix of the same length. Among the open problems regarding this topic are the enumeration of prefix normal words and efficient testing methods. We show a range of characteristics of prefix normal words. These include properties of factors that are responsible for a word not being prefix normal. With word chains and generators, we introduce new ways of relating words of the same length to each other.
Tight Bounds for the Number of Absent Subsequences
A {\em subsequence} of a word $w$ is a word $u$ that can be obtained by deleting some letters from $w$ while maintaining the relative order of the remaining letters, e.g., $\mathtt{lala}$ is a subsequence of $\mathtt{alfalfa}$. A word, over some alphabet $Σ$, which has all possible words of length $ι$ over $Σ$ as subsequences is called $ι$-universal, and the largest $ι$ for which this holds is called the universality index of $w$, and denoted $ι(w)$. Moreover, words that are not subsequences of $w$ are called absent subsequences (AS) of $w$, and their investigation was started in (Kosche et al., 2022). In this paper, we present tight bounds on the number of AS of a given length $k$ among all words with the same universality index $ι$. For both the lower and upper bound, we construct words that have, respectively, a minimal and maximal number of absent subsequences of the respective length $k$, and, in the case of the lower bound, we provide the exact number of missing subsequences as a closed form. Finally, we present efficient enumeration algorithms for the set of subsequences of given length of a word: we give a novel, optimal enumeration algorithm with output linear delay of this set of subsequences, with preprocessing time $O(|w|)$, which is further improved to an incremental enumeration algorithm with $O(1)$ delay of this set of subsequences, with preprocessing time $O(|w|)$.
Rollercoasters with Plateaus
In this paper we investigate the problem of detecting, counting, and enumerating (generating) all maximum length plateau-$k$-rollercoasters appearing as a subsequence of some given word (sequence, string), while allowing for plateaus. We define a plateau-$k$-rollercoaster as a word consisting of an alternating sequence of (weakly) increasing and decreasing \emph{runs}, with each run containing at least $k$ \emph{distinct} elements, allowing the run to contain multiple copies of the same symbol consecutively. This differs from previous work, where runs within rollercoasters have been defined only as sequences of distinct values. Here, we are concerned with rollercoasters of \emph{maximum} length embedded in a given word $w$, that is, the longest rollercoasters that are a subsequence of $w$.
We present algorithms allowing us to determine the longest plateau-$k$-roller\-coasters appearing as a subsequence in any given word $w$ of length $n$ over an alphabet of size $σ$ in $O(n σk)$ time, to count the number of plateau-$k$-rollercoasters in $w$ of maximum length in $O(n σk)$ time, and to output all of them with $O(n)$ delay after $O(n σk)$ preprocessing. Furthermore, we present an algorithm to determine the longest common plateau-$k$-rollercoaster within a set of words in $O(N k σ)$ where $N$ is the product of all word lengths within the set.
Structural and Combinatorial Properties of 2-swap Word Permutation Graphs
In this paper, we study the graph induced by the $\textit{2-swap}$ permutation on words with a fixed Parikh vector. A $2$-swap is defined as a pair of positions $s = (i, j)$ where the word $w$ induced by the swap $s$ on $v$ is $v[1] v[2] \dots v[i - 1] v[j] v[i+1] \dots v[j - 1] v[i] v[j + 1] \dots v[n]$. With these permutations, we define the $\textit{Configuration Graph}$, $G(P)$ defined over a given Parikh vector. Each vertex in $G(P)$ corresponds to a unique word with the Parikh vector $P$, with an edge between any pair of words $v$ and $w$ if there exists a swap $s$ such that $v \circ s = w$. We provide several key combinatorial properties of this graph, including the exact diameter of this graph, the clique number of the graph, and the relationships between subgraphs within this graph. Additionally, we show that for every vertex in the graph, there exists a Hamiltonian path starting at this vertex. Finally, we provide an algorithm enumerating these paths from a given input word of length $n$ with a delay of at most $O(\log n)$ between outputting edges, requiring $O(n \log n)$ preprocessing.
Ranking and Unranking k-subsequence universal words
A subsequence of a word $w$ is a word $u$ such that $u = w[i_1] w[i_2] , \dots w[i_{|u|}]$, for some set of indices $1 \leq i_1 < i_2 < \dots < i_k \leq |w|$. A word $w$ is $k$-subsequence universal over an alphabet $Σ$ if every word in $Σ^k$ appears in $w$ as a subsequence. In this paper, we provide new algorithms for $k$-subsequence universal words of fixed length $n$ over the alphabet $Σ= \{1,2,\dots, σ\}$. Letting $\mathcal{U}(n,k,σ)$ denote the set of $n$-length $k$-subsequence universal words over $Σ$, we provide:
* an $O(n k σ)$ time algorithm for counting the size of $\mathcal{U}(n,k,σ)$;
* an $O(n k σ)$ time algorithm for ranking words in the set $\mathcal{U}(n,k,σ)$;
* an $O(n k σ)$ time algorithm for unranking words from the set $\mathcal{U}(n,k,σ)$;
* an algorithm for enumerating the set $\mathcal{U}(n,k,σ)$ with $O(n σ)$ delay after $O(n k σ)$ preprocessing.
Ranking Binary Unlabelled Necklaces in Polynomial Time
Published
• View Publication
• BIB
Unlabelled Necklaces are an equivalence class of cyclic words under both the rotation (cyclic shift) and the relabelling operations. The relabelling of a word is a bijective mapping from the alphabet to itself. The main result of the paper is the first polynomial-time algorithm for ranking unlabelled necklaces of a binary alphabet. The time-complexity of the algorithm is $O(n^6 \log^2 n)$, where $n$ is the length of the considered necklaces. The key part of the algorithm is to compute the rank of any word with respect to the set of unlabelled necklaces by finding three other ranks: the rank over all necklaces, the rank over symmetric unlabelled necklaces, and the rank over necklaces with an enclosing labelling. The last two concepts are introduced in this paper.
Combinatorial Algorithms for Multidimensional Necklaces
A necklace is an equivalence class of words of length $n$ over an alphabet under the cyclic shift (rotation) operation. As a classical object, there have been many algorithmic results for key operations on necklaces, including counting, generating, ranking, and unranking. This paper generalises the concept of necklaces to the multidimensional setting. We define multidimensional necklaces as an equivalence classes over multidimensional words under the multidimensional cyclic shift operation. Alongside this definition, we generalise several problems from the one dimensional setting to the multidimensional setting for multidimensional necklaces with size $(n_1,n_2,...,n_d)$ over an alphabet of size $q$ including: providing closed form equations for counting the number of necklaces; an $O(n_1 \cdot n_2 \cdot ... \cdot n_d)$ time algorithm for transforming some necklace $w$ to the next necklace in the ordering; an $O((n_1 \cdot n_2 \cdot ... \cdot n_d)^5)$ time algorithm to rank necklaces (determine the number of necklaces smaller than $w$ in the set of necklaces); an $O((n_1\cdot n_2 \cdot ... \cdot n_d)^{6(d + 1)} \cdot \log^d(q))$ time algorithm to unrank multidimensional necklace (determine the $i^{th}$ necklace in the set of necklaces). Our results on counting, ranking, and unranking are further extended to the fixed content setting, where every necklace has the same Parikh vector, in other words every necklace shares the same number of occurrences of each symbol. Finally, we study the $k$-centre problem for necklaces both in the single and multidimensional settings. We provide strong approximation algorithms for solving this problem in both the one dimensional and multidimensional settings.
Ranking Bracelets in Polynomial Time
The main result of the paper is the first polynomial-time algorithm for ranking bracelets. The time-complexity of the algorithm is O(k^2 n^4), where k is the size of the alphabet and n is the length of the considered bracelets. The key part of the algorithm is to compute the rank of any word with respect to the set of bracelets by finding three other ranks: the rank over all necklaces, the rank over palindromic necklaces, and the rank over enclosing apalindromic necklaces. The last two concepts are introduced in this paper. These ranks are key components to our algorithm in order to decompose the problem into parts. Additionally, this ranking procedure is used to build a polynomial-time unranking algorithm.