Automi per il riconoscimento di linguaggi.
|
|
- Pasquale Grassi
- 6 anni fa
- Visualizzazioni
Transcript
1 Automi per il riconoscimento di linguaggi. Un altro modo di caratterizzare un linguaggio formale e' quello di identificare l'automa di riconoscimento corrispondente. Un automa e', in generale, una macchina teorica che compie determinate operazioni, facendo uso di una configurazione di stati interni e di una qualche struttura di memoria. A seconda di tale struttura di memoria si possono defnire diversi tipi di automa, cui sono, poi, associati diversi tipi di linguaggi formali. La macchina di Turing Il primo automa, quello dotato della struttura di memoria piu' semplice, e' la macchina di Turing. Essa si compone solo di un organo di controllo a stati finiti e di un nastro di lunghezza infinita, suddiviso in caselle, ognuna delle quali contiene un simbolo. Il nastro costituisce la memoria in cui sono immagazzinati i simboli su cui l'automa opera. I simboli appartengono ad un insieme finito S={s 0, s 1,...s n }, detto alfabeto, in cui s 0 denota la casella vuota, cioe' il bianco. La macchina di Turing accede al nastro mediante una testina di lettura e scrittura. Ad ogni passo, la macchina di Turing si trova in un certo stato interno qi, legge sul nastro un simbolo s j, dopo di che esegue l'azione corrispondente, cioe' scrive nella casella corrente un simbolo s k, assume il nuovo stato q r e muove il nastro verso destra o verso sinistra. Della macchina di Turing si puo' dare un modello fisico, come mostra la figura come pure si puo' dare una descrizione funzionale, nei termini di una matrice, le cui righe rappresentano gli stati e le cui colonne rappresentano i simboli, e le cui caselle rappresentano ognuna un passo di computazione (vedi figura)
2 sj qi sk,qr,xt La capacita' della macchina di Turing di scrivere sul suo nastro, equivale alla possibilita' di accedere ad una memoria esterna, memoria che e' infinita, in quanto il nastro e' infinito. Automa a stati finiti Anche gli automi a stati finiti sono concepiti come macchine teoriche in tutto simili alla macchina di Turing. Essi sono dotati di un nastro di input e di una testa di lettura. Essi hanno, pero', in piu' alle macchine di Turing, la possibilita' di assumere uno stato interno. Essi si distinguono in deterministici o non deterministici, secondo la loro descrizione seguente. Automi a stati finiti deterministici L'automa a stati finiti deterministico (ASFD) e' un automa M definito dalla quintupla M = (Q, A, t, q0, F) dove - Q e' un insieme finito di stati che l'automa puo' assumere - A e' un insieme finito di caratteri che costituiscono l'alfabeto - t e' una funzione, detta di transizione, che associa ad ogni coppia <stato, carattere> un nuovo stato - q 0 e' uno stato iniziale da cui l'automa parte - F e' l'insieme degli stati finali (F Q) in cui l'automa puo' terminare la computazione. L'ASFD inizia il riconoscimento di una stringa scritta sul nastro di input trovandosi in q 0 e leggendo il primo simbolo. Questa coppia provoca la transizione allo stato successivo e lo spostamento a destra della testina di lettura. Il processo si ripete fino a che i caratteri sul nastro di input sono terminati e l'automa si trova in uno stato finale F. Si puo' dire, quindi, che la condizione di terminazione della computazione sia doppia, sia data cioe' dal termine della stringa e dal raggiungimento di uno stato finale, ma non da una sola di queste condizioni.
3 Le transizioni di un automa a stati finiti possono essere rappresentate da una tabella le cui colonne corrispondono ai simboli in input e le cui righe corrispondono agli stati possibili. Le intersezioni contengono l'indicazione dello stato verso cui avviene la transizione. La figura mostra la tabella che rappresenta l'automa che riconosce il linguaggio costituito dalla stringa vuota o dalle stringhe costituite da un numero pari di a e/o di b. Q A a b q0 q2 q1 q1 q3 q0 q2 a3 q0 q1 q3 q2 Lo stato iniziale e' contrassegnato dalla freccia, mentre lo stato finale e' inscritto in un cerchietto. Nel nostro caso stato iniziale e stato finale coincidono. Sia la stringa da riconoscere abab, si inizia dallo stato iniziale q 0 e si arriva al riconoscimento attraverso le seguenti transizioni, controllabili sulla tabella della figura: (q 0, a) --> q 2 (q 2, b) --> q 3 (q 3, a) --> q 1 (q 1, b) --> q 0 La stringa di input e' terminata e ci troviamo nello stato finale q 0, quindi il riconoscimento e' avvenuto. Qualora la stringa in input fosse stata ababb, il riconoscimento avrebbe dovuto proseguire con la transizione (q 0, b) --> q 1 In questo caso, la stringa a' terminata, ma l'automa non si trova in uno stato finale, per cui la stringa non risulta appartenere al linguaggio definito da questo particolare ASFD. Un ASFD puo' essere, quindi, utilizzato per il riconoscimento di un linguaggio L {V T, V N, S, P}, se sono date le corrispondenze seguenti V T corrisponde all'insieme di caratteri A
4 V N e' in corrispondenza biunivoca con l'insieme degli stati Q S corrisponde a q 0 P si definisce come segue: - se la transizione tra q i e q j e' prodotta da a h, la produzione corrispondente e' N i --> a h N j, con N i e N j corrispondenti a q i e q j - se q j F si aggiunge N i --> a h Cosi', per una parola x= a 1,..., an, se x = L (M) e, percio', esiste una sequenza di stati tali che t(q 0,a 1 ) = q 1, t(q 1,a 2 ) = q 2...t(q n, a n ) F allora x = L(G) per modo che A= {N 0 --> a 1 N 1, N 1 --> a 2 N 2...N n --> a n } Un automa che compie il riconoscimento di un linguaggio e' detto, talora, accettore. Un ASFD riconosce i linguaggi generati da una grammatica regolare (lineare a destra). Automi a stati finiti non deterministici Si definiscono, esattamente come quelli deterministici, come una quintupla M = {Q, A, t, q 0, F}. Tuttavia, nell'asfnd la funzione di transizione ammette il passaggio da una coppia <stato, simbolo> a piu' di un nuovo stato, cioe' ogni transizione puo' avvenire verso uno stato da scegliere tra un insieme di stati. Cosi', se rappresentiamo le transizioni di un ASFND in forma di tabella, come abbiamo fatto per gli ASFD, otterremo la seguente figura. a b q0 {q0,q1} {q2} q1 {q1} {q0} q2 {q0} {q2,q1} Si tratta di un ASFND che riconosce linguaggi della forma a n b n. Un modo per rappresentare il comportamento di un ASFND e' l'albero delle alternative, in cui si rappresentano tutte le transizioni ammesse dalla tabella. Per il nostro caso, se la stringa da riconoscere e' aabb, l'albero delle alternative sara' il seguente
5 Si puo' osservare che nel caso del nostro esempio, tre cammini attraverso l'albero portano ad uno stato finale, e quindi al riconoscimento, mentre un cammino porta ad uno stato non finale (q 1 ), e quindi al rigetto della stringa. Questo albero puo' essere espanso in due modi diversi. Il primo consiste nel seguire un solo ramo alla volta, fino in fondo. Se lo stato raggiunto con l'ultimo simbolo in input e' membro dell'insieme degli stati finali, allora il riconoscimento e' compiuto; se invece non si tratta di uno stato finale, allora si risale per l'albero e si prende un un ramo alternativo, fino a che o si compie il riconoscimento, o si esaurisce la serie delle alternative, rigettando cosi' la stringa. Questo metodo e' detto depth-first e il processo di tornare indietro e' detto backtrack. L'altro metodo, consiste nel seguire tutti i rami dell'albero contemporaneamente. Questo e' detto breadth-first. ASF e grafi di transizione Sia gli ASFD che gli ASFND possono essere rappresentati in forma di grafo di transizione. Un grafo di transizione viene costruito disegnando fisicamente tanti stati (circoletti), quanti sono gli stati dell'asf. Successivamente, per ogni transizione specificata dalla tabella delle transizioni si tira una freccia che va dallo stato di partenza (quello specificato fuori in corrispondenza delle righe, allo stato di arrivo (quello presente in ogni casella della tabella); la freccia (arco) reca come etichetta il simbolo di transizione (quello specificato fuori in corrispondenza delle colonne).
6 Cosi', l'asfd che abbiamo introdotto sara' rappresentato come segue mentre l'asfnd sara' raffigurato come segue Il modo in cui il riconoscimento di una stringa puo' essere seguito in un grafo di transizione e' evidente di per se'. Automi a pila Un ulteriore potenziamento della capacita' di riconoscimento di un automa si ha se si aggiunge una memoria aggiuntiva illimitata e si fa dipendere l'azione da compiere, non solo dal simbolo in input e dallo stato corrente, ma anche dalla informazione presente nella memoria. Questo tipo di automa si chiama automa a pila o push-down automaton. L'automa a pila, come appare nella figura
7 e' dotato di una testina che legge da una nastro di input e da una testina di lettura e scrittura, che accede ad un'altro nastro. Quest'ultimo viene detto, appunto, pila, perche' e' una memoria ausiliaria, cui si puo' accedere solo dalla testa. In presenza di un carattere in input, l'automa a pila puo' - leggerlo, leggere il simbolo in cima alla pila e, in base allo stato in cui si trova, passare ad un nuovo stato, sostituire il simbolo in testa alla pila (anche con λ) e avanzare il nastro di input a destra, oppure - compiere le stesse operazioni, senza leggere e manipolare il nastro di input, modificando solo il contenuto della pila. Un input e' accettato quando la stringa e' terminata e l'automa ha raggiunto uno stato finale, oppure la pila risulta vuota. Piu' formalmente definiremo un automa a pila come una sestupla AP= {V, R, Q, q 0, Z, F, t} dove V e' l'alfabeto del nastro R e' l'alfabeto della pila Q e' l'insieme degli stati q 0 e' lo stato iniziale Z e' il simbolo che si trova all'inizio della pila F t e' l'insieme degli stati finali. e' l'insime delle transizioni Cosi' possiamo definire il seguente automa V = {a, b, c} R = {Z, A, B} Q = {q 0, q 1 } e le seguenti transizioni, espresse sempre in forma di tabella
8 λ λ Questo automa riconosce i linguaggi di tipo x c xr, con x {a, b}* dove xr e' l'immagine speculare di x. Il riconoscimento della stringa abcba avviene dunque secondo i seguenti passi: nastro abcba bcba cba ba a - stato dell'automa q 0 q 0 q 0 q 1 q 1 q 1 pila Z ZA ZBA BA A - Caratterizzazione del linguaggio naturale Caratterizzare formalmente il linguaggio naturale significa trovargli un posto tra i linguaggi formali che abbiamo appena presentato. Significa cioè identificare una classe di grammatiche che risponda alle seguenti caratteristiche: - espressività, cioè che sia in grado di esprimere tutti i fenomeni propri del linguaggio naturale; - che rappresenti solo i costrutti propri (corretti) del linguaggio naturale. Il compito apparve già complicato a Chomsky stesso, che fu il primo a formulare una teoria formale del linguaggio naturale. Le intuizioni sulle quali si basa la teoria sintattica Chomskiana sono le seguenti: - nonostante una lingua sia composta di un numero infinito di frasi, un parlante nativo è sempre in grado di distinguere, per ogni nuova frase che sente, se essa faccia parte o no della sua lingua; questo implica che deve esistere, interiorizzato in ogni parlante, un mecchanismo finito capace di una serie illimitata di predizioni; - un bambino, nell'apprendere la propria lingua, procede per generalizzazione da una serie di costrutti; deve esistere, quindi; un meccanismo che costituisce una base per tale generalizzazione;
9 - esiste, in ogni parlante, la coscenza dell'equivalenza tra certi costrutti sintattici diversi come la coppia attivo/passivo di una frase. - nessuna delle classi di grammatiche formali introdotte in precedenza e' da sola adeguata a descrivere nella sua totalità i fenomeni del linguaggio naturale. Sulla base di queste osservazioni Chomsky costruì un modello i cui ingredienti sono: - un sistema grammaticale relativamente semplice e ristretto, capace di generare l'insieme delle frasi di una lingua nella loro forma più semplice; questo componente è detto "base" ed è costituito da una grammatica Context Free. - un insieme di regole che trasformano le frasi generate nella base in tutte le varianti che queste possono avere, queste regole sono dette, appunto, trasformazioni e producono, ad es., una frase passiva dalla corrispondente attiva (che è nella base). Il modello originale, presentato nel 1957 in Syntactic Structure si puo' sintetizzare nella figura BASE Context-free Deep Structure Surface Structure Il rapporto tra questi due componenti varia con l'evolvere della teoria chomskiana e, con il tempo, ne appare un terzo: - delle restrizioni sull'applicazione delle trasformazioni; queste esprimono limiti sulla ricorsività di alcune di esse, sull'ordine relativo e sull'estensione delle strutture su cui vengono applicate. Al giorno d'oggi la teoria chomskiana è totalmente rivoluzionata, ma la esigenze di base restano comunque le stesse qui espresse.
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
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
DettagliLe grammatiche formali
Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente
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
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,
DettagliSommario Codifica dei dati Macchina Astratta Definizioni Esempi
Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali
DettagliCorso di Linguaggi e Traduttori 1 AA GRAMMATICHE
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non
DettagliFondamenti 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
DettagliDefinizione di Grammatica
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla ( VN, VT, P, S ) dove: V N e l insieme dei simboli non
DettagliForme 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.
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
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.
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
DettagliFondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Automi Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano
DettagliGrammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione
Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio
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=
DettagliELEMENTI 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
DettagliParole note, nuovi significati: linguaggio, determinismo e infinito
Parole note, nuovi significati: linguaggio, determinismo e infinito Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico
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.
DettagliCorso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Automi. Giacomo PISCITELLI
Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Automi Giacomo PISCITELLI Generalità sugli Automi Automi In informatica teorica e in matematica discreta,
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)
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
DettagliITLCC 2006/10/6 19:09 page 7 #3
ITLCC 2006/10/6 19:09 page 7 #3 Capitolo 2 Macchine di Turing SOMMARIO In questo capitolo introdurremo il modello di calcolo proposto dal logico matematico inglese Alan Turing, in un suo famoso articolo
DettagliEspressività e limitazioni delle grammatiche regolari
Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie
DettagliMacchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F
Macchina di Turing Nastro di Input...!!! a b b! b a! testina!!... s r s t q i Unità di Controllo q j Q S / D / F P Definizione Formale Una macchina di Turing deterministica è una sestupla
DettagliAUTOMI A PILA. M.P. Schutzenberger
UTOMI PIL Introdotti da. G. Oettinger in utomatic Syntactic nalysis and the pushdown store Proc. Symp. pplied Math., 1961 e da M.P. Schutzenberger in Context free languages and pushdown automata Information
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliELEMENTI 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
DettagliLinguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl
Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare
DettagliCostruzione di espressioni regolari 4
ostruzione di espressioni regolari 4 Indicando con d uno dei possibili digits {,, 2,,9} --possiamo esprimere il sotto linguaggio dei digits come d = ( + + 2 +.. + 9) Quale linguaggio produce l espressione:
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?
DettagliSTRUMENTI MATEMATICI
1. TABELLA A DOPPIA ENTRATA 1 STRUMENTI MATEMATICI E' un riquadro formato da righe orizzontali e colonne verticali. I dati sulla prima colonna sono i dati in entrata di ciascuna riga; i dati sulla prima
DettagliMacchina 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
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}
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
DettagliCostruzione dell insieme dei Follow
Costruzione dell insieme dei Follow E! T E - T E E! + T E - T E " T! F T T! *F T " F! (E) i Per evitare che alcuni insiemi siano vuoti si aggiunge per default il simbolo speciale $ che demarca la fine
DettagliAutoma a Stati Finiti (ASF)
Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare
DettagliLogica proposizionale
Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per
Dettaglia cura di Luca Cabibbo e Walter Didimo
a cura di Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 automi a pila automi a pila e grammatiche non contestuali notazioni sul livello degli esercizi: (*)
DettagliInsiemi di numeri reali
Capitolo 1 1.1 Elementi di teoria degli insiemi Se S è una totalità di oggetti x, si dice che S è uno spazio avente gli elementi x. Se si considerano alcuni elementi di S si dice che essi costituiscono
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,
DettagliCorso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
Dettagli7. INSIEMI APERTI, INSIEMI CHIUSI, INSIEMI NE APERTI NE CHIUSI
7. INSIEMI APERTI, INSIEMI CHIUSI, INSIEMI NE APERTI NE CHIUSI Sia E un insieme numerico, sia cioè. Esempi Si dice che E è un insieme APERTO se tutti i suoi punti sono interni. Ogni intervallo aperto (dove
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
DettagliGRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!
G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono
DettagliUNA GERARCHIA DI MACCHINE
ELEMENTI DI PROGRAMMAZIONE a.a. 2015/16 UNA GERARCHIA DI MACCHINE UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine di Turing Macchine di
DettagliMacchine di Turing: somma di due numeri
Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore
DettagliMacchine sequenziali. Automa a Stati Finiti (ASF)
Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso
DettagliCorso di elettrotecnica Materiale didattico: i grafi
Corso di elettrotecnica Materiale didattico: i grafi A. Laudani 12 ottobre 2005 I grafi costituiscono uno strumento matematico che permette di descrivere e schematizzare una grande varietà di problemi
DettagliInformatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004
Informatica Teorica Sezione Cremona + Como Appello del 20 Luglio 2004 Coloro che recuperano la I prova risolvano gli esercizi e 2 tra quelli indicati qui sotto entro un ora. Coloro che recuperano la II
DettagliDispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:
Dispensa 2 2.1 Costruzione Parsing Table LR: generalità Come tutti i parser tabellari predittivi, anche i parser LR possono essere applicati solo a parsing table senza conflitti (ossia entrate multiple)
Dettagliacuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1
acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 richiami teorici sulle grammatiche di Chomsky esercizivari esercizi su grammatiche ed espressioni regolari
DettagliEspressioni Regolari
Espressioni Regolari Le espressioni regolari sono costituite dalle stringhe sull alfabeto Σ = Σ {+,,*,(,),φ} ottenute secondo le seguenti regole: 1. φ e ciascun membro di Σ sono Epressioni Regolari 2.
DettagliPROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t
PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli
DettagliProprietà dei linguaggi non contestuali
Proprietà dei linguaggi non contestuali Argomenti della lezione Pumping lemma per i linguaggi non contestuali Proprietà di chiusura Argomenti della lezione Grammatiche non contestuali in forma ridotta
DettagliGrammatiche Parse trees Lezione del 17/10/2012
Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,
DettagliAutomi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di
Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di rappresentazione per descrivere programmi e specifiche. ω-automi:
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
DettagliL insieme prodotto cartesiano
L insieme prodotto cartesiano L insieme prodotto cartesiano Definizione Dato un insieme A e un insieme B non vuoti, sia a un qualunque elemento di A e b un qualunque elemento di B. Chiamiamo coppia ordinata
DettagliL AUTOMA ESECUTORE L AUTOMA ESECUTORE
L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio
DettagliELEMENTI di TEORIA degli INSIEMI
ELEMENTI di TEORI degli INSIEMI & 1. Nozioni fondamentali. ssumeremo come primitivi il concetto di insieme e di elementi di un insieme. Nel seguito gli insiemi saranno indicati con lettere maiuscole (,,C,...)
DettagliElaborazione di File di Dati. Uso di semplici comandi Espressioni regolari AWK
Elaborazione di File di Dati Uso di semplici comandi Espressioni regolari AWK Sort sort [option] file1... filen Consente di ordinare, fondere o confrontare le linee dei file in input Ha tre modalità di
DettagliLe Macchine di Turing
Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella
DettagliLogica proposizionale
Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
DettagliSistemi di numerazione
Sistemi di numerazione Sistema di numerazione decimale Sapete già che il problema fondamentale della numerazione consiste nel rappresentare con un limitato numero di segni particolari, detti cifre, tutti
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
Dettagli1 Prodotto cartesiano di due insiemi 1. 5 Soluzioni degli esercizi 6
1 PRODOTTO CARTESIANO DI DUE INSIEMI 1 I-4 R 2 ed R 3 Piano e spazio cartesiani Indice 1 Prodotto cartesiano di due insiemi 1 2 Rappresentazione di R 2 sul piano cartesiano 2 3 Sottoinsiemi di R 2 e regioni
DettagliPROGRAMMAZIONE LINEARE E DUALITA'
PROGRAMMAZIONE LINEARE E DUALITA' 1) Dati i punti di R 2 (1, 2), (1, 4), (2, 3), (3, 5), (4, 1), (4, 2), (5, 5), (6, 2), (6, 5). Determinare graficamente: A - L'involucro convesso di tali punti. B - Quali
DettagliTuring cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?
STORIA DELLE CONOSCENZE SCIENTIFICHE SULL UOMO E SULLA NATURA a.a. 2016 2017 Prof. Roberto Giuntini, PhD. Introduzione alla storia dell intelligenza artificiale e della robotica Modulo II: Le macchine
DettagliDEFINIZIONE DI INSIEME
ELEMENTI DI TEORIA DEGLI INSIEMI PROF.SSA ROSSELLA PISCOPO Indice 1 DEFINIZIONE DI INSIEME ------------------------------------------------------------------------------------------------ 3 2 METODI DI
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
DettagliL AUTOMA ESECUTORE L AUTOMA ESECUTORE
L AUTOMA ESECUTORE Metodo Risolutivo (algoritmo) Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto DATI Esecutore RISULTATI cioè capace di interpretare un linguaggio (linguaggio
DettagliAnno 1. Teoria degli insiemi: definizioni principali
Anno 1 Teoria degli insiemi: definizioni principali 1 Introduzione In questa lezione introdurremo gli elementi base della teoria degli insiemi. I matematici hanno costruito una vera e propria Teoria degli
DettagliAnalizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.
Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,
DettagliESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND
ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND 1. [ STRINGHE] Scrivere in pseudo-codice una procedura che, preso in input un intero n, stampi tutte le stringhe di lunghezza minore o uguale ad n sull
DettagliNote sulle Catene di Markov
Note sulle Catene di Markov ELAUT Prof. Giuseppe C. Calafiore Sommario Queste note contengono un estratto schematico ridotto di parte del materiale relativo alle Catene di Markov a tempo continuo e a tempo
DettagliTuring, i nastri e le macchine
Turing, i nastri e le macchine Giochiamo con i nastri Avete a disposizione un nastro diviso in sezioni rettangolari, che chiameremo caselle, ognuna delle quali può essere vuota oppure contenere la lettera
DettagliLuigi Piroddi
Automazione industriale dispense del corso (a.a. 2008/2009) 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul
DettagliFondamenti di informatica per la sicurezza anno accademico docente: Stefano Ferrari
Corso di Laurea in icurezza dei sistemi e delle reti informatiche Fondamenti di informatica per la sicurezza anno accademico 2004 2005 docente: tefano Ferrari 14.01.2005 del secondo compitino vers. D valutazioni
DettagliVerificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO
ANALISI SINTATTICA TIPO 1: Data un linguaggio scrivere una grammatica che lo generi TIPO 2: Verificare se una grammatica non contestuale è ambigua TiPO 3: Verificare se una grammatica e LL(1) e costruirne
DettagliEsercitazione sui grafi di precedenza, fork/join, cobegin/coend.
Esercitazione sui grafi di precedenza, fork/join, co/coend. Esercizio 1. Realizzare mediante il costrutto fork/join il seguente grafo di precedenze. Risposta. cont5 := 2; cont6 := 3; cont7 := 2; S1; fork(l1);
Dettaglicontrollo stringa a a b a b b c c b a b x y z pila di memoria
Gli automi a pila Dagli automi finiti iti agli automi a pila Possiamo ottenere un automa a pila a partire da un automa finito (così come l abbiamo definito in precedenza), attraverso l introduzione di
DettagliIntroduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
DettagliLEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.
LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b
DettagliContatore avanti-indietro Modulo 4
Contatore avanti-indietro Modulo 4 Un contatore avanti-indietro modulo 4 è un dispositivo a due uscite, che genera su queste la sequenza dei numeri binari da 0 a 4 cioè: 00->01->10->11 Il sistema dispone
DettagliLinguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2014-2015 / Ricevimento:
DettagliAlgoritmi e Principi dell Informatica
Algoritmi e Principi dell Informatica Appello del 20 Febbraio 2012 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2h e 30 Chi deve sostenere solo il modulo di Informatica
DettagliLuigi Piroddi
Automazione industriale dispense del corso (a.a. 2008/2009) 9. Reti di Petri: analisi dinamica e metodi di riduzione Luigi Piroddi piroddi@elet.polimi.it Metodi di analisi di Reti di Petri Ci sono 2 modi
DettagliLaboratorio di Python
Laboratorio di Python Alberi binari Lab15 12 Maggio 2017 Outline Correzione esercizi per oggi Alberi binari Teoria Esercizi Esercizi per casa Saluti Esercizio 1 per casa Scrivere una funzione palindroma(s)
DettagliLinguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2015-2016 / Ricevimento:
DettagliPossibile applicazione
p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile
DettagliLa teoria dei grafi permette di esprimere in modo sistematico le LKT e LKC con i metodi della
Grafi La teoria dei grafi permette di esprimere in modo sistematico le LKT e LKC con i metodi della topologia combinatoria. Definizione intuitiva di grafo: Un Grafo è un insieme di nodi (rappresentabili
Dettagli01 - Elementi di Teoria degli Insiemi
Università degli Studi di Palermo Scuola Politecnica Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 01 - Elementi di Teoria degli Insiemi Anno Accademico 2015/2016
DettagliUniversità degli studi di Brescia Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica. Corso propedeutico di Matematica e Informatica
Università degli studi di Brescia Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica a.a. 2008/2009 Docente Ing. Andrea Ghedi Docente: Dott. Ing. Andrea Ghedi Ingegnere Biomedico, specialista
Dettagli7. Automi a Pila e Grammatiche Libere
(fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari 20 aprile 2016 1 Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi 2 Teorema delle
DettagliUniversità degli Studi di Palermo Facoltà di Economia. CdS Sviluppo Economico e Cooperazione Internazionale. Appunti del corso di Matematica
Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 02 - I Numeri Reali Anno Accademico 2013/2014 D. Provenzano, M.
DettagliFUNZIONI. }, oppure la
FUNZIONI 1. Definizioni e prime proprietà Il concetto di funzione è di uso comune per esprimere la seguente situazione: due grandezze variano l una al variare dell altra secondo una certa legge. Ad esempio,
Dettagli