nessun titolo diapositiva - unisa · • automi finiti • macchine di turing ... strumenti per la...

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

Upload: others

Post on 22-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Progamma sintetico

• Nozioni preliminari

• Automi Finiti

• Macchine di Turing

• Limiti delle macchine di Turing

• La tesi di Church-Turing

• Le classi P e NP

Page 2: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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?

Page 3: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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 , …

Page 4: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Mosse transizioni di stato

• Ogni mossa porta puzzle da uno stato ad un’altro

• Es. Mossa p provoca transizione

Page 5: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Diagramma delle Transizioni

• Mosse legali

• Stati raggiungibili

• Stato start

• Stato finale (scopo raggiunto)

Page 6: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

• 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

Linguaggio delle soluzioni

Page 7: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

• Per alcune stringhe automa non sa cosa fare

• Vogliamo automi che sanno sempre cosa fare

• Es. Usiamo stato addizionale

Page 8: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli
Page 9: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 10: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 11: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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.

Page 12: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 13: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Automa finito deterministico (DFA)

Es: DFA con alfabeto ={a, b}:

a b b a a ------------------------------------------------------------------- q1 q1 q2 q2 q3 q2

Page 14: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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)

Page 15: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 16: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Def. formale di DFA A automa finito deterministico (DFA) è 5-tupla M = (Q, , f, q1, 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. q1 Q è lo stato start.

5. F (sottoins. di Q) è l'insieme di stati accetta (o finali).

Nota: DFA chiamato anche semplic. automa finito (FA).

Page 17: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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.

Page 18: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es. di DFA M = (Q, , f, q1, F) con Q = {q1, q2, q3} ={a, b}

f è descritta da q1 è lo stato start F = {q2}.

Page 19: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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 .

Page 20: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Definizione formale funzionamento Sia M = (Q, , f, q0, F) un DFA. Considera stringa w = w1w2 … wn su , dove ogni wi in .

M accetta w se esiste sequenza stati r0, r1, . . . , rn in Q

tali che:

1. r0 = q0 (primo stato della sequenza è quello iniziale)

2. rn in F (ultimo stato in sequenza è uno stato accetta)

3. f(ri-1, wi) = ri , per ogni i = 1, 2, . . . , n (sequenza di stati

corrisponde a transizioni valide per la stringa w).

Page 21: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

ES.

abaa accettata

Esiste sequenza stati q1,q1,q2,q3,q2

Page 22: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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.

Page 23: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

ES.

L(M) è l’insieme di tutte le stringhe sull’alfabeto

{a,b} della forma

{a}*{b}{b,aa,ab}*

Page 24: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es: Si consideri il seguente DFA M1 con alfabeto ={0, 1} :

010110 è accettata , ma 0101 è rifiutata .

L(M1) è 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

Page 25: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es: DFA M2 con alfabeto ={0, 1} :

Nota: L(M2) è Linguaggio su A che ha lunghezza 1, cioè

L(M2) = {w in A* | |w| = 1} Si ricordi che C(L(M2)), il complemento di L(M2), è l'insieme di stringhe su A che non sono in L(M2). Domanda: DFA che riconosce C(L(M2))?

Page 26: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es: Si consideri il seguente DFA M3 con alfabeto A={0, 1}

L(M3) è 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.

Page 27: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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*(q0 ,w) ∈ F }

Page 28: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 29: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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, q1, F).

allora, DFA per il complemento di L è

M = (Q, , f, q1, Q-F ).

Esercizio: Perchè funziona?

Page 30: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es: Si consideri il seguente DFA M4 con alfabeto ={a, b} :

L(M4): Linguaggio di stringhe su che terminano con bb, Cioè L(M4) = {w in | w = sbb per qualche stringa s}

Page 31: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es: Si consideri il seguente DFA M5 con alfabeto ={a, b}

L(M5) = {w | w = saa o w = sbb per qualche stringa s}.

Page 32: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Si consideri il seguente DFA M6 con alfabeto ={a,b}

Accetta tutte le possibili stringhe su , cioè L(M6) = *

In generale, ogni DFA in cui tutti stati sono stato accetta riconosce il linguaggio *

Page 33: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 34: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es: Si consideri il seguente DFA M8 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.

Page 35: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Operazioni su linguaggi

