AUTOMA A STATI FINITI

Documenti analoghi
un insieme finito di segnali d uscita U (nell ascensore U={stare fermo, salire, scendere})

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

Macchine sequenziali. Automa a Stati Finiti (ASF)

Automa a Stati Finiti (ASF)

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010. Reti Sequenziali

Sintesi di Reti Sequenziali Sincrone

ESERCIZI SU AUTOMI A STATI FINITI

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

Sintesi di Reti sequenziali Sincrone

Possibile applicazione

Linguaggi Regolari e Linguaggi Liberi

Prova d esame di Reti Logiche T 10 Giugno 2016

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010 ASF

Fondamenti di informatica II 1. Sintesi di reti logiche sequenziali

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

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Automi. Giacomo PISCITELLI

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Concetti di base sugli automi e sui linguaggi formali

Contatore avanti-indietro Modulo 4

Parole note, nuovi significati: linguaggio, determinismo e infinito

Corso di elettrotecnica Materiale didattico: i grafi

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Linguaggi Regolari e Linguaggi Liberi

AUTOMI A STATI FINITI AUTOMI

Problemi, algoritmi, calcolatore

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

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

Sistemi Web per il turismo - lezione 3 -

Certificati dei problemi in NP

ITLCC 2006/10/6 19:09 page 7 #3

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Algoritmi. Pagina 1 di 5

Automi a stati finiti

Introduzione alla programmazione

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

1. Automi a stati finiti: introduzione

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Forma Normale di Chomsky

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

(competenze digitali) ESERCIZI SUI CIRCUITI SEQUENZIALI

Corso di Reti Logiche

Il concetto di calcolatore e di algoritmo

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

Luigi Piroddi

Circuiti sequenziali: macchine a stati finiti

Introduzione. Sintesi Sequenziale Sincrona. Modello del circuito sequenziale. Progetto e strumenti. Il modello di un circuito sincrono può essere

Corso di Informatica Modulo T1 1 - Il concetto di problema

MATEMATICA SCUOLA PRIMARIA CLASSE SECONDA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE RELATIVI A NUMERI

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Concetti di base dell ICT

La codifica digitale

Esercizi proposti 10

Laboratorio di Algoritmi e Strutture Dati

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

LA METAFORA DELL UFFICIO

Introduzione ai grafi

1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

controllo stringa a a b a b b c c b a b x y z pila di memoria

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Sviluppo di programmi

Corso di Informatica di Base

Come ragiona il computer. Problemi e algoritmi

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento

Pumping lemma per i linguaggi Context-free

Corso di Automazione industriale

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Reti sequenziali asincrone

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Aniello Murano Automi e Pushdown

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Costruzione dell insieme dei Follow

Scopo del laboratorio

Luigi Piroddi

Alberi e alberi binari I Un albero è un caso particolare di grafo

Insiemi numerici. Teoria in sintesi NUMERI NATURALI

Circuiti Sequenziali & Somma FP

Esercitazioni di Reti Logiche. Lezione 5

Fondamenti di informatica per la sicurezza anno accademico docente: Stefano Ferrari

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Rappresentazione con i diagrammi di flusso (Flow - chart)

«Sciente e Tecnologie dei Beni Culturali»

1. TEORIA DEI SISTEMI

LOGICA SEQUENZIALE. Un blocco di logica puramente combinatoria è un. blocco con N variabili di ingresso e M variabili di uscita

Note sulle Catene di Markov

Fondamenti di Informatica

Luigi Piroddi

LA METAFORA DELL UFFICIO

LA CODIFICA DELL INFORMAZIONE

Elettronica I Amplificatore operazionale ideale; retroazione; stabilità

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Esercizio 1. Utilizzare FF di tipo D (come ovvio dalla figura, sensibili al fronte di discesa del clock). Progettare il circuito con un PLA.

Analisi interazione domanda/offerta: modelli di assegnazione

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

