Abstract
It is impossible to effectively modify a string in order to increase its Kolmogorov complexity. However, is it possible to construct a few strings, no longer than the input string, so that most of them have larger complexity? We show that the answer is yes. We present an algorithm that takes as input a string x of length n and returns a list with O(n2) strings, all of length n, such that 99% of them are more complex than x, provided the complexity of x is less than n−loglogn−O(1). We also present an algorithm that obtains a list of quasi-polynomial size in which each element can be produced in polynomial time.
Highlights
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations
Have a Kolmogorov complexity larger than C ( x ); The function f is computable in polynomial time in the following sense: there is a polynomial time algorithm that takes as input x, i and computes the i-th element in the list f ( x )
We recall the standard setup for Kolmogorov complexity
Summary
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. There exists a function f that takes as input x ∈ {0, 1}∗ and a constant rational number δ > 0 and returns a list of strings of length at most | x | with the following properties: The size of the list is bounded by 2O(log | x|·log(| x|/δ)) ; If C ( x ) < | x | − O(log | x | · log(| x |/δ)), (1 − δ) fraction of the elements in the list f ( x ). Have a Kolmogorov complexity larger than C ( x ); The function f is computable in polynomial time in the following sense: there is a polynomial time algorithm that takes as input x, i and computes the i-th element in the list f ( x ). The number of random bits used by A2 is the logarithm in base two of the size of the list produced by A1
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have