RACCOLTA DI ESERCIZI CON SOLUZIONI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "RACCOLTA DI ESERCIZI CON SOLUZIONI"

Transcript

1 Università degli Studi di Padova Dipartimento di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria Informatica Automi, Linguaggi e Computazione: RACCOLTA DI ESERCIZI CON SOLUZIONI prof. Giorgio Satta

2 Prefazione Gli esercizi presentati in questa raccolta sono classificati secondo tre categorie, sulla base della difficoltà richiesta per la soluzione. Per questa classificazione viene utilizzato il simbolo stellina ( ), con il seguente significato. Gli esercizi con zero stelline sono molto simili ad esercizi già proposti nel libro di testo, oppure hanno una soluzione che richiede l applicazione diretta di un metodo studiato a lezione. Questi esercizi non presentano particolari difficoltà di ragionamento, anche se lo svolgimento potrebbe essere lungo. Gli esercizi con una stellina sono considerati di media difficoltà. La loro soluzione richiede la capacità da parte dello studente di rielaborare conoscenze studiate durante il corso, e di ragionare secondo le metodologie tipiche della disciplina degli automi e dei linguaggi formali. Si raccomanda agli studenti di provare a risolvere in modo autonomo almeno due esercizi in questa categoria per ciascun capitolo della raccolta, e di leggere solo successivamente la soluzione proposta per verificare il proprio grado di apprendimento della materia. Gli esercizi con due stelline sono considerati difficili. Questi esercizi costituiscono dei piccoli progetti, da risolvere anche in gruppo, in modo da poter confrontare con altri studenti la metodologia sviluppata. Si raccomanda comunque la lettura della soluzione di questi esercizi, come esempio delle tecniche e delle metodologie tipiche della disciplina degli automi e dei linguaggi formali. Si puntualizza che gli esercizi in questa raccolta non sono rappresentativi di problemi che possono essere assegnati alla prova finale del corso: quasi tutti gli esercizi qui presentati richiedono lo sviluppo di dimostrazioni matematiche piuttosto lunghe, e non ci sarebbe tempo a sufficienza alla prova finale per risolvere questi esercizi, anche nel caso di zero stelline. Si reputa comunque che questa raccolta possa essere di valido aiuto per imparare a risolvere in modo rigoroso la tipologia di problemi che verranno assegnati alla prova finale. Gli esercizi in questa raccolta sono stati rielaborati dal docente dell insegnamento di Automi, Linguaggi e Computazione, professor Giorgio Satta, sulla base del materiale elencato di seguito. Raccolta di esercizi risolti per l insegnamento di Informatica Teorica, Corso di Laurea Quinquennale in Ingegneria Informatica, Università 1

3 degli Studi di Padova. Gli esercizi sono variazioni di temi d esame assegnati negli anni accademici 1993/94, 1994/95, 1995/96. Le soluzioni sono state elaborate dagli studenti Paolo Chioetto, Carlo Fantozzi e Ferruccio Fantozzi. Raccolta di esercizi risolti per l insegnamento di Informatica Teorica, Corso di Laurea Triennale in Ingegneria dell Informazione, Università degli Studi di Padova. Gli esercizi sono variazioni di temi d esame assegnati per il suddetto insegnamento. Le soluzioni sono state elaborate dai docenti Maria Silvia Pini e Cinzia Pizzi. Esercizi svolti per l insegnamento di Automi, Linguaggi Formali e Computazione, Corso di Laurea Magistrale in Ingegneria Informatica, Università degli Studi di Padova. Le soluzioni sono state elaborate nell anno accedemico 2018/19 dagli studenti Francesco Cazzaro, Samuele Papa e Federico Soldà. prof. Giorgio Satta 2

4 Indice 1 Notazione 4 2 Linguaggi Regolari 5 3 Linguaggi Context-Free 55 4 Linguaggi Ricorsivi e Ricorsivamente Enumerabili 99 3

5 Capitolo 1 Notazione Riportiamo in questo primo capitolo alcune convenzioni notazionali relative agli automi ed ai linguaggi formali, che non sono presenti nel libro di testo adottato nel corso ma che verranno usate nei capitoli seguenti. Il simbolo N rappresenta l insieme dei numeri naturali, zero incluso. Dati due insiemi S 1 e S 2, scriviamo S 1 \ S 2 per indicare la differenza insiemistica tra S 1 ed S 2. Sia Σ un alfabeto finito e sia L un linguaggio definito su Σ. Indichiamo con L il linguaggio complemento di L, definito come L = {a, b} \ L. Sia w una stringa su di un alfabeto Σ e sia a Σ. Scriviamo # a (w) per indicare il numero di occorrenze di a in w. Per una generica stringa w e per un intero i con 1 i w, scriviamo w[i] per denotare il simbolo i-esimo di w, contando da sinistra a destra. 4

