1. Introduction
This is a Special Issue of the open-access journal Algorithms consisting of surveys in theoretical computer science. The call-for-papers invited original articles summarizing recent breakthroughs and/or describing the state of the art in any currently active research area related to algorithms, data structures, or computational complexity. Implementation-based surveys comparing the practical performance of various algorithms for a particular computational problem were also invited. A total of ten surveys were submitted to the Special Issue, each one addressing a different topic. After a thorough peer-review process by invited experts to ensure a high standard, four of the submitted surveys were finally accepted for publication in revised form. We hope that the surveys published here will be useful for active researchers, undergraduate and graduate students, and anyone else interested in theoretical computer science.
2. Contents
The first survey in the collection, written by A. Faragó [
1], reviews a tool from combinatorics known as the Lovász Local Lemma. The lemma says that a system of “almost” independent events, where each event only depends on a small number of the others, in some sense behaves just like a system of independent events. It is a probabilistic statement that can be used to prove deterministic theorems via the probabilistic method, and certain results in combinatorics are not known to be obtainable in any other way. To demonstrate how to use the lemma, detailed examples involving hypergraph coloring, disjoint paths,
k-SAT, independent sets in bounded-degree graphs, and packet scheduling in networks are provided. The survey also describes stronger versions of the original Lovász Local Lemma, the algorithmic version of it, and various recent extensions.
The second survey was written by M. R. Cappelle, L. R. Foulds, and H. J. Longo [
2]. It examines the fundamental problem of efficiently searching for a given value in a multi-dimensional real array to determine whether it belongs to the array or not. Here, the array is assumed to be monotone nondecreasing, i.e., its entries never decrease when moving away from the origin along any path parallel to an axis, and the search has to be realized as a sequence of comparisons between the sought value and appropriately selected positions in the array. The survey reviews several famous algorithms as well as lesser-known ones for the one-dimensional case (binary search, jump search, interpolation search, exponential search, and Fibonacci search), the two-dimensional case (saddleback search, Shen’s algorithm, and Bird’s algorithm), the three-dimensional case (Linial-Saks’ algorithm), and the higher-dimensional case (Cheng-Sun-Yin’s algorithm).
Hash tables can be implemented in many different ways, using different hash functions, techniques for handling collisions, and programming languages. The survey by S. Tapia-Fernández, D. García-García, and P. García-Hernandez [
3] contains an empirical comparison between various alternatives implemented by the authors themselves and others in Java, C++, and Python, and tested on a large number of carefully designed benchmark cases to evaluate look-up speeds, building speeds, removal speeds, and memory usage. Among other things, the authors have identified some inconsistencies between theoretically predicted look-up times and actual look-up times on modern real-world computers due to cache memory effects.
The fourth and final article is a survey by A. Jacob, D. Majumdar, and V. Raman [
4] about the crown decomposition technique and the Expansion Lemma from the field of parameterized complexity. The survey explains how these tools have been applied to obtain small kernels for graph algorithmic problems such as
Vertex Cover,
-
Coloring,
Longest Cycle,
p-
Component Order Connectivity,
Feedback Vertex Set, and
Cluster Vertex Deletion, and lists known results for many other related problems including
Triangle Packing,
d-
Path Vertex Cover,
Chordal Vertex Deletion,
Even Cycle Transversal,
Set Splitting, and
Maximum Internal Spanning Tree.