Esercizi di Informatica Teorica - DFA Esercizio Definire, se esso esiste, l automa deterministico a stati finiti A che riconosce il linguaggio L = {w w {,},w[i] =, i dispari,i > }. Dimostrare rigorosamente che L = L(A) oppure che un tale automa non esiste. L automa proposto è riportato in Fig.. qo q, q2 q3, Figure : Automa a stati finiti che riconosce L. Se è possibile costruire l automa significa che Σ è partizionabile in un insieme finito di classi, ciascuna associata a uno stato. È utile descrivere l insieme delle stringhe associate a ciascuno stato, anche se poi la dimostrazione formale viene richiesta solamente in riferimento agli stati finali. Nel caso specifico q è lo stato iniziale a cui è associata solo la stringa vuota. Agli stati q e q 3 sono associate tutte le stringhe del linguaggio che hanno lunghezza rispettivamente dispari e pari. Allo stato q 2 sono associate tutte le stringhe che non appartengono a L, ad esclusione della stringa vuota. Per dimostrare che L = L(A) si deve dimostrare che L L(A) e L(A) L.. Se w L allora w L(A) (tutte le stringhe del linguaggio portano in stati finali
Base: w = L è la più piccola stringa di L. Verifichiamo che appartenga a L(A). Poiché ˆδ(q,) = δ(q,) = q F possiamo concludere che w = L(A). Ipotesi induttiva: se w L allora w L(A) è vera per tutte le stringhe di Consideriamo ora w = xa L, con w = n+, e dimostriamo che w L(A). Poiché w L in tutte le posizioni dispari ci sarà necessariamente un simbolo. Consideriamo i due casi possibili: w pari: questo implica che x è dispari, e il simbolo a può assumere indifferentemente valore oppure. Per quanto riguarda la struttura di x possiamo dire che tale stringa dovrà necessariamente avere degli nelle posizioni dispari (altrimenti w non potrebbe essere stringa di L). Quindi, poiché x L e x n, possiamo far valere l ipotesi induttiva e concludere che x L(A). In particolare, essendo di lunghezza dispari avremo che ˆδ(q,x) = q. Per definizione di funzione di transizione estesa: ˆδ(q,w) = ˆδ(q,xa) = δ( ˆδ(q,x),a) = δ(q,a) = q 3 F Quindi possiamo concludere che w L(A). w dispari: questo implica che x è pari, e il simbolo a, in posizione dispari, deve necessariamente essere. Per quanto riguarda la struttura di x possiamo dire che tale stringa dovrà necessariamente avere degli nelle posizioni dispari (altrimenti w non potrebbe essere stringa di L). Quindi poiché x L e x n possiamo far valere l ipotesi induttiva e concludere che x L(A). In particolare, essendo di lunghezza pari avremo che ˆδ(q,x) = q 3. Per definizione di funzione di transizione estesa: ˆδ(q,w) = ˆδ(q,x) = δ( ˆδ(q,x),) = δ(q 3,) = q F Possiamo concludere che w L(A). 2. Se w L(A) allora w L (solo le stringhe del linguaggio portano in stati finali Base: dal diagramma delle transizioni si vede che il percorso più breve che conduce in uno stato finale dell automa è etichettato con il simbolo. Pertanto w = è la più piccola stringa di L(A). Tale stringa ha in tutte le posizioni dispari un, pertanto w = L. Ipotesi induttiva: se w L(A) allora w L è vera per tutte le stringhe di Consideriamo ora w = xa L(A), con w = n+, e dimostriamo che w L. Poichè w L(A), deve essere ˆδ(q,w) F. Ci sono due possibilità. 2
ˆδ(q,w) = q (caso w dispari) Gli archi entranti in q sono etichettati solamente con il simbolo, quindi possiamo affermare che l ultimo simbolo di w doveva essere necessariamente : w = x. Gli stati di provenienza sono q o q 3. Considerando q si ritorna al caso base già esaminato. Quindi lo stato di provenienza è lo stato q 3, stato in cui ci si trova dopo aver letto x. Poiché ˆδ(q,x) = q 3 F, si ha x L(A) e x n. Possiamo far valere l ipotesi induttiva e concludere che x L. Riguardo la struttura di w = x possiamo affermare che nella porzione di w coperta da x tutte le posizioni dispari dovranno avere degli (x L). Inoltre, l ultima posizione, dispari, contiene anch essa un, rispettando la definizione di L. Pertanto w L. ˆδ(q,w) = q 3 (caso w pari) Gli archi entranti in q 3 provengono solo da q e sono etichettati con o. Quindi w = xa, con a qualsiasi. Poiché ˆδ(q,x) = q F e x n vale l ipotesi induttiva e x L. Possiamo concludere che w = xa L poiché il vincolo sulle posizioni dispari è garantito dalla struttura derivata per x. Si è dimostrato che L L(A) quindi l automa proposto è corretto. Esercizio 2 Dimostrare che l automa A riconosce il linguaggio L = {w w {,},#(w) dispari }. qo q Figure 2: Diagramma delle transizioni dell automa A. Anche in questo caso per dimostrare che L = L(A) si devono dimostrare che le due affermazioni. L L(A) 2. L(A) L sono vere. Proviamo a procedere come all esercizio precedente. 3
. Se w L allora w L(A) (tutte le stringhe del linguaggio portano in stati finali Base: w = L è la più piccola stringa di L. Poiché ˆδ(q,) = δ(q,) = q F si conclude che w = L(A). Ipotesi induttiva: se w L allora w L(A) è vera per tutte le stringhe di Sia w = xa L (#(w) è dispari) e w = n+. Ci sono due casi da considerare: w = x. Poiché #(x) = #(w) è dispari abbiamo che x L. Inoltre x n, quindi vale l ipotesi induttiva e x L(A). In particolare, essendoci un unico stato finale avremo ˆδ(q,x) = q. Quindi: ˆδ(q,w) = ˆδ(q,x) = δ( ˆδ(q,x),) = δ(q,) = q F e possiamo concludere che w L(A). w = x. Poiché #(x) = #(w) è pari, possiamo concludere che x / L. A questo punto sappiamo che x n e che x / L. L ipotesi induttiva ci da informazioni solamente riguardo stringhe di L di lunghezza inferiore o uguale a n ma non dice nulla riguardo a stringhe che non appartengono al linguaggio in esame. Si rimane quindi bloccati nella dimostrazione. In casi come questo è necessario procedere per mutua induzione. Si inizia dimostrando che la base è vera per entrambe le affermazioni ) e 2). Si prosegue supponendo che entrambe le affermazioni siano vere per valori fino a un certo n, e ci conclude dimostrando che entrambe sono ancora vere per stringhe di lunghezza n +.. Se w L allora w L(A) (tutte le stringhe del linguaggio portano in stati finali 2. Se w L(A) allora w L (solo le stringhe del linguaggio portano in stati finali Si procede per mutua induzione sulla lunghezza delle stringhe. Base:. w = L è la più piccola stringa di L. Poiché ˆδ(q,) = δ(q,) = q F possiamo concludere che w = L(A). 2. w = L(A) è la più piccola stringa accettata dall automa. Poiché il numero di di tale stringa è dispari possiamo concludere che w = L. Ipotesi induttiva:. se w L allora w L(A) è vera per tutte le stringhe di lunghezza w n 4
2. se w L(A) allora w L è vera per tutte le stringhe di lunghezza w n Sia w = xa, w = n+.. Dimostriamo prima che vale l affermazione : se w = xa L allora w = xa L(A). Se w = x L, si ha #(w) dispari e #(x) = #(w) dispari. Poiché x L e x n, vale l ipotesi induttiva ) e possiamo affermare che x L(A). Come in precedenza, da ˆδ(q,x) = q si ottiene: ˆδ(q,w) = ˆδ(q,x) = δ( ˆδ(q,x),) = δ(q,) = q F Se invece w = x L, si ha #(w) dispari ma (x) = #(w) pari. Quindi x / L e x n. Poichè l ipotesi induttiva 2) afferma che solo le stringhe di L conducono in stati finali dell automa, la lettura di x deve condurre in uno stato non finale: ˆδ(q,x) = q. Quindi: ˆδ(q,w) = ˆδ(q,x) = δ( ˆδ(q,x),) = δ(q,) = q F 2. Dimostriamo ora che vale l affermazione 2: se w = xa L(A) allora w = xa L. Se w = x L(A), si ha ˆδ(q,w) = q. L ultimo simbolo letto è uno e l unico arco entrante in q con etichetta proviene da q stesso. Questo significa che leggendo x a partire da q ci si ritrova nello stato q F. Poiché x L(A) e x n, vale l ipotesi induttiva 2 e x L. Da w = x ricaviamo che #(w) = #(x) dispari, da cui w L. Se invece w = x L(A), si ha ancora ˆδ(q,w) = q. Tuttavia l ultimo simbolo letto è un e l unico arco entrante in q con etichetta proviene da q. Questo significa che leggendo x a partire da q ci si ritrova nello stato q / F. Per l ipotesi induttiva ) tutte le stringhe di lunghezza minore o uguale a n che appartengono a L devono portare in stati finali. Poiché x non porta in uno stato finale possiamo concludere che x / L, quindi #(x) è pari. Da w = x ricaviamo che #(w) = #(x)+ è dispari, da cui w L. Si noti che la dimostrazione può essere suddivisa nei due casi a = e a = e all interno di ciascuna situazione dimostrare le due affermazioni ) e 2). I due procedimenti sono equivalenti. 5