La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Giorgio Gambosi Dipartimento di Matematica Centro di Ricerca e Formazione Permanente per lInsegnamento delle Discipline Scientifiche Università di Roma.

Presentazioni simili


Presentazione sul tema: "Giorgio Gambosi Dipartimento di Matematica Centro di Ricerca e Formazione Permanente per lInsegnamento delle Discipline Scientifiche Università di Roma."— Transcript della presentazione:

1 Giorgio Gambosi Dipartimento di Matematica Centro di Ricerca e Formazione Permanente per lInsegnamento delle Discipline Scientifiche Università di Roma Tor Vergata 23 gennaio 20141

2 Sono convinto che l'informatica abbia molto in comune con la fisica. Entrambe si occupano di come funziona il mondo a un livello abbastanza fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del computer, sei tu il creatore. Controlli -- almeno potenzialmente -- tutto ciò che vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala. Linus Torvalds Linformatica ha a che fare con i computer non più di quanto lastronomia abbia a che fare con i telescopi. Edsger W. Dijkstra 23 gennaio 20142

3 Problemi di immagine dellinformatica 23 gennaio Disciplina culturalmente povera rispetto a hard sciences lo stesso avviene per scienze rispetto a materie umanistiche tecnologia, non scienza informatica come programmazione assenza (irrilevanza) di fondamenti concettuali modello garage programming

4 Problemi di immagine 23 gennaio Informatico = nerd, smanettone Non è una professione di successo Problema comune con le altre discipline scientifiche scienziato = secchione Grande fatica, scarso ritorno Fondamenti poco importanti

5 Linformatica nella scuola 23 gennaio Apprendimento strumentale: informatica = computer Scuola media: utilizzo strumenti Scuola secondaria superiore: al massimo, programmazione In generale, informatica vista come funzionale ad altre discipline Produzione documenti, presentazioni, piccoli programmi di simulazione, fogli elettronici

6 Linformatica nella scuola 23 gennaio Riforma Gelmini Informatica soltanto nel Liceo scientifico, opzione scienze applicate Impostazione tecnologica del programma

7 Scarso appeal della matematica 23 gennaio Materia difficile Scarso stimolo concettuale per gli studenti Non sembra avere applicazioni immediatamente significative

8 Test PISA, TIMSS, INVALSI 23 gennaio Insufficienti risultati a partire dalla scuola media (K8) Soprattutto relativamente alle competenze e agli aspetti procedurali e di problem solving Difficoltà di descrizione dei procedimenti di soluzione La matematica insegnata sembra troppo poco attenta agli aspetti di applicazione delle conoscenze ed alla risoluzione (algoritmica) di problemi

9 Cosa fare? 23 gennaio Come valorizzare linformatica? Come rendere più gratificante la matematica? Sinergie: i concetti e i metodi fondamentali dellinformatica sono utili nellinsegnamento della matematica (e non solo)

10 Come rendere più gratificante la m a t e m a t i c a ? 23 gennaio Maggiore attenzione allutilizzo di metodi e concetti Modellazione matematica Computazione Risoluzione di problemi Pensare in modo computazionale

11 Come valorizzare linformatica? 23 gennaio Combattere idee sbagliate Dare una definizione chiara della disciplina Come corpus concettuale fondamentale Rilevanza sullacquisizione di un modo di pensare (rispetto a competenze specifiche)

12 Idee sbagliate 23 gennaio CS = programmazione CS = alfabetizzazione informatica (es. ECDL) CS = strumento per lo studio di altre discipline CS = non disciplina scientifica CS = per maschi

13 Come valorizzare linformatica? 23 gennaio Informatica intesa come disciplina inerente: La modellizzazione La rappresentazione e la gestione dellinformazione La risoluzione procedurale di problemi La programmazione ha un ruolo del tutto ancillare

14 Come valorizzare linformatica? 23 gennaio Distinzione tra informatica e computer Avvicinamento allinformatica non incentrato su computer Unplugged CS Presto: scuola elementare, scuola media Presenza trasversale (ad es. relazioni con linguistica)

15 Come valorizzare linformatica? 23 gennaio Programmazione come formalizzazione di una procedura algoritmica Utilizzo di ambienti di programmazione di tipo educational Storytelling (Alice, Scratch) Test e verifica di correttezza come sfida mentale

16 Concetti chiave 23 gennaio Informazione, codifica e organizzazione Algoritmi e loro implementazione Astrazioni concettuali Correttezza di una procedura Efficienza

