Un altro esempio molto semplice è il seguente: utilizzare la complessità di Kolmogorov per dimostrarlo Lw w= { w w ∣ w ∈ { 0 , 1}*} non è regolare.
Ti do una prova molto informale sperando che possa aiutarti a capire meglio il ruolo della complessità di Kolmogorov.
L'idea chiave è la seguente: un automa finito D (che riconosce una lingua normale LD) ha una quantità finita di "memoria"; quindi in esecuzione su una stringa di inputx = yz quando ha "elaborato" la prima parte dell'input y l'appartenenza di X in LD dipende solo dal suo stato attuale e dalla seconda parte dell'input z.
Ora supponiamo che Lw wè regolare; poi c'è un DFADw w questo lo riconosce.
Permettere y essere una stringa incomprimibile di lunghezza | y| =n≫ | D |
Per tutti gli ingressi x = yz, alla fine della prima parte y, il DFA Dw w sarà chiaramente sullo stesso stato qioe per ipotesi accetterà solo se la parte rimanente z è tale che x = yz può essere diviso in due metà uguali (es yz= w w); per esempio
Let y = 10110
y z
x = 10110 0 >> rejected
x = 10110 1 >> accepted (w=101, |y|>|z|)
x = 10110 00 >> rejected
x = 10110 01 >> rejected
....
x = 10110 10110 >> accepted (w=10110, |y|=|z| !!!)
....
x = 10110 1101101 >> accepted (w=101101, |z|<|y|
Ma è importante notare che esiste solo una stringa z di lunghezza | y| che è accettato (z= y).
Quindi, data la descrizione di Dw w, lo stato qio alla fine di ye la lunghezza | y| possiamo simulare il comportamento di Dw w su tutto il 2| y| stringhe e vedere quale di esse accetta ... ma accetta esattamente z= y.
Quindi con un programma di dimensioni ℓ = |Dw w|+logi+logy+c
(|Dww| è necessario spazio per memorizzare la descrizione di Dww,
logi spazio per riporre qi, logy spazio per memorizzare la lunghezza di y, c è necessario spazio per le istruzioni che simulano il DFA)
possiamo "ricostruire" la stringa y; ma abbastanza grandey noi abbiamo ℓ<|y| che è una contraddizione perché y è incomprimibile.