Esercizi di Informatica Teorica - DFA

Documenti analoghi
Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Linguaggi regolari e automi a stati finiti

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi

Equivalenza e minimizzazione di automi. Equivalenza e minimizzazione di automi

02 - Logica delle dimostrazioni

AUTOMA A STATI FINITI

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

04 - Logica delle dimostrazioni

Quiz sui linguaggi regolari

8. Completamento di uno spazio di misura.

Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018

METODI MATEMATICI PER L INFORMATICA. Canale E O a.a Docente: C. Malvenuto Primo compito di esonero 26 novembre 2008

Pumping lemma per i linguaggi Context-free

Le grammatiche formali

DAI NUMERI NATURALI AI NUMERI RAZIONALI

Lo sviluppo di un semplice programma e la dimostrazione della sua correttezza

Espressioni regolari. Espressioni regolari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esercizi riguardanti limiti di successioni e di funzioni

Espressioni regolari

Proprieta dei Linguaggi regolari

AUTOMI A STATI FINITI

METODI MATEMATICI PER L INFORMATICA

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

Elementi di teoria degli insiemi

Automi a pila deterministici. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano

11. Misure con segno.

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Elementi di Teoria degli Insiemi

Il teorema di Ascoli-Arzelà

Macchine di TURING. Alan Mathison Turing ( )

Funzioni reali di variabile reale

Appunti del Corso Analisi 1

Introduzione ai grafi

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

Transcript:

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