Algoritmi e Complessità



Похожие документы
Fondamenti di Informatica. Computabilità e Macchine di Turing. Prof. Franco Zambonelli Gennaio 2011

Elementi di Informatica e Programmazione

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

Lezione 8. La macchina universale

Origini e caratteristiche dei calcolatori elettronici

Le macchine di Turing

Tipologie di macchine di Turing

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Le Macchine di Turing

INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

ALGEBRA DELLE PROPOSIZIONI

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Appunti sulla Macchina di Turing. Macchina di Turing

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

Alcune nozioni di base di Logica Matematica

Cos è un Calcolatore?

Ciclo di vita del software: Tipologie di software

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Varianti Macchine di Turing

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

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

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Automazione Industriale (scheduling+mms) scheduling+mms.

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi A1_1 V1.1. Introduzione

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

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

Dimensione di uno Spazio vettoriale

Complessità computazionale degli algoritmi

Fondamenti di Informatica Ingegneria Clinica Lezione 15/10/2009. Prof. Raffaele Nicolussi

Generazione Automatica di Asserzioni da Modelli di Specifica

Fasi di creazione di un programma

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

Dispensa di Informatica I.1

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

L interesse nella macchina di Turing

Componenti di un sistema KNOWLEDGE-BASED

CHE COS È L INFORMATICA

Capitolo 7: Teoria generale della calcolabilitá

OSSERVAZIONI TEORICHE Lezione n. 4

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Lezione 9: Cambio di base

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

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

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Predicati e Quantificatori

Errori più comuni. nelle prove scritte

INFORMATICA APPLICATA AL TESSILE - I

Come ragiona il computer. Problemi e algoritmi

Il concetto di informatica. Bogdan Maris ( )

Polli e conigli. problemi Piano cartesiano. Numeri e algoritmi Sistemi e loro. geometrica. Relazioni e funzioni Linguaggio naturale e

Introduzione alla programmazione in C

Gli effetti di contenuto. Fondamenti di Psicologia Cognitiva

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

Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta

Funzioni in C. Violetta Lonati

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Scuole di ogni ordine e grado

Pierluigi Graziani Università di Urbino

LEZIONI CON I PAD Docente scuola secondaria IC Moglia Carla Casareggio Classi seconde 2014/2015 Proprietà triangoli e quadrilateri con Sketchometry

la "macchina" universale di Turing

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Appunti di Sistemi Elettronici

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

4 3 4 = 4 x x x 10 0 aaa

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

Laurea Specialistica in Informatica

Introduzione alla Programmazione

SOMMARIO I radicali pag I radicali aritmetici pag Moltiplicazione e divisione fra radicali aritmetici pag.

Considero 2x e sostituisco elemento del dominio con x, 2(-3)=6, oppure e il doppio?

Informatica - A.A. 2010/11

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

Sui concetti di definizione, teorema e dimostrazione in didattica della matematica

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Logica e codifica binaria dell informazione

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

IL METODO DI STUDIO. il calendario delle attività settimanali, fissando due ore di studio giornaliere.

I FONDAMENTI DELLA MATEMATICA

Corso di Informatica

Corso Programmazione

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Транскрипт:

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 della computabilità Argomento: La Macchina di Turing Obiettivo conoscitivo: L utilità di un modello formale di calcolo: MdT

Alcune nozioni di logica Completezza: Un sistema formale si dice completo se tutte e sole le verità esprimibili nel linguaggio del sistema sono dimostrabili all interno del sistema stesso. Coerenza: Un sistema formale si dice coerente, se non è possibile ottenere nel sistema una dim. di A e una di non A a.a. 2002-03 e.merelli 3

Il Teorema di incompletezza di Gödel Gödel logico austriaco nel 1931 affermò che Per ogni formalizzazione coerente dell aritmetica, esistono verità aritmetiche che non possono essere dimostrate, all interno del sistema formale nel quale l aritmetica è rappresentabile o più informalmente L aritmetica non è completamente formalizzabile Esistono proposizioni matematiche di cui non è possibile dimostrare che siano vere o false. a.a. 2002-03 e.merelli 4

L aritmetizzazione La tecnica usata per dimostrare il teorema di Gödel è particolarmente interessante per noi oggi Si tratta infatti di un metodo che trasformava tutti i simboli e i termini usati nel sistema formale della logica in numeri naturali, in particolare numeri primi (vedi lez.1 dim. Algoritmi e funzioni calolabibili) a.a. 2002-03 e.merelli 5

