Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP"

Transcript

1 Progamma sintetico Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

2 Un problema classico Un uomo viaggia con un lupo, una pecora ed un cavolo Vuole attraversare un fiume Ha una barca che può contenere solo l uomo più uno dei suoi possedimenti, Il lupo mangia la pecora se soli insieme La pecora mangia il cavolo se soli insieme Come può attraversare fiume senza perdite?

3 Soluzione come Stringa Mosse possono essere rappresentate da simboli Uomo attraversa con lupo (l) Uomo attraversa con pecora (p) Uomo attraversa con cavolo (c) Uomo attraversa con niente (n) Sequenza mosse stringa, Es. soluzione pnlpcnp: Prima attraversa con pecora, poi ritorna con niente, poi attraversa con il lupo,

4 Mosse transizioni di stato Ogni mossa porta puzzle da uno stato ad un altro Es. Mossa p provoca transizione

5 Diagramma delle Transizioni Mosse legali Stati raggiungibili Stato start Stato finale (scopo raggiunto)

6 Linguaggio delle soluzioni Cammino qualche x {l,p,c,n}* diagramma definisce il linguaggio soluzioni: {x {l,p,c,n}* iniziando in stato start e seguendo transizioni di x, terminano nello stato finale} Nota: Linguaggio infinito

7 Per alcune stringhe automa non sa cosa fare Vogliamo automi che sanno sempre cosa fare Es. Usiamo stato addizionale

8

9 Automa Completamente Specificato Nel diagramma esattamente una transizione per ogni stato e per ogni lettera in Fornisce procedura computazionale per decidere se una stringa è una soluzione o meno: Parti nello stato start Segui una transizione per ogni simbolo input Se alla fine arrivi in stato obiettivo accetta altrimenti rifiuta

10 AUTOMI FINITI Modello semplice di calcolatore avente una quantità finita di memoria E noto come macchina a stati finiti o automa finito. Idea di base del funzionamento: Input= stringa su un alfabeto Legge i simboli di w da sinistra a destra. Dopo aver letto l ultimo simbolo, l automa indica se accetta o rifiuta la stringa

11 Alla base di importanti tipi di software, es.: Compilatori: realizzazione del parser, analisi lessicale Software per la progettazione di circuiti digitali Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli di comunicazione) Realizzazione di strumenti di elaborazione testuale Ricerca di parole chiave in un file o sul web. 11

12 Automa finito deterministico (DFA) Es: DFA con alfabeto ={a, b}: Stringa arriva in input, DFA legge 1 simbolo alla volta dal primo all ultimo Quindi DFA accetta o rifiuta la stringa

13 Automa finito deterministico (DFA) Es: DFA con alfabeto ={a, b}: a b b a a q1 q1 q2 q2 q3 q2

14 Automa finito deterministico (DFA) Es: DFA con alfabeto ={a, b}: q1, q2, q3 soni gli stati. q1 è lo stato start (ha freccia entrante da esterno) q2 è uno stato accetta (doppio cerchio)

15 archi dicono come muoversi quando l automa si trova in uno stato e simbolo di è letto. Dopo aver letto l ultimo simbolo: Se DFA è in uno stato accetta, allora stringa è accettata, altrimenti è rifiutata. Nell esempio: abaa è accettata aba è rifiutata è rifiutata

16 Def. formale di DFA A automa finito deterministico (DFA) è 5-tupla M = (Q,, f, q 1, F), dove 1. Q è insieme finito di stati. 2. è alfabeto, e il DFA processa stringhe su. 3. f : Q -> Q è la funzione di transizione. 4. q 1 Q è lo stato start. 5. F (sottoins. di Q) è l'insieme di stati accetta (o finali ). Nota: DFA chiamato anche semplic. automa finito (FA).

17 Funzione di transizione di DFA funzione di transizione f : Q -> Q : per ogni stato e per ogni simbolo di input, la funzione f dice in quale stato spostarsi. Cioè, f(r, a) è lo stato che il DFA occupa quando trovandosi nello stato r legge a, per stato r in Q ed ogni simbolo a in Esiste esattamente un arco uscente da r con label a quindi la macchina è deterministica.

18 Es. di DFA M = (Q,, f, q 1, F) con Q = {q 1, q 2, q 3 } ={a, b} f è descritta da q 1 è lo stato start F = {q 2 }.

19 Come un DFA Computa Riceve in input stringhe di simboli di alfabeto A Inizia in stato start. Legge la stringa un simbolo alla volta, partendo da sinistra il simboli letto determina la sequenza di stati visitati. Processo termina dopo lettura dell ultimo simbolo Dopo aver letto intera stringa input: Se DFA termina in stato accetta, allora stringa è accettata altrimenti, è rifiutata.

20 Definizione formale funzionamento Sia M = (Q,, f, q 0, F) un DFA. Considera stringa w = w 1 w 2 w n su, dove ogni w i in. M accetta w se esiste sequenza stati r 0, r 1,..., r n in Q tali che: 1. r 0 = q 0 (primo stato della sequenza è quello iniziale) 2. r n in F (ultimo stato in sequenza è uno stato accetta) 3. f(r i-1, w i ) = r i, per ogni i = 1, 2,..., n (sequenza di stati corrisponde a transizioni valide per la stringa w).

21 ES. abaa accettata Esiste sequenza stati q1,q1,q2,q3,q2

22 Linguaggio della Machina Def: Se L è l'insieme di tutte le stringhe che la machina M accetta, allora si dice che L è il Linguaggio della machina M, e M riconosce (o accetta) L Scriviamo anche L(M) = L. Def: Un Linguaggio è regolare se è riconosciuto da qualche DFA.