6 Capitolo 2 Linguaggi Regolari Esercizio 2.1 Si consideri l automa deterministico a stati finiti A con insieme degli stati {q 0, q 1 }, dove q 0 è lo stato iniziale e q 1 è lo stato finale, ed avente la funzione di transizione rappresentata graficamente in Figura 2.1. Dimostrare che A riconosce il linguaggio L = {w w {0, 1}, # 1 (w) è dispari}. Soluzione Il libro di testo spiega che per dimostrare la relazione L = L(A), dove A è un automa a stati finiti deterministico, è necessario definire un insieme di proprietà P q, una per ogni stato q di A. Nel nostro caso, le proprietà P q sono definite sull insieme di tutte le stringhe binarie {0, 1}. Successivamente si deve dimostrare che, per ogni proprietà P q e per ogni stringa x {0, 1}, abbiamo che P q (x) è vera se e solo se ˆδ(q 0, x) = q, dove q 0 indica lo stato iniziale di A. Tale dimostrazione deve essere sviluppata usando la tecnica della mutua induzione. Procediamo dunque definendo le due proprietà P q0 e P q1. Per ogni x {0, 1}, P q0 (x) è vera se e solo se # 1 (w) è pari. Per ogni x {0, 1}, P q1 (x) è vera se e solo se # 1 (w) è dispari. Dobbiamo ora dimostrare le due affermazioni seguenti. (i) Per ogni x {0, 1}, P q0 (x) è vera se e solo se ˆδ(q 0, x) = q 0. (ii) Per ogni x {0, 1}, P q1 (x) è vera se e solo se ˆδ(q 0, x) = q 1. 5

7 0 0 Start 1 q 0 q 1 1 Figura 2.1: Diagramma delle transizioni dell automa A. Informalmente, l affermazione (i) stabilisce che la stringa x ha un numero pari di occorrenze del carattere 1 se e solo se, partendo dallo stato iniziale e leggendo x, l automa A raggiunge lo stato q 0. In modo simile, l affermazione (ii) stabilisce che la stringa x ha un numero dispari di occorrenze del carattere 1 se e solo se, partendo dallo stato iniziale e leggendo x, l automa A raggiunge lo stato q 1. Intuitivamente, per uno stato q di A la proprietà P q vi dice quali stringhe A accetterebbe se A avesse q come unico stato finale. A questo punto osserviamo che l affermazione (ii) sopra riportata può essere utilizzata per dimostrare la proprietà richiesta dalla consegna. Infatti abbiamo la seguente catena di equivalenze x L(A) sse ˆδ(q0, x) = q 1 (definizione di A) sse P q1 (x) (affermazione (ii)) sse # 1 (w) è dispari (definizione di P q1 (x)) sse x L (definizione di L) che ci porta a concludere che L(A) = L. Per completare l esercizio, dobbiamo dunque dimostrare le affermazioni (i) e (ii). Poiché le affermazioni (i) e (ii) sono della forma se e solo se, dobbiamo dimostrare quattro enunciati, e per ciascun enunciato dobbiamo esaminare il caso base ed il caso induttivo. Come già suggerito, è necessario procedere per mutua induzione. (Parte (i), solo se) Dobbiamo dimostrare che, per ogni x {0, 1}, se P q0 (x) è vera allora ˆδ(q 0, x) = q 0. Procediamo per induzione sulla lunghezza della stringa x. Base. Abbiamo x = 0, cioè x = ε. Poichè # 1 (ε) è pari, P q0 (ε) è vera. Inoltre, per definizione di ˆδ possiamo scrivere ˆδ(q 0, ε) = q 0. Concludiamo allora che l implicazione da dimostrare è vera. 6

8 Induzione. Sia x = n > 0. Se P q0 (x) è falsa, allora l implicazione da dimostrare è sempre vera. Consideriamo invece il caso in cui P q0 (x) sia vera, cioè # 1 (x) è pari. Scriviamo x = ya con a {0, 1} e y {0, 1}, y = n 1. Dobbiamo distinguere due casi, a seconda che sia a = 0 oppure a = 1. Se a = 0, allora # 1 (y) = # 1 (x) e dunque vale anche P q0 (y). Possiamo allora applicare l ipotesi induttiva per l affermazione (i), parte solo se, e concludere che ˆδ(q 0, y) = q 0. Dalla definizione della funzione di transizione di A, abbiamo che dallo stato q 0 leggendo il simbolo 0 si raggiunge lo stato q 0. Dunque possiamo scrivere ˆδ(q 0, x) = δ(ˆδ(q 0, y), 0) = δ(q 0, 0) = q 0. Se a = 1, allora # 1 (y) = # 1 (x) 1, cioè # 1 (y) è dispari, e dunque vale P q1 (y). Possiamo allora applicare l ipotesi induttiva per l affermazione (ii), parte solo se, e concludere che ˆδ(q 0, y) = q 1. Dalla definizione della funzione di transizione di A, abbiamo che dallo stato q 1 leggendo il simbolo 1 si raggiunge lo stato q 0. Dunque possiamo scrivere ˆδ(q 0, x) = δ(ˆδ(q 0, y), 1) = δ(q 1, 1) = q 0. Ciò conclude la parte induttiva, ed abbiamo dunque dimostrato la parte solo se dell affermazione (i). (Parte (i), se) Dobbiamo dimostrare che, per ogni x {0, 1}, se ˆδ(q 0, x) = q 0 allora P q0 (x) è vera. Procediamo ancora per induzione sulla lunghezza della stringa x. Base. Abbiamo x = 0, cioè x = ε. La relazione ˆδ(q 0, ε) = q 0 è sempre vera, per definizione di ˆδ. Inoltre, P q0 (ε) è anche vera, perchè # 1 (ε) è pari. Concludiamo dunque che l implicazione da dimostrare è vera. Induzione. Sia x = n > 0. Se ˆδ(q 0, x) = q 0 è falsa, allora l implicazione da dimostrare è sempre vera. Consideriamo invece il caso in cui ˆδ(q 0, x) = q 0 sia vera. Come già fatto in precedenza, scriviamo x = ya con a {0, 1} e y {0, 1}, y = n 1. Distinguiamo due casi, a seconda che sia a = 0 oppure a = 1. Sia a = 0. Poiché ˆδ(q 0, x) = q 0, l automa si trova nello stato q 0 dopo aver letto x. L ultimo simbolo di x è il carattere 0, e dalla definizione di A vediamo che leggendo 0 lo stato q 0 può essere raggiunto solo se l automa si trova già nello stato q 0 dopo aver letto y. Concludiamo 7

9 dunque che deve essere ˆδ(q 0, y) = q 0. Possiamo adesso applicare l ipotesi induttiva per l affermazione (i), parte se, e concludere che P q0 (y) è vera, cioè y ha un numero pari di occorrenze del carattere 1. Allora anche x ha un numero pari di occorrenze del carattere 1, e possiamo asserire che anche P q0 (x) è vera. Sia a = 1. Poiché ˆδ(q 0, x) = q 0, l automa si trova nello stato q 0 dopo aver letto x. L ultimo simbolo di x è il carattere 1, e dalla definizione di A vediamo che leggendo 1 lo stato q 0 può essere raggiunto solo se l automa si trova nello stato q 1 dopo aver letto y. Concludiamo dunque che deve essere ˆδ(q 0, y) = q 1. Possiamo dunque applicare l ipotesi induttiva per l affermazione (ii), parte se, e concludere che P q1 (y) è vera, cioè y ha un numero dispari di occorrenze del carattere 1. Poiché abbiamo # 1 (y) = # 1 (x) 1, concludiamo che x ha un numero pari di occorrenze del carattere 1, e possiamo asserire che P q0 (x) è vera. Ciò conclude la parte induttiva, ed abbiamo dunque dimostrato anche la parte se dell affermazione (i). Le parte solo se e la parte se dell affermazione (ii) possono essere dimostrate in modo molto simile alla dimostrazione delle rispettive parti dell affermazione (i), sopra riportate. Queste due dimostrazioni vengono dunque tralasciate. Nota In questa nota di coda all esercizio, motiviamo la necessità di impiegare la tecnica della mutua induzione nella dimostrazione delle affermazioni (i) e (ii). Consideriamo il caso induttivo della parte solo se dell affermazione (i). Abbiamo discusso due diverse situazioni, a seconda che la stringa x terminasse con il carattere 0 oppure con il carattere 1. In quest ultimo caso, abbiamo x = y1, e dunque se x ha un numero pari di occorrenze del carattere 1, allora y ha un numero dispari di occorrenze dello stesso carattere. Per questo motivo, non possiamo invocare su y l ipotesi induttiva della stessa affermazione (i) che stiamo dimostrando, che riguarda le stringhe con un numero pari di occorrenze del carattere 1: dobbiamo invece essere in grado di invocare su y l ipotesi induttiva della affermazione (ii), che riguarda le stringhe con un numero dispari di occorrenze del carattere 1. Ciò richiede dunque la tecnica della mutua induzione. Esercizio 2.2 Si produca un automa a stati finiti deterministico per l insieme delle stringhe w su {a, b} tali che il terzultimo simbolo in w sia b. 8

10 Il linguaggio descritto nel testo può essere formalmente indi- Soluzione cato come L = {xby x, y {a, b}, y = 2}. Non è difficile convincersi che L contiene proprio tutte e sole le stringhe il cui terzultimo carattere è b. Anche se l esercizio richiede di esibire un automa deterministico che riconosca L, è conveniente costruire dapprima un automa nondeterministico. Successivamente, sarà possibile ottenere una versione deterministica applicando la costruzione utilizzata nel teorema che dimostra l equivalenza di DFA e NFA. La scelta di questo metodo deriva dal fatto che, come spesso accade, l automa nondeterministico ha un numero più ridotto di stati: ciò semplifica la descrizione e la dimostrazione che il linguaggio da esso riconosciuto è effettivamente quello richiesto. Costruiamo dunque l automa nondeterministico M = (Q, {a, b}, δ, q 0, F ), con Q = {q 0, q 1, q 2, q 3 } e F = {q 3 }. La funzione δ : Q {a, b} 2 Q è definita dalla tabella in Figura 2.2, in cui riportiamo per maggiore chiarezza anche il diagramma delle transizioni dell automa. a,b stato q 0 q 1 q 2 q 3 a {q 0 } {q 2 } {q 3 } b {q 0, q 1 } {q 2 } {q 3 } b a,b a,b q 0 q 1 q 2 q 3 Figura 2.2: Tabella e diagramma delle transizioni dell automa nondeterministico M. Mostreremo ora che il linguaggio riconosciuto da M è L, ovvero che L(M) = L. Come sempre, la dimostrazione si divide in due parti. (Parte L L(M)) Presa una generica stringa z L, dobbiamo mostrare che z L(M). Questo risultato si può ottenere, ad esempio, per induzione sulla lunghezza di z. Base. La stringa più corta di L si ottiene ponendo x = ε nella definizione: in tal caso, si ha z = by con y = 2, e quindi z = 3. Partendo dallo stato iniziale e leggendo una b, che è il primo carattere di z, si può passare nello stato q 1, in quanto q 1 δ(q 0, b). Di qui, qualsiasi siano i due caratteri 9

11 di y, si passa necessariamente in q 2 e poi nello stato finale q 3, in quanto δ(q 1, a) = δ(q 1, b) = {q 2 } e δ(q 2, a) = δ(q 2, b) = {q 3 }. Abbiamo così trovato un percorso etichettato z = by dallo stato iniziale allo stato finale, e possiamo concludere che z L(M). Induzione. Sia z > 3; in base alla definizione di L, possiamo scrivere z = xby, con x 1. Dato che x contiene almeno un carattere, scriviamo z = Xx by, dove X {a, b} rappresenta il primo carattere di x e x appartiene a {a, b}. Partendo dallo stato iniziale e qualunque sia X, si può restare in q 0, in quanto q 0 δ(q 0, a) e q 0 δ(q 0, b). Osserviamo ora che anche la stringa x by appartiene a L, e si ha x by < z : per l ipotesi induttiva, x by appartiene allora a L(M), e quindi esiste un percorso da q 0 a q 3 etichettato x by. Complessivamente, abbiamo così mostrato l esistenza di un percorso etichettato Xx by = z dallo stato iniziale allo stato finale, e concludiamo che z L(M). (Parte L(M) L) Presa una generica stringa z L(M), la dimostrazione procede per induzione sul numero n di passi in cui l automa accetta la stringa. Base. Per come è stata definita la funzione δ, per passare dallo stato iniziale allo stato finale è necessario visitare in sequenza tutti gli stati intermedi. Dato che l automa ha in totale quattro stati, sono necessari almeno tre passi perché esso accetti una qualsiasi stringa. Gli unici percorsi di lunghezza 3 da q 0 a q 3 sono etichettati baa, bab, bba, bbb: tutte le stringhe iniziano con una b perché q 1 δ(q 0, a), e dunque soltanto leggendo una b l automa può cambiare subito stato. In tutti i casi b è il terzultimo carattere, e quindi possiamo concludere che tutte le stringhe accettate dall automa in tre passi appartengono a L. Induzione. Sia z una generica stringa accettata dall automa in n passi, con n > 3. Osserviamo che, al primo passo, l automa deve necessariamente rimanere nello stato q 0 : in caso contrario, giungerebbe poi in due passi allo stato finale (abbiamo già detto che, indipendentemente dal carattere letto, da q 1 si passa in q 2 e da q 2 in q 3 ), dal quale nessuna mossa è più possibile. Scriviamo ora z = Xx, dove X {a, b} rappresenta il primo carattere di z. La stringa x è accettata dall automa in meno di n passi: per l ipotesi induttiva, essa appartiene a L, e dunque il suo terzultimo carattere è una b. Ma il terzultimo carattere di x è anche il terzultimo carattere di Xx = z: concludiamo che z L, e quindi, per l arbitrarietà di z, che anche le stringhe accettate da M in n passi appartengono a L. Abbiamo così dimostrato che l automa nondeterministico M riconosce 10

12 effettivamente L; applicando ora il procedimento indicato in precedenza, costruiamo l automa deterministico equivalente M = (Q, {a, b}, δ, [q 0 ], F ). Gli elementi di Q 2 Q rappresentano gli insiemi di stati in cui varie copie dell automa possono trovarsi contemporaneamente, dopo aver letto la stessa stringa in ingresso. Per determinarli, estendiamo a 2 Q {a, b} il dominio della funzione δ nel modo seguente: δ(p, X) = δ(p, X), P 2 Q. p P Con questa definizione possiamo ora facilmente calcolare, partendo da q 0, gli insiemi di stati raggiungibili: δ({q 0 }, a) = δ(q 0, a) = {q 0 } δ({q 0 }, b) = δ(q 0, b) = {q 0, q 1 } δ({q 0, q 1 }, a) = δ(q 0, a) δ(q 1, a) = {q 0 } {q 2 } = {q 0, q 2 } δ({q 0, q 1 }, b) = δ(q 0, b) δ(q 1, b) = {q 0, q 1 } {q 2 } = {q 0, q 1, q 2 } δ({q 0, q 2 }, a) = δ(q 0, a) δ(q 2, a) = {q 0 } {q 3 } = {q 0, q 3 } δ({q 0, q 2 }, b) = δ(q 0, b) δ(q 2, b) = {q 0, q 1 } {q 3 } = {q 0, q 1, q 3 } δ({q 0, q 1, q 2 }, a) = δ(q 0, a) δ(q 1, a) δ(q 2, a) = {q 0 } {q 2 } {q 3 } = {q 0, q 2, q 3 } δ({q 0, q 1, q 2 }, b) = δ(q 0, b) δ(q 1, b) δ(q 2, b) = {q 0, q 1 } {q 2 } {q 3 } = {q 0, q 1, q 2, q 3 } δ({q 0, q 3 }, a) = δ(q 0, a) δ(q 3, a) = {q 0 } = {q 0 } δ({q 0, q 3 }, b) = δ(q 0, b) δ(q 3, b) = {q 0, q 1 } = {q 0, q 1 } δ({q 0, q 1, q 3 }, a) = δ(q 0, a) δ(q 1, a) δ(q 3, a) = {q 0 } {q 2 } = {q 0, q 2 } δ({q 0, q 1, q 3 }, b) = δ(q 0, b) δ(q 1, b) δ(q 3, b) = {q 0, q 1 } {q 2 } = {q 0, q 1, q 2 } δ({q 0, q 2, q 3 }, a) = δ(q 0, a) δ(q 2, a) δ(q 3, a) = {q 0 } {q 3 } = {q 0, q 3 } δ({q 0, q 2, q 3 }, b) = δ(q 0, b) δ(q 2, b) δ(q 3, b) = {q 0, q 1 } {q 3 } = {q 0, q 1, q 3 } δ({q 0, q 1, q 2, q 3 }, a) = δ(q 0, a) δ(q 1, a) δ(q 2, a) δ(q 3, a) = {q 0 } {q 2 } {q 3 } = {q 0, q 2, q 3 } δ({q 0, q 1, q 2, q 3 }, b) = δ(q 0, b) δ(q 1, b) δ(q 2, b) δ(q 3, b) = {q 0, q 1 } {q 2 } {q 3 } = {q 0, q 1, q 2, q 3 } L insieme degli stati dell automa deterministico è quindi Q = {[q 0 ], [q 0, q 1 ], [q 0, q 2 ], [q 0, q 1, q 2 ], [q 0, q 3 ], [q 0, q 1, q 3 ], [q 0, q 2, q 3 ], [q 0, q 1, q 2, q 3 ]}. 11

13 L automa M ha otto stati, contro i quattro della versione nondeterministica. Dalla teoria sappiamo (la cosa appare chiaramente esaminando il procedimento adottato) che il numero di stati può crescere in modo esponenziale: nel nostro caso, ci aspettavamo un massimo di sedici stati. L insieme F è costituito dagli stati in Q che contengono almeno uno stato in F ; nel nostro caso, F = {[q 0, q 3 ], [q 0, q 1, q 3 ], [q 0, q 2, q 3 ], [q 0, q 1, q 2, q 3 ]}. Infine, la funzione δ : Q {a, b} Q è banalmente ricavabile dalla precedente tabella per determinare gli stati accessibili, tenendo conto del fatto che per costruzione δ ([q 0, q 1,..., q i ], X) = [p 1, p 2,..., p j ] se e solo se δ({q 0, q 1,..., q i }, X) = {p 1, p 2,..., p j }. Abbiamo così completato la definizione dell automa deterministico M. Sapendo che esso è equivalente all automa M, e avendo dimostrato che L(M) = L, concludiamo che M riconosce L, come richiesto dall esercizio. Esercizio 2.3 Impiegando gli automi a stati finiti, si dimostri che la classe dei linguaggi regolari è chiusa rispetto alla complementazione. Quale delle ipotesi sull automa impiegato nella dimostrazione risulta fondamentale? Giustificare la risposta. Soluzione Sia L un linguaggio regolare, e sia Σ un alfabeto tale che L Σ : vogliamo dimostrare che L Σ = L è ancora un linguaggio regolare. Dato che Σ può contenere simboli non presenti nelle stringhe di L, nel seguito indicheremo con Σ L l alfabeto sul quale L è definito, ovvero l alfabeto costituito soltanto dai simboli effettivamente utilizzati nelle stringhe del linguaggio. Dalla teoria sappiamo che se L è regolare, esiste sempre un automa a stati finiti M = (Q, Σ L, δ, q 0, F ) che riconosce L, ovvero tale che L(M) = L. Vogliamo trasformare M in modo da ottenere un automa M capace di riconoscere L. Intuitivamente, visto che M accetta le stringhe che conducono ad uno stato finale, si potrebbe pensare di sostituire semplicemente l insieme F con Q F, ottenendo così un automa che non si trova in uno stato finale solo dopo aver letto le stringhe di L, e dunque accetta proprio Σ L L. Il metodo che adotteremo, in effetti, è proprio questo; sono però indispensabili delle precisazioni, dovute sia al fatto che non sappiamo nulla della struttura dell automa M, sia al fatto, a cui abbiamo già accennato, che Σ L può essere strettamente incluso in Σ. Per prima cosa, è fondamentale che M sia deterministico. Secondo la definizione, un automa nondeterministico accetta una stringa x se e solo se 12

14 δ(q 0, x) contiene almeno uno stato in F. In particolare, può accadere che δ(q 0, x) contenga anche uno o più stati non in F, ovvero che δ(q 0, x) contenga almeno uno stato in Q F. In tal caso, x è accettata anche dall automa con gli stati finali complementati, che invece dovrebbe accettare soltanto le stringhe in Σ L L. Tutto questo non accade con gli automi deterministici, in quanto δ(q 0, x) è costituita da un unico stato, che ovviamente può essere in F o in Q F, ma non in entrambi gli insiemi. Sappiamo d altronde che ogni automa nondeterministico ha un equivalente deterministico, ed esiste una procedura automatica (cfr. Esercizio 2.2) per ottenere il secondo dal primo. Se dunque l automa M non è deterministico, si può sempre costruire un automa deterministico equivalente che non presenta il problema citato. Nel seguito indicheremo ancora con M = (Q, Σ L, δ, q 0, F ) l automa deterministico, in modo da non appesantire inutilmente la notazione. Ovviamente, esistono linguaggi ed automi, anche nondeterministici, per i quali questa trasformazione non è necessaria: la nostra costruzione deve però essere valida nel caso generale, e dunque non possiamo escludere nessuna possibilità. In secondo luogo, bisogna estendere la funzione δ ai simboli di Σ Σ L. A questo scopo, aggiungiamo all automa uno stato sentina q s, che supponiamo non appartenga già a Q, e definiamo δ(q, X) = q s per ogni q Q e X Σ Σ L ; δ(q s, X) = q s per ogni X Σ. Nel caso particolare in cui Σ = Σ L, lo stato q s risulta irraggiungibile e il comportamento dell automa rimane invariato. Altrimenti, l automa passa in q s soltanto leggendo un carattere appartenente a Σ Σ L : qui rimane senza accettare, dato che q s Q e quindi q s F. Questo comportamento è perfettamente logico: L è definito su Σ L, e quindi ogni stringa che contenga simboli in Σ Σ L sicuramente non appartiene a L. Il linguaggio riconosciuto dall automa rimane quindi invariato, visto che per ogni stringa in Σ L le transizioni aggiunte non hanno alcuna influenza. Riassumendo le considerazioni precedenti, costruiamo l automa deterministico a stati finiti M = (Q, Σ, δ, q 0, F ), dove Q = Q {q s }, F = Q F e δ è la funzione di transizione di M estesa a Q Σ nel modo indicato in precedenza. Data una stringa x Σ, M accetta x se e solo se δ(q 0, x) è in Q F. Visto che invece l automa di partenza M accetta una stringa se e solo se δ(q 0, x) è in F, concludiamo che M accetta se e solo se M non accetta. In altre parole, L(M ) = Σ L(M) = Σ L = L, come volevamo. Possiamo concludere che se L è regolare, anche il suo complementare L lo è. La classe dei linguaggi regolari è dunque chiusa sotto complementazione. In più, abbiamo descritto una procedura automatica che, dato un automa 13

15 M che riconosce L, permette di costruire un automa M che riconosce L: questo significa che la chiusura sotto intersezione dei linguaggi regolari è effettiva. Venendo ora alla seconda parte dell esercizio, sottolineiamo che l ipotesi fondamentale del teorema di chiusura è che l automa che riconosce L sia deterministico; in caso contrario, come abbiamo visto, tutta la costruzione descritta viene a cadere. Non è infatti più possibile fare previsioni sul linguaggio riconosciuto dall automa con gli stati finali complementati: fissato L, esso dipende dal particolare automa scelto. La seconda ipotesi, riguardante il fatto che la funzione δ sia definita su tutti i simboli di Σ, è invece assai meno importante: lasciandola cadere, rimane comunque possibile dimostrare la chiusura sotto complementazione del linguaggio L, ma solo rispetto a Σ L, ovvero rispetto all insieme delle stringhe formate soltanto da simboli effettivamente presenti in L. La seconda osservazione ha dunque una funzione prettamente tecnica, permettendo di dimostrare una versione leggermente più generale del teorema. Esercizio 2.4 Dimostrare che le espressioni regolari (R + S) e (R S ) sono equivalenti. Soluzione Per dimostrare l equivalenza delle due espressioni, si dimostra che i linguaggi da esse descritti L 1 = L((R + S) ) e L 2 = L((R S ) ) coincidono. Si scompone la dimostrazione in due parti: L 1 L 2 e L 2 L 1. (Parte L 1 L 2 ) Dimostriamo dunque che se w L 1 allora w L 2. Per definizione di linguaggio associato alla chiusura transitiva di un espressione regolare si ha: w L((R + S) ) w [L(R + S)] Questo significa che w è costituita dalla concatenazione di zero o più stringhe di L(R + S). Senza perdita di generalità supponiamo w sia composta da k stringhe concatenate: w = w 1 w 2 w k con w i L(R + S) Per definizione di linguaggio associato all unione di due espressioni regolari si ottiene: w i L(R + S) w i L(R) L(S) Quindi ciascuna w i deve appartenere a L(R) o a L(S). 14

16 Supponiamo che w i L(R). A maggior ragione possiamo affermare che w i [L(R)]. Infatti [L(R)] contiene stringhe ottenute dalla concatenzazione di zero o più stringhe di L(R), quindi sicuramente tutte le stringhe di L(R). Per definizione avremo inoltre che ε [L(S)] e w i = w i ε. In conclusione, w i = w i ε [L(R)] [L(S)] = L(R )L(S ) = L(R S ). Se invece w i L(S) si ragiona in modo duale tenendo presente che ε è elemento neutro per la concatenazione sia a destra che a sinistra: w i = εw i. Abbiamo dimostrato che se w i L(R + S) allora w i L(R S ). Ritornando alla struttura di w questo implica che: w [L(R S )] = L[(R S ) ] (Parte L 2 L 1 ) Dimostriamo ora che se w L 2 allora w L 1. Applicando la definizione di linguaggio associato alla chiusura si ottiene: w L[(R S ) ] = [L(R S )] = [L(R )L(S )] = [L(R) L(S) ] Possiamo affermare che w è costituita dalla concatenazione di zero o più stringhe di L(R) L(S). Senza perdita di generalità assumiamo che sia concatenazione di k stringhe: w = w 1 w 2 w k con w i L(R) L(S) Questo significa che ciascuna stringa w i è composta da zero o più stringhe di L(R) seguite da zero o più stringhe di L(S). Per come è costruita w, possiamo affermare che a maggior ragione w i [L(R) L(S)]. Infatti di questo insieme fanno parte tutte le stringhe ottenute per concatenazione di zero o più stringhe prese da L(R) o da L(S), in ordine qualsiasi. In particolare quindi ci saranno quelle ottenute concatenando ε e stringhe di L(R) seguite da ε e stringhe di L(S). Poiché w i [L(R) L(S)] si avrà w {[L(R) L(S)] }. Per la proprietà di idempotenza w [L(R) L(S)], per definizione di espressione regolare associata all unione dei linguaggi di due espressioni, e per definizione di chiusura transitiva si ottiene: w [L(R) L(S)] = [L(R + S)] = L[(R + S) ] Avendo dimostrato che L 1 L 2 e L 2 L 1, possiamo concludere che L 1 = L 2. 15

17 δ N 0 1 q 0 {q 0, q 1 } {q 1 } q 1 {q 1, q 2 } q 2 {q 2 } Figura 2.3: Tabella di transizione per l NFA dell Esercizio 2.5. Esercizio 2.5 Sia N = (Q, Σ, δ N, q 0, F ) un NFA con Q = {q 0, q 1, q 2 }, Σ = {0, 1}, F = {q 2 } e δ N specificata dalla tabella di transizione riportata in Figura 2.3. Produrre un DFA D equivalente ad N. Soluzione Si utilizza la costruzione denominata lazy evaluation, in cui si producono gli stati di D al bisogno. Si parte dallo stato iniziale q 0 di N, che corrisponde allo stato {q 0 } di D, e si calcola l insieme degli stati da esso raggiungibili nell NFA leggendo, rispettivamente, i simboli 0 e 1. L insieme degli stati così ottenuti rappresenta un unico stato nel DFA, per il quale andrà calcolata la funzione di trasferimento. Questo unico stato rappresenta il fatto che nell NFA possiamo trovarci contemporaneamente in ciascuno degli stati coinvolti. Si ricorda che la formula per ottenere lo stato successivo a uno stato {q 1, q 2,..., q r } del DFA, leggendo il simbolo a Σ, è la seguente: δ D ({q 1, q 2,..., q r }, a) = r δ N (q i, a). i=1 Ecco dunque alcuni tra i primi stati di D, in ordine di raggiungibilità: δ D ({q 0 }, 0) = δ N (q 0, 0) = {q 0, q 1 } δ D ({q 0 }, 1) = δ N (q 0, 1) = {q 1 } δ D ({q 0, q 1 }, 0) = δ N (q 0, 0) δ N (q 1, 0) = {q 0, q 1 } {q 1, q 2 } = {q 0, q 1, q 2 } δ D ({q 0, q 1 }, 1) = δ N (q 0, 1) δ N (q 1, 1) = {q 1 } = {q 1 } δ D ({q 1 }, 0) = δ N (q 1, 0) = {q 1, q 2 } δ D ({q 1 }, 1) = δ N (q 1, 1) = In modo analogo si ottengono i rimanenti stati (per i quali si omettono i 16

18 passaggi intermedi): δ D ({q 0, q 1, q 2 }, 0) = {q 0, q 1, q 2 } δ D ({q 0, q 1, q 2 }, 1) = {q 1, q 2 } δ D ({q 1, q 2 }, 0) = {q 1, q 2 } δ D ({q 1, q 2 }, 1) = {q 2 } δ D ({q 2 }, 0) = δ D ({q 2 }, 1) = {q 2 } L automa ottenuto è rappresentato in Figura q 0 q 1 q 0 q 0 q 1 q q 1 0 q 1 q ,1 0 q 2 Figura 2.4: Il DFA D equivalente all NFA con tabella di transizione riportata in Figura 2.3. Esercizio 2.6 Stabilire se i seguenti linguaggi siano regolari o meno, giustificando rigorosamente la risposta: (i) L 1 = {w w {a, b} +, # a (w) # b (w)}; (ii) L 2 = {a, b} L 1. 17

19 Soluzione Il linguaggio L 1 non è regolare. Per dimostrare questo risultato, introduciamo il linguaggio ausiliario L 0 = {w w {a, b}, # a (w) = # b (w)} e dimostriamo che non è regolare utilizzando il pumping lemma. Per assurdo, assumiamo che L 0 sia regolare. Esiste allora una costante n tale che ogni stringa z L 0, con z n, può essere scritta come z = uvw, con uv n, v 1 e uv i w L 0 per ogni i 0. Consideriamo la stringa z = a n b n, che appartiene sicuramente al linguaggio e ha una lunghezza strettamente maggiore di n. Dobbiamo ora dividere la stringa in tre parti u, v, w, con uv n e v 1. Dato che i primi n caratteri della stringa sono a, non può che essere u = a j e v = a k, dove j, k sono tali che j + k n e k 1. Secondo il pumping lemma, anche la stringa z = uv 0 w = uw appartiene al linguaggio L 1 : questo è però assurdo, poiché # a (z ) = # a (u) + # a (w) = # a (z) # a (v) = n k; # b (z ) = # b (u) + # b (w) = # b (w) = # b (z) = n, con n k strettamente minore di n dato che k 1. Viene così contraddetta la definizione di L 0, e resta dimostrato che L 0 non è un linguaggio regolare. Osserviamo ora che L 1 = {a, b} \ L 0 = L 0. Dato che la classe dei linguaggi regolari è chiusa sotto complementazione, se L 1 fosse regolare tale sarebbe anche L 0, contro quanto abbiamo appena dimostrato. Concludiamo dunque che neppure L 1 è un linguaggio regolare. Il linguaggio L 2 è invece regolare. Mostreremo infatti che L 2 = {a, b} +, che è un noto linguaggio regolare. La dimostrazione si divide in due parti. (Parte L 2 {a, b} + ) Sia z una generica stringa in L 2. In base alla definizione di L 2, possiamo scrivere z = u v, con u {a, b} e v L 1. Dato che L 1 non contiene la stringa nulla, si ha v ε, e dunque z ε. La dimostrazione è a questo punto banale, visto che {a, b} + contiene per definizione ogni stringa composta da occorrenze dei simboli a e b, esclusa la stringa nulla. (Parte {a, b} + L 2 ) Sia z una generica stringa in {a, b} +. Per dimostrare che z L 2 dobbiamo, in base alla definizione di L 2, trovare due stringhe u, v tali che z = u v, con u {a, b} e v L 1. Dato che la stringa nulla non è inclusa in {a, b} +, z contiene almeno un carattere: è perciò lecito porre in v l ultimo carattere di z, e in u tutto il resto della stringa. Osserviamo ora che può essere v = a oppure v = b, ma in ogni caso # a (v) # b (v), e quindi, in base alla definizione, v L 1. Questo conclude la nostra dimostrazione, dato che sicuramente u {a, b}. 18

20 Esercizio 2.7 Stabilire se i seguenti linguaggi siano regolari o meno: (i) L 1 = {wxw R w, x {0, 1} +, w = 12}; (ii) L 2 = {wxw R w, x {0, 1} +, x = 12}; (iii) L 3 = {wxw R w, x {0, 1} + }. Soluzione Il linguaggio L 1 è regolare. Per semplicità, in seguito useremo spesso il simbolo w con lo stesso significato che ha nella definizione di L 1, ovvero per indicare quella parte iniziale di una stringa che deve ripresentarsi rovesciata alla fine. Intuitivamente, per riconoscere una stringa del tipo wxw R è necessario memorizzare w mentre viene letta, per poterla poi confrontare con w R. Se la lunghezza di w è arbitraria, questo compito non è alla portata di un automa finito, che dispone di un numero finito di stati e può dunque immagazzinare una quantità finita di informazioni. Nel nostro caso, però, si ha la limitazione w = 12, e dunque le diverse stringhe w che possono presentarsi sono in numero finito: considerando w come un numero binario, si vede facilmente che si possono realizzare 2 w = 2 12 = 4096 diverse combinazioni. Dato che è possibile costruire un automa in grado di memorizzare 4096 differenti stringhe, il linguaggio L 1 è riconoscibile da un automa finito. Nel seguito, renderemo rigorose queste osservazioni realizzando un automa a stati finiti nondeterministico M = (Q, {0, 1}, δ, [L, ε], {[C, ε]}) tale che L(M) = L 1. L insieme degli stati di M è Q = {[η, v] η {L, C}, v {0, 1}, 0 v w }. Le lettere L e C stanno rispettivamente per leggi e confronta : negli stati del tipo [L, v], infatti, v rappresenta caratteri già letti dall automa, mentre in quelli del tipo [C, v] indica la porzione di stringa che deve ancora essere confrontata con l ingresso. Esiste dunque uno stato per ciascuna delle possibili stringhe v di lunghezza compresa tra 0 e w ; inoltre, è presente un flag per indicare se ci si trova nella fase di lettura di w o nella fase di confronto con w R, e questo fa raddoppiare il numero degli stati. Dato che si possono avere 2 w diverse stringhe di lunghezza w, 2 w 1 stringhe di lunghezza w 1,..., 2 0 stringhe di lunghezza 0, l automa M ha complessivamente un numero di stati pari a 2 (2 w + 2 w ) = 2 (2 w +1 1) = 2 w

21 Il numero di stati è esponenziale rispetto alla lunghezza di w, come era logico attendersi dal fatto che le possibili combinazioni aumentano esponenzialmente con la lunghezza della stringa. Nel nostro caso, w = 12, e quindi M ha = stati. Posto X {0, 1}, la funzione δ : Q {0, 1} 2 Q può a questo punto essere definita come segue: δ([l, v], X) = δ([c, v], X) = { {[L, vx]}, {[C, v]}, {[C, v], [C, v ]}, {[C, v]}, {[C, v ]}, v < w ; v = w ; v = w, v = v X; v = w, v v X; v < w, v = v X. Per maggiore chiarezza, riportiamo in Figura 2.5 il diagramma delle transizioni dell automa che si ottiene per w = 2. Esso ha soltanto = 14 stati, ma concettualmente è del tutto equivalente all automa per w = 12, che ha oltre sedicimila stati. Come si vede, l automa è sostanzialmente co- [L,ε] 0 1 [L,0] [L,1] [L,00] [L,01] [L,10] [L,11] 0,1 0,1 0,1 0,1 [C,00] [C,01] [C,10] [C,11] 0,1 0,1 0,1 0, [C,0] [C,1] 0 1 [C,ε] Figura 2.5: Automa per le stringhe del tipo wxw R con w = 2. stituito da due alberi binari completi di altezza w, che rappresentano gli 20

22 alberi delle combinazioni delle stringhe w. Nel seguito, chiameremo albero superiore l albero la cui radice corrisponde allo stato iniziale, rappresentato alla sommità del disegno, e albero inferiore l albero la cui radice corrisponde allo stato finale. Definiamo inoltre stati foglia gli stati [L, v] con v = 12, che corrispondono alle foglie dell albero superiore. Oltre agli archi che appartengono ai due alberi, il diagramma delle transizioni presenta archi aggiuntivi che collegano le foglie dell albero superiore a quelle dell albero inferiore, nonchè archi che si chiudono su sé stessi sulle foglie dell albero inferiore. Se non fosse per questi ultimi, che rendono l automa nondeterministico, il diagramma delle transizioni sarebbe simmetrico rispetto ad un asse orizzontale passante tra i due livelli di foglie. In quest ultima osservazione, consideriamo naturalmente gli archi come non orientati: nel disegno, infatti, essi sono sempre rivolti dall alto verso il basso. La simmetria è sottolineata dai nomi degli stati, che sono prefissati dalla lettera L nella parte alta e dalla lettera C nella parte bassa: in particolare, lo stato finale è il simmetrico dello stato iniziale. Osserviamo infine che ogni nodo etichettato [L, v] è raggiungibile soltanto tramite un percorso etichettato v, di lunghezza v pari all altezza del nodo. Mostreremo ora che l automa M appena descritto riconosce L 1. Per non appesantire la notazione, confonderemo talvolta i nodi del diagramma delle transizioni con i corrispondenti stati dell automa. Come sempre, la dimostrazione si divide in due parti. (Parte L 1 L(M)) Sia z L 1 ; allora, possiamo scrivere z = wxw R, con w = 12 e x {0, 1} +. Per come è stato costruito l automa, l unico percorso etichettato w che parte dallo stato iniziale conduce allo stato foglia [L, w]. Dato che w = 12, dalla definizione della funzione δ deduciamo che [C, w] appartiene sia a δ([l, w], 0) che a δ([l, w], 1). Qualunque sia il primo carattere di x (esiste certamente, visto che x {0, 1} + ), l automa passa dunque nello stato [C, w]. Qui può rimanere mentre legge il resto di x, poiché [C, w] appartiene sia a δ([c, w], 0) che a δ([c, w], 1). L uso dell espressione può rimanere non è casuale, visto che ci sono due diversi archi etichettati 0 oppure 1 che escono dallo stato [C, w]. Leggendo infine la stringa w R, l automa lascia lo stato [C, w] e passa a ritroso per stati i cui indici, ora prefissati dalla lettera C, sono gli stessi degli stati visitati leggendo w, fino a giungere allo stato finale [C, ε]. Nel complesso, abbiamo descritto un percorso dallo stato iniziale allo stato finale etichettato wxw R = z: possiamo quindi concludere che M accetta z, ovvero che z L(M). (Parte L(M) L 1 ) Sia z L(M); allora, esiste un percorso etichettato z dallo stato iniziale [L, ε] allo stato finale [C, ε]. Tale percorso può essere suddiviso in tre parti: 21

23 (i) una prima parte, etichettata w, da [L, ε] allo stato foglia [L, w]. Ogni percorso che giunga allo stato finale, che è la radice dell albero inferiore, deve infatti passare per una delle foglie dell albero superiore, poiché solo queste sono collegate con nodi dell albero inferiore. Inoltre, l albero superiore (come d altronde quello inferiore) è completo ed ha altezza 12: ogni percorso dallo stato iniziale ad uno degli stati foglia ha dunque lunghezza 12, e si ha sicuramente w = 12; (ii) una seconda parte, etichettata x. Leggendo il primo carattere di x l automa passa da [L, w] a [C, w], mentre leggendo i successivi rimane in [C, w]. Dato che per ipotesi l automa, leggendo z nel suo complesso, giunge nello stato finale [C, ε], esso deve prima o poi abbandonare [L, w], per cui la stringa x contiene sicuramente almeno un carattere; (iii) una terza parte, il cui primo carattere fa sì che l automa lasci lo stato [C, w]. Per la simmetria dell automa questa parte del percorso è sicuramente etichettata w R. Riassumendo, possiamo scrivere z = wxw R, con w = 12 e x {0, 1} +. Concludiamo allora che z appartiene a L 1 in base alla definizione di tale linguaggio. Effettivamente, quindi, si ha L(M) = L 1 : di conseguenza, L 1 è un linguaggio regolare, come volevamo dimostrare. Il linguaggio L 2, invece, non è regolare. Proveremo questo fatto ricorrendo al pumping lemma per linguaggi regolari. Detta n la costante citata nell enunciato del lemma, consideriamo la stringa z = 0 n n. Prendendo w = 0 n e x = 1 12 nella definizione del linguaggio, si verifica subito che z L 2 : in questo caso particolare, si ha w = w R. Inoltre, z = 2n+12 > n, per cui si può applicare il pumping lemma. Se dunque L 2 fosse un linguaggio regolare, sarebbe possibile scrivere z = uvy, con uv n e v 1, in modo tale che uv i y L 2 per ogni intero i 0. Mostreremo ora invece che la stringa z = uv 2 y, che si ottiene ponendo i = 2, sicuramente non appartiene a L 2. Dato che i primi n caratteri di z sono zeri, non può che essere u = 0 l e v = 0 m per qualche coppia di interi l, m, con l + m n e m 1. Possiamo allora scrivere z = 0 l 0 m 0 m y = 0 n+m n ; in questo modo, si mette in evidenza il fatto che la stringa z è strettamente più lunga di z. La parte centrale x ha però per definizione lunghezza costante, mentre le parti laterali w e w R devono ovviamente avere la stessa lunghezza. Se dunque si vuole che z appartenga ancora a L 2, è necessario distribuire i caratteri in più in egual misura a destra e a sinistra di x. Si vede subito che m deve essere un numero pari, e che si ha dunque m 2. Anche se questa proprietà è verificata, risulta comunque impossibile scrivere z = wxw R per 22

24 qualche stringa w {0, 1} +. Se m/2 < 12, a sinistra di x = 0 m/ m/2 si trovano solo caratteri 0, mentre a destra ci sono anche m/2 1; questo caso è rappresentato in Figura 2.6. La situazione è del tutto simile se m/2 12, in z = } 0 n 0{{ m/2 } 0} m/2 1{{ 12 m/2 } 1} m/2 {{ 0 n } w x w R Figura 2.6: Possibile suddivisione della stringa z = 0 n+m n. quanto a sinistra di x abbiamo 12 occorrenze di 1 e a destra neppure una. È d altronde facile verificare che la suddivisione proposta è l unica che permette di avere lo stesso numero di caratteri a destra e a sinistra di x: possiamo quindi concludere che z non appartiene a L 2, contraddicendo il pumping lemma. L assurdo sta nell avere assunto che L 2 fosse regolare; dunque, L 2 non è regolare. Il linguaggio L 3, infine, è regolare. Introduciamo innanzitutto il linguaggio ausiliario L 3 = L(0(0 + 1) + 0) L(1(0 + 1) + 1), che è ovviamente regolare in quanto unione di linguaggi regolari. Dimostreremo ora che L 3 = L 3. (Parte L 3 : L 3 L 3 ) Sia z L 3. Allora, possiamo scrivere z = wxw R, con w, x {0, 1} +. In particolare, w e x contengono almeno un carattere. Poniamo quindi w = W w, dove W rappresenta il primo carattere di w: chiaramente, W {0, 1}. A questo punto, osservando che w R = (W w ) R = (w ) R W, riscriviamo z = W w x(w ) R W = W (w x(w ) R )W, ove w x(w ) R è una stringa non vuota dato che già la stringa x contiene almeno un carattere. In base alla definizione di espressione regolare, se W = 0 si ha z L(0(0 + 1) + 0), e allo stesso modo se W = 1 si ha z L(1(0 + 1) + 1): in entrambi i casi, possiamo concludere, come volevamo, che z L 3. (Parte L 3 L 3) Sia z L 3. Si ha allora z L(0(0 + 1)+ 0), oppure z L(1(0 + 1) + 1). Cominciamo esaminando il caso in cui z appartiene al primo dei due linguaggi: in base alla definizione di espressione regolare, possiamo scrivere z = wxw, con w {0} e x {0, 1} +. Dato che la stringa w è costituita da un unico carattere, è immediato costatare che w = w R. In definitiva, possiamo scrivere z = wxw R, con w, x {0, 1} +, e in base alla definizione di L 3 concludiamo che z L 3. Il caso in cui z appartiene a 23

25 L(1(0 + 1) + 1) si affronta in modo del tutto analogo, giungendo ovviamente allo stesso risultato. In ogni caso, si ha dunque z L 3, come volevamo. Questo conclude la dimostrazione che L 3 = L 3, e che dunque L 3 è un linguaggio regolare. Esercizio 2.8 Stabilire se i seguenti linguaggi siano regolari o meno: (i) L 1 = {w0 n 1 n w {0, 1} +, n 1}; (ii) L 2 = {0 n w1 n w {0, 1} +, n 1}; (iii) L 3 = {w w L 2, w = 2n, n 1}. Soluzione Il linguaggio L 1 non è regolare. Per dimostrare questa proprietà, nel seguito adottiamo la seguente strategia. Supponiamo per assurdo che L 1 sia un linguaggio regolare, e trasformiamo L 1 in altri linguaggi mediante operatori che preservano la regolarità del linguaggio prodotto, sino ad ottenere un linguaggio che dimostriamo essere non regolare. Abbiamo dunque una contraddizione, e dobbiamo concludere che L 1 non può essere regolare. Consideriamo innanzitutto il linguaggio ausiliario L 1 = {10 i 1 j i, j 1}. È facile convincersi che L 1 è regolare. Infatti abbiamo, L 1 = L( ), cioè L 1 è il linguaggio generato dall espressione regolare Come secondo passo, consideriamo il linguaggio L 1 = L 1 L 1. Dato che la classe dei linguaggi regolari è chiusa rispetto all operazione di intersezione, e dato che abbiamo assunto che L 1 sia un linguaggio regolare, concludiamo che il linguaggio L 1 sarà ancora un linguaggio regolare. Analizziamo ora la struttura delle stringhe di L 1. Sia x = 10i 1 j una stringa in L 1, con i, j 1. Osserviamo che x appartiene anche a L 1 se e solo se i = j. Infatti, per definizione, le stringhe in L 1 hanno tutte la forma w0 n 1 n, dove w {0, 1} + e n 1. L unica possibilità per x di appartenere anche a L 1 è dunque che w = 1, i = n e j = n. Concludiamo allora che L 1 = {10 n 1 n n 1}. Consideriamo infine il linguaggio L 1 = (L 1 )R, cioè il linguaggio ottenuto rovesciando tutte le stringhe di L 1. Possiamo dunque scrivere L 1 = {1 n 0 n 1 n 1}. 24

26 Abbiamo visto nel libro di testo del corso che i linguaggi regolari godono della proprietà di chiusura rispetto all applicazione dell operatore reverse. Dunque, se L 1 fosse regolare, allora anche L 1 sarebbe regolare. Mostriamo invece, applicando il pumping lemma per i linguaggi regolari, che L 1 non è un linguaggio regolare. Iniziamo osservando che, per ogni stringa w L 1, abbiamo # 1(w) = # 0 (w) + 1. Informalmente, il numero di occorrenze del carattere 1 in w è sempre maggiore di una unità rispetto al numero di occorrenze del carattere 0 in w. Useremo nel seguito questa osservazione in modo cruciale per la nostra dimostrazione. Sia dunque L 1 un linguaggio regolare. Allora, esiste una costante n tale che ogni stringa z L 1, con z n, può essere scritta come z = uvw, con uv n, v 1 e uv i w L 0 per ogni i 0. Consideriamo allora la stringa z = 1 n 0 n 1, che appartiene al linguaggio L 1 e ha una lunghezza strettamente maggiore di n. Dobbiamo dividere la stringa in tre parti u, v, w, con uv n e v 1. Dato che i primi n caratteri della stringa sono tutti 1, dobbiamo necessariamente avere u = 1 j e v = 1 k, dove j, k sono tali che j + k n e k 1. Secondo il pumping lemma, anche la stringa z = uv 0 w = uw appartiene al linguaggio L 1. Consideriamo ora le due quantità # 1 (z ) e # 0 (z ). Possiamo ricavare # 1 (z ) = # 1 (u) + # 1 (w) = # 1 (z) # 1 (v) = n + 1 k; # 0 (z ) = # 0 (u) + # b (w) = # 0 (w) = # 0 (z) = n. Poiché k 1, abbiamo n + 1 k n, cioè il numero di occorrenze del carattere 1 in z non è maggiore del numero di occorrenze del carattere 0 in z. Abbiamo però osservato sopra che questa proprietà non vale per le stringhe del linguaggio L 1, e quindi z non può appartenere a L 1. Abbiamo così ottenuto una contraddizione, e dobbiamo dunque concludere che L 1 non è un linguaggio regolare. Segue allora che anche L 1 non è un linguaggio regolare. Questo conclude la prima parte dell esercizio. Nota Nella parte della dimostrazione precedente avremmo potuto risparmiare un passaggio ed applicare il pumping lemma per i linguaggi regolari direttamente al linguaggio L 1, senza introdurre il linguaggio L 1. L applicazione del pumping lemma a L 1 risulta però più complessa dell applicazione del pumping lemma a L 1, per via del carattere 1 che appare all inizio di tutte le stringhe di L 1. Si lascia comunque al lettore come esercizio lo sviluppo di questa idea alternativa. 25

27 Il linguaggio L 2, invece, è regolare, dato che L 2 = L(0(0 + 1) + 1). La dimostrazione di questo fatto, come al solito, si divide in due parti. (Parte L(0(0 + 1) + 1) L 2 ) Prendiamo x L(0(0 + 1) + 1). Per definizione, x si può esprimere come la concatenazione di tre stringhe: x 1 {0}, x 2 {0, 1} + e x 3 {1}. Prendendo n = 1 e w = x 2 nella definizione di L 2, possiamo scrivere x = x 1 x 2 x 3 = 0 1 x 2 1 1, e concludiamo subito che x L 2. (Parte L 2 L(0(0 + 1) + 1)) Sia x L 2 : allora, si può scrivere x = 0 n w1 n, con n 1. Poniamo x 1 = 0, x 2 = 0 n 1 w1 n 1, x 3 = 1: essendo n 1, può eventualmente risultare 0 n 1 = 1 n 1 = ε, ma la stringa x 2 è comunque non vuota, dato che w {0, 1} +. Possiamo quindi esprimere x come la concatenazione di tre stringhe x 1 {0}, x 2 {0, 1} +, x 3 {0}, e concludere che x appartiene a L(0(0 + 1) + 1). Il linguaggio L 3, infine, è regolare. Consideriamo, infatti, il linguaggio L 3 = {w w {0, 1} +, w = 2n, n 1}. Osservando la definizione di L 3, si vede subito che L 3 = L 2 L 3. Al punto precedente, abbiamo provato che L 2 è regolare; se dunque dimostriamo, come intuitivamente appare chiaro, che anche L 3 è regolare, la regolarità di L 3 seguirà dalla proprietà di chiusura sotto intersezione dei linguaggi regolari. Di seguito, mostreremo dunque che L 3 = L(( )+ ). (Parte L(( ) + ) L 3 ) Per come sono state definite le espressioni regolari, L(( ) + ]) indica l insieme delle stringhe ottenute concatenando un numero n arbitrario, con n 1, di stringhe scelte dall insieme {00, 01, 10, 11} {0, 1} +. Le stringhe di tale insieme sono tutte di lunghezza 2, per cui se w L(( ) + ), sicuramente w = 2n, con n 1; in più, w {0, 1} +, dato che le sottostringhe che compongono w sono formate solo di simboli 0 e 1. Concludiamo che w L 3, visto che w ha tutte le caratteristiche richieste dalla definizione di L 3. (Parte L 3 L(( )+ )) Sia w L 3 : poiché, per definizione, w = 2n, con n 1, possiamo scrivere w = x 1 x 2 x i x n, con x i = 2 per ogni i. Osserviamo, inoltre, che w {0, 1} +, e quindi, ovviamente, x i {0, 1} + per ogni i. Per ciascuno degli x i si hanno quindi solo quattro possibilità: x i = 00, oppure x i = 01, oppure x i = 10, oppure x i = 11. In altre parole, la stringa w può essere vista come la concatenazione di sottostringhe in {00, 01, 10, 11}: questo ci permette di concludere che w L(( ) + ). Il linguaggio L 3 è dunque regolare; tale è allora anche L 3 = L 2 L 3, in quanto intersezione di linguaggi regolari. 26

Esercizi di Informatica Teorica - DFA

Esercizi di Informatica Teorica - DFA 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

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2 Alberto Carraro 12 ottobre 2011 DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Automi a stati finiti deterministici

Dettagli

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.6 Linguaggi Regolari ed Espressioni Regolari Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Linguaggi Regolari

Dettagli

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

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari roprieta dei Linguaggi Regolari Pumping Lemma. Ogni linguaggio regolare soddisfa una proprieta ben nota, il pumping lemma. Questa tecnica fornisce uno strumento utile per dimostrare che un linguaggio non

Dettagli

Proprieta dei Linguaggi regolari

Proprieta dei Linguaggi regolari Proprieta dei Linguaggi regolari Pumping Lemma. Ogni linguaggio regolare soddisfa il pumping lemma. Se qualcuno vi presenta un falso linguaggio regolare, l uso del pumping lemma mostrera una contraddizione.

Dettagli

02 - Logica delle dimostrazioni

02 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 0 - Logica delle dimostrazioni Anno Accademico 015/016

Dettagli

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Linguaggi regolari e automi a stati finiti 6 Ottobre 214 A.A. 214-215 Enrico Mezzetti emezzett@math.unipd.it Recap Definizione informale di automi a stati finiti Diagramma delle

Dettagli

METODI MATEMATICI PER L INFORMATICA

METODI MATEMATICI PER L INFORMATICA METODI MATEMATICI PER L INFORMATICA Tutorato Lezione 5 05/05/2016 Corso per matricole congrue a 1 Docente: Margherita Napoli Tutor: Amedeo Leo Dimostrazioni e prove Esercizio 7 pagina 91 Utilizzare una

Dettagli

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Teorema di Kleene 2 3 o 1 o 3 o 8 Teorema di Kleene Vale la seguente equivalenza: L 3 L FSL L REG Dimostrazione.

Dettagli

Complementi di Analisi Matematica Ia. Carlo Bardaro

Complementi di Analisi Matematica Ia. Carlo Bardaro Complementi di Analisi Matematica Ia Carlo Bardaro Capitolo 1 Elementi di topologia della retta reale 1.1 Intorni, punti di accumulazione e insiemi chiusi Sia x 0 IR un fissato punto di IR. Chiameremo

Dettagli

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R):

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R): . equivalenze e implicazioni logiche Esercizio.. Trovare le implicazioni che legano i seguenti enunciati (x, y R): () x < y, () x = y, () x y, () x y, () (x y) > 0. Osserviamo subito che (x y) > 0 equivale

Dettagli

ELEMENTI DI LOGICA MATEMATICA LEZIONE VII

ELEMENTI DI LOGICA MATEMATICA LEZIONE VII ELEMENTI DI LOGICA MATEMATICA LEZIONE VII MAURO DI NASSO In questa lezione introdurremo i numeri naturali, che sono forse gli oggetti matematici più importanti della matematica. Poiché stiamo lavorando

Dettagli

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

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n NOTE DI ALGEBRA LINEARE 2- MM 9 NOVEMBRE 2 Combinazioni lineari e generatori Sia K un campo e V uno spazio vettoriale su K Siano v,, v n vettori in V Definizione Un vettore v V si dice combinazione lineare

Dettagli

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=

Dettagli

Linguaggi regolari e automi a stati finiti. Linguaggi regolari e automi a stati finiti

Linguaggi regolari e automi a stati finiti. Linguaggi regolari e automi a stati finiti utomi a stati finiti Gli automi a stati finiti sono usati come modello per Software per la progettazione di circuiti digitali. Analizzatori lessicali di un compilatore. Ricerca di parole chiave in un file

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3 Alberto Carraro 26 ottobre 2011 DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Automi a a pila deterministici e

Dettagli

Errata corrige del libro Introduzione alla logica e al linguaggio matematico

Errata corrige del libro Introduzione alla logica e al linguaggio matematico Errata corrige del libro Introduzione alla logica e al linguaggio matematico 28 gennaio 2009 Capitolo 1 Pag. 7, Definizione 6. Il complemento di un sottoinsieme A di I è il sottoinsieme A = {x I : x /

Dettagli

3. OPERAZIONI TRA CLASSI 2

3. OPERAZIONI TRA CLASSI 2 INSIEMI 1. Elementi e Classi Lo scopo di questo primo capitolo è di introdurre in maniera rigorosa le nozioni di classe e insieme, e di studiarne le principali proprietà. Nel seguito useremo il termine

Dettagli

Precorsi di matematica

Precorsi di matematica Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono

Dettagli

Linguaggi regolari e automi a stati finiti

Linguaggi regolari e automi a stati finiti utomi a stati finiti Gli automi a stati finiti sono usati come modello per Software per la progettazione di circuiti digitali. Analizzatori lessicali di un compilatore. Ricerca di parole chiave in un file

Dettagli

Automi a stati finiti

Automi a stati finiti ommario Introduzione agli automi a stati finiti Concetti di base della teoria degli automi Tecniche di dimostrazione deterministici (DFA) non deterministici (NFA) non deterministici con ɛ-transizione (ɛ-nfa)

Dettagli

Sviluppi e derivate delle funzioni elementari

Sviluppi e derivate delle funzioni elementari Sviluppi e derivate delle funzioni elementari In queste pagine dimostriamo gli sviluppi del prim ordine e le formule di derivazioni delle principali funzioni elementari. Utilizzeremo le uguaglianze lim

Dettagli

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x.

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x. ALGEBRE DI BOOLE Un insieme parzialmente ordinato è una coppia ordinata (X, ) dove X è un insieme non vuoto e " " è una relazione binaria definita su X tale che (a) x X x x (riflessività) (b) x, y, X se

Dettagli

IL TEOREMA DI BOLZANO-WEIERSTRASS

IL TEOREMA DI BOLZANO-WEIERSTRASS IL TEOREMA DI BOLZANO-WEIERSTRASS In questa nota dimostriamo il teorema di Bolzano-Weierstrass che garantisce l esistenza, per una opportuna classe di sottoinsiemi di R, di punti di accumulazione. Per

Dettagli

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI 1. GLI ASSIOMI DI PEANO Come puro esercizio di stile voglio offrire una derivazione delle proprietà elementari dei numeri naturali e delle operazioni

Dettagli

Proprietà dei linguaggi regolari

Proprietà dei linguaggi regolari Proprietà dei linguaggi regolari Argomenti della lezione Relazione tra automi, grammatiche ed espressioni regolari Pumping lemma per i linguaggi regolari Equivalenza di automi a stati finiti Le seguenti

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Relazioni e Principio di Induzione

Relazioni e Principio di Induzione Relazioni e Principio di Induzione Giovanna Carnovale October 12, 2011 1 Relazioni Dato un insieme S, un sottoinsieme fissato R del prodotto cartesiano S S definisce una relazione ρ tra gli elementi di

Dettagli

Esercitazione 6 Ancora sul Network Flow

Esercitazione 6 Ancora sul Network Flow Esercitazione 6 Ancora sul Network Flow Problema 14 (appello 28/09/2015) Un importante azienda di sviluppo software ha n progetti da portare a termine entro la fine dell anno. Il manager dell azienda stima

Dettagli

Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014

Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014 Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014 Il compito è diviso in due parti come i compitini: 1) Automi e Linguaggi e 2) Macchine di Turing e Calcolabilità. Si può consegnare

