Automi a stati finiti
|
|
|
- Liliana Ippolito
- 6 anni fa
- Visualizzazioni
Transcript
1 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 porta a e relative definizioni di linguaggio accettato. Prime proprietà degli automi a stati finiti. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 1
2 Convenzioni Σ = {a,b,c} è un esempio di alfabeto, che è semplicemente un insieme finito. Usiamo le prime lettere dell alfabeto per indicare gli elementi di un alfabeto, in genere. x = abbaacba è un esempio di parola, che è semplicemente una sequenza di lettere dell alfabeto. Usiamo le ultime lettere dell alfabeto per indicare le parole su un alfabeto, in genere. ε ( o λ) è la parola vuota, senza lettere Σ* = {ε,a,b,c,aa,ab,ac,ba,bb,bc, } è l insieme di tutte le parole che si possono costruire sull alfabeto {a,b,c} 2
3 Automi a stati finiti Hanno applicazioni in verifica dei circuiti digitali e dei protocolli, compilatori, pattern recognition, etc. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 3
4 testina di lettura, può muoversi solo verso destra Il MODELLO MENTALE i n p u t controllo a stati finiti q In funzione dello stato in cui si trova e dell input letto la macchina cambia stato, poi sposta la testina di lettura sulla cella successiva. Termina dopo aver letto l ultimo simbolo sul nastro input; lo stato raggiunto determina se la parola è accettata o no. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 4
5 Un esempio di esecuzione i n p controllo a stati finiti q u t La macchina incorpora un programma con istruzioni del tipo: nello stato q se leggi i vai nello stato p nello stato p se leggi n vai nello stato q... A ogni passo la testina di lettura si sposta di una cella a destra. La macchina si ferma quando ha letto tutto l input. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 5
6 DIAGRAMMA DEGLI STATI È un grafo diretto in cui ogni nodo corrisponde a uno stato q tra una coppia di nodi corrispondenti agli stati p e q c è un arco con etichetta a se c è la regola nello stato p se leggi a vai nello stato q p a q lo stato iniziale q 0 è denotato q 0 uno stato finale q è denotato q Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 6
7 Esempio 1 Vogliamo costruire un DFA che accetta tutte le stringhe binarie che terminano con q1 0 q0 1 q Ogni stringa che determina un cammino sul grafo diretto dallo stato iniziale a quello finale è accettata dall'automa Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 7
8 1 0 Esempio 1 q1 0 q0 1 q Ogni stringa binaria w determina un cammino sul grafo di lunghezza w +1, la lunghezza di w più 1 Definizione ricorsiva di lunghezza: ε = 0 wa = w +1, per a in {0,1} determina il cammino q1 q0 q0 q01 q0 q01 Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 8
9 Esempio 2 Vogliamo costruire un DFA che accetta tutte le stringhe binarie che contengono almeno tre , q0 q1 q2 q3 la stringa determina il cammino q0 q0 q0 q1 q1 q2 q3 q3 q3 Ci sono tanti archi uscenti da ogni nodo quante sono le lettere dell alfabeto Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 9
10 Esempio 3 Vogliamo costruire un DFA che accetta tutte le stringhe binarie che cominciano per 1 0 q0 q2 1 0,1 q1 E la parola 010? Così manteniamo la proprietà che ogni nodo ha tanti archi uscenti quanti sono gli elementi dell alfabeto e di conseguenza quella per cui ogni parola determina un cammino sul grafo, proprietà comoda nelle costruzioni 0,1 Ma normalmente non si disegna questa parte dell automa Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 10
11 Modello formale Un automa a stati finiti deterministico, in breve DFA (Deterministic Finite Automaton), è una quintupla M = (Q,Σ,δ,q 0,F) dove Q è l insieme finito degli stati; Σ è l insieme finito dei simboli di input; δ : Q Σ Q è la funzione (totale) di transizione; q 0 è lo stato iniziale; F Q è l' insieme degli stati finali o di accettazione Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 11
12 CONFIGURAZIONI Lo stato di una macchina descrive la condizione in cui si trova il controllo a stati finiti, la configurazione descrive anche lo stato dei dispositivi input e, se presenti, delle memorie aggiuntive. Una configurazione di un DFA M = (Q,Σ,δ,q 0,F) indica lo stato in cui si trova la macchina e la porzione di input ancora da leggere, è quindi un elemento di Q Σ*. Per un input x Σ*, la configurazione iniziale o di partenza è (q 0,x). Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 12
13 Descrizione calcolo via configurazioni La relazione "porta a" (in un passo) M è una relazione binaria su Q Σ*, così definita: (p,ax) M (q,x) se e solo se δ(p,a) = q dove p,q Q, a Σ e x Σ*. Esempio δ 0 1 q0 q2 q1 q1 q1 q1 q2 q2 q2 (q0,101) M (q1,01) Tutto il calcolo su 101 è descritto come segue: (q0,101) M (q1,01) M (q1,1) M (q1,ε) Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 13
14 Chiusura riflessiva e transitiva di una relazione binaria Data una relazione binaria R su X, cioè R X 2, la chiusura riflessiva e transitiva di R si ottiene semplicemente aggiungendo a R quello che manca perché sia riflessiva e transitiva, quindi: R* = R {(x,x) x è in X} (per la riflessività) {(x,z) y (x,y) e (y,z) sono in R} (per la transitività) Esempio: X = {a,b,ab,ba}, R= {(a,ab),(ab,ba)}, R* = R {(a,a),(b,b),(ab,ab),(ba,ba)} {(a,ba)} Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 14
15 Il caso della porta a Nel caso di nostro interesse X è l insieme delle configurazioni Q Σ* e R è la relazione porta a, M, e la chiusura riflessiva e transitiva consente di evitare di descrivere il calcolo nel dettaglio degli stati intermedi. La riflessività esprime il fatto che senza leggere un input la macchina non cambia stato: (q,x) M* (q,x), per ogni q Q e x Σ* la transitività consente di esprimere succintamente due o più passi di calcolo: se (p,aby) M (q,by) e (q,by) M (r,y) allora (p,aby) M * (r,y). Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 15
16 Esempio δ 0 1 q0 q2 q1 q1 q1 q1 q2 q2 q2 La computazione su è descritta succintamente come segue: (q0, ) M * (q1,ε) Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 16
17 DEFINIZIONE FORMALE DI ACCETTAZIONE - 1 Una parola x Σ* è accettata da un DFA M = (Q,Σ,δ,q 0,F) se (q 0,x) M * (q,ε) e q F. Il linguaggio L(M) accettato dal DFA M è l'insieme di tutte le parole accettate da M: L(M)= {x Σ* (q 0,x) M * (q,ε) e q F } Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 17
18 FUNZIONE DI TRANSIZIONE ESTESA Per indicare lo stato raggiunto a partire dallo stato iniziale su un input qualsiasi introduciamo l estensione della funzione di transizione alle parole sull alfabeto input: δ* : Q Σ* Q così definita se x = 0, allora δ*(q,x) = q. se x > 0, allora x=ya, dove y Σ* e a Σ, allora δ*(q,x)= δ(δ*(q,y),a). Nota che δ*(q,a) = δ(q,a) per ogni a Σ. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 18
19 DEFINIZIONE FORMALE DI ACCETTAZIONE - 2 Una parola x Σ* è accettata da un DFA M = (Q,Σ,δ,q 0,F) se δ*(q 0,x) = r F. Il linguaggio L(M) accettato dal DFA M è l'insieme di tutte le parole accettate da M: L(M)= {x Σ* δ*(q 0,x) F} Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 19
20 LINGUAGGI REGOLARI L(DFA) sia la classe dei linguaggi accettati da un DFA, formalmente L(DFA) = {L M DFA e L(M) = L } Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 20
21 Esempio 3 Si costruisca un DFA che accetta le stringhe binarie, in cui ogni blocco di soli 1 ha lunghezza dispari, cioè sotto parole di soli 1 circondate da 0 o terminali Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 21
22 L algoritmo che decide se un DFA accetta almeno una parola INPUT: La codifica di M = (Q,Σ,δ,q 0,F). Fase 1. Costruisce il grafo G = (V,E) come segue: 1. V è l insieme Q degli stati 2. Per ogni regola δ(q,a) = p aggiungi a E, se non è già presente, l arco (q,p) 3. aggiungi un nuovo vertice t e gli archi (p,t), per ogni p in F Usa l algoritmo PATH(G,q 0,t) per verificare la presenza di un cammino tra il vertice q 0 e il vertice t in G L algoritmo è corretto perché si dimostra che esiste x in L(M) sse c è un cammino da q 0 a t in G Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 22
23 Un algoritmo alternativo per decidere se DFA accetta almeno una parola Si dimostra il seguente teorema: Dato un DFA M con n stati L(M) sse esiste una parola di lunghezza minore o uguale a n-1 che viene accettata. Prova. Dimostriamo che se L(M) allora esiste una parola di lunghezza minore o uguale di n-1 che viene accettata. Supponiamo per assurdo che tutte le parole accettate siano di lunghezza almeno n. Prendiamo una parola w tra le più corte parole di lunghezza almeno n accettate da M. Sia w = m. Il cammino determinato da w sul grafo di transizione, p0 pm è lungo m+1 n+1 quindi contiene almeno una ripetizione, cioè esistono i e j, con i < j, tali che pi = pj, quindi il cammino p0 pipj+1 pm è più corto di m+1. La parola v che etichetta il cammino p0 pipj+1 pm è più corta almeno di 1 di w ed è accettata. Ma v non può avere lunghezza minore di quella di w, che è tra le più corte accettate e non può essere di lunghezza minore di n per ipotesi. La contraddizione dimostra l implicazione. Quindi questo verso del sse è dimostrata, l altro è banale. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 23
24 L algoritmo L algoritmo consiste quindi nel controllare se una delle parole di lunghezza minore o uguale a n-1 è accettata dal DFA M dato in input, dove n è il numero degli stati. Se M accetta una di quelle parole possiamo concludere che il linguaggio non è vuoto, altrimenti concludiamo che è vuoto, in virtù del teorema precedente. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 24
25 Confronto tra i due algoritmi Il secondo algoritmo ha una complessità esponenziale in n. Poiché l algoritmo precedente era lineare nella dimensione del grafo è evidente che questo secondo perde nel confronto. (Per esercizio analizzate più in dettaglio la complessità dei due algoritmi) Inoltre il primo algoritmo è un esempio di riduzione tra problemi (il problema del non vuoto per un DFA viene ridotto al problema dell esistenza di un cammino tra due vertici in un grafo diretto), mentre il secondo è un esempio di individuazione di un sottoinsieme finito dello spazio delle soluzioni, infinito, la cui esplorazione basta per risolvere il problema. Prof.ssa Emanuela Fachini - Automi, Calcolabilità e Complessità 25
AUTOMI A STATI FINITI
AUTOMI A STATI FINITI I linguaggi regolari godono di interessanti proprietà algebriche: Sono defnibili con le espressioni regolari Sono generati da grammatiche di Chomsky di tipo 3. Sono riconoscibili
Esercizi di Informatica Teorica - DFA
Esercizi di Informatica Teorica - DFA Esercizio Definire, se esso esiste, l automa deterministico a stati finiti A che riconosce il linguaggio L = {w w {,},w[i] =, i dispari,i > }. Dimostrare rigorosamente
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo
Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza
Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere
Macchine di TURING. Alan Mathison Turing ( )
Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei
Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari
Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}
Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm
Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Teorema di Kleene 2 3 o 1 o 3 o 8 Teorema di Kleene Vale la seguente equivalenza: L 3 L FSL L REG Dimostrazione.
Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice
l linguaggio universale Il linguaggio universale L u e l insieme delle stringhe binarie che codificano una coppia (M,w) dove w L(M). Esiste una TM U, detta TM universale, tale che L u = L(U). U ha tre
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
Linguaggi Regolari e Linguaggi Liberi
Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1
Macchina di Turing Universale
Informatica Teorica 2010/2011 M.Di Ianni Macchina di Turing Universale Vogliamo definire una macchina di Turing U che, presi in input la descrizione di una macchina di Turing ad un nastro T ed un input
Aniello Murano Automi e Pushdown
Aniello Murano Automi e Pushdown 2 Lezione n. Parole chiave: Automi e PDA Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Calcolabilità, complessità e macchine computazionali
Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.
Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore
Linguaggi e Traduttori: Analisi lessicale
Linguaggi e Traduttori: Analisi lessicale Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-La) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd
Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La
AUTOMA A STATI FINITI
Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate
Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29
Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,
Linguaggi Regolari e Linguaggi Liberi
Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere
ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE
ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine
Automi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017
Automi a pila Dipartimento di Elettronica e Informazione Politecnico di Milano 17 marzo 2017 Aumentiamo la potenza di un FSA Descrizione operativa dei limiti Un FSA ha un Organo di Controllo (OC) con memoria
Quiz sui linguaggi regolari
Fondamenti dell Informatica 1 semestre Quiz sui linguaggi regolari Prof. Giorgio Gambosi a.a. 2016-2017 Problema 1: Data l espressione regolare a, definita su {a, b}, descrivere il linguaggio corrispondente
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo
Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach
Forme Normali A partire da una grammatica Context-free G è sempre possibile costruire una grammatica equivalente G ovvero L(G) = L(G ) che abbiano le produzioni in forme particolari, dette forme normali.
Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili
Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili roblemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa quello che ci aspettiamo. E facile
Espressioni regolari
spressioni Regolari Un FA (NFA o DFA) e una macchina a stati finiti che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo (o algebrico) per descrivere un linguaggio regolare.
Algoritmi e Principi dell Informatica
Algoritmi e Principi dell Informatica Appello del 1 Settembre 2016 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2 ore e 30 minuti. Chi deve sostenere solo il modulo di
Proprieta dei Linguaggi regolari
Proprieta dei Linguaggi regolari Pumping Lemma. Ogni linguaggio regolare soddisfa il pumping lemma. Se qualcuno vi presenta un falso linguaggio regolare, l uso del pumping lemma mostrera una contraddizione.
ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI
ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di