Siano A e B Linguaggi. Unione: A B = {w | w A o w B }. Concatenazione: AB = { vw | v A,w B }. Kleene star: A*= {w1 w2 · · · wk | k > 0 e ogni wi A}.

U

Page 36: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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 M1 per Linguaggio L, possiamo

costruire DFA M2 per Linguaggio complemento L’:

Rendi tutti stati accetta in M1 in non-accetta in M2.

Rendi tutti stati non-accetta in M1 in accetta in M2.

Quindi L regolare C(L) regolare.

Teorema. L’ insieme dei linguaggi regolari è chiuso

per l’operazione di complemento.

Page 37: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Insieme linguaggi regolari chiuso per l’ unione Teorema La classe dei linguaggi regolari è chiusa per l’unione. cioè, se L1 e L2 sono linguaggi regolari, allora lo è anche L1 L2. Dim. Idea:

L1 ha DFA M1.

L2 ha DFA M2.

w in L1 L2 sse w è accettata da M1 oppure M2.

Serve DFA M3 che accetta w sse w accettata da M1 o M2.

Costruiamo M3 tale

1.da tener traccia di dove l’ input sarebbe se fosse

contemporaneamente in input a M1 e M2.

2. accetta stringa sse M1 oppure M2 accetta.

U

U

Page 38: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Siano L1 e L2 definiti su stesso alfabeto . DFA M1 riconosce L1, dove M1 = (Q1, , f1, q1, F1). DFA M2 riconosce L2, dove M2 = (Q2, , f2, q2, F2). Costruiamo DFA M3 = (Q3, , f3, q3, F3) : •Q3 = Q1 × Q2 = { (x, y) | x in Q1, y in Q2 }.

•Alfabeto di M3 è .

•M3 ha funzione di transizione f3 : Q3 × -> Q3 t.c.

per ogni x in Q1, y in Q2, a in ,

f3( (x, y),a ) = ( f1(x, a), f2(y,a ) ) .

•Lo stato start di M3 è q3 = (q1, q2) in Q3.

•L’ insieme di stati accetta di M3 è

F3 = { (x, y) in Q3 | x in F1 o y in F2 }

Page 39: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

• M3 è automa che riconosce UNIONE

Perché?

Page 40: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

• M3 è automa che riconosce UNIONE

• Poichè Q3 = Q1 × Q2,

numero di stati in M3 è |Q3| = |Q1| · |Q2|.

Quindi, |Q3| è finito poichè |Q1| e |Q2| sono finiti

M3 è DFA per UNIONE

Page 41: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Vogliamo DFA per l’unione di A1 e A2.

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

Page 42: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli
Page 43: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

I linguaggi regolari sono chiusi per l’intersezione

Teorema La classe dei linguaggi regolari è chiusa per

l’intersezione. Cioè, se L1 e L2 sono linguaggi regolari, allora lo è

L1 L2.

Dim. Idea:

• L1 ha DFA M1.

• L2 ha DFA M2.

• sse w è accettato sia daM1 che da M2.

•Si vuole DFA M3 che accetta w sse w è accettata da M1 e M2.

•Costruiamo M3 che contemporaneamente mantiene traccia

dello stato in cui si troverebbero sia M1 che M2.

• Accetta stringa sse sia M1 che M2 accettano

21 LLw

Page 44: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es.

Page 45: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

I linguaggi regolari sono chiusi per l’intersezione

Teorema La classe dei linguaggi regolari è chiusa per

l’intersezione. Cioè, se L1 e L2 sono linguaggi regolari, allora lo è

L1 L2.

Dim.:

•Si vuole DFA M3 che accetta w sse w è accettata da M1 e M2.

1.Fornire la definizione formale di M3

2.Mostrare che

M3 accetta w sse w è accettata sia da M1 che da M2.

Page 46: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 47: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 48: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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 N1 con alfabeto A={0, 1}.

