Automatic Complexity

2 Nondeterminism and overlap-free words

In this chapter we develop some properties of nondeterministic automatic complexity. As a corollary we get a strengthening of a result of Shallit and Wang  [ 19 ] on the complexity of the infinite Thue–Morse word t. Moreover, viewed through an NFA lens we can, in a sense, characterize the complexity of t exactly. A main technical idea is to extend the following result, which says that not only do squares, cubes and higher powers of a word have low complexity, but a word completely free of such powers must conversely have high complexity.

Theorem 22 Shallit and Wang  [ 19 , Theorem 9 ]
#

Suppose wΣ is kth-power-free for some integer k2, i.e., w contains no subword of the form xk with xε. Then A(w)|w|+1k.

The way we strengthen their results is by considering a variation on squarefreeness and cube-freeness, overlap-freeness. This notion also goes by the names of irreducibility and strong cube-freeness in the combinatorial literature. We also take up an idea from  [ 19 , Theorem 8 ] and use it to show that the natural decision problem associated with nondeterministic automatic complexity is in the complexity class E = DTIME(2O(n)). This result is a theoretical complement to the practical fact that the nondeterministic automatic complexity can be computed reasonably quickly, a fact that enabled the creation of the lookup service at  [ 10 ] .

2.1 Introduction

Theorem 23 Hyde  [ 6 ]
#

The nondeterministic automatic complexity AN(x) of a string x of length n satisfies

AN(x)b(n):=n/2+1.
Proof
\begin{tikzpicture} [shorten >=1pt,node distance=1.5cm,on grid,auto]
				\tikzstyle{every state}=[fill={rgb:black,1;white,10}]
				\node[state,initial, accepting] (q_0)   {$q_0$}; 
				\node[state] (q_1)	 [right=of q_0   ] {$q_1$}; 
				\node[state] (q_2)	 [right=of q_1   ] {$q_2$}; 
				\node[state] (q_3)	 [right=of q_2   ] {$q_3$};
				\node		(q_dots)  [right=of q_3   ] {$\dots$};
				\node[state] (q_{m-1})	 [right=of q_dots] {$q_{m-1}$};
				\node[state] (q_m) [right=of q_{m-1}   ] {$q_m$}; 
				\path[->] 
					(q_0)	 edge [bend left]  node		   {$x_1$}	 (q_1)
					(q_1)	 edge [bend left]  node		   {$x_2$}	 (q_2)
					(q_2)	 edge [bend left]  node		   {$x_3$}	 (q_3)
					(q_3)	 edge [bend left]  node [pos=.45] {$x_4$}	 (q_dots)
					(q_dots)  edge [bend left]  node [pos=.6]  {$x_{m-1}$} (q_{m-1})
					(q_{m-1})	 edge [bend left]  node [pos=.56] {$x_m$}	 (q_m)
					(q_m) edge [loop above] node		   {$x_{m+1}$} ()
					(q_m) edge [bend left]  node [pos=.45] {$x_{m+2}$} (q_{m-1})
					(q_{m-1})	 edge [bend left]  node [pos=.4]  {$x_{m+3}$} (q_dots)
					(q_dots)  edge [bend left]  node [pos=.6]  {$x_{n-3}$} (q_3)
					(q_3)	 edge [bend left]  node		   {$x_{n-2}$} (q_2)
					(q_2)	 edge [bend left]  node		   {$x_{n-1}$} (q_1)
					(q_1)	 edge [bend left]  node		   {$x_n$}	 (q_0);
			\end{tikzpicture}
Figure 2.1 A nondeterministic finite automaton, a Kayleigh graph, that only accepts one string x=x1x2x3x4xn of length n=2m+1.