Dettagli

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

Automi e Linguaggi Formali Automi a stack (Pushdown automata) Automi e Linguaggi Formali Automi a stack (Pushdown automata) A.A. 2014-2015 Enrico Mezzetti emezzett@math.unipd.it Automi a stack Un Pushdown Automata (PDA) o Automa a stack Essenzialmente un ɛ-nfa con

Dettagli

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero Il teorema degli zeri è fondamentale per determinare se una funzione continua in un intervallo chiuso [ a ; b ] si annulla in almeno un punto interno

Dettagli

APPUNTI DI TEORIA DEGLI INSIEMI. L assioma della scelta e il lemma di Zorn Sia {A i } i I

APPUNTI DI TEORIA DEGLI INSIEMI. L assioma della scelta e il lemma di Zorn Sia {A i } i I APPUNTI DI TEORIA DEGLI INSIEMI MAURIZIO CORNALBA L assioma della scelta e il lemma di Zorn Sia {A i } i I un insieme di insiemi. Il prodotto i I A i è l insieme di tutte le applicazioni α : I i I A i

Dettagli

Successioni ricorsive

Successioni ricorsive Successioni ricorsive Emanuele Paolini Analisi Matematica I, 015 016 In queste note prenderemo in considerazione le successioni a n definite per ricorrenza o ricorsivamente dalle condizioni: a1 = α, (1)

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione Generalità delle ǫ-transizioni Gli automi non deterministici, come abbiamo visto, possono

