Conclusioni. Simone Martini. a.a

Documenti analoghi
Quello che i calcolatori possono e non possono fare

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

Macchine di Turing. Valerio Perticone, Settimo Termini

Macchine a responsabilità limitata

Il calcolatore universale, origini e nuovi paradigmi

Informatica. Simone Martini. Corso di Laurea in Matematica, primo anno. Dipartimento di Informatica Scienza e Ingegneria 1/52

Calcolabilità e Complessità. Scuola Aila 2009

Teoria della Calcolabilità!

Logica Algoritmi Cognizione

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

Teoria della Calcolabilità!

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

Teoria della Calcolabilità

Algoritmi e Complessità

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

Capitolo 11. Teoria della computazione Pearson Addison-Wesley. All rights reserved

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Limiti della calcolabilità

Elementi di Informatica A. A. 2016/2017

Capitolo III. Algoritmi e Programmi

Macchina di Turing. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017

Parte I.5 Cenni alla computazione

Teoria della Calcolabilità!

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

Problemi, algoritmi, calcolatore

Teoria della Calcolabilità

Algoritmi e Complessità

Le parole dell informatica: algoritmo e decidibilità

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

Problemi decidibili, semidecidibili, indecidibili

(ETC) A.A. 2016/17 MATRICOLE DISPARI

T1: Logica, discorso e conoscenza. Logica classica

Teoria della computazione

Il concetto di calcolatore e di algoritmo

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

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

Macchine di Turing e Calcolabilità

Teoria della complessità

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

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Macchine di Turing e Calcolabilità

Sommario. martedì 23 ottobre 2012

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

Capitolo 8: Teoria della complessitá

Teoria della complessità

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

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

Principio di composizione delle MT

Corso di Linguaggi di Programmazione

Calcolo e simboli: la scienza digitale A.M. Turing a cent anni dalla nascita

PROGRAMMAZIONE I A.A. 2018/2019

Proposte di approfondimenti

La matematica negli algoritmi. Maat: dea egizia dell ordine. Liber Abaci 1202

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:

ALFABETO. Informatica Prof. Nicola BRUNO

Fondamenti d Informatica. Barbara Re, Phd

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

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

Modelli e complessità di calcolo

Informatica. Simone Martini. Corso di Laurea in Matematica, primo anno. a.a Dipartimento di Informatica Scienza e Ingegneria

Corso di Linguaggi di Programmazione

La nozione di algoritmo

Concetti di base sugli automi e sui linguaggi formali

Capitolo 9: Trattabilitá e intrattabilitá dei problemi

Aniello Murano Problemi non decidibili e riducibilità

La Teoria della Complessità Computazionale fa un passo avanti:

Programmazione ( Cenni storici sulle origini dell informatica )

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

Sommario. Complessità di tempo e spazio di una TM che si ferma sempre.

sulta tutt altro che amichevole nei confronti dei non addetti ai lavori 1 tralasciare i dettagli tecnici non strettamente necessari alla comprensione

I Limiti della computazione

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

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Macchine di Turing e Calcolabilità

Macchine di Turing e Calcolabilità

Informatica Teorica. Macchine a registri

Complessità Computazionale

Algoritmo. Calcolabilità

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

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

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

UNA GERARCHIA DI MACCHINE

Automi, Complessità e Calcolabilità Prof. E. Fachini

Complessità Strutturale e NP-Completezza

Fondamenti di Informatica

Analisi Numerica: Introduzione

La tesi di Church-Turing e

Teoria della Complessità Concetti fondamentali

Fondamenti di Informatica

Transcript:

Conclusioni Informatica@Matematica Simone Martini a.a. 2014-2015 1 / 62

Ricominciamo dall inizio... 1 Presentazioni 2 Cos è l informatica 3 Informatica @ Matematica? 4 Il corso 2 / 62

Parte I Il corso 3 / 62

Docenti Docenti Simone Martini, responsabile Davide Bresolin, docente di un modulo Sara Zuppiroli, tutor in laboratorio Matteo Candita, Roberta Conte, Valentina Guerra a tutti GRAZIE! 4 / 62

Libro di testo Allen B. Downey Think Python: How to Think Like a Computer Scientist O Reilly Media, 2012. ISBN 978-1449330729. FreeBook: PDF e HTML gratuiti Una versione adattata a Python v. 3 Una traduzione italiana (di una vecchia edizione) 5 / 62

Altro materiale Dispense su Python: incomplete, sul sito, in divenire Tutti gli esercizi d esame, con una soluzione Documentazione di Python: www.python.org Quello che abbiamo visto a lezione è sufficiente, ma è incoraggiata la documentazione personale indipendente 6 / 62

