L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE GERARCHIA DI MACCHINE PERCHE I MODELLI MATEMATICI

Documenti analoghi
L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO

Capitolo 1 Linguaggi e Macchine Astratte

L ELABORATORE ELETTRONICO

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

Che ruolo ha il linguaggio di programmazione?

UNA GERARCHIA DI MACCHINE

Struttura del calcolatore

Sommario Tesi di Church, di Turing, e di Church Turing G delizzazione. Limiti della Calcolabilità

Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico

Elementi di Informatica A. A. 2016/2017

Elaborazione dell informazione

Algoritmi e Complessità

Fondamenti di Informatica. Ipotesi fondamentale. Irrisolubilità. Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Capitolo III. Algoritmi e Programmi

Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012.

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Programmazione per BioInformatica Introduzione. Docente. Programma del corso. Nicola Drago

LABORATORIO DI INFORMATICA

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

memorizzare dati interagire con dispositivi eseguire programmi sequenze di istruzioni che il computer esegue e di decisioni che il computer prende

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)

Problemi, algoritmi, calcolatore

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

Fondamenti di Informatica

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

La nozione di algoritmo

Il concetto di calcolatore e di algoritmo

Da Turing a Böhm. Simona Ronchi Della Rocca Dipartimento di Informatica

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Il calcolatore universale, origini e nuovi paradigmi

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi,

Sommario. Macchina di Turing universale Proprietà dei problemi Turing riconoscibili Linguaggi non Turing riconoscibili.

Fondamenti. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione [010194] 7 mar, 2016

Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1)

UNA STORIA AFFASCINANTE

Linguaggi di Programmazione

L architettura del calcolatore

PROBLEMI E ALGORITMI

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

ALGORITMI E COMPLESSITA COMPUTAZIONALI LA MACCHINA DI TURING.

Esecuzione dei programmi

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Architettura degli Elaboratori

Architettura dell elaboratore

Architettura dell elaboratore

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Architettura di un Computer

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Abilità Informatiche e Telematiche

Fondamenti Informatica A.A. 2010/'11. (I parte)

Macchina di Turing Universale

Alan Turing pioniere dell era digitale. Il calcolo e le sue limitazioni

Informatica A. Allievi Gestionali A.A Nozioni di Base

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17

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

L uomo come esecutore di algoritmi

Organizzazione strutturata

Abilità Informatiche e Telematiche

Algoritmi e Complessità

Punto di vista Tecnologico: strumenti di elaborazione della informazione. Punto di vista Metodologico:

Informatica. Fondamenti di Informatica 1. Informatica. Informatica. Introduzione all Informatica. Introduzione all Informatica

La suddivisione lezione/esercitazione è orientativa Martedì Lezione Aula A4 Martedi Esercitazione Aula A2 Mercoledì Laboratorio

Logica e Informatica: cosa i calcolatori possono e non possono fare. Simone Martini

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Architettura di un elaboratore. Il modello di von Neumann

Rappresentazione (Codifica Binaria dei Numeri) ed Elaborazione delle Informazioni

The easiest way to tell the di erence between hardware and software is to kick it. If it hurts your toe, it is hardware.

CAPITOLO 1 CENNI STORICI

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

Macchine Calcolatrici, Computer e Algoritmi, ovvero...

Fondamenti dell Informatica

Progetto e analisi di algoritmi

Macchina di Von Neumann

Concetti di base dell informatica Cosa è?

Fondamenti di Informatica A. A / 1 9

Macchine Astratte. Luca Abeni. February 22, 2017

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Logica Algoritmi Cognizione

ALFABETO. Informatica Prof. Nicola BRUNO

Macchina Astratta: struttura e realizzazione.

Concetti di base di informatica

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

La macchina di Turing

Sommario. martedì 23 ottobre 2012

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

2) La P di CPU sta per a) Processing b) Process c) Processor d) nessuna delle precedenti

Introduzione al funzionamento di un calcolatore elettronico

MODULO 07. La soluzione dei problemi mediante gli algoritmi

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