17 Ruolo dei docenti 23 gennaio Formazione insegnanti fondamentale Percezione sbagliata della CS trasmessa da docenti a studenti Studenti validi orientati verso altri corsi di studio Chi insegna cosa? Ruolo dei laureati in informatica e in ingegneria informatica

18 Cosa fare? 23 gennaio Presenza della comunità accademica per la definizione di programmi e obiettivi (non solo per informatica) Collaborazione scuola-università Non finalizzata alle sole immatricolazioni Iniziative nazionali (olimpiadi informatica) Lauree scientifiche

19 Matematica 23 gennaio Definisce un linguaggio Esprime situazioni e problemi reali in un formalismo rigoroso (modelli) definisce proprietà che risultano in possibili modalità di risoluzioni dei problemi

20 Rimane una questione aperta 23 gennaio quanto è effettivamente praticabile risolvere un problema? quanto devo calcolare? Praticabile: quante risorse di calcolo mi servono? Tempo: il tempo è una risorsa

21 Risolubilità effettiva di problemi. Esempio: TSP 23 gennaio province in Italia, per ogni coppia tempo stimato di trasferimento Voglio partire da Roma e tornare a Roma attraverso tutti i capoluoghi nel minor tempo possibile Soluzione semplice: prova tutti i percorsi e scegli il più veloce percorso=permutazione dei rimanenti 109 capoluoghi

22 Risolubilità effettiva di problemi. Esempio: TSP 23 gennaio sono 109! permutazioni, circa 1.45x10^176 permutazioni supponiamo di poter esaminare un percorso al minuto: servono circa 3x10^160 miliardi di anni! Idea! Potrei usare un computer! un percorso ogni miliardesimo di secondo servono circa 5x10^150 miliardi di anni

23 Cosa fare? 23 gennaio Devo trovare un modo più efficiente di risolvere il problema Ma esiste un modo più efficiente? Magari esiste un modo efficiente per trovare un percorso molto vicino al migliore, ma non proprio quello

24 Questioni 23 gennaio Dato un problema: Quanto efficientemente è possibile risolverlo? In che modo? Possiamo trovare modi efficienti per risolverlo più o meno? Come descriviamo il problema e le sue soluzioni? Come descriviamo il modo di risolverlo? E possibile, in assoluto, risolvere il problema in generale?

25 Obiettivi dellinformatica 23 gennaio soluzione efficiente di problemi mediante procedure generali rappresentazione efficiente dellinformazione

26 Algoritmi 23 gennaio Sequenze di istruzioni elementari (modello di calcolo) di composizione Modelli di calcolo istruzioni possibili loro significato in termini di esecuzione

27 Algoritmi 23 gennaio Linguistica: Algoritmi come testi di lunghezza finita Eseguibili da un agente (modello di calcolo): esecuzione potenzialmente infinita Generalità della soluzione funzionano su input diversi (calcolano una funzione) input ammissibili codifica (ancora linguistica)

28 Problema e algoritmo 23 gennaio Problema: Insieme input ammissibili Output definito da funzione dellinput Soluzione algoritmica Input ammissibile Output richiesto Algoritmo

29 Tipi di problemi 23 gennaio P1 input, J,K interi output J^2+3K problema aritmetico, esecuzione di durata costante (sotto qualche ipotesi)

30 Tipi di problemi 23 gennaio P2 input K intero output somma dei primi K interi aritmetico, la durata dellesecuzione dipende dallinput

31 Tipi di problemi 23 gennaio P3 input K intero output Y se K è primo, N se composto problema di decisione, output non numerico

32 Tipi di problemi 23 gennaio P4 Insieme di N parole Le N parole in ordine alfabetico non numerico

33 Tipi di problemi 23 gennaio P5 input due testi output parole comuni non numerico

34 Tipi di problemi 23 gennaio P6 input carta stradale, 2 città output descrizione tragitto più breve tra le due città problema di ottimizzazione, input strutturato

35 Tipi di problemi 23 gennaio P7 input carta stradale, N città, K intero output Y se esiste un percorso tra tutte le città di lunghezza al più K, N altrimenti problema di ottimizzazione visto come problema di decisione

36 Tipi di problemi 23 gennaio P8 input, posizione degli scacchi output Y se esiste una sequenza di mosse per il bianco che gli fa vincere la partita, N altrimenti problema di decisione relativo ad un gioco

37 Tipi di problemi 23 gennaio P9 input programma P, 2 variabili X (di input), Y, K intero output 2K se P pone sempre Y=X^2, 3k altrimenti riguarda il comportamento di un programma osservato

