Siguiendo la respuesta aquí , describiré un método para probar la no regularidad basado en la complejidad de Kolmogorv.
Este enfoque se discute en "Un nuevo enfoque para la teoría del lenguaje formal por la complejidad de Kolmogorov" , por Ming Li y Paul MB Vitanyi (ver sección 3.1).
Supongamos que denota la complejidad de Kolmogorov de una cadena , es decir, la longitud de la codificación más corta de una máquina de Turing , de modo que (cualquiera de las definiciones habituales servirá). Entonces se puede usar el siguiente lema para demostrar que no es regular:K(x)xMM(ϵ)=x
Regularidad KC : deje que sea un lenguaje regular, entonces existe una constante que depende solo de , de modo que para todo , si es la cadena ( relativo al ordenamiento lexicográfico) en , luego .L⊆Σ∗cLx∈Σ∗yn′thLx={y∈Σ∗|xy∈L}K(y)≤O(logn)+c
Uno puede entender (y probar) el lema anterior de la siguiente manera, para cualquier , para describir la cadena en uno necesita especificar:x∈Σ∗n′thLx
- El autómata que aceptaL
- El estado en el autómata después de procesar el prefijox
- El índicen
Ya que sólo hay que recordar el estado después de la transformación , y no sí, podemos ocultar este factor en la constante que depende de . El índice requiere bits para describir, y obtenemos el resultado anterior (para completar, uno necesita agregar las instrucciones específicas requeridas para generar , pero esto solo agrega un factor constante a la descripción final).xxLnlogny
Este lema muestra cómo vincular la complejidad de Kolmogorov de todas las cadenas que son miembros de para algún lenguaje regular y . Para mostrar no regularidad, se puede suponer que es regular y demostrar que los límites son demasiado restrictivos (por ejemplo, la complejidad de Kolmogrov limitada para un conjunto infinito de cadenas).LxLx∈Σ∗L
La respuesta vinculada anteriormente contiene un ejemplo de cómo usar este lema para mostrar no es regular, se dan varios ejemplos más en el documento. Para completar, mostramos aquí cómo probar no es regular.L={1p|p is prime}L={0n1n|n≥0}
Dados algunos , denotamos por la palabra en . Tenga en cuenta que . Usando el lema anterior, enfocándonos en los prefijos de la forma y fijando , obtenemos . Dado que , esto significa que podemos vincular la complejidad de Kolmogorov de todas las cadenas de la forma por una constante, que obviamente es falsa. Vale la pena mencionar que podríamos haber examinado una sola , por ejemplo, para suficientemente grandex∈{0,1}∗yxii′thLxy0i1=1ixx=0in=1∀i≥0:K(y0i1)≤cy0i1=1i1ixx=0nnque satisface (comenzamos con un prefijo de alta complejidad). Como , obtenemos , contradicción (supongamos que ).K(0n)≥lognyx1=1nK(1n)<cn>2c