Page 49: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Se NFA è in stato con più scelte, (Es., in stato q1 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.

Page 50: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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 ?

Page 51: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli
Page 52: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

NFA N accetta stringhe , a, aa, baa, baba, . . . . NFA N non accetta stringhe b, ba, bb, . . . .

r1 r3

r2

a, b

b

a

a

Page 53: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Def.di NFA

Def.: Per alfabeto , sia ottenuto da aggiungendo

Def.: A NFA è 5-tupla (Q, , f, q0, F), con

1. Q insieme di stati

2 alfabeto

3. f : Q × ->P(Q) funzione di transizione

4. q0 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.

Page 54: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli
Page 55: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli
Page 56: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Computazione di NFA Sia N = (Q, , f, q0, F) un NFA e w una stringa su A allora N accetta w se w = y1 y2 · · · ym, dove ogni yi in , e esiste sequenza di stati r0, r1, . . . , rm in Q t.c. 1. r0 = q0

2. ri+1 in f(ri, yi+1) per ogni i = 0, 1, 2, . . . , m - 1 3. rm 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.

Page 57: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

accetta il linguaggio {x01 : x ∈ Σ*}.

Es.

Page 58: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 59: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli
Page 60: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Sia L = L(N) per NFA N = (QN, , fN, qN, FN)

Costruiamo DFA D=(QD, , fD, qD, FD).

Partiamo da D’ che non considera le -transition:

Q P QN

f R,a fN r,ar R

U ,

per ogni R Q e a ,

q {qN}

F R Q |R FN

Page 61: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

• Per ogni stato in fN, se vi è -transition allora dobbiamo considerarla

• Definiamo

E(R)=

R U {q| q raggiungibile da stato in R con 1 o più archi lab.

QD P QN

fD R,a E( fN r,ar R

U ),

per ogni R QD e a ,

qD E({qN})

FD R QD |R FN

Page 62: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

• Risulta, per ogni x *,

• D simula N su ogni input x

• D accetta sse N accetta

• L = L(N) = L(D)

fD* qD,x fN

* qN ,x Si può provare per induzione

Nota f*N(q0,x) = insieme stati raggiungibili da q0 su input x

f*N(q0, ) = E({q0})

f*N(q0,xa) =Ur∈ f*N(q0, x) E(fN(r,a))

Page 63: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Mostriamo per induzione su |w| che

f*D({q0},w) = f*N(q0,w) [poniamo q0=qN]

Base: w = . L’enunciato segue dalla definizione.

Passo:

f*D({q0},xa) = fD(f*D({q0},x),a) (def.)

= fD (f*N(q0,x),a) (i.i.)

=Ur∈ f*N(q0, x) E(fN(r,a)) (def.)

= f*N (q0,xa)

Page 64: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 65: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Esiste un NFA N con n + 1 stati che non ha nessun DFA equivalente con meno di 2n stati

L(N) = {x1c2c3 ···cn : x ∈{0,1}∗, ci ∈{0,1}}

Supponiamo esista DFA D equivalente con meno di 2n stati.

D deve ricordare gli ultimi n simboli che ha letto.

Ci sono 2n sequenze di bit a1a2 ···an,

Mostriamo che

∃ q,a1a2 ···an,b1b2 ···bn t.c. q ∈ f* (q0, a1a2 ···an), q ∈ f*(q0, b1b2 ···bn ), a1a2···an b1b2 ···bn

Page 66: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Mostriamo che ∃ q, a1a2 ···an, b1b2 ···bn t.c. q ∈ f* (q0, a1a2 ···an), q ∈ f*(q0, b1b2 ···bn ), a1a2···an b1b2 ···bn Caso 1. 1 a2 ···an e 0 b2 ···bn

q dovrebbe essere sia uno stato di accettazione (per a1a2 ···an) che uno stato di non accettazione (per b1b2 ···bn ).

Page 67: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Mostriamo che ∃ q, a1a2 ···an, b1b2 ···bn t.c. q ∈ f* (q0, a1a2 ···an), q ∈ f*(q0, b1b2 ···bn ), a1a2···an b1b2 ···bn Caso 2: a1 ···a(i−1) 1 a(i+1) ···an

b1 ···b(i−1) 0 b(i+1) ···bn Ora f*(q0,a1…a(i−1) 1 a(i+1) …an0

i−1) =f*(q0,b1…b(i−1) 0 b (i+1)…bn 0i−1)

e f*(q0, a1…a(i−1) 1 a(i+1)…an 0

i−1)∈FD f*(q0, b1…b(i−1) 0 b(i+1)…bn0

i−1) non appartiene ad FD

Page 68: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

DIMOSTRAZIONE CHIUSURA CONCATENAZIONE

AB = { vw | v in A, w in B }.

Teorema

La classe dei linguaggi regolari è chiusa per la

concatenazione.

Page 69: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Concatenazione scorretta

B = {bn | n is odd}

{ an | n dispari }.

{ bn | n dispari}.

Riconosce abbaab!!

Page 70: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Concatenazione Corretta

{xy | x A and y B}

B = {bn | n is odd}

{ an | n dispari }.

{ bn | n dispari}.

Page 71: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Dim Idea: NFA N per L1 L2 :

w=uv

u in L1

AND

v in L2

Page 72: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Dim Idea: NFA N per L1 L2 :

w non in L1L2

Comunque

scriviamo

w=uv:

u non in L1

OR

v non in L2

Page 73: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

L1 linguaggio riconosciuto da NFA N1 = (Q1, , 1, q1, F1). L2 linguaggio riconosciuto daNFA N2 = (Q2, , 2, q2, F2). NFA N = (Q, , , q1, F2) per L1L2 : Q = Q1 U Q2

Stato start q1, stesso di N1. Stati finali F2, stessi di N2. Funzione di transizione:

Page 74: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Si può estendere alla Kleene star:

L* = { x1 x2 · · · xk | k > 0, xi in L}.

Teorema

La classe dei linguaggi regolari è chiusa per l’operazione

Kleene-star.

DIM IDEA. Se N1 riconosce L. Costruiamo N da N1 in cui ogni

stato finale è collegato da -transizione allo stato iniziale

Page 75: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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)).

