Macchine di Turing e Calcolabilità
|
|
- Miranda Moro
- 7 anni fa
- Visualizzazioni
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 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
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)
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
DettagliFondamenti 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
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
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
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
DettagliIl 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
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
DettagliInformatica 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
DettagliLogica 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
DettagliALAN 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
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
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,
DettagliL 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
DettagliDefinizione 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
DettagliInformatica, 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
DettagliLe 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
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
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
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?
DettagliELEMENTI 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
DettagliVariabili. 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
DettagliCapitolo 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
DettagliAlgoritmi 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
DettagliProgrammazione 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
DettagliPARTE 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
DettagliTi 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?........................
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
DettagliLa "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
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
DettagliCurriculum 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
DettagliInsiemi, 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
DettagliPARTE 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
DettagliSomma 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
Dettagli7 - 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
DettagliQuello 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
DettagliLa 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
DettagliMacchine 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
Dettagli9) 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
DettagliI.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
DettagliIntroduzione: 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
DettagliProgrammazione 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
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
DettagliInformatica/ 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
DettagliL 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
DettagliInformatica 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
DettagliAlgoritmi 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
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliLa 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
DettagliProgetto 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
DettagliLinguaggio 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
Dettagli04 - 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,
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
DettagliCorso 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
DettagliProgramma 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
DettagliSistemi 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
DettagliEsercitazione 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
DettagliMODULO 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
DettagliInformatica! 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
DettagliNell 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
DettagliTEORIE 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
DettagliLe 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
DettagliLa 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...
DettagliAlgoritmi 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
DettagliFondamenti 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
DettagliLaboratorio 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[]
DettagliCapitolo 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,
DettagliLe 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
DettagliInformatica/ 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
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
DettagliERRATA 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
DettagliInsegnamento 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:
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
DettagliLa 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
DettagliLe 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
Dettagli102 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
DettagliEsercizi 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:
DettagliAlgoritmi 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
DettagliInformatica/ 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
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
DettagliLinguaggio 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
DettagliCodice 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.
DettagliAltrimenti, 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
DettagliAppunti 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
DettagliInformatica/ 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
DettagliInformatica 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
Dettagli18 - 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/
DettagliALCUNI 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
DettagliCalcolatori: 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
DettagliAlgoritmi 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
DettagliProgrammazione. 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,
DettagliFunzioni 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
DettagliCompitino 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
Dettagli6 - 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
DettagliLaboratorio 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à
Dettagliun 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
DettagliDati 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
DettagliCircuiti 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