Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Documenti analoghi
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

Le Macchine di Turing

Le macchine di Turing

La macchina universale

Informatica Teorica. Macchine a registri

Esercizio su MT. Svolgimento

Algoritmi e Complessità

Varianti Macchine di Turing

L interesse nella macchina di Turing

Laurea Specialistica in Informatica - Università di Ferrara [1]

PARTE III MACCHINE A REGISTRI

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere;

Cos è un Calcolatore?

Aniello Murano Macchine di Turing

Corso Programmazione

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Sistemi Web per il turismo - lezione 3 -

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

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

AUTOMI A STATI FINITI. G. Ciaschetti

Automi e Macchine di Turing

Elementi di Informatica e Programmazione

Risposte ai quesiti posti negli appelli della prima sessione LOGICA E COMUNICAZIONE, A.A , 12 CFU

Architettura di un computer

Le aree dell informatica

Tipologie di macchine di Turing

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

Macchine di Turing. a n B B. Controllo Finito

Nastri trasportatori GUF-P MINI

Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin

MACCHINE DI TURING E CALCOLABILITA SECONDO TURING

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

la "macchina" universale di Turing

Appunti sulla Macchina di Turing. Macchina di Turing

CAPITOLO V. DATABASE: Il modello relazionale

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Programma di Informatica. AS Classe 1C

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Il calcolatore. Architettura di un calcolatore (Hardware)

Fondamenti di informatica: un po di storia

Nozione di algoritmo. Gabriella Trucco

INTRODUZIONE AL QUANTUM COMPUTING. L. Martina, G. Soliani Dipartimento di Fisica dell'universita' e Sezione INFN, Lecce

Le parole dell informatica: modello di calcolo, complessità e trattabilità

La Macchina RAM Shepherdson e Sturgis (1963)

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Linguaggi formali e compilazione

Origini e caratteristiche dei calcolatori elettronici

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6