Architettura dell elaboratore

Le Olimpiadi di Problem Solving:

Architettura dei calcolatori e Software di sistema

Transcript:

Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio macchina) Vincolo di realizzabilità: se l automa è fatto di parti, queste sono in numero finito ingresso e uscita devono essere denotabili attraverso un insieme finito di simboli. Realizzazione: 1) mediante congegni meccanici macchina aritmetica (1649) di Blaise Pascal macchina analitica di Charles Babbage (1792-1871) Realizzazione: 2) mediante un modello matematico funzionale (Hilbert, (1842-1943), Church, Kleene) operazionale (Turing, 1912-1954) sistemi di riscrittura (Post, Markov,..). PERCHE I MODELLI MATEMATICI Macchine diverse potrebbero avere diversa capacità di risolvere problemi. Una macchina potrebbe essere più potente di un altra E NOI DOBBIAMO SAPERLO Se neanche la macchina più potente riesce a risolvere un problema, potrebbero esserci PROBLEMI NON RISOLUBILI GERARCHIA DI MACCHINE macchine combinatorie macchine (automi) a stati finiti macchina a stack macchina di Turing TESI DI CHURCH-TURING Non esiste alcun formalismo capace di risolvere una classe di problemi più ampia della Macchina di Turing 1

Ã^/HIW5LJKW1RQH` PIQ PIQ VIQ GIQ Formalmente definita dalla quintupla: dove $ 6 = insieme finito dei simboli di ingresso e uscita = insieme finito degli stati (di cui uno è HALT) PIQÃ$Ã Ã6Ã Ã$ VIQÃ$Ã Ã6Ã Ã6 GIQÃ$Ã Ã6Ã Ã' LA MACCHINA DI TURING $Ã6ÃPIQÃVIQÃGIQ (funzione di macchina) (funzione di stato) (funzione di direzione) LA MACCHINA DI TURING Un nastro (illimitatamente espandibile) rappresenta il deposito dei dati (memoria). T.M. LA MACCHINA DI TURING LA MACCHINA DI TURING E CPU REALI La TM è una macchina capace di: leggere un simbolo dal nastro scrivere sul nastro il simbolo specificato da In pratica: leggere / scrivere un simbolo dal / sul nastro corrisponde a: lettura / scrittura dalla / sulla memoria RAM / ROM transitare in un nuovo stato interno specificato da VIQ spostarsi sul nastro di una posizione nella direzione indicata da GIQ Quando raggiunge lo stato HALT, la macchina si ferma. transitare in un nuovo stato interno spostarsi sul nastro di una (o più) posizioni nuova configurazione dei registri della CPU scelta della cella di memoria su cui operare (indirizzo contenuto nel RI) RISOLVERE PROBLEMI CON LA T.M. Risolvere un problema con la Turing Machine richiede quindi di: definire una opportuna rappresentazione dei dati iniziali sul nastro definire la parte di controllo, cioè le tre funzioni: in modo da rendere disponibile sul nastro, alla fine, la rappresentazione della soluzione. Soluzione: a) definire un algoritmo b) programmarlo sulla Turing Machine 2

0 1 1 0 1 Un possibile algoritmo leggere il primo simbolo a sinistra, ricordare se è 1 o 0 e marcare tale casella con spostarsi sull ultimo simbolo e leggerlo se è diverso dal primo (che qui era 1, ndr), scrivere E (errore) e terminare (non è il nostro caso) 0 1 1 0 Un possibile algoritmo (segue) altrimenti, marcare tale casella con e ricominciare il controllo sulla stringa più corta rimasta (procedendo a ritroso) Alla fine.. quando non ci sono più cifre fra, scrivere T (true) e finire. Evoluzione (1) Situazione iniziale e poi via via Evoluzione (2) Situazione 0 1 1 0 e poi: (segue) 0 1 1 0 1 0 1 1 0 1 0 1 1 0 (segue) 0 1 1 0 1 1 1 1 Evoluzione (3) Situazione 1 1 e poi: (FINE) 1 1 T Soluzione: a) definire un algoritmo b) programmarlo sulla Turing Machine, cioè... definire la parte di controllo data dalle tre funzioni PIQÃVIQ GIQ 3

DEFINIRE LA PARTE DI CONTROLLO Osservazione: le tre funzioni PIQ VIQGIQhanno il medesimo dominio A x S A = insieme finito dei simboli di ingresso e uscita S = insieme finito degli stati (di cui uno è HALT) dove A e S sono insiemi finiti. Quindi, le tre funzioni possono essere definite in forma estensionale tramite tabelle, elencandone tutti i possibili valori. Nel nostro caso: A = {0,1,,E,T} S = {HALT,s0,s1,s2,s3,s4,s5} (stato iniziale: S1) Configurazione iniziale del nastro: mfn 0 0 0 0 E 1 1 1 1 E T T T mfn 0 0 0 0 E 1 1 1 1 E T T T sfn 0 s0 s2 s2 s3 s0 HALT 1 s0 s3 s2 s3 HALT s0 s1 HALT s4 s5 HALT HALT mfn 0 0 0 0 E 1 1 1 1 E T T T sfn 0 s0 s2 s2 s3 s0 HALT 1 s0 s3 s2 s3 HALT s0 s1 HALT s4 s5 HALT HALT Configurazione finale del nastro: T dfn 0 L R R R L N 1 L R R R L L R N L L N N 4

MACCHINE SPECIFICHE Una volta definita la parte di controllo, la Macchina di Turing è capace di risolvere un dato problema (risolubile).....ma così facendo, essa è specifica di quel problema! Siamo circondati da macchine specifiche: calcolatrici lavastoviglie, videoregistratori, videogiochi orologi, telecamere,... MACCHINE SPECIFICHE Conviene fare macchine specifiche? sì, per usi particolari e mercati di massa no, se vogliamo una macchina di uso generale con cui risolvere ogni problema (risolubile) MACCHINE UNIVERSALI Una volta definita la parte di controllo, cioè l algoritmo necessario, la Macchina di Turing è capace di risolvere un dato problema (risolubile) Finora, l algoritmo era cablato nella macchina..e se invece fosse sul nastro, e la macchina se lo andasse a prendere? MACCHINA DI TURING UNIVERSALE Una Macchina di Turing la cui parte di controllo (cioè il cui algoritmo cablato ) consiste nel leggere dal nastro una descrizione dell algoritmo richiesto E una macchina UNIVERSALE: senza modifiche alla sua struttura, può essere istruita per risolvere un qualunque problema (risolubile) Una macchina programmabile MACCHINA DI TURING UNIVERSALE Ma leggere dal nastro una descrizione dell algoritmo richiesto richiede di: saper descrivere tale algoritmo il che richiede un qualche linguaggio e una macchina che lo interpreti! Dunque... la Universal Turing Machine (UTM) è l interprete di un linguaggio! MACCHINA DI TURING UNIVERSALE Una Universal Turing Machine (UTM) modella il concetto di elaboratore di uso generale ( general purpose ) Una macchina che va a cercare le istruzioni da compiere (fetch).. le interpreta (decode).. e le esegue (execute) 5

MACCHINA DI TURING UNIVERSALE E MACCHINA DI VON NEUMAN Una Universal Turing Machine (UTM) è in grado di elaborare prendendo dati e algoritmo dal nastro e scrivendo sul nastro i risultati Dunque, una UTM opera solo da/verso il nastro (astrazione della memoria): non esiste il concetto di mondo esterno Ingresso/Uscita MACCHINA DI TURING UNIVERSALE E MACCHINA DI VON NEUMAN Dunque, la macchina di Von Neumann è modellata dalla UTM per ciò che attiene alla computazione... ma prevede anche la dimensione dell interazione LINGUAGGI DI PROGRAMMAZIONE Ad esempio, il linguaggio di programmazione C è costituito da un linguaggio di computazione (il C vero e proprio) un linguaggio di interazione (I/O) fornito come allegato, sotto forma di librerie standard 6