Dettagli

11. Misure con segno.

11. Misure con segno. 11. Misure con segno. 11.1. Misure con segno. Sia Ω un insieme non vuoto e sia A una σ-algebra in Ω. Definizione 11.1.1. (Misura con segno). Si chiama misura con segno su A ogni funzione ϕ : A R verificante

Dettagli

AUTOMI A STATI FINITI

AUTOMI A STATI FINITI AUTOMI A STATI FINITI I linguaggi regolari godono di interessanti proprietà algebriche: Sono defnibili con le espressioni regolari Sono generati da grammatiche di Chomsky di tipo 3. Sono riconoscibili

Dettagli

Elementi di teoria degli insiemi

Elementi di teoria degli insiemi ppendice Elementi di teoria degli insiemi.1 Introduzione Comincia qui l esposizione di alcuni concetti primitivi, molto semplici da un punto di vista intuitivo, ma a volte difficili da definire con grande

Dettagli

Automi a stati finiti

Automi a stati finiti Automi a stati finiti Il modello: la definizione formale, esempi. Le definizioni utili per descrivere e provare proprietà degli automi: configurazioni, relazione porta a e relative definizioni di linguaggio

Dettagli

Trasformazione di un NDFA in un DFA con ε-regole

Trasformazione di un NDFA in un DFA con ε-regole Trasformazione di un NDFA in un DFA con -regole a A B D d b C E c t A B C D E a D E b D D c D,E D E D d C C a - t ( s, q i ) = -chiusura (δ (s, q j )) qj -chiusura ( qi) -Primo passo dell algoritmo modificato