STRINGHE di un ALFABETO. Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto. Alfabeto della lingua inglese I={a,b,c,..

RELAZIONI BINARIE. Proprietà delle relazioni Data una relazione R, definita in un insieme non vuoto U, si hanno le seguenti proprietà :

Fondamenti di Informatica. Allievi Automatici A.A Nozioni di Base

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

Fondamenti di Informatica. Computabilità e Macchine di Turing. Prof. Franco Zambonelli Gennaio 2011

Sommario. Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi

Prodotto elemento per elemento, NON righe per colonne Unione: M R S

Capitolo 7: Teoria generale della calcolabilitá

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Linguaggi e Paradigmi di Programmazione

Analizzatore lessicale o scanner

FSM: Macchine a Stati Finiti

Software e Algoritmi. Lezione n. 3

L algebra di Boole. Cenni Corso di Reti Logiche B. Mariagiovanna Sami

Complessità computazionale degli algoritmi

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Il test di Turing. Seminario. Ester Dalvit. 22 marzo Il test di Turing p. 1/1

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Macchine a responsabilità limitata

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E V E R O N A

Informazione analogica e digitale

I sistemi di numerazione

Laboratorio di Algoritmi e Strutture Dati

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Linguaggi e tecnologie per il Web

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Programmazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. Bob Kowalski: "Algoritmo = Logica + Controllo"

Linguaggi Grammatiche e Automi

Liceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE

Teoria degli insiemi

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Contatti 2. Testo. Contatti. Maria Chiara Laghi, Ph.D Dip. Ingegneria dell Informazione. tel

Corso di Laurea in Matematica

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Verifica che una grammatica sia Context Free nel GrammaReader

Il software. Il software. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

(ETC) MATRICOLE DISPARI

Esercitazioni (a cura di R. Basili)

CHE COS È L INFORMATICA

Linguaggi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/32

PERCORSO DI TECNICO DEI SERVIZI DI ANIMAZIONE TURISTICO SPORTIVA IeFP - ISIS MAMOLI BERGAMO

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

PROGETTAZIONE DISCIPLINARE MATEMATICA classe 2^

A Descrizione: ruota effetti opzionale con supporto/ optional effects wheel with support/ iprofile FLEX MODIFICHE. Codice assemblato:

CORSO DI LAUREA IN SCIENZE ERBORISTICHE E DEI PRODOTTI NUTRACEUTICI

Prob(CCCCCCCCCC) =

Transcript:

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione

automa o automa: macchina astratta o realizza un certo algoritmo, secondo un modello di calcolo o algoritmo definito nel linguaggio macchina dell'automa o riceve ed elabora dei dati di ingresso

automi e linguaggi o riconoscimento di linguaggi o problema dell'appartenenza (membership) o data una stringa x, stabilire se essa appartiene ad L

linguaggi e automi o linguaggi di tipo 3 o riconosciuti da automi a stati finiti (Finite State Machine) o es.: {a n b : n 0} generato da S as b o linguaggi di tipo 2 o ric. da automi a pila non deterministici (Nondeterministic PushDown Automata) o es.: {a n b n : n 1} generato da S asb ab o linguaggi di tipo 1 o riconosciuti da automi limitati linearmente (Linear Bounded Automata) o Es.: {a n b n c n : n 1} o linguaggi di tipo 0 o riconosciuti da macchine di Turing (Turing Machine) o x L, semidecidibile: il processo può non terminare!

automi e linguaggi MACCHINE (AUTOMI) A STATI FINITI

macchina a stati finiti o M = <Σ, Q, δ, q 0, F> o Σ = {σ 1,...,σ n }: alfabeto di input o Q = {q 0,...,q n }: insieme finito non vuoto di stati o F Q: insieme di stati finali o q 0 Q: stato iniziale o δ: Q x Σ Q: funzione di transizione o in base allo stato e al simbolo di input attuali o determina lo stato successivo FSM riconoscono tutti e soli i linguaggi regolari Alberto Ferrari Informatica e Laboratorio di Programmazione

esempio o M = <Σ, Q, δ, q 0, F> o Σ = {a,b}: alfabeto di input o Q = {q 1,q 2,q 3,q 4,q 5 }: insieme degli stati o {q 1,q 2,q 4 } Q: insieme di stati finali o q 0 Q: stato iniziale o δ: Q x Σ Q: funzione di transizione o in base allo stato e al simbolo di input attuali o determina lo stato successivo δ

esempio M = <{a, b}, {qs, qa, qb, qc}, δ, qs, {qs}> δ a b q S q A q B q A q S q C q B q C q S q C q B q A grammatica equivalente: S aa bb ε A as bc B ac bs C ab ba

macchina a stati finiti non deterministica o Nondeterministic Finite Automaton o M = <Σ, Q, δ N, q 0, F> o Σ = {σ 1,..., σ n }: alfabeto di input o Q = {q 0,..., q m }: insieme finito non vuoto di stati o F Q: insieme di stati finali o q 0 Q: stato iniziale o δ N : Q x Σ P(Q): funzione di transizione o determina insieme di stati successivi o P(Q) è l'insieme delle parti di Q, ossia l'insieme di tutti i possibili sottoinsiemi di Q

FSM - NFA M = <{a, b}, {q 0, q 1 }, δ, q 0, {q 1 }> δ a b q 0 {q 0 } {q 0, q 1 } q 1 {} {} M' = <{a, b}, {q' 0, q' 1 }, δ', q' 0, {q' 1 }> δ' a b q' 0 q' 0 q' 1 q' 1 q' 0 q' 1 Per ogni automa a stati finiti non deterministico è possibile costruire un automa a stati finiti deterministico in grado di riconoscere lo stesso linguaggio

automi e linguaggi automi a pila

automi a pila (PDA) o Pushdown Automata o simili a FSM o dotato di memoria infinita, organizzata a pila o si può accedere solo alla cima della pila o lettura del simbolo in cima o sostituzione simbolo in cima con nuova stringa (anche ε) o in forma non-deterministica, permette di riconoscere i linguaggi non contestuali o in forma deterministica, riconosce solo i linguaggi non contestuali deterministici (sottoclasse) o base dei comuni linguaggi di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione

definizione PDA o M = <Σ, Γ, z 0, Q, q 0, F, δ> o Σ = {σ 1,..., σ n }: alfabeto di input o Γ = {z 0,..., z m }: simboli della pila o z 0 Γ: simbolo di pila iniziale o Q = {q 0,..., q k }: insieme finito non vuoto di stati o q 0 Q: stato iniziale; F Q: insieme di stati finali o δ: Q x Σ x Γ Q x Γ*: funzione di transizione o in base a stato, simbolo di input, simbolo in cima a pila o determina stato successivo e simboli inseriti nella pila o per rimuovere il simbolo in cima alla pila, si scrive ε

esempio PDA o automa a pila M che riconosce L = {a n b n, n 1} o M = <{a, b}, {Z 0, A 0, A}, Z 0, {q 0, q 1, q 2 }, q 0, {q 2 }, δ> o A: si impilano sopra A 0 per contare le a o q 0 : si memorizzano le a o q 1 : si confrontano le b con quanto memorizzato o q 2 : stato finale riconoscitore a n b n δ Z 0, a Z 0, b A 0, a A 0, b A, a A, b q 0 A 0, q 0 AA 0, q 0 ε, q 2 AA, q 0 ε, q 1 q 1 ε, q 2 ε, q 1 q 2

automi e linguaggi macchina di Turing A. Turing (1937). On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, s2-42 (1): 230 265.

macchina di Turing o modello di calcolo proposto dal logico matematico inglese Alan Turing in un suo famoso articolo del 1937 o macchina ideale (modello astratto) in grado di leggere e scrivere dati contenuti su un nastro di lunghezza potenzialmente infinita, secondo un insieme prefissato di regole o ha potere computazionale massimo o è in grado di effettuare tutte le elaborazioni effettuabili dagli altri modelli di calcolo o per ogni problema calcolabile esiste una MdT in grado di risolverlo o per ogni funzione calcolabile esista una macchina di Turing equivalente Alberto Ferrari Informatica e Laboratorio di Programmazione

macchina di Turing o automa con testina di scrittura/lettura su nastro bidirezionale illimitato o ad ogni passo: o si trova in un certo stato o legge un simbolo dal nastro o in base alla funzione di transizione di transizione (deterministica): o scrive un simbolo sul nastro o sposta la testina di una posizione o cambia lo stato https://www.google.com/doodles/alan-turings-100th-birthday

Turing machine deterministica o M = <Σ, Q, q 0, F, δ> o Σ = {σ 1,..., σ n, b}: alfabeto del nastro (con blank) o Q = {q 1,..., q m }: insieme finito di stati o q 0 Q: stato iniziale o F Q: insieme di stati finali o δ: Q x Σ Q x Σ x {L, R, N}: funzione di transizione o determina la configurazione successiva: o stato o simbolo scritto su nastro o spostamento della testina (left, right, null)

funzionamento o inizialmente il nastro contiene la stringa di input preceduta e seguita da una serie infinita di simboli vuoti o la testina è posizionata sul primo simbolo della stringa di input e la macchina si trova in uno stato speciale (stato iniziale) o sulla base dello stato in cui si trova e del simbolo la macchina applica la relativa funzione di transizione o modificare il simbolo sotto la testina o cambia lo stato interno o sposta la testina a destra o a sinistra o la macchina prosegue nell esecuzione fino a quando non viene a trovarsi in uno stato finale, oppure non è presente nessuna funzione di transizione dato la situazione attuale o se la macchina si arresta in uno stato finale il risultato è dato dalla stringa presente sul nastro

macchina di Turing universale o è possibile definire una macchina di Turing capace di simulare il comportamento di ogni macchina di Turing o la rappresentazione degli stati e della funzione di transizione sono presenti, oltre alla stringa di input, sul nastro o per ogni problema calcolabile esiste una macchina di Turing quindi o la macchina di Turing universale è in grado di risolvere ogni problema calcolabile o un modello di calcolo che ha lo stesso potere computazionale di una macchina di Turing si dice Turing completo o un linguaggio di programmazione è considerato a tutti gli effetti tale se è Turing completo