Il corso Programma Cos è l informatica: Calcolo e macchine astratte La macchina Python Costrutti principali; strutture dati I limiti del calcolabile In parallelo while True : esercizi Laboratorio Progetto 7 / 62

L esame Progetto: Problema non banale, risolto a casa e in lab Prova scritta 8 / 62

Cosa verificheremo Trovare un algoritmo per semplici problemi Descrivere quell algoritmo Le competenze Descrivere quell algoritmo in un linguaggio di programmazione Conoscere una porzione significativa di Python no: classi ed ereditarietà Saper usare Python su uno specifico sistema operativo Conoscere il contesto: calcolo, macchine, limitazioni Esprimersi in un linguaggio tecnicamente accurato 9 / 62

Parte II Cos è l informatica? 10 / 62

Vorremmo... Saper usare le applicazioni Tre personæ Applicazioni Tecnologia Scienza insieme Al contesto e ai fondamenti scientifici nel quale esse si collocano Per limitare l obsolescenza Per una piena cittadinanza 11 / 62

Concetti Informatica: Studia i procedimenti effettivi di elaborazione dell informazione. Contribuisce alle scienze con concetti propri, quali: algoritmo (che viene dalla matematica... ) effettività complessità computazionale gerarchia di astrazione informazione! Condivide con altre scienze: problem solving interazione comunicazione 12 / 62

Ma soprattutto... Mette a disposizione strumenti linguistici Affinché ciò sia possibile e semplice Cioè evocativo, sintetico, economico Nella pluralità feconda dei linguaggi 13 / 62

Parte III Perché Informatica a Matematica? 14 / 62

Informatica a Matematica? 1 Fondamenti: cosa significa calcolare? 2 Matematica costruttiva 3 Analisi Numerica e Ottimizzazione 4 Il calcolatore nella pratica matematica 15 / 62

Cosa significa calcolare? Alan M. Turing (1912 1954) nato: 23 giugno 1912 OBE, Order of the British Empire FRS, Fellow of the Royal Society Criptoanalista Matematico Logico 16 / 62

Numeri (reali) calcolabili Esistono numeri che non sono calcolabili? Cioè: la cui parte decimale non è ottenibile con un procedimento meccanico deterministico? Esistono funzioni che non sono calcolate da nessun programma? 17 / 62

Informatica@Matematica, 1 Introdurremo e praticheremo un linguaggio universale per la descrizione del calcolo. Di ogni calcolo. Di ogni algoritmo. La dimestichezza con il concetto di calcolabile è un requisito culturale necessario per ogni matematico moderno: ricercatore, insegnante, consulente, ecc. 18 / 62

Il problema della fermata non è decidibile. 19 / 62

Piastrelle di Wang 20 / 62

Piastrellatura (tiling) di Wang 21 / 62

Un solo tipo di piastrella Una piastrellatura semplice periodica 22 / 62

Piastrellature non periodiche 23 / 62

E le relative piastrelle Permettono solo piastrellature non periodiche. 24 / 62

Un problema non decidibile Piastrelle di Wang! Dato un insieme di piastrelle, decidere se possono piastrellare il piano 25 / 62

Ma allora? Ricerca di specifiche soluzioni. Non ci sono metodi generali 26 / 62

Altri problemi indecidibili Piastrellatura di Wang Problema della fermata Equivalenza dei programmi Decimo problema di Hilbert: Decidere se un equazione a coefficienti interi ha una soluzione intera Entscheidungsproblem: Decidere se una qualunque formula logica è un teorema 27 / 62

On computable numbers. Leggiamo assieme... Computing is [... ] done by writing [... ] symbols on paper We may suppose this paper is divided into squares The behaviour of the computer [... ] is determined by the symbols which he is observing, and his state of mind operations [are] split up into simple operations in a simple operation not more than one symbol is altered 28 / 62

On computable numbers, 2 Leggiamo assieme... The most general single operation must therefore be taken to be one of the following: 1 A possible change of symbol together with a possible change of state of mind; 2 A possible change of observed squares, together with a possible change of state of mind. The operation actually performed is determined [... ] by the state of mind of the computer and the observed symbols. In particular, they determine the state of mind of the computer after the operation is carried out. 29 / 62

Un commento un po acido Turing s machines : These machines are humans who calculate. [L. Wittgenstein, Remarks on the Philosophy of Psychology, Vol. 1, Blackwell, Oxford, 1980.] 30 / 62

La macchina di Turing Le quintuple: (q, a, q, b, D), con D {,, } 31 / 62

