Lingua normale non accettata da DFA con al massimo tre stati


10

Descrivi una lingua normale che non può essere accettata da nessun DFA con solo tre stati.

Non sono davvero sicuro da dove cominciare e mi chiedevo se qualcuno potesse darmi qualche consiglio o consiglio. Capisco che il lemma del pompaggio può essere usato per dimostrare che una lingua non è regolare, ma in questo caso dovrebbe essere una lingua normale. Se qualcuno ha qualche pensiero sarebbe apprezzato.

Risposte:


17

Il lemma del pompaggio può essere dichiarato per tenere conto del numero di stati nel DFAE. Ogni lingua accettata da un DFA con stati p soddisfa il seguente lemma di pompaggio:Lp

Ogni parola di lunghezza almeno p può essere scomposta come w = x y z , dove | x y | p e | y | 1 , tale che x y i z L per tutti i 0 .wpw=Xyz|Xy|p|y|1XyiozLio0

È possibile utilizzare questa caratterizzazione per dimostrare che la lingua richiede p + 1 stati.{0p}p+1

Un altro metodo consiste nell'utilizzare il teorema di Myhill - Nerode. Due parole sono equivalenti (rispetto ad alcune lingue L ) se per qualche parola z , o x z L e y z L o viceversa. Il Myhill - Nerode teorema afferma che se ci sono p parole a coppie non equivalenti, allora ogni DFA per L ha almeno p stati. Per l'esempio L = { 0 p } , puoi trovare p + 1X,yLzXzLyzLpLpL={0p}p+1parole non equivalenti a coppie, vale a dire .ε,0,...,0p


sì, zpuò essere ^vuoto, ma penso che tu abbia un refuso nella tua citazione. xy^i ∈ L dovrebbe esserexy^i z ∈ L
Grijesh Chauhan,

12

La risposta di Yuval è ottima. Una formulazione più semplice di ciò che ha descritto è che gli automi finiti non possono contare in modo arbitrariamente alto e la quantità a cui possono contare è limitata dagli stati numerici negli automi. Più precisamente, affinché un autata conti fino a , ha bisogno di p + 1 stati (uno stato sarebbe 0 ).pp+10

Questa è, in sostanza, l'intera idea alla base del lemma di pompaggio: se una stringa è davvero lunga, gli automi finiti devono "dimenticare" quanto in alto viene contato e ricominciare tutto da capo, permettendoti di ripetere una sezione più e più volte senza preoccuparsene .

Pertanto, qualsiasi linguaggio regolare che richiede il conteggio fino a 3 per convalidare una parola in esso, non può essere descritto da automi finiti di dimensione 3.

Riesci a pensare a una lingua simile? (Il tuo professore potrebbe anche aspettarti che tu dimostri questo argomento di conteggio, sebbene nel mio curriculum questa comprensione del lemma del pompaggio sia stata data per scontata)


Bella risposta: spiega molto senza dare via la soluzione a quello che sembra un esercizio di compiti a casa. Benvenuti in Informatica !
David Richerby,

1

Esiste un algoritmo per ridurre al minimo i DFA. Basta scegliere una lingua che abbia un DFA minimo di 4 (o più) stati. Qualunque cosa abbia una lunghezza minima di 3 simboli farà, cioè, il linguaggio dell'espressione regolare , o (ancora più semplice) a 3 . Per capire perché, dai un'occhiata alla dimostrazione del lemma di pompaggio per le lingue normali.un'3un'*un'3


-2

un'altra idea, la diagonalizzazione ! enumera tutti i DFA a 3 o meno stati, prendi l'unione di tutti e poi completa il complemento. questo è un DFA con chiusura periodica delle operazioni linguistiche. questo potrebbe essere costruito tramite un algoritmo, ma la domanda richiede solo una descrizione .



n

nn+1

@Yuval giusto. penso che questa idea possa funzionare, ma forse non avere i dettagli esattamente giusti, i dettagli sono difficili, indovinerei che potrebbe essere da qualche parte nella letteratura ma non l'ho mai vista
vzn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.