38 Tipi di problemi 23 gennaio decisionali di ricerca di ottimizzazione In molti casi difficile enunciare esattamente output difficile: scacchi: come definire la mossa migliore input complesso: problema di distribuzione (20000 giornali, 1000 rivenditori, 100 città, 50 furgoni) insieme dei costi, funzione di costo previsioni del tempo (input?, output?): codifica di input e output

39 Risolubilità 23 gennaio Problema risolubile se esiste un algoritmo che deriva loutput corretto per ogni input ammissibiledipendenza dal modello di calcolo Problema trattabile se è risolubile ed esiste un algoritmo che lo risolve in modo efficiente (? Da definire)

40 I computer 23 gennaio Sono una implementazione di un particolare modello di calcolo Implementazione realizzata per mezzo di circuiti elettronici Modello di calcolo molto semplice: sa fare poche cose elementari ==> è complicato descrivere un algoritmo per essere eseguito da questo modello di calcolo Perché li usiamo? Perché limplementazione elettronica del modello di calcolo fornisce operazioni molto veloci da eseguire

41 Linguaggi di programmazione 23 gennaio Modelli di calcolo più articolati Implementazione realizzata mediante software eseguito dal modello di calcolo del computer Modello di calcolo più potente: sa fare a livello elementare più cose ==> è più semplice descrivere un algoritmo Perché li usiamo? Sono un buon compromesso tra semplicità di descrizione di algoritmi e velocità di esecuzione

42 Comunicazione 23 gennaio Definizione di algoritmi intesa come comunicazione Destinatario: agente di calcolo, conosce la semantica, sa come eseguire i passi dellalgoritmo Messaggio: descrizione dellalgoritmo, programma

43 Linguistica 23 gennaio Algoritmi (e programmi) come frasi di un linguaggio Sintassi: definisce cosa è corretto dal punto di vista di un insieme di regole di costruzione di frasi Semantica: definisce il significato di una frase (in termini di esecuzione) Modello di calcolo (linguaggio di programmazione): insieme delle frasi (programmi) corretti che posso scrivere

44 La macchina di Turing 23 gennaio Modello di calcolo particolarmente semplice Nastro di memoria Testina di lettura/scrittura Stato interno Funzione di transizione

45 La macchina di Turing 23 gennaio Esempio: un algoritmo di copia

46 La tesi di Church-Turing 23 gennaio Un problema risolubile da un algoritmo su un qualche modello di calcolo è risolubile da una macchina di Turing La macchina di Turing è il modello di calcolo più potente Esistono modelli di calcolo meno potenti Automi a stati finiti

47 Algoritmi sbagliati 23 gennaio Su qualche input, viene fornito un output scorretto Potrei accettarlo, se succede raramente (valutazione probabilistica) A volte, non termina mai

48 Un problema, tanti algoritmi 23 gennaio Ricerca in un insieme Ricerca sequenziale: quanti passi? tempo peggiore, tempo medio, tempo migliore Ricerca a caso (1-1/n)^(k-1)1/n probabilità in k passi, media n Ci potrei mettere di meno? No, come minimo li devo guardare

49 Un problema, tanti algoritmi 23 gennaio Ricerca in un insieme Ipotesi aggiuntiva: insieme ordinato Ricerca binaria tempo peggiore lg n Ci potrei mettere di meno? No (è possibile mostrarlo)

50 Proporzionalità nella valutazione 23 gennaio Consideriamo la proporzione tra il numero di passi (il tempo) e la dimensione dellistanza di problema Semplificazione: le istanze di stessa dimensione non richiedono lo stesso tempo Caso peggiore (caso medio)

51 Un problema, tanti algoritmi 23 gennaio Ordinamento di un insieme Generazione permutazioni e verifica sequenza ordinata n! permutazioni, circa (n/2.7)^n, per ognuna n passi per verificare che sia ordinata Selezione/inserimento: n^2 Fusione: nlgn Ci potrei mettere di meno? Sicuramente non meno di n (li devo guardare tutti): lower bound Sicuramente non più di nlgn (ce la so fare, così): upper bound Gap di complessità: o abbasso lu.b. (trovo algoritmi più efficienti) o alzo il l.b. (faccio una analisi più precisa) Vale il secondo caso: mi serve almeno nlgn (se il mio algoritmo è basato su confronti)