Page 76: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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}.

Page 77: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 78: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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*.

Page 79: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

Page 80: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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))∗.

Page 81: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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 R1 e R2 Mostriamo che T vero per

(R1 U R2), R1R2, (R1)*

81

Page 82: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Gerarchia di operazioni in espressioni regolari

In aritmetica, moltiplicazione ha precedenza su addizione.

2+3×4 = 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

Page 83: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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.

Gerarchia di operazioni in espressioni regolari

Ordine di precedenza per operazioni regolari

1. Kleene star (*)

2. Concatenazione (.)

3. Unione (U)

Page 84: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Es: 0(0 U 101)*

• 0101001010 in linguaggio?

• 00101001?

• 0000000?

• 101?

Gerarchia di operazioni in espressioni regolari

Ordine di precedenza per operazioni regolari

1. Kleene star (*)

2. Concatenazione ()

3. Unione (+)

Page 85: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Esempi di espressioni regolari Es: A={0, 1},

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 }

Page 86: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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))*

Page 87: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Teorema di Kleene

Teorema Linguaggio L è regolare sse L ammette una

espressione regolare.

Page 88: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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.

Page 89: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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* .

Page 90: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

4q0q

4q

4q

Page 91: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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.

Page 92: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

*aab

ababa*

Page 93: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Se tentiamo di costruire DFA che riconosce

L anbn | n 0

Tutti i linguaggi sono regolari?

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

Page 94: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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

• xyi in L, per ogni I > 0.

Pumping Lemma

Page 95: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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, xyiz 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,

xyiz porta da stato iniziale ad r, da r ad r i volte, da r

a stato finale

Dim. Pumping Lemma (Idea)

Page 96: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

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 = 0p1p

PL implica che esistono xyz = 0p1p, tali che |xy| < p,

y non vuota, e xykz in L per ogni k > 0.

xy formata da tutti 0 (perchè?) ed y stringa di almeno uno 0.

Applicazione del Pumping Lemma

Page 97: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

cont.

se k >1, allora xykz e xyz hanno (tra di loro):

• diverso numero di 0

• stesso numero di 1,

In xykz il numero di 0 differisce da quello di 1

xykz non in L, CONTRADDIZIONE!

l’assunzione che L è regolare deve essere falsa

L NON regolare

Applicazione del Pumping Lemma

Page 98: Nessun titolo diapositiva - UNISA · • Automi Finiti • Macchine di Turing ... Strumenti per la specifica e la verifica di sistemi a stati finiti (sistemi biologici, protocolli

Corollario: Il linguaggio {0i1i | i > 0} non è regolare.

La dimostrazione è essenzialmente uguale alla precedente

Applicazione del Pumping Lemma