23 ES. L(M) è l insieme di tutte le stringhe sull alfabeto {a,b} della forma {a} * {b}{b,aa,ab} *

24 Es: Si consideri il seguente DFA M 1 con alfabeto ={0, 1} : è accettata, ma 0101 è rifiutata. L(M 1 ) è il Linguaggio di stringhe su in cui il numero totale di 1 è dispari. Esercizio: dare DFA che riconosce il Linguaggio di stringhe su con un numero pari di 1

25 Es: DFA M 2 con alfabeto ={0, 1} : Nota: L(M 2 ) è Linguaggio su A che ha lunghezza 1, cioè L(M 2 ) = {w in A* w = 1} Si ricordi che C(L(M 2 )), il complemento di L(M 2 ), è l'insieme di stringhe su A che non sono in L(M 2 ). Domanda: DFA che riconosce C(L(M 2 ))?

26 Es: Si consideri il seguente DFA M 3 con alfabeto A={0, 1} L(M 3 ) è il Linguaggio su che non ha lunghezza 1, Più di uno stato accetta. Stato start anche stato accetta. DFA accetta sse stato start è anche stato accetta.

27 La funzione di transizione f puo essere estesa a f* che opera su stati e stringhe (invece che su stati e simboli) f*(q,e) = q f*(q,xa) = f(f*(q, x), a) Il linguaggio accettato da M è quindi L ( M ) = { w : f*(q 0,w) F }

28 ESERCIZI Fornire DFA per i seguenti linguaggi sull alfabeto {0, 1}: 1.Insieme di tutte le strighe che terminano con 00 2.Insieme di tutte le stringhe con tre zeri consecutivi 3.Insieme delle stringhe con 011 come sottostringa 4.Insieme delle stringhe che cominciano o finiscono (o entrambe le cose) con 01

29 DFA per Complemento In generale, dato DFA M per Linguaggio L, possiamo costruire DFA M per C(L) da M rendendo tutti gli stati accetta in M non-accetta in M, rendendo tutti stati non-accetta in M stati accetta in M. Più formalmente, Se Linguaggio L su alfabeto ha un DFA M = (Q,, f, q 1, F). allora, DFA per il complemento di L è M = (Q,, f, q 1, Q-F ). Esercizio: Perchè funziona?

30 Es: Si consideri il seguente DFA M 4 con alfabeto ={a, b} : L(M 4 ): Linguaggio di stringhe su che terminano con bb, Cioè L(M 4 ) = {w in w = sbb per qualche stringa s}

31 Es: Si consideri il seguente DFA M 5 con alfabeto ={a, b} L(M 5 ) = {w w = saa o w = sbb per qualche stringa s}.

32 Si consideri il seguente DFA M 6 con alfabeto ={a,b} Accetta tutte le possibili stringhe su, cioè L(M 6 ) = * In generale, ogni DFA in cui tutti stati sono stato accetta riconosce il linguaggio *

33 Si consideri il seguente DFA M6 con alfabeto ={a,b} DFA non accetta stringhe su, cioè L(M7) = In generale, un DFA può non avere stati accetta

34 Es: Si consideri il seguente DFA M 8 con alfabeto ={a, b} : Ogni a muove verso destra o sinistra. Ogni b muove verso l alto o il basso DFA riconosce il Linguaggio di stringhe su con numero pari di a e numero pari di b.

35 Operazioni su linguaggi Siano A e B Linguaggi. Unione: A U B = {w w A o w B }. Concatenazione: AB = { vw v A,w B }. Kleene star: A * = {w 1 w 2 w k k > 0 e ogni w i A}.

36 Una collezione S di oggetti è chiusa per un operazione f se applicando f a membri di S, f restituisce oggetto in S. Es. N = {0, 1, 2,...} chiuso per addizione, non per sottrazione Abbiamo visto che dati DFA M 1 per Linguaggio L, possiamo costruire DFA M 2 per Linguaggio complemento L : Rendi tutti stati accetta in M 1 in non-accetta in M 2. Rendi tutti stati non-accetta in M 1 in accetta in M 2. Quindi L regolare C(L) regolare. Teorema. L insieme dei linguaggi regolari è chiuso per l operazione di complemento.

37 Insieme linguaggi regolari chiuso per l unione Teorema La classe dei linguaggi regolari è chiusa per l unione. cioè, se L 1 e L 2 sono linguaggi regolari, allora lo è anche L 1 U L 2. Dim. Idea: L 1 ha DFA M 1. L 2 ha DFA M 2. w in L 1 UL 2 sse w è accettata da M 1 oppure M 2. Serve DFA M 3 che accetta w sse w accettata da M 1 o M 2. Costruiamo M 3 tale 1.da tener traccia di dove l input sarebbe se fosse contemporaneamente in input a M 1 e M accetta stringa sse M1 oppure M2 accetta.

38 Siano L1 e L2 definiti su stesso alfabeto. DFA M 1 riconosce L 1, dove M 1 = (Q 1,, f 1, q 1, F 1 ). DFA M 2 riconosce L 2, dove M 2 = (Q 2,, f 2, q 2, F 2 ). Costruiamo DFA M3 = (Q 3,, f 3, q 3, F 3 ) : Q 3 = Q 1 Q 2 = { (x, y) x in Q 1, y in Q 2 }. Alfabeto di M 3 è. M3 ha funzione di transizione f 3 : Q 3 -> Q 3 t.c. per ogni x in Q 1, y in Q 2, a in, f 3 ( (x, y),a ) = ( f 1 (x, a), f 2 (y,a ) ). Lo stato start di M 3 è q 3 = (q1, q2) in Q 3. L insieme di stati accetta di M 3 è F 3 = { (x, y) in Q 3 x in F 1 o y in F 2 }

39 M 3 è automa che riconosce UNIONE Perché?