Dettagli

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. A.A. 2015-2016. CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. Esercizio 5.1. Determinare le ultime tre cifre di n = 13 1625. (Suggerimento. Sfruttare il Teorema di Eulero-Fermat)

Dettagli

8. Completamento di uno spazio di misura.

8. Completamento di uno spazio di misura. 8. Completamento di uno spazio di misura. 8.1. Spazi di misura. Spazi di misura completi. Definizione 8.1.1. (Spazio misurabile). Si chiama spazio misurabile ogni coppia ordinata (Ω, A), dove Ω è un insieme

Dettagli

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z # L con z > k si può esprimere come z=

Dettagli

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare

Dettagli

INDUZIONE E NUMERI NATURALI

INDUZIONE E NUMERI NATURALI INDUZIONE E NUMERI NATURALI 1. Il principio di induzione Il principio di induzione è una tecnica di dimostrazione molto usata in matematica. Lo scopo di questa sezione è di enunciare tale principio e di

Dettagli

Esercitazioni per il corso di Logica Matematica

Esercitazioni per il corso di Logica Matematica Esercitazioni per il corso di Logica Matematica Luca Motto Ros 27 febbraio 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle Tutti i linguaggi che possono essere

Dettagli

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo.

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo. Capitolo 3 Il campo Z n 31 Introduzione Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo 32 Le classi resto Definizione