Transcript:

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 primariamente da una variabile che appartiene ad un determinato insieme di stati, e che evolve in base agli stimoli od ordini ricevuti in ingresso schematizzati da simboli appartenenti ad un determinato alfabeto. Sono così esempi di automi una lavatrice, un distributore automatico di bibite..ecc E' possibile studiare un automa da due punti di vista: da un punto di vista tecnico ci s interessa dei suoi componenti materiali, meccanici o elettronici, e dei suoi principi fisici che ne rendono possibile il funzionamento; da un punto di vista matematico c'interessa invece la "logica" del suo comportamento e l automa è perciò visto come un oggetto astratto "capace" di eseguire qualche compito. Ad esempio, due automi capaci di eseguire un addizione sono l automa uomo e l automa calcolatrice, molto diversi da un punto di vista tecnico-fisico, ma che si comportano nello stesso modo di fronte a due numeri da addizionare. Il grafo, chiamato diagramma degli stati, ha come nodi gli stati possibili dell automa; gli archi rappresentano le relazioni di passaggio da uno stato all altro, secondo il particolare input. La matrice, chiamata tabella di verità o degli stati, è una tabella in cui ogni casella specifica il successivo stato e l output dell automa se esso si trova in un determinato stato e riceve un certo input. Per esempio osserviamo un distributore automatico di bevande dà una lattina quando s inseriscono due monete. Il diagrammi degli stati è il seguente: Nell arco che va dallo stato di "in attesa" allo stato di "pronto" la scrittura "moneta/lattina" indica che, in corrispondenza dell input "moneta" è fornito l output "lattina". Come si vede, non sempre un automa fornisce un output. La tabella di verità è la seguente:

Gli stati di un automa rappresentano i suoi stati di memoria; un automa, infatti, si trova in uno o in un altro stato secondo ciò che è successo in precedenza. Secondo lo stato in cui si trova e dell input che riceve, l automa stabilisce il suo comportamento, passando in un nuovo stato ed eventualmente fornendo un output. Gli automi con memoria limitata, e comunque finita poiché hanno un numero finito di stati: sono chiamati automi a stati finiti. AUTOMA A STATI FINITI Gli automi a stati con memoria limitata, e comunque finita poiché hanno un numero finito di stati: sono chiamati automi a stati finiti. Più precisamente definiamo automa a stati finiti un sistema dinamico, discreto ed invariante, in cui gli insiemi d ingresso, di uscita e di stato sono finiti. Il sistema può trovarsi in un qualsiasi stato interno fra quelli, in numero finito, che definiscono l automa. Una classe di automi particolarmente importante è quella degli automi in grado di riconoscere se una stringa fa parte o meno di un determinato linguaggio: automi riconoscitori. Gli automi riconoscitori, in pratica, sono sistemi che, dopo l ingresso dell ultimo simbolo della sequenza, rispondono con un "si" se questa è stata riconosciuta e con un "no" in caso contrario. Un automa a stati finiti di questo tipo consiste di un insieme finito di stati e di un insieme finito di transizioni da uno stato all altro. Per ogni coppia distinta formata da uno stato dell automa (stato di partenza) e da un simbolo dell alfabeto, esiste una transizione ad uno stato di arrivo. Il simbolo della coppia si dice associato alla transizione, o anche che la transizione "accetta il simbolo". Lo stato di arrivo può anche coincidere con lo stato di partenza. Ogni automa a stati finiti è associato univocamente ad un grafo orientato (in inglese direct graph) chiamato diagramma di transizione (in inglese transition diagram). I nodi del grafo coincidono con gli stati dell automa. Se esiste una transizione dallo stato q allo stato p con a come simbolo associato, allora esiste un arco orientato dal nodo q al nodo p ed etichettato con il simbolo a. Per questa ragione gli automi a stati finiti vengono anche detti reti di transizione a stati finiti (FSTN, finite state transition network, in inglese). Si dice che il grafo accetta la stringa x, costruita con i simboli dell alfabeto predeterminato, se esiste una sequenza di transizioni tali che, componendo la sequenza dei rispettivi simboli associati, si ottenga x. Inoltre la prima transizione di questa sequenza deve partire dallo stato iniziale e l ultima arrivare ad uno stato finale. Anche molti modelli astratti usati per rappresentare sistemi molto complessi come i sistemi economici, le reti di neuroni, i problemi di trasporto, e così via, possono essere agevolmente rappresentati attraverso automi a stati finiti. Per descrivere un automa occorre un modello matematico formato dalla quintupla: A = {S, I, U, f, g} dove: S è l insieme degli stati interni in cui può trovarsi; I è l insieme degli ingressi che è in grado di leggere; U è l insieme delle uscite che può produrre; f è la funzione di transizione che fa passare da uno stato al successivo g è la funzione che determina il valore delle uscite

