Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP
|
|
- Rocco Marco Cirillo
- 7 anni fa
- Visualizzazioni
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 Un problema classico Un uomo viaggia con un lupo, una pecora
DettagliProgamma 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
DettagliEspressioni 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
DettagliEspressioni 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
DettagliNFA 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
DettagliAutomi 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
DettagliEspressioni 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
DettagliLinguaggi 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
DettagliAutomi 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
DettagliEspressioni 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.
DettagliProprieta 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
DettagliEspressioni 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:
DettagliLinguaggi 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
DettagliProprieta 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.
DettagliAutomi 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)
DettagliAutomi 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
DettagliFondamenti 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
DettagliAutomi 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
DettagliFormali. 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,
DettagliLinguaggi 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
DettagliLinguaggi 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
DettagliLinguaggi 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
DettagliAutomi 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
DettagliSommario. 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
DettagliNote 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
DettagliSui 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.
DettagliQuiz 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
DettagliNozioni 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
DettagliLinguaggi 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
DettagliEsempio 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.
DettagliLinguaggi 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
DettagliConcetti 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
DettagliAutomi, 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
DettagliAUTOMI 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
DettagliAutomi 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
DettagliSipser, 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
DettagliEsercizi 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
DettagliFondamenti 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
DettagliEspressioni 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
DettagliAutomi 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,
DettagliLinguaggi 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...........................................
DettagliFondamenti 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.
DettagliDECIDIBILITÀ 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
DettagliAutomi 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
DettagliDa 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
DettagliCapitolo 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
DettagliProblemi 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
DettagliAUTOMI 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
DettagliEsercizi 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}
DettagliAutomi 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
DettagliInformatica 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
DettagliLINGUAGGI 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
DettagliPrefazione 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
DettagliLINGUAGGI 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
DettagliLinguaggi 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
DettagliCapitolo 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á.
DettagliFondamenti 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
DettagliAnalisi 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
DettagliGrammatiche 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
DettagliAlgoritmi 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
DettagliAutomi 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
DettagliPrincipio 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
DettagliMa 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?
DettagliLinguaggi 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
DettagliAniello 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
DettagliMacchine 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
DettagliAutomi 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,
DettagliLa 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
DettagliDECIDIBILITÀ 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.
DettagliLimiti 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
DettagliProprieta 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
DettagliLinguaggi 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
DettagliAniello 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
DettagliProprieta 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
DettagliI 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
DettagliGrammatiche 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
DettagliLinguaggio 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
DettagliFondamenti 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,
DettagliUn 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
DettagliTrasformazione 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
DettagliAutomi. 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
DettagliProprieta 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
DettagliGrammatiche 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
DettagliFondamenti 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
DettagliProprietà 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
DettagliSommario. 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
DettagliSommario. 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
DettagliAutomi 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
DettagliInformatica 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
DettagliMacchine 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,
DettagliAniello 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
DettagliPumping 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=
DettagliCapitolo 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
DettagliDispensa 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
DettagliForma 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,
DettagliAutomi 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.
DettagliDefinizione 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