Dettagli

CORSO DI ALGEBRA LINEARE Anno Accademico 2004/2005 Appunti su SISTEMI di EQUAZIONI LINEARI

CORSO DI ALGEBRA LINEARE Anno Accademico 2004/2005 Appunti su SISTEMI di EQUAZIONI LINEARI CORSO DI ALGEBRA LINEARE Anno Accademico 2004/2005 Appunti su SISTEMI di EQUAZIONI LINEARI Lo studente ha forse già incontrato i sistemi di equazioni lineari alla scuola secondaria Con il termine equazione

Dettagli

04 - Logica delle dimostrazioni

04 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 04 - Logica delle dimostrazioni Anno Accademico 013/014 D. Provenzano,

Dettagli

Espressioni regolari. Espressioni regolari

Espressioni regolari. Espressioni regolari ommario delle espressioni regolari Da automi a espressioni regolari Da espressioni regolari ad automi Leggi algebriche per linguaggi spressioni regolari DFA, NFA, ɛ-nfa sono un metodo formale per costruire

Dettagli

DAI NUMERI NATURALI AI NUMERI RAZIONALI

DAI NUMERI NATURALI AI NUMERI RAZIONALI DAI NUMERI NATURALI AI NUMERI RAZIONALI 1. L insieme dei numeri naturali Nel sistema assiomatico ZF, l Assioma dell infinito stabilisce che: Esiste un insieme A, i cui elementi sono insiemi e tale che

