Macchine di Turing e Calcolabilità

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Macchine di Turing e Calcolabilità"

Transcript

1 e Calcolabilità Ivan Lanese Dipartimento di Informatica Scienza e Ingegneria Università di Bologna Ivan.lanese@gmail.com

2 2

3 Ringraziamenti Parte del materiale presente in queste slide è tratto dalla presentazione Calcolo e Simboli: la scienza digitale del prof. Simone Martini, Università di Bologna 3

4 Alan Mathison Turing ( ) Nato il 23 giugno 1912 OBE (Order of the British Empire) FRS (Fellow of the Royal Society) Morto il 7 giugno 1954 per avvelenamento da cianuro, probabilmente suicidio dovuto alle persecuzioni per la sua omosessualità 4

5 Alan Mathison Turing ( ) Criptanalisi Macchine per il calcolo Gioco dell'imitazione Morfogenesi 5

6 Criptanalisi 6

7 Morfogenesi Turing, A. M. (1952). The Chemical Basis of Morphogenesis. Philosophical Transactions of the Royal Society B: Biological Sciences 237 (641):

8 8

9 Il gioco dell'imitazione Cos'è l'intelligenza? Un interrogante è collegato mediante un terminale con due stanze: in una di esse si trova una persona, nell'altra un computer Ponendo domande tramite il terminale, l'interrogante deve decidere chi è l'essere umano e chi la macchina 9

10 10

11 Le macchine di Turing 11

12 Cosa significa calcolare? Turing ha iniziato a porsi domande sulla natura e i limiti dei computer molto prima che questi esistessero! Primo calcolatore universale elettromeccanico: Z3, 1941; Konrad Zuse, Germania. Primo calcolatore universale elettronico: ENIAC, 1946; University of Pennsylvania s Moore School of Electrical Engineering Alan M. Turing, On Computable Numbers, with an Application to the Entscheidungsproblem, Proc. Lond. Math. Soc. (2) 42 pp (1936) Entscheidungsproblem (secondo Problema di Hilbert): Esiste un metodo definito di calcolo che, data una proposizione matematica permette di decidere se è o non è 12 dimostrabile?

13 Cosa significa calcolare? =

14 Macchina di Turing Dispositivo astratto che contiene tutti gli elementi essenziali per calcolare una qualsiasi funzione Un supporto su cui scrivere: un nastro infinito, diviso in caselle Un insieme finito di simboli che possono comparire sul nastro Un dispositivo di lettura/scrittura Un insieme finito di stati in cui la macchina si può trovare in ogni istante Una tavola di istruzioni finita, che dice alla macchina cosa fare in base al simbolo che si trova in quel momento sotto la testina di lettura/scrittura 14

15 Macchina di Turing Un insieme finito di stati in cui la macchina può trovarsi Un nastro infinito diviso in celle Un alfabeto finito (insieme di simboli che possono comparire sulle celle del nastro) q0 è lo stato iniziale, in cui la macchina si trova quando viene fatta partire halt è lo stato finale: se la macchina raggiunge tale stato, si ferma. Nota: gli stati possono avere nomi arbitrari; q0 e halt sono solo una nostra convenzione che useremo qui L'alfabeto include un simbolo spazio (blank) che compare su tutte le (infinite) celle non inizializzate del nastro. Un insieme finito di celle puo' contenere inizialmente simboli diversi da blank, e rappresentano l'input della macchina di Turing Una funzione di transizione che determina il comportamento della macchina 15

16 Funzione di transizione Una lista di regole che indicano, per ogni possibile simbolo X che si trovi al momento sotto la testina e per ogni possibile stato P della macchina: quale simbolo Y scrivere al posto di X (è possibile riscrivere nuovamente X); quale è il nuovo stato Q della macchina (è possibile che lo stato rimanga sempre P); se la testina deve essere spostata a destra oppure a sinistra di una casella; Inizialmente la macchina si trova nello stato iniziale, e la testina è posizionata su una data cella del nastro (che di solito dipende dal problema da risolvere) 16

17 Esempio Testina di lettura/scrittura con indicato lo stato corrente q Contenuto iniziale del nastro Alfabeto: {1, b} Stati: {q0, halt} Stato corrente Simbolo corrente Nuovo Simbolo Nuovo Stato q0 1 1 q0 right q0 blank 1 halt right Spostamento 17

18 Esempio q Calcolare il complemento a uno di un numero espresso in base 2 In pratica, cambiare gli '1' con '0' e viceversa Inizialmente sul nastro viene scritta la cifra binaria Al termine il nastro deve contenere il risultato al posto degli input Esercizio: come definiamo la funzione di transizione? 18