52 Un problema, tanti algoritmi 23 gennaio Torri di Hanoi Soluzione iterativa: 2^n-1 mosse ad esempio, n=30, una mossa al minuto, 2000 anni circa Soluzione ricorsiva: 2^n-1 mosse Ci potrei mettere di meno? No (è stato mostrato) In effetti, loutput è lungo 2^n-1 (elenco delle mosse) 1 secondo per mossa:

53 Un problema, tanti algoritmi 23 gennaio Sistemi logici formali sullaritmetica affermazioni del tipo se P è vera allora Q è vera P,Q proposizioni su interi 0,1 con = e +, oltre a operatori logici (aritmetica di Presburger) ad esempio se X=1 allora non esiste Y tale che X=Y+Y P: X=1 Q: non esiste Y tale che X=Y+Y Problema: data una affermazione, stabilire se è vera Qualunque algoritmo richiede tempo (numero di passi) almeno 2^2^n (n lunghezza dellaffermazione) n=1 --> 4; 2 --> 16 ; 3 --> 256; 4 --> 65536;...; 9 --> 1.3x10^154; 10 --> 1.8x10^308

54 Complessità esponenziale e polinomiale 23 gennaio N=2N=5N=10N=20N=50N=100N=1000 N2 s5 s10 s20 s50 s2 m17 m N lgN2 s11 s33 s86 s5 m11 m2h 45 m N^24 s25 s1 m 40 s6 m41 m2h 45 m11 g N^38 s2 m16 m2 h1.5 g11 g31 a 2^n4 s32 s17 m12 g35 M anni 4x10^22 anni 3x10^293 anni Età delluniverso: 14x10^9 anni

55 Complessità esponenziale e polinomiale 23 gennaio La tecnologia aiuta poco Aumenti della velocità di ordini di grandezza fanno diventare trattabili istanze poco più grandi

56 Complessità esponenziale e polinomiale 23 gennaio Identifichiamo trattabilità con tempo di soluzione polinomiale Correlazione polinomiale tra modelli di calcolo (tesi di Church-Turing) Limiti Costanti moltiplicative Grado elevato

57 Problemi polinomiali 23 gennaio MCD Ricerca in un insieme Massimo in un insieme Ordinamento Ricerca in un labirinto Percorso minimo Ciclo euleriano 2-soddisfacibilità nel calcolo proposizionale …

58 Zona intermedia 23 gennaio La classicazione dei problemi ha in realtà una zona grigia localizzata tra i problemi trattabili e quelli intrattabili Sudoku Si procede per tentativi-errori-ritorno indietro (backtrack)

59 Zona intermedia 23 gennaio Tempo di soluzione esponenziale, al più 9^n (n è il numero di caselle vuote, n<=9x9) Avendo N cifre, tabella di dimensioni NxN Al più N^(N^2)=2^(N^2*log N) Per verificare se una possibile soluzione (assegnazione di interi a caselle) è corretta, basta tempo proporzionale a N Trovare una soluzione sembra difficile Verificare una soluzione è semplice

60 Problemi verificabili 23 gennaio Moltissimi problemi con le stesse caratteristiche Verificabili in tempo limitato (polinomiale) Problemi di decisione Verifica effettuata su istanza + certificato Certificato: informazione aggiuntiva, di lunghezza limitata (polinomiale) Tipicamente, la soluzione stessa Algoritmo di verifica: esamina istanza + certificato e stabilisce che listanza è positiva In tempo polinomiale E se listanza è negativa?

61 Problemi verificabili 23 gennaio Un problema risolubile in tempo polinomiale è anche verificabile in tempo polinomiale Certificato vuoto P è linsieme dei problemi risolubili in tempo polinomiale NP è linsieme dei problemi verificabili in tempo polinomiale Esistono problemi in NP che non si sa risolvere in tempo polinomiale

62 Artù, Merlino e la tavola rotonda 23 gennaio Artù: ha intelligenza limitata Merlino: infinitamente intelligente Tavola rotonda: ha N posti I cavalieri (N) non vogliono sedersi vicino ai loro rivali E possibile disporre i cavalieri intorno alla tavola? Difficile da risolvere: Merlino può farlo, Artù no Possibile: Merlino può convincere Artù (gli mostra la soluzione) Non possibile: come può Merlino convincere Artù?

63 Esempi di problemi NP 23 gennaio Numero composto Isomorfismo tra grafi Colorazione di grafi Percorso hamiltoniano TSP 3 soddisfacibilità nel calcolo proposizionale Bisaccia Sequenziamento di attività Copertura di nodi Insieme indipendente …