Dettagli

min det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione.

min det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione. Se è unimodulare e è intero allora il poliedro 0 ha vertici interi. Sia un vertice di Per definizione esiste allora una base di tale che, 0 Poiché è non singolare ( invertibile det 0) si ha che det 1 è

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

1 Ampliamento del piano e coordinate omogenee

1 Ampliamento del piano e coordinate omogenee 1 Ampliamento del piano e coordinate omogenee Vogliamo dare una idea, senza molte pretese, dei concetti che stanno alla base di alcuni calcoli svolti nella classificazione delle coniche. Supponiamo di

Dettagli

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino Fondamenti dell Informatica (III anno Laurea Triennale) Esercizi di preparazione al secondo compitino a.a. 2016/17 Funzioni primitive ricorsive Si definiscano come primitive ricorsive le seguenti funzioni:

Dettagli

Massimo limite e minimo limite di una funzione

Massimo limite e minimo limite di una funzione Massimo limite e minimo limite di una funzione Sia f : A R una funzione, e sia p DA). Per ogni r > 0, l insieme ) E f p r) = { fx) x A I r p) \ {p} } è non vuoto; inoltre E f p r ) E f p r ) se 0 < r r.

Dettagli

3.3 - Il principio del buon ordine. Sia A un insieme, e sia una relazione di ordine in A. Si dice che è un buon