19 Esempio q Calcolare la somma di due numeri in base = Inizialmente sul nastro vengono scritti i due numeri da sommare, separati da un blank Al termine il nastro deve contenere il risultato al posto degli input Esercizio: come definiamo la funzione di transizione? 19

20 Entscheidungsproblem Esiste un metodo definito di calcolo che, data una proposizione matematica permette di decidere se è o non è dimostrabile? Turing definisce metodo definito di calcolo come procedura di calcolo realizzabile mediante una macchina di Turing Tesi di Church-Turing: le macchine di Turing definiscono con precisione la nozione intuitiva di procedimento definito di calcolo Turing dimostra che non esiste alcun metodo definito di calcolo che permette di decidere se una proposizione matematica è o non è dimostrabile. 20

21 Funzioni calcolabili e Turing-Completezza Tesi di Church-Turing: le funzioni calcolabili sono tutte e sole le funzioni calcolabili da una qualche macchina di Turing Qualsiasi formalismo mediante il quale sia possibile simulare una macchina di Turing si dice TuringCompleto Esempio di formalismo Turing-Completo? Esempio di formalismo NON Turing-Completo? 21

22 LEGO Turing Machine 22

23 Formalismo Turing-Completo: Automi Cellulari Griglia infinita di celle che possono essere accese o spente Lo stato successivo di ogni cella dipende dal suo stato corrente, e da quello dei suoi 8 vicini Esempio: Game of Life Una cella accesa che ha meno di due vicini accesi, si spegne Una cella accesa che ha due o tre vicini accesi, resta accesa Una cella accesa che ha più di 3 vicini accesi, si spegne Una cella spenta che ha esattamente 3 vicini accesi, si accende 23

24 Il Game of Life è Turing-Completo 24

25 Funzioni non calcolabili: Halting Problem Esistono funzioni che NON sono calcolabili Esempio (Halting Problem) Scrivere una funzione che accetta in input (1) la descrizione di un programma P scritto in una opportuna notazione, e (2) l'input I da passare a P. La funzione deve restituire TRUE se e solo se il programma P applicato all'input I termina 25

26 Halting problem Dimostrazione semi-formale Supponiamo per assurdo che sia possibile scrivere un metodo Java che accetta in input due stringhe P rappresenta il sorgente di un programma Java I rappresenta l'input su cui il programma P deve operare bool Termina(String P, String I) { if (P applicato a I termina) { return true; } else { return false; Qui dovrebbe essere del } codice Java opportuno } che decide se P(I) termina o no 26

27 Halting problem Dimostrazione semi-formale Poiché l'input I puo' essere una qualsiasi stringa di caratteri, nulla ci impedisce di passare al programma P il suo stesso codice sorgente come input! Quindi se è possibile scrivere un metodo Termina(), è possibile scrivere anche il metodo Termina_su_P() seguente bool Termina_su_P(String P) { if (Termina(P, P)) { return true; } else { return false; } } 27