40 M 3 è automa che riconosce UNIONE Poichè Q 3 = Q 1 Q 2, numero di stati in M 3 è Q 3 = Q 1 Q 2. Quindi, Q 3 è finito poichè Q 1 e Q 2 sono finiti M 3 è DFA per UNIONE

41 Es: Si considerino i seguenti DFA e linguaggi su ={a, b} : DFA M1 riconosce linguaggio A1 = L(M1) DFA M2 riconosce linguaggio A2 = L(M2) DFA M1 per A1 DFA M2 per A2 Vogliamo DFA per l unione di A1 e A2.

42

43 I linguaggi regolari sono chiusi per l intersezione Teorema La classe dei linguaggi regolari è chiusa per l intersezione. Cioè, se L 1 e L 2 sono linguaggi regolari, allora lo è L 1 L2. Dim. Idea: L 1 ha DFA M 1. L 2 ha DFA M 2. w L sse w è accettato sia da M 1 che da M 2. 1 L 2 Si vuole DFA M 3 che accetta w sse w è accettata da M 1 e M 2. Costruiamo M 3 che contemporaneamente mantiene traccia dello stato in cui si troverebbero sia M 1 che M 2. Accetta stringa sse sia M 1 che M 2 accettano

44 Es.

45 I linguaggi regolari sono chiusi per l intersezione Teorema La classe dei linguaggi regolari è chiusa per l intersezione. Cioè, se L 1 e L 2 sono linguaggi regolari, allora lo è L 1 L2. Dim.: Si vuole DFA M 3 che accetta w sse w è accettata da M 1 e M 2. 1.Fornire la definizione formale di M 3 2.Mostrare che M 3 accetta w sse w è accettata sia da M 1 che da M 2.

46 I linguaggi regolari sono chiusi per Concatenazione Teorema La classe dei linguaggi regolari è chiusa per la concatenazione. Cioè, se A1 e A2 sono linguaggi regolari, allora lo è anche A1 A2. NOTA: E possibile (ma laborioso) costruire un DFA per A1 A2 dati i DFA per A1 e A2. Introduciamo invece un nuovo tipo di macchina

47 Automi finiti non deterministici In DFA, lo stato successivo occupato in corrispondenza di un dato input è unicamente determinato Quindi le macchine sono deterministiche. La funzione di transizione in un DFA è f : Q -> Q. Restituisce sempre un singolo stato

48 Nondeterminismo Automi finiti non deterministici (NFA) permettono più scelte per il prossimo stato per un dato input. Per uno stato q NFA può avere più archi uscenti da q labellati con simbolo a, per i vari a in prendere -edge senza leggere simboli da input. Es.: NFA N 1 con alfabeto A={0, 1}.

49 Se NFA è in stato con più scelte, (Es., in stato q 1 e input è 1) la macchina si divide in più copie di se stessa. ogni copia continua computazione indipendent. da altre NFA può essere in insieme di stati, invece di singolo stato. NFA segue ogni possibile computazione in parallelo, al temine dell input: se una copia giunge in stato accetta, NFA accetta la stringa; se nessun cammino giunge in stato accetta, allora NFA non accetta la stringa input.

50 Se in stato con -transition, senza leggere input, NFA si divide in più copie, ognuna segue una possibile transizione, ogni copia continua indipendentemente da altre copie, NFA segue ogni possibile cammino in parallelo. NFA continua non deterministicamente come prima. Su input 10110?

51

52 a r 1 r 3 b a, b a r 2 NFA N accetta stringhe, a, aa, baa, baba,.... NFA N non accetta stringhe b, ba, bb,....

53 Def.di NFA Def.: Per alfabeto, sia ottenuto da aggiungendo Def.: A NFA è 5-tupla (Q,, f, q 0, F), con 1. Q insieme di stati 2 alfabeto 3. f : Q ->P(Q) funzione di transizione 4. q 0 in Q è stato start 5. F insieme di stati accept. Nota: La differenza tra DFA e NFA è nella funzione di transizione f: ammette mosse tipo Restituisce insieme di stati invece di un solo stato.

54

55

56 Computazione di NFA Sia N = (Q,, f, q 0, F) un NFA e w una stringa su A allora N accetta w se w = y 1 y 2 y m, dove ogni y i in, e esiste sequenza di stati r 0, r 1,..., r m in Q t.c. 1. r 0 = q 0 2. r i+1 in f(r i, y i+1 ) per ogni i = 0, 1, 2,..., m r m in F Def.: insieme di stringhe accettate da NFA N è il linguaggio riconosciuto da N ed è denotato con L(N). Nota: ogni DFA è anche un NFA.

57 Es. accetta il linguaggio {x01 : x Σ * }.

58 Equivalenza di DFAs e NFAs Def.: due macchine sono equivalenti se riconoscono lo stesso linguaggio. Teorema Ogni NFA N ha un equivalente DFA M; cioè, se N è un NFA, allora esiste DFA M t.c. L(M) = L(N). Dim. Costruiamo a partire da N, il DFA M equivalente

59

60 Sia L = L(N) per NFA N = (Q N,, f N, q N, F N ) Costruiamo DFA D=(Q D,, f D, q D, F D ). Partiamo da D che non considera le -transition: Q P Q N f R,a U f N r,a, r R per ogni R Q e a, q {q N } F R Q R F N