FUNZIONE DI TRANSIZIONE Per fare in modo che la macchina sia in grado di aggiornare lo stato interno in base all input ricevuto, si utilizza la funzione di transizione Diamo ora un esempio di un automa che accetta solo stringhe con un numero pari di 1 o di 0. Un modo per definire l automa è tracciare il diagramma di transizione. Gli stati cerchiati due volte sono stati finali. Definiamo di seguito l automa con una tabella detta tabella degli stati costruita in questo modo: ogni riga è associata a uno stato q di partenza, ogni colonna ad un simbolo a, che in questo caso varrà uno o zero. Il tipo di automa così definito viene detto deterministico, perché per ogni stato è sempre possibile determinare univocamente quale transizione l automa effettui all ingresso di un dato simbolo. Far cadere il vincolo che per ogni stato esista sempre una ed una sola transizione associata ad un simbolo è equivalente ad affermare che possono esistere zero, una, o più transizioni che partono dal medesimo

stato con il medesimo simbolo di ingresso. In questo caso non è sempre possibile determinare univocamente quale transizione l automa effettui all ingresso di un dato simbolo. L automa si dice non deterministico. Per esemplificare definiamo un automa non deterministico che accetta qualsiasi stringa che contenga una coppia di 0 o di 1. Il diagramma di transizione è analogo con la differenza che gli archi hanno liste di simboli come etichette. La tabella degli stati sarà: Il linguaggio accettato da un automa a stati finiti è l insieme di tutte le stringhe accettate dall automa.

ESEMPI DI AUTOMI Descrizione Questo automa distribuisce lattine di un solo tipo dopo che sono state introdotte due monete di un unico valore. Se il distributore è spento si "mangia" la moneta eventualmente introdotta. Grafo Descrizione L'automa è un distributore di bevande che distribuisce due tipi di bevande emettendo una lattina dopo che sono state introdotte due monete da L.500 ed è stato scelto il tipo di bevanda. L'automa non restituisce monete. Grafo

Descrizione L'automa è ancora un distributore di bevande come il precedente. In questo caso però vengono restituite delle monete a richiesta o anche nel caso sia stata introdotta una moneta in eccedenza. Grafo Descrizione L'automa emette un gettone telefonico dopo che sono state inserite 200 lire. L'automa funziona con monete da 100 o da 200 lire e fornisce resto a richiesta. Insiemi

Grafo Descrizione L'automa emette in uscita un gettone telefonico dopo che sono state inserite due monete da L.100. L'automa funziona solo con monete da 100 lire. Insiemi Grafo

Descrizione L'automa emette un gettone telefonico dopo che sono state inserite 200 lire. L'automa funziona con monete da 100 o da 200 lire e non fornisce resto. Insiemi Grafo

Esempio di AUTOMA A STATI FINITI: TEORIA DELLE STRINGHE APPLICATA AGLI AUTOMI

RISOLVERE UN PROBLEMA: 1. Formulazione del problema in linguaggio naturale. Calcolare la lunghezza di una stringa 2. Formulazione del problema a blocchi. Stringa ==> Procedimento ==> Lunghezza 3. Individuare i tipi Stringa Lunghezza (N) Procedimento di calcolo della lunghezza (lg) 4. Costruire un semplice esempio: 1bis: Calcolare la lunghezza di "aacb" 2bis: aacb ==> Procedimento ==> 4 3bis: tipi: = (a, b, c) X= aacb Lg (aabc)= 4 5. Individuare cosa si deve calcolare:,,n sono noti. Lg è ignota. 6. Caratterizzare i dettagli ignoti Lg: ==> N Consideriamo casi particolari: 1. Lg( ) = 0 2. ==> Lg( ) =1 3. Lg ( X) = Lg( ) + Lg(X) = 1+ Lg(X) Funzione ricorsiva (Lg): Lg (λ) = 0 Lg( ) =1 ==> Lg ( X) = 1+ Lg(X)

7. Risultato in azione Lg (aabc) =1 + lg (abc) =1 + 1 + lg (bc) =1 + 1 + 1 + lg (c) =1 + 1 + 1 + 1= 4 Esempio di ESPRESSIONI REGOLARI applicato agli Automi: