Question

I am working on understanding Kolmogorov Complexity. I've been struggling with the following exercise for quite some time now and would appreciate any inputs.

Show that there exists a constant $c$, such that for each $n \in \mathbb{N} -\{0\},$${K((01)^2}^n) \leq \lceil \log_2(n+1)\rceil +c = \lceil\log_2(\log_2(\frac{|{(01)^2}^n |}{2}))\rceil +c $

Through experimentation, I've come to the conclusion that $|{(01)^2}^n| = 2\cdot2^n \implies \log_2(|{(01)^2}^n|)=n+1$. Why is it wrong to simply substitute this in the above equation like so:

${K((01)^2}^n) \leq \lceil \log_2(n+1)\rceil +c = \lceil\log_2(\log_2(|{(01)^2}^n |))\rceil +c $

Why is the length of the string divided by 2 in the problem statement?

Was it helpful?

Solution

The statement is equivalent to \begin{align}n+1=\log_2\left(\frac{|(01)^{2^n}|}2\right)&\impliedby |(01)^{2^n}|=2^{n+2}.\end{align} If $(01)^{2^n}$ means $\underbrace{(01)(01)(01)\cdots(01)}_{2^n\,\text{times}}$ then the statement is incorrect as $|(01)^{2^n}|=2^{n+1}$ as you have correctly obtained.

Licensed under: CC-BY-SA with attribution
Not affiliated with cs.stackexchange
scroll top