Seguindo a resposta aqui , descreverei um método para provar a não regularidade com base na complexidade de Kolmogorv.
Essa abordagem é discutida em "Uma Nova Abordagem da Teoria da Linguagem Formal pela Complexidade de Kolmogorov" , de Ming Li e Paul MB Vitanyi (consulte a seção 3.1).
Deixe denotar a complexidade Kolmogorov de uma string , ou seja, o comprimento da codificação mais curta de uma máquina de Turing , de modo que (qualquer uma das definições usuais fará). Pode-se então usar o seguinte lema para provar a não regularidade:K(x)xMM(ϵ)=x
KC-Regularidade : Seja uma linguagem regular, existe uma constante que depende apenas de , de modo que, para todo , se é a n- string ( relativo à ordenação lexicográfica) em , então .L⊆Σ∗cLx∈Σ∗yn′thLx={y∈Σ∗|xy∈L}K(y)≤O(logn)+c
Pode-se entender (e provar) o lema acima da seguinte forma, para qualquer , para descrever a n- string em é necessário especificar:x∈Σ∗n′thLx
- O autômato que aceitaL
- O estado no autômato após o processamento do prefixox
- O índicen
Uma vez que só precisa se lembrar o estado após o processamento , e não em si, podemos esconder esse fator na constante dependendo . O índice requer bits para descrever, e obtemos o resultado acima (para completar, é necessário adicionar as instruções específicas necessárias para gerar , mas isso adiciona apenas um fator constante à descrição final).xxLnlogny
Este lema mostra como vincular a complexidade Kolmogorov de todas as strings que são membros de para algum idioma regular e . Para mostrar não regularidade, pode-se assumir que é regular e provar que os limites são muito restritivos (por exemplo, complexidade limitada de Kolmogrov para um conjunto infinito de strings).LxLx∈Σ∗L
A resposta vinculada acima contém um exemplo de como usar esse lema para mostrar não é regular, vários outros exemplos são dados no trabalho. Para completar, mostramos aqui como provar não é regular.L={1p|p is prime}L={0n1n|n≥0}
Dado algum , denotamos por a - palavra em . Observe que . Usando o lema acima, concentrando-se nos prefixos da forma fixando , obtemos . Como , isso significa que podemos vincular a complexidade Kolmogorov de todas as cadeias de caracteres da forma por uma constante, o que é obviamente falso. Vale ressaltar que poderíamos ter examinado um único , por exemplo, para um número suficientemente grande dex∈{0,1}∗yxii′thLxy0i1=1ixx=0in=1∀i≥0:K(y0i1)≤cy0i1=1i1ixx=0nnque satisfaz (começamos com um prefixo de alta complexidade). Como , obtemos , contradição (suponha que ).K(0n)≥lognyx1=1nK(1n)<cn>2c