1. Introduction
The Kolmogorov complexity of a binary string x, denoted , is the minimal description length of x, i.e., it is the length of the shortest program (in a fixed universal programming system) that prints x. We analyze the possibility of modifying a string in an effective way in order to obtain a string with higher complexity, without increasing its length. Strings with high complexity exhibit good randomness properties and are potentially useful, because they can be employed in lieu of random bits in probabilistic algorithms. It is common to define the randomness deficiency of x as the difference (where is the length of x) and to say that the smaller the randomness deficiency is, the more random the string is. In this sense, we want to modify a string so that it becomes “more” random. As stated, the above task is impossible, because, clearly, any effective modification cannot increase the Kolmogorov complexity (at least not by more than a constant). If f is a computable function, , for every x. Consequently, we have to settle for a weaker solution and the one we consider is that of list approximation. List approximation consists in the construction of a list of objects guaranteed to contain at least one element having the desired property. Here, we try to obtain a stronger type of list approximation, in which, not just one, but most of the elements in the list have the desired property. More precisely, we study the following question.
Question. Is there a computable function which takes as input a string x and outputs a short list of strings, which are not longer than x, such that most of the elements in the list have complexity greater than ?
The formulation of the question rules out some trivial and non-interesting answers. First, the requirement that the list is “short” is necessary, because, otherwise, we can ignore the input
x and simply take all strings of length
n and most of them have complexity at least
, which is within
of the largest complexity of strings of length
n. Secondly, the restriction that the length is not increased is also necessary, because, otherwise, we can append to the input
x a random string and obtain, with high probability, a more complex string (see the discussion in
Section 2). These restrictions not only make the problem interesting, but also amenable to applications in which the input string and the modified strings need to be in a given finite set. The solution that we give can be readily adjusted to handle such applications.
There are several parameters to consider. The first one is the size of the list. The shorter the list is, the better the approximation is. Next, the increasing-complexity procedure that we seek does not work for all strings x. Let us recall that and, if x is a string of maximal complexity at its length, then there simply is no string of larger complexity at its length. In general, for strings x that have complexity close to , it is difficult to increase their complexity. Thus, a second parameter is the bound on the complexity of x for which the increasing-complexity procedure succeeds. The closer this bound is to , the better the procedure is. The third parameter is the complexity of the procedure. The procedure is required to be computable, but it is preferable if it is computable in polynomial time.
We show the following two results. The first one exhibits a computable list approximation for increasing the Kolmogorov complexity that works for any x with complexity .
Theorem 1 (Computable list of quadratic size for increasing the Kolmogorov complexity). There exists a computable function f that takes as input and a rational number and returns a list of strings of length at most with the following properties:
- 1.
The size of the list is ;
- 2.
If , then the fraction of the elements in the list have a Kolmogorov complexity larger than (where the constant hidden in depends on δ).
Whether the bound can be improved remains open. Further reducing the list size is also an interesting open question. We could not establish a lower bound and, as far as we currently know, it is possible that even a constant list size may be achievable.
In the next result, the complexity-increasing procedure runs in polynomial time in the following sense. The size of the list is only quasi-polynomial, but each string in the list is computed in polynomial time.
Theorem 2 (Polynomial-time computable list for increasing the Kolmogorov complexity). There exists a function f that takes as input and a constant rational number and returns a list of strings of length at most with the following properties:
- 1.
The size of the list is bounded by ;
- 2.
If , then fraction of the elements in the list have a Kolmogorov complexity larger than ;
- 3.
The function f is computable in polynomial time in the following sense: there is a polynomial time algorithm that takes as input and computes the i-th element in the list .
Remark 1. A preliminary version of this paper has appeared in STACS 2017 [1]. In that version, it was claimed that the result in Theorem 1 holds for all strings x with . The proof had a bug and we can only prove it for strings satisfying . The proof of Theorem 2 given here is different from that in [1]. Theorem 2 has better parameters than its analog in the preliminary version. Remark 2. Any procedure that constructs the approximation list can be converted into a probabilistic algorithm that does the same work and picks one random element from the list. The procedure in Theorem 2 can be converted into a polynomial-time probabilistic algorithm, which uses random bits to pick which element from the list to construct (see item 3 in the statement).
Vice-versa, a probabilistic algorithm can be converted into a list-approximation algorithm in the obvious way, i.e., by constructing the list that has as elements the outputs of the algorithm for all choices of the random coins.
Thus, a list-approximation algorithm , in which elements in the list have the desired property, is equivalent to a probabilistic algorithm that succeeds with probability . The number of random bits used by is the logarithm in base two of the size of the list produced by .
1.1. Basic Concepts and Notation
We recall the standard setup for Kolmogorov complexity. We fix an universal Turing machine U. The universality of U means that, for any Turing machine M, there exists a computable “translator” function t, such that, for all strings p, and . For the polynomial-time constructions, we also require that t is polynomial-time computable. If , we say that p is a program (or description) for x. The Kolmogorov complexity of the string x is . If p is a program for x and , we say that p is a c-short program for x.
1.2. Related Works
The problem of increasing the Kolmogorov complexity has been studied before by Buhrman, Fortnow, Newman and Vereshchagin [
2]. They show that there exists a polynomial-time computable
f that takes as input
x of length
n and returns a list of strings, all having length
n, such that, if
, then there exists
y in the list with
(this is Theorem 14 in [
2]). In the case of complexity conditioned by the string length, they show that it is even possible to compute in polynomial time a list of constant size. That is,
is a list with
strings of length
n and, if
, then it contains a string
y with
(this is Theorem 11 in [
2]). Our results are incomparable with the results in [
2]. On one hand, their results work for any input
x with complexity less than
, while, in Theorem 1, we only handle inputs with complexity at most
(and, in Theorem 2, the complexity of the input is required to be even lower). On the other hand, they only guarantee that one string in the output list has higher complexity than
x, while we guarantee this property for most strings in the output list and this can be viewed as a probabilistic algorithm with few random bits as explained in Remark 2.
This paper is inspired by recent list-approximation results regarding another problem in the Kolmogorov complexity, namely, the construction of short programs (or descriptions) for strings. Using a Berry paradox argument, it is easy to see that it is impossible to effectively construct a shortest program for
x (or, even a, say,
-short program for
x). Remarkably, Bauwens et al. [
3] show that effective list approximation for short programs is possible. There is an algorithm that, for some constant
c, takes as input
x and returns a list with
strings guaranteed to contain a
c-short program for
x. They also show a lower bound; The quadratic size of the list is minimal up to constant factors. Bauwens and Zimand [
4] consider a more general type of optimal compressor that goes beyond the standard Kolmogorov complexity and, using another type of pseudo-random function called
conductor, re-obtains the overhead of
. Theorem 2 directly uses results from the latter, namely, Theorem 3. Theorem 1 uses a novel construction, but some of the ideas are inspired from the papers mentioned above.
2. Technique and Proof Overview
We start by presenting an approach that probably comes to mind first. It does not work for inputs
x having a complexity very close to
, such as in Theorem 1 (for which we use a more complicated argument), but, combined with the results from [
4], it yields Theorem 2.
Given that we want to modify a string
x so that it becomes more complex, which, in a sense, means more random, a simple idea is to just append a random string
z to
x. Indeed, if we consider strings
z of length
c, then
, for most strings
z, provided that
c is large enough. Let us see why this is true. Let
and let
z be a string that satisfies the opposite inequality, that is,
Given a shortest program for
and a self-delimited representation of the integer
c, which is
bits long, we obtain a description of
x with at most
bits. Note that, in this way, from different
z’s satisfying (
1), we obtain different programs for
x that are
-short. By a theorem of Chaitin [
5] (also presented as Lemma 3.4.2 in [
6]), for any
d, the number of
d-short programs for
x is bounded by
. Thus, the number of strings
z satisfying (
1) is bounded by
. Since, for large
c,
is much smaller than
, it follows that most strings
z of length
c satisfy the claimed inequality (the opposite of (
1)). Therefore, we obtain the following lemma.
Lemma 1. If we append to a string x, a string z chosen at random in , then with probability .
The problem with appending a random
z to
x is that this operation not only increases the complexity (which is something we want) but also increases the length (which is something we do not want). The natural way to get around this problem is to first compress
x to close to the minimal description length using the probabilistic algorithms from [
4] described in the Introduction and then append
z. If we know
, then the algorithms from [
4] compress
x to length
, where
n is the length of
x and
(called the
overhead) is
(or
for the polynomial-time algorithm). After appending a random
z of length
c, we obtain a string of length
and, for this to be
n (so that length is not increased), we need
. This is the idea that we follow for Theorem 2, with an adjustment caused by the fact that we do not know
but only a bound of it.
However, in this way, we cannot obtain a procedure that works for all
x with
, as required in Theorem 1. Our proof for this theorem is based on a different construction. The centerpiece is a type of bipartite graph with a low congestion property. Once we have the graph (in which the two bipartitions are called the set of left nodes and the set of right nodes), we view
x as a left node and the list
consists of some of the nodes at distance 2 from
x in the graph. (A side remark: Buhrman et al. [
2] also use graphs, namely, constant-degree expanders, and they obtain the lists also as the set of neighbors at some given distance.) In our graph, the left side is
, the set of
n-bit strings, the right side is
, the set of
m-bit strings, and each left node has degree
D. The graphs also depend on three parameters,
and
t, and, for our discussion, it is convenient to also use
and
. The graphs that we need have two properties:
For every subset B of left nodes of size at most , the fraction of nodes in B satisfies the low congestion condition which requires that the fraction of their right neighbors have at most s neighbors in B. (More formally, for all with , for all , except at most elements, all neighbors y of x, except at most , have , where is the number of y’s neighbors that are in B. We say that such x has the low-congestion property for B.)
Each right node has at least neighbors.
The graph with the above two properties is constructed using the probabilistic method in Lemma 2.
Let us now see how to use such a graph to increase the Kolmogorov complexity in the list-approximation sense. Let us suppose that we have a graph G with the above properties for the parameters and t.
Claim 1. There is a procedure that takes as input a string x of length n with complexity and produces a list with strings, all having length n, such that at least a fraction of of the strings in the list has a complexity larger than .
Indeed, let x be a string of length n with . Let us consider the set , which we view as a set of left nodes in G. Note that the size of B is bounded by . A node that does not have the low-congestion property for B is said to be . By the first property of G, there are at most elements in B that are . It can be shown that x is not . The reason is, essentially, that the strings that are can be enumerated and they make up a small fraction of B; therefore, they can be described with less than k bits. Now, to construct the list, we view x as a left node in G and we “go-right-then-go-left”. This means that we first “go-right”, i.e., we take all the D neighbors of x and, for each such neighbor y, we “go-left”, i.e., we take of the y’s neighbors and put them in the list. Since x is not , of its neighbors have at most elements in B. Overall, less than of the strings in the list can be in B and so at least a fraction of of the strings in the list has complexity larger than . Our claim is proved.
4. Proof of Theorem 1
We split the proof in three parts. In
Section 4.1, we introduce
balanced graphs; in
Section 4.2, we show how to increase the Kolmogorov complexity in the list approximation sense using balanced graphs and, in
Section 4.3, we use the probabilistic method to obtain the balanced graph with the parameters needed for Theorem 1.
4.1. Balanced Graphs
Here, we formally define the type of graphs that we need. We work with families of bipartite graphs , indexed by n, which have the following structure:
- (1)
The vertices are labeled with binary strings, and , where we view L as the set of left nodes and R as the set of right nodes.
- (2)
All the left nodes have the same degree D; is a power of two and the edges outgoing from a left node x are labeled with binary strings of length d.
- (3)
We allow multiple edges between two nodes to exist. For a node x, we write for the multiset of x’s neighbors, each element being taken with the multiplicity equal to the number of edges from x landing into it.
A bipartite graph of this type can be viewed as a function
, where
if there is an edge between
x and
z labeled
y. We want
to yield a
randomness extractor whenever we consider the modified function
, which takes as input
and returns
, from which we keep only the first
k bits. (Note: A randomness extractor is a type of function that plays a central role in the theory of pseudo-randomness. All we need here is that it satisfies Equation (
4).)
From the function , we go back to the graph representation and we obtain the “prefix” bipartite graph , where, in , we merge the right nodes of that have the same prefix of length k. The left degrees in the prefix graph do not change. However, the right degrees may change and, as k becomes smaller, the right degrees typically become larger due to merging.
The requirement is that, for every subset
of size
, for every
,
where
is the set of edges between
B and
A in
. (Note: This means that
is a
randomness extractor.)
We also want to have the guarantee that each right node in has degree at least , where and t are parameters.
Accordingly, we have the following definition.
Definition 2. A graph as above is -balanced if the following requirements hold:
- 1.
For every , let be the graph corresponding to described above. We require that, for every , is a extractor, i.e., has the property in Equation (4). - 2.
In the graph , every right node with non-zero degree has degree at least .
In our application, we need balanced graphs in which the neighbors of a given node can be found effectively. As usual, we consider families of graphs and we say that such a family is computable if there is an algorithm that takes as input , views x as a left node in , views y as the label of an edge outgoing from x and outputs z, where z is the right node where the edge y lands in .
The following lemma provides the balanced graphs that we need as explained in the proof overview in
Section 2.
Lemma 2. For every rational , there exist some constant c and a computable family of graphs , where each is -balanced graph, with left degree for , and .
The proof of Lemma 2 is by the standard probabilistic method and is presented in
Section 4.3.
4.2. From Balanced Graphs to Increasing the Kolmogorov Complexity in the List-Approximation Sense
The following lemma shows a generic transformation of a balanced graph into a function that takes as input x and produces a list so that most of its elements have a complexity larger than .
Lemma 3. Let us suppose that, for every , there are and a computable family of graphs , where each is - balanced graph, with , where D is the left degree.
Then, there exists a computable function f that takes as input a string x and a rational number and returns a list containing strings of length ; additionally, the following are true:
- 1.
The size of the list is ;
- 2.
If , then of the elements in the list have a complexity larger than .
(The constants hidden in do not depend on δ.)
Proof. The following arguments are valid if is smaller than some small positive constant. We assume that satisfies this condition and also that it is a power of . This can be performed because scaling down by a constant factor only changes the constants in the in the statement. Let . We explain how to compute the list , with the property stipulated in the theorem’s statement.
We take to be the -balanced graph with left nodes of length n promised by the hypothesis. Let be the “prefix” graph obtained from by cutting the last bits in the labels of right nodes (thus preserving the prefix of length t in the labels).
The list is computed in two steps:
First, we view x as a left node in and take , the multiset of all neighbors of x in .
Secondly, for each p in , we take to be a set of neighbors of p in (e.g., the first ones in some canonical order). We set (if p appears times in , we also take in the union times; note that is a multiset).
Note that all the elements in the list have length n and the size of the list is .
Let
x be a binary string of length
n, with complexity
. We assume that
. The rest of the proof is dedicated to showing that the list
satisfies the second item in the statement. Let
and let
. Thus,
. Later, we use the fact that
We consider the graph , which is obtained, as explained above, from by taking the prefixes of the right nodes of length . To simplify notation, we use G instead of . The set of left nodes in G is and the set of right nodes in G is , for .
We view
as a subset of the left nodes in
G. Let us introduce some helpful terminology. In the following, all the graph concepts (left node, right node, edge and neighbor) refer to the graph
G. We say that a right node
z in
G is
-light if it has at most
neighbors in
. A node that is not
-light is said to be
-heavy. Note that
thus, a
-light node has at most
neighbors in
.
We also say that a left node in is with respect to if at least a fraction of the D edges outgoing from it lands in the right neighbors that are -heavy. Let be the set of nodes that are with respect to .
We show the following claim.
Claim 2. At most a fraction of the nodes in is with respect to .
(In other words, for every in except at most a fraction, at least a fraction of the edges going out from in G lands in the right nodes that have at most neighbors with complexity at most k).
We defer for later the proof of Claim 2 and continue the proof of the theorem.
For any positive integer
k, let
Let
. Note that
. Let
and let
. We say that
is
with respect to
if, in
,
is
with respect to
. We denote by
the set of nodes that are
with respect to
. We upper bound the size of
as follows:
Note that the set
can be enumerated given
k and
. Therefore, a node
that is
with respect to
can be described by
k,
and its ordinal number in the enumeration of the set
. We write the ordinal number on exactly
bits and
in a self-delimited way on
bits (recall that
is a power of 2), so that
k can be inferred from the ordinal number and
. It follows that, if
is
with respect to
, then, provided
is sufficiently large,
Now, we recall our string
, which has complexity
. The inequality (
6) implies that
x cannot be
with respect to
, which means that
of the edges going out from
x land in neighbors in
G having at most
neighbors in
. The same is true if we replace
G by
, because, by the inequality (
5), the right nodes in
G are prefixes of the right nodes in
.
Now, let us suppose that we pick at random a neighbor
p of
x in
and then find a set
of
neighbors of
p in
. Then, with probability
, only a fraction of
of the elements of
can be in
. Let us recall that we have defined the list
to be
It follows that at least a fraction of the elements in has complexity larger than . This ends the proof. □
We now prove Claim 2.
Proof of Claim 2. Let
A be the set of right nodes that are
-heavy. Then,
Indeed, the number of edges between and A is at least (by the definition of -heavy), but, at the same time, the total number of edges between and R is (because each left node has degree D).
For this, note that
G is a
randomness extractor and
has size at least
. Therefore, by the property (
4) of extractors,
On the other hand, the number of edges linking
and
A is at least the number of edges linking
and
A; this number is at least
. Thus,
Combining the last two inequalities, we obtain
This ends the proofs of Claim 2, which is the last piece that we needed for the proof of Lemma 3. □
Theorem 1 is obtained by plugging, into the above lemma, the balanced graphs from Lemma 2 with parameter .
4.3. Construction of Balanced Graphs: Proof of Lemma 2
We use the probabilistic method. We consider a random function for . We show the following two claims, which imply that a random function has the desired properties with positive probability. Since the properties can be checked effectively, we can find a graph by exhaustive search. We use the notation from Definition 2 and from the paragraph preceding it.
Claim 3. For sufficiently large n, with probability , it holds that, for every , in the bipartite graph , every of size and every satisfies Claim 4. For some constant c and every sufficiently large positive integer n, with probability , every right node in the graph has degree at least .
Proof of Claim 3. First, we fix
and let
and
. Let us consider
of size
and
. For a fixed
and
, the probability that
is in
A is
. By the Chernoff bounds,
The probability that relation (
8) fails for a fixed
k, some
of size
and some
is bounded by
, because
A can be chosen in
ways; further, we can consider that
B has size exactly
K and that there are
possible choices of such
B’s. Since
, the above probability is much less than
. Therefore, the probability that relation (
8) fails for some
, some
B and some
A is less than
. □
Proof of Claim 4. We use a “coupon collector” argument. We consider the graph
for some constant
c to be fixed later. This graph is obtained from the above function
as explained in Definition 2. The graph
is a bipartite graph with left side
, right side
and each left node has degree
. We show that, with probability
, every right node in
has degree at least
. The random process consists of drawing, for each
and edge
, a random element from
. Thus, we draw at random
times, with replacement, from a set with
“coupons”. Newman and Shepp [
7] have shown that, to obtain at least
h times each coupon from a set of
p coupons, the expected number of draws is
. By Markov’s inequality, if the number of draws is 4 times the expected value, we collect each coupon
p times with probability
. In our case, we have
and
; it can be checked readily that, for an appropriate choice of the constant
c,
, provided
n is large enough. □