64 Problemi NP 23 gennaio Non sappiamo risolvere i problemi precedenti in modo efficiente (polinomiale) Sono tutti verificabili in modo efficiente (polinomiale) Per quasi tutti, non si sa verificare in modo efficiente il problema complementare (istanze positive e negative scambiate): eccezione, numero composto Alcuni sono simili a problemi in P (2-SAT e 3-SAT, percorso euleriano e hamiltoniano)

65 Trasformazione di problemi 23 gennaio Una istanza di un problema può essere trasformata in una istanza equivalente di un altro problema in modo efficiente (polinomiale) Esempio:Copertura con nodi e Insieme indipendente In G=(V,E), un insieme S di nodi copre tutti gli archi se e solo se V-S è un insieme indipendente Istanza di Insieme indipendente: G=(V,E), K Trasformata in istanza di Copertura con nodi: G=(V,E), |V|-K Se so risolvere CN n modo efficiente posso risolvere in modo efficiente II

66 Problemi NP-completi 23 gennaio Esistono problemi per cui esistono trasformazioni efficienti delle istanze da qualunque problema NP Se so risolvere in modo efficiente uno qualunque di questi problemi so risolvere tutti i problemi NP Sono i problemi su cui conviene concentrare gli sforzi: se un problema NP-completo è in P, allora P=NP I problemi citati sopra (eccetto i primi due) sono NP- completi

67 La questione P=NP? 23 gennaio Il maggiore problema aperto in informatica Uno dei maggiori nellintera matematica Se P=NP (improbabile), grandi conseguenze pratiche Problemi di ottimizzazione intera Ricerca operativa: gestione risorse, logistica, sequenziamento, allocazione risorse Biologia: struttura proteine Crittografia: indebolimento schemi

68 Problemi di ottimizzazione 23 gennaio Sono sicuramente non più semplici dei corrispondenti problemi di decisione Spesso, sono equivalenti (polinomialemente): se so risolvere efficientemente il problema di decisione, so risolvere efficientemente il problema di ottimizzazione NP-completi NP-hard

69 Ma esistono sempre algoritmi di soluzione? 23 gennaio Quanti sono gli algoritmi? Un algoritmo è descritto da una sequenza di simboli da un alfabeto Può essere interpretato come codifica di un intero (in una base opportuna) Gli algoritmi sono non più degli interi: infiniti numerabili Quanti sono i problemi? Consideriamo i soli problemi di decisione su interi Un problema è descritto da una sequenza infinita di simboli 0,1 associati ai vari interi; ogni sequenza infinita corrisponde a un problema I problemi sono almeno pari ai reali: infiniti non numerabili

70 Problemi senza algoritmi 23 gennaio Dimostrazione più precisa per diagonalizzazione Esistono (infinitamente) più problemi che algoritmi Esistono infiniti problemi non risolubili Lo stesso argomento vale se consideriamo la descrizione di un problema Esistono infiniti problemi che non possono essere descritti Ci sono più cose in cielo e terra, Orazio, di quante ne sogni la tua filosofia, Amleto 1,5

71 Problemi non risolubili 23 gennaio Problema della fermata Dato un programma P e un suo input X, lesecuzione di P su X si fermerà o continuerà indefinitamente? In generale, P eseguirà una qualche azione specifica (restituirà un valore, porrà una variabile a un valore, etc.)? Il problema non è risolubile in modo algoritmico Vale un argomento di auto-referenzialità: Paradosso del mentitore Paradosso del barbiere Teorema di incompletezza di Godel

72 Problema della fermata 23 gennaio Termina(P,X) determina se P si ferma su input X Paradosso(P) While (Termina(P,P)); Paradosso(P) termina se e solo se Termina(P,P) è falso; quindi solo se P non termina su input P Paradosso(Paradosso) termina se e solo se Paradosso non termina su input Paradosso: contraddizione Termina(P,X) non esiste

73 Altre tematiche interessanti 23 gennaio Rappresentazione e gestione dellinformazione Codici di compressione e di correzione Teoria dellinformazione Strutture di dati Linguistica Grammatiche generative Automi di riconoscimento Analisi lessicale e sintattica Programmazione e linguaggi Paradigmi di programmazione


Scaricare ppt "Giorgio Gambosi Dipartimento di Matematica Centro di Ricerca e Formazione Permanente per lInsegnamento delle Discipline Scientifiche Università di Roma."

Presentazioni simili


Annunci Google