61 Per ogni stato in f N, se vi è -transition allora dobbiamo considerarla Definiamo E(R)= R U {q q raggiungibile da stato in R con 1 o più archi lab. Q D P Q N f D R,a U E( f N r,a ), per ogni R Q D e a, r R q D E({q N }) F D R Q D R F N

62 Risulta, per ogni x *, D simula N su ogni input x D accetta sse N accetta L = L(N) = L(D) f D * q D,x f N * q N,x Si può provare per induzione Nota f* N (q 0,x) = insieme stati raggiungibili da q 0 su input x f* N (q 0, ) = E({q 0 }) f* N (q 0,xa) =Ur f* N (q 0, x) E(f N (r,a))

63 Mostriamo per induzione su w che f* D ({q 0 },w) = f* N (q 0,w) [poniamo q 0 =q N ] Base: w =. L enunciato segue dalla definizione. Passo: f* D ({q 0 },xa) = f D (f* D ({q 0 },x),a) (def.) = f D (f* N (q 0,x),a) (i.i.) =Ur f* N (q 0, x) E(f N (r,a)) (def.) = f* N (q 0,xa)

64 Linguaggio riconoscuto da NFA Regolare Corollario Linguaggio L è regolare sse esiste NFA che riconosce A. Dim. Se L è regolare, allora esiste DFA ma ogni DFA è anche un NFA, quindi esiste NFA per L. Da Teorema precedente, ogni NFA ha equivalente DFA. Quindi se esiste NFA allora esiste DFA per L

65 Esiste un NFA N con n + 1 stati che non ha nessun DFA equivalente con meno di 2 n stati L(N) = {x1c 2 c 3 c n : x {0,1}, c i {0,1}} Supponiamo esista DFA D equivalente con meno di 2 n stati. D deve ricordare gli ultimi n simboli che ha letto. Ci sono 2 n sequenze di bit a 1 a 2 a n, Mostriamo che q,a 1 a 2 a n,b 1 b 2 b n t.c. q f* (q 0, a 1 a 2 a n ), q f*(q 0, b 1 b 2 b n ), a 1 a 2 a n b 1 b2 b n

66 Mostriamo che q, a 1 a 2 a n, b 1 b 2 b n t.c. q f* (q 0, a 1 a 2 a n ), q f*(q0, b 1 b2 b n ), a 1 a 2 a n b 1 b 2 b n Caso 1. 1 a 2 a n e 0 b 2 b n q dovrebbe essere sia uno stato di accettazione (per a 1 a 2 a n ) che uno stato di non accettazione (per b 1 b2 b n ).

67 Mostriamo che q, a 1 a 2 a n, b 1 b 2 b n t.c. q f* (q 0, a 1 a 2 a n ), q f*(q0, b 1 b2 b n ), a 1 a 2 a n b 1 b 2 b n Caso 2: a 1 a (i 1) 1 a (i+1) a n b 1 b (i 1) 0 b (i+1) b n Ora f*(q 0,a 1 a (i 1) 1 a (i+1) a n 0 i 1 ) =f*(q 0,b 1 b (i 1) 0 b (i+1) b n 0 i 1 ) e f*(q 0, a 1 a (i 1) 1 a (i+1) a n 0 i 1 ) F D f*(q 0, b 1 b (i 1) 0 b (i+1) b n 0 i 1 ) non appartiene ad F D

68 DIMOSTRAZIONE CHIUSURA CONCATENAZIONE AB = { vw v in A, w in B }. Teorema La classe dei linguaggi regolari è chiusa per la concatenazione.

69 Concatenazione scorretta { a n n dispari }. B = { b{b n n n dispari}. n odd} Riconosce abbaab!!

70 Concatenazione Corretta { a n n dispari }. B = {{b b n n dispari}. odd} {xy x A and y B}

71 Dim Idea: NFA N per L1 L2 : w=uv u in L1 AND v in L2

72 Dim Idea: NFA N per L1 L2 : w non in L1L2 Comunque scriviamo w=uv: u non in L1 OR v non in L2

73 L 1 linguaggio riconosciuto da NFA N 1 = (Q 1,, 1, q 1, F 1 ). L 2 linguaggio riconosciuto da NFA N 2 = (Q 2,, 2, q 2, F 2 ). NFA N = (Q,,, q 1, F 2 ) per L 1 L 2 : Q = Q 1 U Q 2 Stato start q 1, stesso di N 1. Stati finali F 2, stessi di N 2. Funzione di transizione:

74 Si può estendere alla Kleene star: L* = { x 1 x 2 x k k > 0, x i in L}. Teorema La classe dei linguaggi regolari è chiusa per l operazione Kleene-star. DIM IDEA. Se N 1 riconosce L. Costruiamo N da N 1 in cui ogni stato finale è collegato da -transizione allo stato iniziale

75 Espressioni regolari descrivono i linguaggi regolari Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo per descrivere un linguaggio regolare. Esempio: 01 U 10 Le espressioni regolari sono usate, ad esempio, in comandi UNIX (grep) strumenti per l analisi lessicale di UNIX (Lex (Lexical analyzer generator) e Flex (Fast Lex)).

76 Espressioni regolari Sia A={0, 1}. Per brevità nelle espressioni regolari: 0 indica {0}, 1 indica {1} Es: 0 U 1 indica {0}U{1}, cioè {0, 1}. Es: (0 U 1)0* è {0, 1}{0}* (dove {0}*. = {,0,00,000, }.) cioè l insieme di stringhe binarie che iniziano con 0 oppure 1 e continuano con degli 0 (anche nessuno) Es. (0 U 1)* è {0,1}*, cioè l insieme di tutte stringhe su {0,1}.

77 Espressioni regolari: definizione induttiva BASE: a è espressione regolare per ogni a nell alfabeto; denota l insieme {a} è espressione regolare; denota l insieme { } è espressione regolare; denota l insieme

78 Espressioni regolari: definizione induttiva Siano R1 e R2 espressioni regolari che rappresentano i linguaggi L1 e L2. UNIONE: (R1 U R2) rappresenta l insieme L1 U L2. CONCATENAZIONE: (R1 R2) rappresenta l insieme L1 L2. CHIUSURA DI KLINE: (R1)* rappresenta l insieme L1*.

79 Linguaggio generato da espressioni regolari Def: se R è espressione regolare, allora L(R) denota il linguaggio generato da R.

80 Definizione Induttiva di espressione regolare (e.r.) Base: e sono espressioni regolari: L( ) = { } e L( ) =. Se a in Σ, allora a è un espressione regolare: L(a) ={a}. Passo: Se R1 e R2 sono e.r., allora R1 U R2 è e.r. che rappresenta L(R1) U L(R2). R1R2 è un e.r. che rappresenta L(R1)L(R2). R1 è un e.r. che rappresenta (L(R1)).

81 Nota. Definizione induttiva suggerisce modo generale di provare generico teorema T per ogni e.r. Passo 1: T vero per casi base Passo 2: i.i. T corretto per R 1 e R 2 Mostriamo che T vero per (R 1 U R 2 ), R 1 R 2, (R 1 )* 81

82 Gerarchia di operazioni in espressioni regolari In aritmetica, moltiplicazione ha precedenza su addizione = 14. Parentesi cambiano ordine usuale: (2+3) 4 = 20. Ordine di precedenza per operazioni regolari: 1. Kleene star 2. Concatenazione 3. Unione Parentesi cambiano ordine usuale

83 Gerarchia di operazioni in espressioni regolari Ordine di precedenza per operazioni regolari 1. Kleene star (*) 2. Concatenazione (.) 3. Unione (U) Es.: 01 U 1 è raggruppato in (0(1) ) U 1 Es: 00 U 101* linguaggio formato da stringa 00 e da stringhe inizianti con 10 seguita da zero o più 1.

84 Gerarchia di operazioni in espressioni regolari Ordine di precedenza per operazioni regolari 1. Kleene star (*) 2. Concatenazione () 3. Unione (+) Es: 0(0 U 101)* in linguaggio? ? ? 101?

85 Es: A={0, 1}, Esempi di espressioni regolari 1. (0 U 1) linguaggio {0, 1} 2. 0*10* linguaggio {w w ha un solo 1 } 3. A*1A* linguaggio {w w almeno un 1 } 4. A*001A* linguaggio {w w ha 001 come sottostringa } 5. (AA)* linguaggio {w w pari } 6. (AAA)* linguaggio {w w multiplo di 3 }

86 Es: Sia EVEN-EVEN su A={a, b} insieme stringhe con numero pari di a e numero pari di b Es, aababbaaababab in EVEN-EVEN. espressione regolare: (aa U bb U (ab U ba) (aa U bb) * (ab U ba)) *

87 Teorema di Kleene Teorema Linguaggio L è regolare sse L ammette una espressione regolare.

88 IDEA DIM. Teorema di Kleene Sappiamo Linguaggio L è regolare L riconociuto da NFA L riconociuto da DFA Si mostra Per ogni DFA A possiamo costruire un e.r. R con L(R) = L(A). Per ogni e.r. R esiste un NFA A, tale che L(A) = L(R). Cioè L riconociuto da DFA L ammette un e.r. Quindi Linguaggio L è regolare L ammette un e.r.

89 L ammette un e.r. L riconociuto da NFA Stage 1: Prove correctness for all basessume correctness for and, and show its 1.Dimostriamo per casi base: a, e, f 2.Assumiamo correttezza per R1 e R2, proviamo per R1 U R2, R1R2, R1*.

90 L ammette un e.r. L riconociuto da NFA Stage 1: Prove correctness for all basessume correctness for and, and show its 1.Dimostriamo per casi base: a,. a: a q 0 q 4 q 4 q 4

91 L ammette un e.r. L riconociuto da NFA Stage 1: Prove correctness for all basessume correctness for and, and show its 1.Dimostriamo per casi base: a, e, f 2.Assumiamo correttezza per R1 e R2, proviamo per R1 U R2, R1R2, R1* Immediato: sappiamo costruire NFA per Unione, concatenazione e Klene star.

92 L ammette un e.r. L riconociuto da NFA 1.Dimostriamo per casi base: a, e, f 2.Assumiamo correttezza per R1 e R2, proviamo per R1 U R2, R1R2, R1* Es. Costruire NFA per ab a * a b * aba

93 Tutti i linguaggi sono regolari? Se tentiamo di costruire DFA che riconosce L a n b n n 0 Ci accorgiamo che ci servono infiniti stati per ricordare il numero di a visti (poi dovremo controllare che che numero di b coincide con quello di a) Nota. Esiste dimostrazione formale

94 Pumping Lemma Applicazione primaria: mostrare che un linguaggio non è regolare Lemma: Per ogni linguaggio regolare L, esiste una costante positiva p tale che per ogni stringa w con in L di lunghezza w >p Esistono stringhe x, y, z t.c. w = xyz che soddisfano: y >0 xy < p xy i in L, per ogni I > 0.

95 Dim. Pumping Lemma (Idea) Per ogni linguaggio regolare L, esiste una costante positiva p tale che per ogni stringa w con in L di lunghezza w >p esistono stringhe x, y, z, t.c. w = xyz, che soddisfano: y >0, xy < p, xy i z in L, per ogni i > 0. Siano: M automa che riconosce L, p=numero stati di M w >p nella computazione esiste stato ripetuto (sia r il primo stato ripetuto) x porta da stato iniziale ad r, y da r ad r, z da r a stato finale xy <p (r primo stato ripetuto), y > 1, xy i z porta da stato iniziale ad r, da r ad r i volte, da r a stato finale

96 Applicazione del Pumping Lemma Teorema: L = insieme di tutte le stringhe su {0, 1} aventi un ugule numero di 0 e di 1. Il linguaggio L non è regolare Dim: Per contraddizione usando il PL. Supponiamo L regolare. Sia p la costante del PL. Consideriamo stringa w = 0 p 1 p PL implica che esistono xyz = 0 p 1 p, tali che xy < p, y non vuota, e xy k z in L per ogni k > 0. xy formata da tutti 0 (perchè?) ed y stringa di almeno uno 0.

97 Applicazione del Pumping Lemma cont. se k >1, allora xy k z e xyz hanno (tra di loro): diverso numero di 0 stesso numero di 1, In xy k z il numero di 0 differisce da quello di 1 xy k z non in L, CONTRADDIZIONE! l assunzione che L è regolare deve essere falsa L NON regolare

98 Applicazione del Pumping Lemma Corollario: Il linguaggio {0 i 1 i i > 0} non è regolare. La dimostrazione è essenzialmente uguale alla precedente

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Progamma sintetico Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Un problema classico Un uomo viaggia con un lupo, una pecora

Dettagli

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Progamma sintetico Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Un problema classico Un uomo viaggia con un lupo, una pecora

Dettagli

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Espressioni regolari descrivono i linguaggi regolari Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo per descrivere

Dettagli

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Espressioni regolari descrivono i linguaggi regolari Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo per descrivere

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

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Espressioni regolari A.A. 2014-2015 Enrico Mezzetti emezzett@math.unipd.it Espressioni regolari Un FA (NFA o DFA) e un metodo per costruire una macchina che riconosce linguaggi

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

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

Automi a stati finiti

Automi a stati finiti Automi a stati finiti Definizioni preliminari Il modello: la definizione formale, esempi. Le definizioni utili per descrivere e provare proprietà degli automi: diagramma degli stati, configurazioni, relazione

Dettagli

Espressioni regolari

Espressioni regolari spressioni Regolari Un FA (NFA o DFA) e una macchina a stati finiti che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo (o algebrico) per descrivere un linguaggio regolare.

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

Espressioni regolari. Espressioni regolari

Espressioni regolari. Espressioni regolari spressioni regolari Un FA (NFA o DFA) e un metodo per costruire una macchina che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo per descrivere un linguaggio regolare. Esempio:

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

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

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

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

Fondamenti di Programmazione: AUTOMI E LINGUAGGI FORMALI Corso di Laurea in MATEMATICA a.a. 2018/2019

Fondamenti di Programmazione: AUTOMI E LINGUAGGI FORMALI Corso di Laurea in MATEMATICA a.a. 2018/2019 Fondamenti di Programmazione: AUTOMI E LINGUAGGI FORMALI Corso di Laurea in MATEMATICA a.a. 2018/2019 Chiara Bodei Dipartimento di Informatica chiara.bodei@unipi.it Testi di riferimento Libro di testo

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

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi,

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi, Corso di Automi e Linguaggi Formali Gennaio- Marzo 2004 Docente: Francesca Rossi, frossi@math.unipd.it Corso di Automi e Linguaggi Formali Gennaio-Marzo 2004 p.1/30 Dati del corso Orario: Lunedi 15:50-17:30,

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

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

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

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

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

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

Quiz sui linguaggi regolari

Quiz sui linguaggi regolari Fondamenti dell Informatica 1 semestre Quiz sui linguaggi regolari Prof. Giorgio Gambosi a.a. 2016-2017 Problema 1: Data l espressione regolare a, definita su {a, b}, descrivere il linguaggio corrispondente

Dettagli

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi Nozioni Preliminari e Terminologia Alfabeti Stringhe Linguaggi Insiemi Def. Un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { } Gli elementi sono inseriti tra

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

Dettagli

Esempio stringhe palindrome 1

Esempio stringhe palindrome 1 Esempio stringhe palindrome 1 Automa per il riconoscimento del linguaggio L = {w c w R } A = < {s,f}, {a,b,c}, {a,b},!, s, { f } > con! che contiene le transizioni: 1. (( s, a, " ), (s, a)! [ push a] 2.

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

Concetti di base sugli automi e sui linguaggi formali

Concetti di base sugli automi e sui linguaggi formali Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere

Dettagli

Automi, Linguaggi e Computazione

Automi, Linguaggi e Computazione Automi, Linguaggi e Computazione Capitolo 1 : Teoria degli Automi e Tecniche di Dimostrazione Laurea Magistrale in Ingegneria Informatica Università di Padova Docente : Giorgio Satta Presentazione basata

Dettagli

AUTOMI A STATI FINITI

AUTOMI A STATI FINITI AUTOMI A STATI FINITI Stati Un FSA (Finite State Automaton) ha un insieme finito di stati Un sistema con un numero limitato di configurazioni (in italiano anche: AF) Esempi {On, Off}, {1,2,3,4,,k} {canali

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

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi Sipser, Capitolo 0 Alfabeti, Stringhe, Linguaggi Def. Un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { } Gli elementi sono inseriti tra le parentesi Insiemi

Dettagli

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

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

Espressioni regolari in UNIX p.1/19

Espressioni regolari in UNIX p.1/19 Espressioni regolari in UNIX Violetta Lonati a Dipartimento Scienze dell Informazione Università degli Studi di Milano a E garantito il permesso di copiare, distribuire e/o modificare i materiali cont

Dettagli

Automi e Linguaggi Formali

Automi e Linguaggi Formali E-mail: frossi@math.unipd.it rario e ricevimento Orario: Mercoledi 13:30 15:30, LUM 250 Giovedi 13:30 15:30, LUM 250 Venerdi 12:30 13:30, LUM 250 Ricevimento: Martedi 16:00-18:00, studio 428, IV piano,

Dettagli

Linguaggi di Programmazione e Compilatori

Linguaggi di Programmazione e Compilatori Maria Rita Di Berardini Linguaggi di Programmazione e Compilatori Raccolta Esercizi 10 giugno 2009 Università di Camerino Dipartimenento di Matematica e Informatica Indice 1 Analisi Lessicale...........................................

Dettagli

Fondamenti dell Informatica

Fondamenti dell Informatica Fondamenti dell Informatica Compito scritto 28 settembre 2005 Cognome: Nome: Matricola: Note 1. Per i quiz a risposta multipla, fare una croce sulla/e lettera/e che identifica/no la/e risposta/e desiderata/e.

Dettagli

DECIDIBILITÀ E INDECIDIBILITÀ

DECIDIBILITÀ E INDECIDIBILITÀ DECIDIBILITÀ E INDECIDIBILITÀ Obiettivo: analizzare i limiti della risoluzione dei problemi mediante algoritmi. Studieremo: il potere computazionale degli algoritmi nella soluzione dei problemi. Proveremo

Dettagli

Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012.

Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012. Automi e Macchine Computabilità Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012 Computabilità AA 2012/13 Ugo Solitro Sommario Introduzione Automi a

Dettagli

Da espressioni regolari a -NFA

Da espressioni regolari a -NFA Da espressioni regolari a -NFA Teorema 3.7: Per ogni espressione regolare R possiamo costruire un -NFA A, talechel(a) =L(R). Dimostrazione: Per induzione strutturale: Base: Automa per, ;, ea. (a) (b) a

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Problemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune.

Problemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune. Problemi di decisione Si delinei un algoritmo che decide se due linguaggi regolari su Σ hanno una stringa in comune. Si delinei un algoritmo che decide se un DFA accetta un linguaggio infinito Si delinei

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

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

Automi e Linguaggi Formali. Cambiamenti di orario. Altre informazioni utili. Motivazione. Anno accademico

Automi e Linguaggi Formali. Cambiamenti di orario. Altre informazioni utili. Motivazione. Anno accademico Automi e Linguaggi Formali Anno accademico 5-6 Docente: Francesca Rossi E-mail: frossi@math.unipd.it Orario: Lunedi 5:3 7:3, LUM 5 Venerdi 3:3 6:3, LUM 5 Cambiamenti di orario non si fara lezione Venerdi

Dettagli

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Dettagli

LINGUAGGI REGOLARI. Teorema (Kleene). Le seguenti classi di linguaggi sono equivalenti:

LINGUAGGI REGOLARI. Teorema (Kleene). Le seguenti classi di linguaggi sono equivalenti: LINGUAGGI REGOLARI Teorema (Kleene). Le seguenti classi di linguaggi sono equivalenti: 1 - L(GR): linguaggi generati da grammatiche di tipo 3 (anche con ε-produzioni) 2 - L(ASF): linguaggi riconosciuti

Dettagli

Prefazione all edizione italiana

Prefazione all edizione italiana Questo è l'indice del libro, in cui sono evidenziati i paragrafi corrispondenti agli argomenti trattati nel corso e che costituiscono il programma d'esame. Si noti che la presentazione di alcuni argomenti

Dettagli

LINGUAGGI FORMALI. Introduzione

LINGUAGGI FORMALI. Introduzione LINUAI FORMALI Introduzione Alfabeto : un qualunque insieme di simboli. (Tratteremo solo alfabeti finiti). Esempio: {a,b,c,,,x,w,y,z} {0.1.2.3.4.5.6.7.8.9} {0,1} Stringa (su un alfabeto) : una sequenza

Dettagli

Linguaggi e Traduttori: Analisi lessicale

Linguaggi e Traduttori: Analisi lessicale Linguaggi e Traduttori: Analisi lessicale Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-La) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

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

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di

Dettagli

Analisi Lessicale: Linguaggi Regolari

Analisi Lessicale: Linguaggi Regolari Analisi Lessicale: Linguaggi Regolari Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 18 mar, 2016 Sommario 1 Espressioni Regolari Linguaggi

Dettagli

Grammatiche e Linguaggi Liberi da Contesto

Grammatiche e Linguaggi Liberi da Contesto Grammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi più grandi di linguaggi. I Linguaggi Liberi da Contesto (CFL) sono stati usati

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it a.a. 2002-03 e.merelli

Dettagli

Automi e Linguaggi Formali

Automi e Linguaggi Formali Esressioni regolari utomi e Linguaggi Formali Esressioni regolari Un F (NF o DF) e un metodo er costruire una macchina che riconosce linguaggi regolari Una esressione regolare e un modo dichiarativo er

Dettagli

Principio di composizione delle MT

Principio di composizione delle MT Principio di composizione delle MT La definizioni date fanno riferimento a situazioni in cui la macchina sia capace di risolvere problemi singoli. E possibile far sì che macchine progettate per problemi

Dettagli

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?

Dettagli

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.2 Introduzione ai Linguaggi Formali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Definizioni Preliminari Un

Dettagli

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale Aniello Murano Classe dei problemi NP 13 Lezione n. Parole chiave: Classe NP Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione alla lezione Nella lezione

Dettagli

Macchine di TURING. Alan Mathison Turing ( )

Macchine di TURING. Alan Mathison Turing ( ) Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei

Dettagli

Automi deterministici e non

Automi deterministici e non Automi deterministici e non Negli esempi visti fin ora gli automi avevano sempre relazioni di transizione per cui per un dato elemento del dominio coppia (s, v), dove s è uno stato (sorgente) e v un simbolo,

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

DECIDIBILITÀ E INDECIDIBILITÀ

DECIDIBILITÀ E INDECIDIBILITÀ arrows DECIDIBILITÀ E INDECIDIBILITÀ Obiettivo: analizzare i limiti della risoluzione dei problemi mediante algoritmi. Studieremo: il potere computazionale degli algoritmi nella soluzione dei problemi.

Dettagli

Limiti della calcolabilità

Limiti della calcolabilità Limiti della calcolabilità Argomenti della lezione Macchina di Turing universale Il problema della terminazione Altri problemi indecidibili Macchine di Turing in forma ridotta Per ogni MT M esiste una

Dettagli

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari roprieta dei Linguaggi Regolari Proprieta di chiusura. E interessante investigare proprieta di chiusura dei linguaggi regolari rispetto ad applicazione di sostituzioni o omomorfismi. Queste tecniche permettono

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

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

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto roprieta di CFL Semplificazione di una CFG: se un linguaggio e un CFL, ha una grammatica di una forma speciale. Pumping Lemma per CFL: simile ai linguaggi regolari. Proprieta di chiusura: alcune delle

Dettagli

La MT come riconoscitore

La MT come riconoscitore La MT come riconoscitore Sia M =

Dettagli

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar I metodi formali dell Analisi Lessicale: Le Espressioni Regolari (ER) N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Introduzione 2 3 4 5 Espressioni Regolari Dato un alfabeto finito X, una espressione regolare

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

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice l linguaggio universale Il linguaggio universale L u e l insieme delle stringhe binarie che codificano una coppia (M,w) dove w L(M). Esiste una TM U, detta TM universale, tale che L u = L(U). U ha tre

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

Un prefisso, un suffisso o una sottostringa di una stringa, quando non sono la stringa stessa, sono detti propri.

Un prefisso, un suffisso o una sottostringa di una stringa, quando non sono la stringa stessa, sono detti propri. SIMBOLI Un simbolo è un entità primitiva astratta non meglio definita. Per ciò che ci concerne, un simbolo è atomico: se anche avesse una struttura interna, noi non la osserviamo. Le uniche caratteristiche

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

Automi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/55

Automi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/55 Automi Rosario Culmone, Luca Tesei 20/10/2009 UNICAM - p. 1/55 Storia Dal latino automatus "che si muove da sé" Macchine o dispositivi reali o ipoteticamente realizzabili, i quali siano in grado di eseguire

Dettagli

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto roprieta di CFL Semplificazione di una CFG: se un linguaggio e un CFL, ha una grammatica di una forma speciale. Pumping Lemma per CFL: simile ai linguaggi regolari. Proprieta di chiusura: alcune delle

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

Fondamenti teorici e programmazione

Fondamenti teorici e programmazione Fondamenti teorici e programmazione FTP(A) - modb Lezione 16 Grammatiche Libere da Contesto Alberi di derivazione sintattica Linguaggio generato F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione

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

Sommario. martedì 23 ottobre 2012

Sommario. martedì 23 ottobre 2012 Sommario Macchina di Turing universale il problema dell accettazione per TM e sua indecidibilità il problema della fermata e sua indecidibilità Proprietà dei problemi Turing riconoscibili Linguaggi non

Dettagli

Sommario. 1. Ancora qualche esempio di DFA Introduzione, definizione ed esempi di automa a stati finiti nondeterministici

Sommario. 1. Ancora qualche esempio di DFA Introduzione, definizione ed esempi di automa a stati finiti nondeterministici Sommario. Ancora qualche esempio di DFA Introduzione, definizione ed esempi di automa a stati finiti nondeterministici Michael O. Rabin (93) 2. Dimostrazione equivalenza tra automi a stati finiti nondeterministici

Dettagli

Automi a pila. Automi a pila

Automi a pila. Automi a pila utomi a pila Un automa a pila (PDA) e in pratica un ǫ-nfa con una pila. In una transizione un PDA: 1 Consuma un simbolo di input. 2 Va in un nuovo stato (o rimane dove e ). 3 Rimpiazza il top della pila

Dettagli

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione Informatica e Laboratorio di Programmazione Automi Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione automa o automa: macchina astratta o realizza un certo algoritmo, secondo

Dettagli

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Dettagli

Aniello Murano Automi e Pushdown

Aniello Murano Automi e Pushdown Aniello Murano Automi e Pushdown 2 Lezione n. Parole chiave: Automi e PDA Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Calcolabilità, complessità e macchine computazionali

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

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Dispensa di Informatica Teorica (Elementi) - Teorema di Cook

Dispensa di Informatica Teorica (Elementi) - Teorema di Cook Teorema di ook (Idea generale) Dato L NP, costruire una trasformazione polinomiale f da L a L (sodd, e), cioè il linguaggio composto dalle stringhe che corrispondono ad istanze del problema sodd. La trasformazione

Dettagli

Forma Normale di Chomsky

Forma Normale di Chomsky 2. Eliminazione delle produzioni unitarie Forma Normale di Chomsky Una produzione si dice unitaria se è della forma A! B. Le produzioni unitarie in pratica consistono in una ridenominazione di variabili,

Dettagli

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Problemi intrattabili, classi P e NP A.A. 2014-2015 Alessandro Sperduti sperduti@math.unipd.it Problemi intrattabili Ci occuperemo solo di problemi decidibili, cioè ricorsivi.

Dettagli

Definizione 1.1. Sia A un sottoinsieme dei numeri reali. Diciamo che A è un insieme induttivo se

Definizione 1.1. Sia A un sottoinsieme dei numeri reali. Diciamo che A è un insieme induttivo se 1 Numeri naturali, interi e razionali Definizione 1.1. Sia A un sottoinsieme dei numeri reali. Diciamo che A è un insieme induttivo se 1. 1 A. per ogni x A, si ha x + 1 A Definizione 1.. Chiamo insieme

Dettagli