28 Halting problem Dimostrazione semi-formale Se è possibile scrivere un metodo Termina() e Termina_su_P(), allora è possibile anche scrivere un metodo Bomba() seguente Se P(P) termina, Bomba(P) NON termina Se P(P) non termina, Bomba(P) ritorna true bool Bomba(String P) { if (Termina_su_P(P)) { while (1) ; // ciclo infinito return false; } else { return true; } } 28

29 Halting problem Dimostrazione semi-formale Che cosa possiamo dire dell'invocazione Bomba(Bomba)? Cioé passiamo al metodo Bomba() il suo stesso codice Bomba(Bomba) puo' terminare, o andare in loop Se Bomba(Bomba) termina, significa che Termina_su_P(Bomba) restituisce false Cioé Termina(Bomba, Bomba) restituisce false Cioé Bomba(Bomba) NON termina Assurdo! bool Bomba(String P) { if (Termina_su_P(P)) { while (1) ; // ciclo infinito return false; } else { return true; } } bool Termina_su_P(String P) { if (Termina(P, P)) { return true; } else { return false; } } 29

30 Halting problem Dimostrazione semi-formale Che cosa possiamo dire dell'invocazione Bomba(Bomba)? Cioé passiamo al metodo Bomba() il suo stesso codice Bomba(Bomba) puo' terminare, o andare in loop Se Bomba(Bomba) NON termina, significa che Termina_su_P(Bomba) restituisce true Cioé Termina(Bomba, Bomba) restituisce true Cioé Bomba(Bomba) termina Assurdo! bool Bomba(String P) { if (Termina_su_P(P)) { while (1) ; // ciclo infinito return false; } else { return true; } } bool Termina_su_P(String P) { if (Termina(P, P)) { return true; } else { return false; } } 30

31 Halting problem Dimostrazione semi-formale Quindi supponendo che fosse possibile scrivere un metodo Termina(), abbiamo ottenuto un assurdo Di conseguenza NON possiamo definire un metodo Termina() che operi come indicato Nemmeno se usiamo un linguaggio di programmazione diverso: tutti i linguaggi di programmazione sono equivalenti ad una macchina di Turing, quindi possono calcolare solo le funzioni che una macchina di Turing puo' calcolare 31

32 Funzioni non calcolabili: Tassellatura di Wang Dato un insieme di tipi di piastrelle di Wang, decidere se esse possono ricoprire il piano E' possibile usare un numero illimitato di piastrelle di ciascun tipo Esempio: le piastrelle seguenti possono ricoprire il piano (in modo non periodico) By Anomie - Own work, Public Domain, E' stato dimostrato che è impossibile definire un algoritmo per decidere se un insieme dato di tipi di piastrelle può ricoprire il piano 32

33 By Claudio Rocchini - Own work, CC BY-SA 3.0, 33

34 ...e poi dicono che l'informatica teorica non serve! Michael F. Cohen, Jonathan Shade, Stefan Hiller, and Oliver Deussen Wang Tiles for image and texture generation. In ACM SIGGRAPH 2003 Papers (SIGGRAPH '03). ACM, New York, NY, USA, DOI 34

Fondamenti di Informatica A Introduzione al corso

Fondamenti di Informatica A Introduzione al corso Fondamenti di Informatica A al corso Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Hany Farid, Dartmouth

Dettagli

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

Appunti 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)

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

Dettagli

Fondamenti di Informatica A Introduzione al corso

Fondamenti di Informatica A Introduzione al corso Fondamenti di Informatica A al corso Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Hany Farid, Dartmouth

Dettagli

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

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

Dettagli

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

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

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L 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

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Macchine di Turing: somma di due numeri

Macchine 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

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

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

Logica e Informatica: cosa i calcolatori possono e non possono fare. Simone Martini Logica e Informatica: cosa i calcolatori possono e non possono fare Simone Martini Dipartimento di Scienze dell Informazione Alma Mater Studiorum Università di Bologna 1 io Simone Martini Professore di

Dettagli

ALAN TURING E IL LATO OSCURO DELLA MELA

ALAN TURING E IL LATO OSCURO DELLA MELA ALAN TURING E IL LATO OSCURO DELLA MELA Marco Giunti - ALOPHIS, Università di Cagliari PERCHÉ TURING? PER IL METODO - Incontri sui fondamenti metodologici e teorici delle scienze, tecniche, arti e mestieri

Dettagli

Linguaggi Regolari e Linguaggi Liberi

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

Dettagli

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, 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,

Dettagli

L elaboratore. Fondamenti di Informatica S.Badaloni Ing. Aerospaziale A.A. 2003/04

L elaboratore. Fondamenti di Informatica S.Badaloni Ing. Aerospaziale A.A. 2003/04 L elaboratore Fondamenti di Informatica S.Badaloni Ing. Aerospaziale A.A. 2003/04 un po di storia L idea di utilizzare dispositivi meccanici per effettuare in modo automatico computazioni risale al 600

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Informatica, Algoritmi, Linguaggi

Informatica, Algoritmi, Linguaggi Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo

Dettagli

Le parole dell informatica: algoritmo e decidibilità

Le parole dell informatica: algoritmo e decidibilità Le parole dell informatica: algoritmo e decidibilità Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico dell Informatica

Dettagli

Macchina 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 ... !!... !!! 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

Dettagli

Linguaggi Regolari e Linguaggi Liberi

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

Dettagli

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

ITLCC 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

Dettagli

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

Ma 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?

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Capitolo 1 Linguaggi e Macchine Astratte

Capitolo 1 Linguaggi e Macchine Astratte Università degli Studi di Bologna Scuola di Ingegneria e Architettura Capitolo 1 Linguaggi e Macchine Astratte Corso di Laurea Magistrale in Ingegneria Informatica Anno accademico 2014/2015 Prof. ENRICO

Dettagli

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

Ti piacciono le riviste di meccanica? Settant anni di macchine di Turing

Ti piacciono le riviste di meccanica? Settant anni di macchine di Turing Ti piacciono le riviste di meccanica? Settant anni di macchine di Turing Francesco Belardinelli 30 agosto 2005 Indice 1 Algoritmi e procedure effettive 2 1.1 Che cosa è un algoritmo?........................

Dettagli

UNA GERARCHIA DI MACCHINE

UNA 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

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L 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

Dettagli

Curriculum T5 Calcolo, simboli e intelligenza Alan M. Turing e la scienza digitale

Curriculum T5 Calcolo, simboli e intelligenza Alan M. Turing e la scienza digitale Curriculum T5 Calcolo, simboli e intelligenza Alan M. Turing e la scienza digitale Simone Martini Dipartimento di Informatica Scienza e Ingegneria Alma mater studiorum Università di Bologna Collegio Superiore

Dettagli

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia Insiemi, Numeri, Terminologia Prof. Simone Sbaraglia Corso Rapido di Logica Matematica La logica formale definisce le regole cui deve obbedire qualsiasi teoria deduttiva. Una proposizione e` una affermazione

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Quello che i calcolatori possono e non possono fare

Quello che i calcolatori possono e non possono fare Quello che i calcolatori possono e non possono fare Ricordando Alan Turing a cent anni dalla nascita Simone Martini Dipartimento di Scienze dell Informazione Alma Mater Studiorum Università di Bologna

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento

Dettagli

9) Il componente fondamentale per la comunicazione tra le componenti di un computer di chiama a) Web b) Bus c) Internet

9) Il componente fondamentale per la comunicazione tra le componenti di un computer di chiama a) Web b) Bus c) Internet Informatica per la Comunicazione/ Verdicchio/ 26/01/2017/ Domande / VERSIONE 1 1) Lo stato iniziale di una Macchina di Turing è per convenzione a) begin b) start c) q 1 2) In un diagramma di flusso in

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Indice - di cosa si occupa l informatica - una definizione della scienza informatica - cosa è un

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi 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

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

La tesi di Church-Turing

La tesi di Church-Turing ITLCC 2006/11/12 21:06 page 79 #3 Capitolo 5 La tesi di Church-Turing SOMMARIO Sebbene il concetto di algoritmo abbia avuto una lunga storia nel campo della matematica, il concetto formale di algoritmo

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

04 - Logica delle dimostrazioni

04 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 04 - Logica delle dimostrazioni Anno Accademico 013/014 D. Provenzano,

Dettagli

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004

Informatica 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

Dettagli

Corso di Fondamenti di Informatica. La ricorsione

Corso di Fondamenti di Informatica. La ricorsione Corso di Fondamenti di Informatica La ricorsione La ricorsione Si dice che un oggetto (una struttura dati, una funzione matematica, un concetto ) è ricorsivo se è possibile darne una definizione in termini

Dettagli

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

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Esercitazione 5: the game of life

Esercitazione 5: the game of life Esercitazione 5: the game of life Termine consegna lavori: Da Mercoledì 28 novembre ore 00:01 A Martedì 4 dicembre ore 23:59 I lavori dovranno essere salvati all'interno di una cartella che dovrà contenere

Dettagli

MODULO 07 LA MACCHINA DI TURING

MODULO 07 LA MACCHINA DI TURING MODULO 07 LA MACCHINA DI TURING Nel 1936 Alan Turing presenta una definizione di computabilità basata sull osservazione del comportamento di un agente umano che sta eseguendo un calcolo (algoritmo) con

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi

Dettagli

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso

Dettagli

Le macchine di Turing

Le macchine di Turing Le macchine di Turing Alan Turing (1912-1954) 1954) Il problema della decisione i L Entscheidungsproblem [il problema della decisione] è risolto se si conosce una procedura che permette di decidere la

Dettagli

La matematica non è un opinione, lo è oppure...?

La matematica non è un opinione, lo è oppure...? La matematica non è un opinione, lo è oppure...? Giulio Giusteri Dipartimento di Matematica e Fisica Università Cattolica del Sacro Cuore Brescia 26 Febbraio 2010 Vecchie conoscenze Dedurre... dedurre...

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

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

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

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è una list c) v

Dettagli

Le Macchine di Turing

Le 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

Dettagli

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Dettagli

Insegnamento Informatica CdS Scienze Giuridiche

Insegnamento Informatica CdS Scienze Giuridiche Insegnamento Informatica CdS Scienze Giuridiche A.A. 29/ Prof. Valle D.ssa Folgieri Informazioni preliminari Prof. Valle email valle@dsi.unimi.it SITO DEL CORSO: http://webcen.dsi.unimi.it/wcinfo Syllabus:

Dettagli

Macchine sequenziali. Automa a Stati Finiti (ASF)

Macchine 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

Dettagli

La principale modalità di calcolo è l applicazione di funzioni

La principale modalità di calcolo è l applicazione di funzioni 1 La principale modalità di calcolo è l applicazione di funzioni Nei linguaggi funzionali puri non esistono strutture di controllo predefinite per la realizzazione di cicli quali for, while, repeat Un

Dettagli

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Dettagli

102 MACCHINE DI TURING

102 MACCHINE DI TURING 102 MACCHINE DI TURING Corso di Informatica Teorica - modulo 2 Prof. Settimo Termini 1 Introduzione Se, come già abbiamo affermato, nel costruire una Teoria della calcolabilità siamo guidati del desiderio

Dettagli

Esercizi di Fondamenti di Informatica A

Esercizi di Fondamenti di Informatica A Esercizi di Fondamenti di Informatica A Corso di laurea in Ingegneria Biomedica e Ingegneria Elettronica per l'energia e l'informazione Università di Bologna Anno Accademico 2015/2016 Ultimo aggiornamento:

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it Lezione 2 Teoria

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 1) Il bus in un computer trasporta a) solo dati b) solo istruzioni c) sia dati sia istruzioni 2) In una sequenza

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

Dettagli

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

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

Dettagli

Codice Gray. (versione Marzo 2007)

Codice Gray. (versione Marzo 2007) Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.

Dettagli

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.)

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.) Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica

Dettagli

Appunti su Indipendenza Lineare di Vettori

Appunti su Indipendenza Lineare di Vettori Appunti su Indipendenza Lineare di Vettori Claudia Fassino a.a. Queste dispense, relative a una parte del corso di Matematica Computazionale (Laurea in Informatica), rappresentano solo un aiuto per lo

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

Informatica 1. Prova di recupero 15 Febbraio 2005

Informatica 1. Prova di recupero 15 Febbraio 2005 Informatica 1 Prova di recupero 15 Febbraio 2005 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

ALCUNI CENNI SUGLI INSIEMI

ALCUNI CENNI SUGLI INSIEMI ALCUNI CENNI SUGLI INSIEMI In Matematica il concetto di insieme è assunto come primitivo, cioè non si definisce. Considereremo quindi la nozione di insieme dal punto di vista intuitivo. Un insieme è quindi

Dettagli

Calcolatori: Sistemi di Numerazione

Calcolatori: Sistemi di Numerazione Calcolatori: Sistemi di Numerazione Sistemi di Numerazione: introduzione In un Calcolatore, i Dati e le Istruzioni di un Programma sono codificate in forma inaria, ossia in una sequenza finita di e. Un

Dettagli

Algoritmi e diagrammi di flusso

Algoritmi e diagrammi di flusso Algoritmi e diagrammi di flusso Pablo Genova gallini.genova@gmail.com I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2015 2016 Cos'è un algoritmo? Algoritmo: procedimento che risolve

Dettagli

Programmazione. Valerio Perticone, Sergio Perticone

Programmazione. Valerio Perticone, Sergio Perticone Programmazione Valerio Perticone, Sergio Perticone Programmazione La programmazione è un processo che parte dall'analisi di un problema computazionale ed arriva, mediante un'opportuna codifica formale,

Dettagli

Funzioni calcolabili e linguaggi decidibili

Funzioni calcolabili e linguaggi decidibili Informatica Teorica 2012/2013 M.Di Ianni Funzioni calcolabili e linguaggi decidibili Abbiamo definito i concetti di accettabilità e decidibiltà di un linguaggio, che sono correlati al modello di macchina

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013 Laboratorio Progettazione Web Le funzioni in PHP Angelica Lo Duca IIT-CNR angelica.loduca@iit.cnr.it 2012/2013 Funzioni Una funzione è una sequenza di istruzioni che implementano una specifica funzionalità

Dettagli

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

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere; Algoritmi 3 3.5 Capacità di calcolo Il matematico inglese Alan Turing (1912-1954) descrisse nel 1936 un tipo di automi, oggi detti macchine di Turing, e fornì una della prime definizioni rigorose di esecuzione

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale Operazioni Logiche: lgebra di oole Fondamenti di Informatica Ingegneria Gestionale Università degli Studi di rescia Docente: Prof. lfonso Gerevini Circuiti digitali Il calcolatore può essere visto come

Dettagli