3.3 - Il principio del buon ordine. Sia A un insieme, e sia una relazione di ordine in A. Si dice che è un buon Marco Barlotti appunti di Teoria degli insiemi supplemento numero 1 Pag. 1 3.3 - Il principio del buon ordine. Sia A un insieme, e sia una relazione di ordine in A. Si dice che è un buon ordine per A,

Dettagli

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto utomi a Pila Un automa a pila (PDA) e una estensione degli automi a stati finiti, che ha una memoria (una pila) Vedremo due modi equivalenti per definire il linguaggio accettato da un PDA Vedremo che la

Dettagli

Aniello Murano Problemi non decidibili e riducibilità

Aniello Murano Problemi non decidibili e riducibilità Aniello Murano Problemi non decidibili e riducibilità 8 Lezione n. Parole chiave: Riduzione Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Overview Nelle lezioni

Dettagli

NFA per riconoscere numeri decimali

NFA per riconoscere numeri decimali NFA per riconoscere numeri decimali Vogliamo un NFA che accetta numeri decimali. Un numero decimale consiste di: 1 Un segno + o -, opzionale 2 Una stringa di cifre decimali 3 un punto decimale 4 un altra

Dettagli

Ragionamento formalei. Ragionamento formale

Ragionamento formalei. Ragionamento formale Ragionamento formale La necessità e l importanza di comprendere le basi del ragionamento formale, utilizzato in matematica per dimostrare teoremi all interno di teorie, è in generale un argomento piuttosto

Dettagli

Corso di Laurea in Informatica Applicata Esame di Calcolo delle Probabilità e Statistica Prova scritta dell 11 gennaio 2007

Corso di Laurea in Informatica Applicata Esame di Calcolo delle Probabilità e Statistica Prova scritta dell 11 gennaio 2007 Corso di Laurea in Informatica Applicata Esame di Calcolo delle Probabilità e Statistica Prova scritta dell 11 gennaio 007 Primo esercizio Per una certa stampante S 1, la probabilità che un generico foglio

Dettagli

Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche. Appunti del corso di Matematica

Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche. Appunti del corso di Matematica Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 2 - Rango Anno Accademico 215/216 M. Tumminello, V. Lacagnina,

Dettagli

Alberi binari: definizione e alcune proprietà

Alberi binari: definizione e alcune proprietà Alberi binari: definizione e alcune proprietà Alberi binari Un albero binario è un albero con radice in cui ogni nodo ha al più due figli. In maniera più formale: Definizione. (Alberi binari) Un albero

Dettagli

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE. IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE. PH. ELLIA Indice Introduzione 1 1. Divisori di un numero. 1 2. Il Teorema Fondamentale dell Aritmetica. 2 3. L insieme dei numeri primi è

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8 Alberto Carraro DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Insiemi e predicati ricorsivi e ricorsivamente enumerabili

Dettagli

Suffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017

Suffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017 Complementi di Algoritmi e Strutture Dati Suffix Trees Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017 In generale, possiamo trovare tutte le occorrenze di un pattern y in un testo x in tempo O(

Dettagli

c A (a c = b) Le ipotesi che abbiamo ci dicono che esistono h, k A tali che:

c A (a c = b) Le ipotesi che abbiamo ci dicono che esistono h, k A tali che: Definizione 1. Dato un insieme A, un operazione su A è una applicazione da A A a valori in A. Definizione 2. Se A è un insieme con una operazione, dati a, b A diciamo che a divide b (e scriviamo a b) se

Dettagli

Qualche informazione su gruppi e anelli

Qualche informazione su gruppi e anelli Qualche informazione su gruppi e anelli 1. Gruppi e sottogruppi: prime proprietà Cominciamo subito scrivendo la definizione formale di gruppo. Definizione 0.1. Un gruppo G è un insieme non vuoto dotato

Dettagli

Esercitazioni per il corso di Logica Matematica

Esercitazioni per il corso di Logica Matematica Esercitazioni per il corso di Logica Matematica Luca Motto Ros 02 marzo 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano risultare

Dettagli

ULTRAFILTRI E METODI NONSTANDARD IN TEORIA COMBINATORIA DEI NUMERI

ULTRAFILTRI E METODI NONSTANDARD IN TEORIA COMBINATORIA DEI NUMERI ULTRAFILTRI E METODI NONSTANDARD IN TEORIA COMBINATORIA DEI NUMERI MAURO DI NASSO 1. Filtri e ultrafiltri Iniziamo introducendo le fondamentali nozioni di filtro e ultrafiltro. Definizione 1.1. Un filtro

Dettagli

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

Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018 Fondamenti dell Informatica a.a. 2017/18 Prova scritta 11 gennaio 2018 Esercizio 1 (Automi a stati finiti) {a, b}. Si considerino i seguenti automi a stati finiti sull alfabeto Per ognuno degli automi,

Dettagli

Introduzione alla logica proposizionale

Introduzione alla logica proposizionale Introduzione alla logica proposizionale Mauro Bianco Questa frase è falsa Contents 1 Proposizioni 1 2 Altri operatori 4 Nota : Le parti delimitate da *** sono da considerarsi facoltative. 1 Proposizioni

Dettagli

Capitolo 1: Concetti matematici di base

Capitolo 1: Concetti matematici di base Capitolo 1: Concetti matematici di base 1 Insiemi x A x é elemento dell insieme A. B A B é un sottoinsieme di A. B A B é un sottoinsieme proprio di A. A costituito da n elementi A = n é la sua cardinalitá.

Dettagli

Automi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017

Automi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017 Automi a pila Dipartimento di Elettronica e Informazione Politecnico di Milano 17 marzo 2017 Aumentiamo la potenza di un FSA Descrizione operativa dei limiti Un FSA ha un Organo di Controllo (OC) con memoria

Dettagli

METODI MATEMATICI PER L INFORMATICA

METODI MATEMATICI PER L INFORMATICA METODI MATEMATICI PER L INFORMATICA Tutorato Lezione 7 19/05/2016 Corso per matricole congrue a 1 Docente: Margherita Napoli Tutor: Amedeo Leo Ricorsione Esercizio 2 pagina 357 Trovare f(1), f(2), f(3),

Dettagli

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

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 4 Sommario. Dimostriamo il Teorema di Completezza per il Calcolo dei Predicati del I ordine. 1. Teorema di Completezza Dimostriamo il Teorema

Dettagli

a p a (p) (a + 1) p = i=0 sono noti come coefficienti binomiali 2 e sono numeri interi (a + 1) p a p + 1 (p) (a + 1) p a + 1 (p)

a p a (p) (a + 1) p = i=0 sono noti come coefficienti binomiali 2 e sono numeri interi (a + 1) p a p + 1 (p) (a + 1) p a + 1 (p) Appunti quarta settimana Iniziamo con un risultato molto importante che ha svariate conseguenze e che3 sarà dimostrato in modi diversi durante il corso: Esercizio 1.[Piccolo teorema di Fermat] Dimostrare

Dettagli

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

Dettagli

Dispense sulla distanza di Hausdorff

Dispense sulla distanza di Hausdorff Dispense sulla distanza di Hausdorff Fabio Ferri Giada Franz Federico Glaudo 23 aprile 2014 Sommario In questo documento studieremo le proprietà della distanza di Hausdorff, la naturale distanza indotta

Dettagli

3. Successioni di insiemi.

3. Successioni di insiemi. 3. Successioni di insiemi. Per evitare incongruenze supponiamo, in questo capitolo, che tutti gli insiemi considerati siano sottoinsiemi di un dato insieme S (l insieme ambiente ). Quando occorrerà considerare

Dettagli

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità Eserciziario per il corso di Verona, Settembre 24 Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità Dott.ssa Isabella Mastroeni Dipartimento di Informatica Università degli Studi di Verona

Dettagli

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Cenni di programmazione ricorsiva Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Corso di Laurea in Informatica Università di Pisa A.A. 2009/10 R. Barbuti, P. Mancarella Indice

Dettagli

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

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g LEZIONE 3 3.. Matrici fortemente ridotte per righe. Nella precedente lezione abbiamo introdotto la nozione di soluzione di un sistema di equazioni lineari. In questa lezione ci poniamo il problema di descrivere

Dettagli

Esercizi di Geometria 1 - Foglio 1

Esercizi di Geometria 1 - Foglio 1 Esercizi di Geometria 1 - Foglio 1 Alessandro Rubin (alex.rubin@outlook.com) Si ringrazia Ricardo Tzantzoglou per il codice L A TEX condiviso 22 dicembre 2017 Esercizio 1. Sia V uno spazio vettoriale sul

Dettagli

Capitolo 5 Campi finiti

Capitolo 5 Campi finiti Capitolo 5 Campi finiti Definizione 5.1. Un campo finito K (cioè composto da un numero finito di elementi) si dice campo di Galois. Il numero dei suoi elementi si dice ordine e si denota con K. Un campo

Dettagli

1 Principio di Induzione

1 Principio di Induzione 1 Principio di Induzione Per numeri naturali, nel linguaggio comune, si intendono i numeri interi non negativi 0, 1,, 3, Da un punto di vista insiemistico costruttivo, a partire dall esistenza dell insieme

Dettagli

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen Linguaggi 4: Universitá di Bologna 24/02/2011 Outline 1 Wikipedia: La sintassi è la branca della linguistica che studia i diversi modi in cui le parole si uniscono tra loro per formare

Dettagli

Sommario. Espressioni regolari. Equivalenza tra espressioni regolari e DFA. Esercizi problemi di decisione

Sommario. Espressioni regolari. Equivalenza tra espressioni regolari e DFA. Esercizi problemi di decisione Sommario Espressioni regolari Equivalenza tra espressioni regolari e DFA Esercizi problemi di decisione ESPRESSIONI REGOLARI Le espressioni regolari sono una notazione per rappresentare insiemi di stringhe

Dettagli

Lezione 6 Richiami di Geometria Analitica

Lezione 6 Richiami di Geometria Analitica 1 Piano cartesiano Lezione 6 Richiami di Geometria Analitica Consideriamo nel piano due rette perpendicolari che si intersecano in un punto O Consideriamo ciascuna di queste rette come retta orientata

Dettagli

Corso di Laurea in Matematica Geometria 2. Foglio di esercizi n. 1 a.a Soluzioni

Corso di Laurea in Matematica Geometria 2. Foglio di esercizi n. 1 a.a Soluzioni Corso di Laurea in Matematica Geometria 2 Foglio di esercizi n. 1 a.a. 2015-16 Soluzioni Gli esercizi sono presi dal libro di Manetti. Per svolgere questi esercizi, studiare con cura i paragrafi 3.1, 3.2,

Dettagli

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}

Dettagli