Un altra nozione di logica la decidibilità Un sistema formale è decidibile se esiste un metodo che in un numero finito di passi permette di riconoscere, per ogni formula espressa nel linguaggio del sistema, se è un teorema del sistema o non lo è. Un metodo, quindi, che stabilisca in linea di principio se esiste una dimostrazione per quella formula o no. a.a. 2002-03 e.merelli 6

Il problema della decidibilità Dopo i risultati di Gödel, restava da risolvere il problema della decisione, che nella formulazione di Turing era posto in questi termini: è possibile avere un metodo meccanico che in un numero finito di passi permetta di riconoscere se una formula espressa nel linguaggio di un sistema formale è o non è un teorema del sistema? a.a. 2002-03 e.merelli 7

Macchina di Turing Alan Turing introdusse la nozione di MdT nel 1936 come definizione matematica precisa del concetto intuitivo di funzione effettivamente calcolabile per dimostrare l esistenza di problemi indecidibili (tra cui quello della validità logica) Alan Turing pubblicò nel 1936 l articolo: On Computable Numbers with an Application to the decision problem. L idea era di avere una macchina astratta che potesse effettuare ogni tipo di calcolo su numeri e simboli a.a. 2002-03 e.merelli 8

MdT universale Turing nel 1939 definì così il risultato teorico: Si affermò che una funzione è effettivamente calcolabile se i suoi valori possono essere trovati attraverso un metodo puramente meccanico". Possiamo prendere alla lettera questa asserzione, intendendo per metodo puramente meccanico, un processo che può essere portato a termine da una macchina. E' possibile dare una descrizione matematica delle strutture di queste macchine. a.a. 2002-03 e.merelli 9

Che vuol dire metodo meccanico? Secondo Turing un metodo meccanico è una procedura eseguita da un dispositivo meccanico, cioè da una macchina Per dimostrare che questo metodo meccanico non esisteva, Turing doveva inventare la macchina più generale possibile e mostrare che nemmeno questa era adatta allo scopo a.a. 2002-03 e.merelli 10

Ma che cos è una macchina di calcolo? E difficile dare una definizione precisa di macchina di calcolo Per Turing è: Lo strumento più generale che si può usare per effettuare calcoli ma I calcoli sono solo manipolazione di simboli allora La macchina è lo strumento più generale e più elementare in grado di manipolare simboli a.a. 2002-03 e.merelli 11

Una macchina universale Durante la primavera del 1936, Turing inventò la macchina più generale mai concepita, e probabilmente mai concepibile. Il dispositivo era dotato solo di: un nastro bidimensionale diviso in quadrati di lunghezza finita ma illimitata un dispositivo per la lettura, scrittura, eliminazione di simboli e spostamento sul nastro una tavola di istruzioni comprensibile alla macchina che indicava tutte le attività da svolgere senza ambiguità e tutti gli stati in cui la macchina poteva trovarsi a.a. 2002-03 e.merelli 12

Lo schema di una MdT Dispositivo di lettura/scrittura/cancellazione spostamento sul nastro secondo la tavola delle istruzioni a.a. 2002-03 e.merelli 13

Il risultato ottenuto da Turing 1. Turing dimostrò che, se un compito era eseguibile da una macchina, allora era simulabile da una MTU 2. Turing dimostrò che esistono calcoli che non possono essere effettuati, manipolazioni di simboli che non vanno a buon fine, procedure che non hanno mai termine anche per una MTU 3. Il problema della decisione è uno dei calcoli che non è possibile effettuare con una MTU a.a. 2002-03 e.merelli 14

La MdTU è una macchina astratta La MTU è un dispositivo astratto, non deve essere realizzabile in pratica E una macchina nella quale non vengono presi in considerazione i vincoli spazio-temporali: Dimensioni della memoria Tempo di calcolo Spazio di calcolo Realizzazione fisica a.a. 2002-03 e.merelli 15

La macchina universale come macchina simulatrice La MTU emula il comportamento delle altre macchine attraverso una tavola di istruzioni, inserita nella macchina come se fossero i suoi dati La MTU è perciò una macchina virtuale La MTU è l insieme di struttura e tavola di istruzioni: Hardware + Software a.a. 2002-03 e.merelli 16

Bibliografia Casti J.L./ De Pauli (2001) Gödel, Raffaello Cortina Editore, Milano. Cellucci, C. (2002) Filosofia e matematica, LaTerza, Roma. Davis M. (2000) The Universal Computer, W.W. Norton & Co., New York. Somenzi V./ Cordeschi R. (1994) La filosofia degli automi, Bollati Boringhieri, Torino. Tamburrini, G. (2002) I matematici e le macchine intelligenti, Bruno Mondadori, Milano. a.a. 2002-03 e.merelli 17