La macchina di Turing: esempio 1 2 7 3 + 2 1 8 + 1 1 = 0 2 Una quintupla: (q, a, q, b, D): 1 q: ricordo parziale 3 2 a: vedo 2 3 q : ricordo parziale 5 4 b: lascio invariato 2 5 D = : mi sposto una casella in basso 32 / 62

La macchina di Turing: esempio 1 2 7 3 + 2 1 8 + 0 1 1 = 0 2 Una quintupla: (q, a, q, b, D): 1 q: ricordo parziale 5 2 a: vedo casella vuota 3 q : ricordo parziale 5 4 b: scrivo 0 5 D = : mi sposto una casella in basso 33 / 62

Alfabeto finito Stati interni in numero finito Operazioni: elementare symbol pushing La macchina di Turing, 2 Decisioni basate su informazioni locali, dunque finite Nastro potenzialmente infinito In una singola computazione: usata una porzione finita del nastro Descrizione finita di di una macchina (e del suo programma ) delle configurazioni di una singola computazione Dunque maneggiabile essa stessa da una macchina. 34 / 62

Una macchina che calcola Stato interno Posizione della testina Configurazione del nastro Computazione: successione di configurazioni Se non vi sono quintuple applicabili, la macchina si ferma Computazioni finite e infinite 35 / 62

Configurazioni The operation [... ] is determined [... ] by the state of mind of the computer and the observed symbols. In particular, they determine the state of mind of the computer after the operation is carried out. Una configurazione: simboli sul nastro (in numero finito!) posizione della testina stato interno Una mossa: transizione da una configurazione ad un altra determinata dalla configurazione precedente e le quintuple Il calcolo è completamente meccanico: è eseguibile da un computer! 36 / 62

La MdT universale 37 / 62

La macchina universale Un unica macchina, U, simula tutte le altre Il suo programma cablato è un programma di emulazione della macchina che è il suo dato U è un calcolatore a programma memorizzato L intuizione di von Neumann 38 / 62

La tesi di Church Ogni funzione intuitivamente calcolabile, è calcolabile da una MdT 39 / 62

Conseguenze I risultati di indecidibilità sono assoluti, non dipendono dallo specifico strumento di calcolo usato. 40 / 62

Outline 1 Risorse limitate 41 / 62

Limiti nelle risorse Un problema può essere risolubile... ma richiedere: più tempo della vita dell universo più spazio di lavoro del diametro stimato dell universo più messaggi scambiati degli atomi dell universo 42 / 62

Complessità computazionale Classificare i problemi in base alle risorse che sono necessarie; intrinsicamente; in funzione della dimensione dei dati 43 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 44 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 45 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 46 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 47 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 48 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 49 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 50 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 51 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 52 / 62

Esempi sort: Ordinare n numeri, sfruttando confronti tra loro richiede n log n confronti shortest path: Determinare il percorso minimo tra due città, assumendo distanze non negative richiede almeno un tempo polinomiale nel numero delle città (eg, n 2, algoritmo di Dijkstra) primes: Determinare se un numero n è primo richiede tempo polinomiale nel numero di cifre di n weak monadic second order theory of successor: richiede tempo esponenziale nella lunghezza della formula travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta richiede?? 53 / 62

Crescita delle funzioni 54 / 62

Problemi (in)trattabili Trattabile = polinomiale L escalation esponenziale vanifica l escalation tecnologica 55 / 62

Problemi (in)trattabili Trattabile = polinomiale L escalation esponenziale vanifica l escalation tecnologica 56 / 62

Problemi NP-completi Di alcuni problemi non conosciamo una limitazione intrinseca L unico metodo che conosciamo è di forza bruta: esponenziale Ma non abbiamo dimostrazioni che non esistono algoritmi polinomiali Sappiamo riconoscere in modo efficiente se una soluzione candidata è davvero una soluzione travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta 57 / 62

Problemi NP-completi Di alcuni problemi non conosciamo una limitazione intrinseca L unico metodo che conosciamo è di forza bruta: esponenziale Ma non abbiamo dimostrazioni che non esistono algoritmi polinomiali Sappiamo riconoscere in modo efficiente se una soluzione candidata è davvero una soluzione travelling salesman: Date n città determinare un percorso (ciclico) che le tocca tutte una ed una sola volta 58 / 62

Un problema NP-completo Piastrelle di Wang! Dato un insieme di piastrelle, decidere se possono piastrellare una porzione n m di piano 59 / 62

Problemi di difficile classificazione Isomorfismo di grafi Fattorizzazione di un numero Non conosciamo algoritmi polinomiali, ma non sappiamo neppure classificarli come NP-completi 60 / 62

Ma quant è difficile NP? NP = Polytime? 61 / 62

S I P A R I O 62 / 62