DA LEIBNIZ AL MAGO MERLINO L evoluzione della computabilità in Matematica ed in Informatica



Documenti analoghi
Appunti sulla Macchina di Turing. Macchina di Turing

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

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

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

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

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Dimensione di uno Spazio vettoriale

Capitolo 2. Operazione di limite

OSSERVAZIONI TEORICHE Lezione n. 4

4 3 4 = 4 x x x 10 0 aaa

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.

Dispense di Informatica per l ITG Valadier

I libri di testo. Carlo Tarsitani

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

risulta (x) = 1 se x < 0.

Corso di Matematica per la Chimica

Complessità computazionale degli algoritmi

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

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

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali

LE FUNZIONI A DUE VARIABILI

II.f. Altre attività sull euro

Il calcolo letterale per risolvere problemi e per dimostrare

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

Lezione 8. La macchina universale

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

La matematica del gioco. Il gioco della matematica

Matematica generale CTF

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

3 GRAFICI DI FUNZIONI

Soluzione dell esercizio del 2 Febbraio 2004

Calcolo delle probabilità

Probabilità discreta

Soluzione di equazioni quadratiche

Corrispondenze e funzioni

La distribuzione Normale. La distribuzione Normale

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S A. Pisani, appunti di Matematica 1

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

ESEMPIO 1: eseguire il complemento a 10 di 765

1. PRIME PROPRIETÀ 2

Matematica in laboratorio

Informatica per le discipline umanistiche 2 lezione 14

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

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Origini e caratteristiche dei calcolatori elettronici

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

UNIVERSITÀ DEGLI STUDI DI TERAMO

4. Operazioni elementari per righe e colonne

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

G3. Asintoti e continuità

Soluzione degli esercizi sul moto rettilineo uniformemente accelerato

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

VINCERE AL BLACKJACK

CONSIGLI PER POTENZIARE L APPRENDIMENTO DELLA LINGUA

Esercizi sul moto rettilineo uniformemente accelerato

Il principio di induzione e i numeri naturali.

L analisi dei dati. Capitolo Il foglio elettronico

Algoritmi e Complessità

4. Operazioni aritmetiche con i numeri binari

1 Giochi a due, con informazione perfetta e somma zero

I sistemi di numerazione

SPC e distribuzione normale con Access

Parte 2. Determinante e matrice inversa

Grandezze fisiche e loro misura

Pierluigi Graziani Università di Urbino

Per poter affrontare il problema abbiamo bisogno di parlare di probabilità (almeno in maniera intuitiva). Analizziamo alcune situazioni concrete.

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

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

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Un gioco con tre dadi

Prodotto libero di gruppi

1. Limite finito di una funzione in un punto

Elementi di informatica

Il funzionamento di prezzipazzi, registrazione e meccanismi

I PROBLEMI ALGEBRICI

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Elementi di Psicometria con Laboratorio di SPSS 1

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Capitolo 25: Lo scambio nel mercato delle assicurazioni

Breve storia del calcolo automatico

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

A.S CLASSE PRIMA SCUOLA PRIMARIA D ISTITUTO COMPETENZA CHIAVE EUROPEA DISCIPLINA

WORD 97 SCRIVERE UNA TESI DI LAUREA

Modulo didattico sulla misura di grandezze fisiche: la lunghezza

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Ricapitoliamo. Ricapitoliamo

L infinito nell aritmetica. Edward Nelson Dipartimento di matematica Università di Princeton

Sistemi Web! per il turismo! - lezione 3 -

Più processori uguale più velocità?

Alessandro Pellegrini

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

CURRICULUM SCUOLA PRIMARIA MATEMATICA

Calcolo delle Probabilità

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

IL MODELLO CICLICO BATTLEPLAN

PRIMAVERA IN BICOCCA

Transcript:

DA LEIBNIZ AL MAGO MERLINO L evoluzione della computabilità in Matematica ed in Informatica Carlo Toffalori San Pellegrino Terme, 3 settembre 2007 L era moderna - entusiasmo per il calcolatore, - fiducia nella sua capacità di risolvere non solo i calcoli matematici, ma tutti i problemi che si possono opportunamente formalizzare. Un illustre precursore Gottfried Wilhelm Leibniz, 1666, Dissertatio de arte combinatoria : Calculemus ( calcoliamo! ). Un invito volto - non tanto a risolvere equazioni, - quanto a usare il calcolo astratto della ragione in ogni situazione, e anche nei rapporti umani. Passare dai ragionamenti complicati ai calcoli semplici, dai vocaboli di significato incerto e vago a caratteri determinati, Calcolo è qualunque notazione che rappresenti il ragionamento, quand anche non avesse alcun rapporto con i numeri. A questo scopo Leibniz propose l uso di - una lingua characteristica, cioè un linguaggio scientifico universale (come è quello matematico) - un calculus ratiocinator, un calcolo della ragione adeguato a sviluppare le proprie riflessioni. Si anticipavano così le moderne Intelligenza Artificiale e Deduzione Automatica. Un dubbio Si può calcolare tutto? Un dibattito scientifico negli anni 30 Church, Gödel, Turing, Kleene, - Davvero tutti i problemi si possono risolvere? - Che cosa si può calcolare? - Che significa calcolare? - Chi è delegato a calcolare? Chi, o che cosa, è il calcolatore?

Alcune motivazioni 1) David Hilbert, 1900, Congresso internazionale di Matematica a Parigi: propone 23 questioni chiave nella ricerca matematica del suo tempo, e tra queste Decimo problema di Hilbert. Determinare un algoritmo che sappia distinguere quali polinomi a coefficienti interi hanno anche radici intere e quali no. Qualche esempio 2x 4, x 2 + y 2 1, 2x 3, x 2 + y 2 + 1, - Tutti polinomi a coefficienti interi (anche se grado e numero di variabili cambiano). - I polinomi delle due diverse righe sono apparentemente simili. - Quelli della prima riga hanno anche radici intere (2, oppure (1, 0)); quelli della seconda riga no. Hilbert chiedeva una procedura capace di distinguere i primi polinomi dai secondi. La situazione negli anni 30: un qualche pessimismo sulla possibilità di trovare l algoritmo richiesto. 2) I Teoremi di Incompletezza di Gödel (1931) Kurt Gödel: ciò che è vero non è sempre umanamente dimostrabile, neppure in Matematica. Un sistema assiomatico umano sui numeri interi non sa accedere all intera verità. La Macchina di Turing Alan Turing, 1936-1937, propone un modello teorico di calcolatore ante litteram: la Macchina di Turing (si noti che il primo computer elettronico moderno, l ENIAC di John Von Neumann, risale al 1946). Le macchine calcolatrici del passato: Leibniz, Pascal, Babbage, Una scoperta di Gödel: qualunque informazione finita si può proporre nei termini di una stringa di 0 e 1. La macchina di Turing: come un moderno portatile, con - uno schermo potenzialmente infinito, - una tastiera che si può ridurre ai due simboli 0 e 1 e allo spazio vuoto _ per separare le stringhe, - un indicatore che segnala il simbolo in esame sullo schermo, - la possibilità di più opzioni o stati (normale, rosso, su fondo giallo, grassetto, ) per scrivere 0, 1 e _, e, soprattutto, un programma formato da istruzioni del tipo

(0, rosso) ( _, normale, destra) da intendersi: se vedi 0 nello stato rosso, allora scrivi _ al posto di 0, spostati a destra e guarda il nuovo simbolo nello stato normale. Per ogni coppia (0, rosso) al più una istruzione che la riguarda (dunque, 1 istruzione oppure nessuna istruzione). Come lavora la macchina: - lo schermo è occupato in partenza dall input (una stringa finita di 0 e 1, eventualmente interrotta da qualche _, e circondata prima e dopo da infiniti _ ); la macchina ne esamina il simbolo più a sinistra nello stato normale; - si manipola la stringa, applicando ed eseguendo le istruzioni che, passo per passo, la riguardano; - di fronte a una coppia senza istruzioni, ci si arresta, e quel che compare a quel punto sullo schermo è l output, cioè la risposta finale. La Tesi di Church e Turing (1936) E calcolabile esattamente quello che una Macchina di Turing sa calcolare. Su questa base, esistenza di problemi di Matematica privi di risposta: non hanno algoritmo che li risolva, perché non c è nessuna Macchina di Turing che li risolve. Un esempio: il Decimo Problema di Hilbert (soluzione negativa di Yuri Matijasevic, 1970, sulla base di precedenti idee di Martin Davis, Hilary Putnam, Julia Robinson). Un dubbio Quanto attuale e affidabile è la Tesi di Church-Turing oggi, 70 anni dopo la sua formulazione? Quanto attuale e affidabile è la Macchina di Turing oggi, 60 anni dopo l ENIAC, di fronte ai calcolatori delle ultimissime generazioni? Gli argomenti classici a favore della Tesi di Church-Turing - L assenza di controesempi La Tesi sarà da ritenersi superata non appena si troverà un problema che nessuna macchina di Turing sa risolvere, ma tuttavia ha un algoritmo di soluzione. Ma al momento niente di questo genere si è verificato. - L equivalenza con altri nozioni di computabilità Church, Herbrand-Gödel-Kleene, idearono altri approcci alla computabilità, rispettivamente λ- calcolabilità, ricorsività, ; tutti assai distanti per ispirazione tra loro e da quello di Turing; nonostante ciò, equivalenti, nel senso che un problema è calcolabile secondo Turing se e solo se lo è secondo Church, o secondo Herbrand-Gödel-Kleene, - Il proposito di simulare il comportamento della mente umana Per Turing, la sua Macchina si propone di imitare le computazioni del cervello umano (per la precisione, quello de l impiegato diligente).

La polemica di Gödel: secondo Gödel, il cervello umano ha capacità superiori, e possibilità di apprendere e rinnovarsi; un computer come la Macchina di Turing può sostituirlo solo nella computazione meccanica. Una parentesi: il rapporto uomo-macchina (ben prima di Blade Runner). Negli anni 50, Turing perfezionò un test per distinguere il robot dall uomo: agli albori dell Intelligenza Artificiale. Tornando all attualità della Tesi di Church-Turing Nuovi orizzonti della computabilità - nanocomputazione (la computazione dell enormemente piccolo) - computazione naturale (la computazione degli impulsi nervosi) - computazione quantistica (le nuove prospettive suggerite dalla computazione quantistica). In questi casi l informazione non è più riducibile ad una stringa finita di 0 e 1, e non avviene più soltanto in una successione finita deterministica di passi successivi. Pur tuttavia, se manteniamo questo contesto (informazioni racchiuse da stringhe finite di 0, 1; computazioni che si svolgono secondo sequenze di passi successivi), la Tesi di Church-Turing mantiene la sua validità. Una riserva: il costo di una computazione Computazioni ammissibili in teoria possono richiedere costi inaccessibili nella pratica. Una risposta che tarda anni, decenni o millenni, o richiede spese che è impossibile pagare, non è migliore di una risposta che non c è. Un risultato devastante di Fischer e Rabin (1974): esistono problemi di matematica che sono risolubili in teoria, ma per i quali i migliori algoritmi richiedono tempi almeno esponenziali di risposta (e dunque sono improponibili nella pratica). Del resto, già Turing aveva sperimentato l urgenza di risposte rapide. Durante la seconda guerra mondiale, aveva fatto parte di un gruppo di crittoanalisti britannici impegnati a decodificare i comandi cifrati spediti dal comando tedesco a esercito, aeronautica e marina con l uso del sistema Enigma. Ammettiamo ad esempio che venga intercettato un messaggio a qualche sottomarino con l ordine cifrato di affondare un convoglio di aiuti in rotta verso l Inghilterra nell Atlantico; in questa situazione - importante decifrare, - essenziale decifrare presto (per avvisare chi è in pericolo). Dunque, si passa dai ai problemi calcolabili in teoria problemi calcolabili nella pratica a costi accessibili.

Calcolabilità a costi accessibili: un contesto da delineare Per definire opportunamente quali sono i problemi calcolabili a costi accessibili, dobbiamo preliminarmente concordare: a) a quale modello di calcolatore si intende fare riferimento? b) secondo quale criterio si vuole misurare il costo del problema? c) fissato il criterio di b), fino a che livello il costo relativo è da ritenersi sostenibile e accessibile? Possibili risposte. a) Almeno momentaneamente, manteniamo il riferimento alla Macchina di Turing. Semmai penseremo più tardi a possibili revisioni e adattamenti. b) Il criterio più popolare: il tempo (una computazione è accettabile se avviene in tempi rapidi ). Tuttavia, non l unico criterio possibile, ci sono parametri alternativi come memoria, energia, c) Se accettiamo il criterio del tempo, sono da definire in modo scientificamente rigoroso i concetti di rapido e lento. Tesi di Edmonds (1965), Cook-Karp (1970-71) Anticipata da Von Neumann, Rabin, Cobham, A livello di slogan: rapido = polinomiale. In termini più rigorosi: un algoritmo lavora rapidamente quando il tempo delle sue computazioni è funzione al più polinomiale della lunghezza dell input. Attenzione: la bontà di un algoritmo si giudica - non secondo dati parziali (osservare che su un particolare input l algoritmo ha impiegato poco tempo non è argomento sufficiente per certificarne l efficienza), - ma sulla base del suo comportamento complessivo (si conviene che un algoritmo che impiega complessivamente tempi di lavoro polinomiali rispetto alla lunghezza dell input è da ritenersi accettabile). Ricordare dall Analisi Matematica: - le funzioni polinomiali x x, x x 2, x x 3, x x 4, x x 5, tendono tutte all infinito quando la variabile x cresce, e lo fanno tanto più rapidamente quanto alto è il loro grado 1, 2, 3, 4, 5, ; - la funzione esponenziale x 2 x le supera tutte asintoticamente al crescere di x. Secondo la Tesi di Edmond-Cook-Karp, tempi al più polinomiali di lavoro sono ammissibili; tempi esponenziali non più.

Facile convenire esponenziale lento Tempi esponenziali di lavoro sono eccessivi, perché la funzione esponenziale, e dunque le potenze del 2, crescono troppo. Ecco due classici esempi che lo confermano. Le potenze del 2 sono la rovina del giocatore: chi punta alla roulette prima 1 euro e poi, avendolo perso, 2 euro per recuperare e ancora, perso nuovamente, 4 euro,, va rapidamente in rovina. L aneddoto dell inventore degli scacchi. Il sovrano orientale che commissionò il nuovo gioco ne fu talmente compiaciuto che promise all inventore di regalargli qualsiasi ricompensa egli avesse chiesto. L inventore chiese un chicco di grano per il primo quadro della scacchiera, e poi 2 chicchi per il secondo, 4 sul terzo, e così via, raddoppiando ogni volta. Il sovrano sospirò di sollievo, perché la richiesta gli parve modesta. Ma l inventore aveva chiesto complessivamente 2 64 1 chicchi di grano: una quantità che il raccolto complessivo terrestre di molti anni non riuscirebbe a colmare. Difficile accettare polinomiale rapido Sembra ragionevole ammettere che un algoritmo che impiega tempo lineare x, o quadratico x 2, o cubico x 3, rispetto alla lunghezza x dell input sia veloce. Ma, a pensarci bene, quanto rapido è un algoritmo che impiega tempo X T, oppure T x quando T supera ad esempio l età dell universo in secondi dall inizio a oggi secondo la teoria del Big Bang, ad esempio, quanto T = 10 18? Eppure, anche X T e T x sono polinomi (e T x è addirittura di primo grado)!!! D altra parte E complicato escogitare proposte più calibrate di quella di Edmond-Cook-Karp. Dunque la loro tesi è da accogliere per pigrizia, se non proprio per convinzione. La classe P Si forma così la classe P (per Polinomiale): quella dei problemi che hanno un algoritmo rapido di soluzione (nel senso sopra precisato). Non così ampia come si vorrebbe, anche se ha registrato da poco una nuova prestigiosa new entry Il Problema dei Primi. Input: un numero intero N 2. Output: si vuole sapere se N è primo o composto. Il primo algoritmo che riesce a risolvere la questione in tempi rapidi (poco più che x 6 rispetto alla lunghezza x di N) risale al 2002, fu scoperto da tre indiani Agrawal, Kayal e Saxena e viene denominato AKS dalle iniziali dei suoi scopritori.

Sorprendente! - Il problema dei primi era conosciuto già ai tempi degli antichi greci. - C è un algoritmo semplicissimo per risolverlo: si divide N per tutti i numeri da 2 a N 1, se qualche divisione è precisa, cioè dà resto 0, allora N è composto, altrimenti, se nessuna divisione è precisa, allora N è primo. Ma c è un guaio - costo di una singola divisione: al più quadratico rispetto alla lunghezza di N (e quindi accettabile), - numero delle divisioni da operare nei casi peggiori, quando N è primo: circa N 2, dunque esponenziale in N (attenzione a distinguere N e la sua lunghezza: un numero come 2007 ha lunghezza 4, che è orientativamente il logaritmo di 2007 in base 10). Due millenni dopo Euclide e gli antichi matematici greci, Gauss, 1801, Disquisitiones Aritmeticae, commentava così la situazione. Il problema di separare i primi dai composti e di decomporre i secondi nei loro fattori primi è conosciuto essere uno dei più importanti e utili in Matematica. La dignità stessa della scienza sembra richiedere di esplorare ogni possibile mezzo per la soluzione di un problema così elegante e famoso La tecniche conosciute finora richiedono uno sforzo intollerabile anche per i più instancabili calcolatori. Calcolatore: per Gauss, un matematico che fa di conto; ma oggi si potrebbe anche intendere un computer. Altri problemi in P 1) Calcolo delle operazioni elementari di addizione, moltiplicazione, sottrazione e divisione tra interi, oppure calcolo del massimo comune divisore e del minimo comune multiplo: i migliori algoritmi impiegano un tempo al più quadratico rispetto alla lunghezza degli input (gli interi da sommare, moltiplicare, etc.). 2) Il Problema dell Agenzia Matrimoniale (o del Matrimonio a 2 sessi). - Input: un insieme U di q uomini, un insieme D di q donne, una relazione di simpatia per coppie (uomo, donna). - Output: sì o no, a seconda che sia possibile combinare q matrimoni in modo da sposare solo persone che si stanno simpatiche ed evitare casi di poligamia. In conclusione: i problemi in P non sono né troppo numerosi né in genere troppo importanti. In compenso Un limbo di problemi non manifestamente in P né manifestamente fuori. Un esempio: il Problema della Fattorizzazione Input: ancora un numero intero N 2, come per il Problema dei Primi. Output: si vuole sapere la decomposizione di N nei suoi fattori primi.

Dunque: - se l input è N = 15, il Problema dei Primi si accontenta di sapere che 15 è composto, il Problema della Fattorizzazione vuole sapere che 15 è 3 5; - se l input è N = 18, il Problema dei Primi si accontenta di sapere che 18 è composto, il Problema della Fattorizzazione vuole sapere che 18 è 2 3 2. Applicazioni pratiche: la moderna crittografia a chiave pubblica, e la costruzione di protocolli resistenti a ogni tentativo di infrazione. In questi casi, gli N da considerare non sono 15 e 18, ma numeri di oltre 1000 cifre. Per 15 o 18, trovare la fattorizzazione non è troppo più difficile che riconoscerli composti. Ma per numeri molto più grossi Un parere autorevole H. Lenstra jr., l algoritmo del letamaio. Supponiamo di perdere i fattori primi di un numero grande N in un letamaio e di conservare solo N. Deve essere avvertito come una sconfitta della scienza il dover ammettere che l algoritmo più rapido che oggi conosciamo per recuperare i fattori primi di N è quello di mettersi a rovistare nel letamaio. D altra parte Grazie ad AKS, è rapido decidere se N è primo o composto. Se poi N è composto e dunque esiste un divisore d 1, N di N (ad esempio 3 nel caso di 15), - d è rapido da suggerire (perché non è più lungo di N), - conoscendo d è rapido controllare che d divide N (perché il tempo di una divisione è quadratico nella lunghezza di N). Si ottiene così una prima fattorizzazione N = d N/d e applicando lo stesso procedimento a d, N/d e via dicendo si giunge finalmente a controllare la fattorizzazione di N. Bisogna però che qualcuno ci riveli d, e dunque N sia composto (altrimenti non c è nessun d da suggerire). Qualche esempio con proprietà analoghe Il Problema del Matrimonio a 3 sessi Ammettiamo di vivere in un pianeta in cui i sessi ufficiali sono 3 e non 2, e dunque i matrimoni si combinano in 3: una situazione del genere è descritta in uno dei racconti del libro di fantascienza di Isaac Asimov Neanche gli dei ( The Gods Themselves ). - Input: q appartenenti al sesso 1, q appartenenti al sesso 2, q appartenenti al sesso 3 ed una relazione di simpatia tra terne (a, b, c), con a che sta tra i q appartenenti al sesso 1, b tra i q appartenenti al sesso 2 e c tra i q appartenenti al sesso 3. - Output: sì o no, a seconda che sia possibile combinare q matrimoni in modo da sposare solo terne di individui che si stanno simpatici ed evitare casi di poligamia. Troppi casi da esaminare, e allo stato delle conoscenze nessun algoritmo rapido di soluzione. Ma se una soluzione c è - è rapida da suggerire, - è rapida da controllare. Il Problema dell Affrancatura

Ammettiamo di avere una lettera da spedire in un paese straniero, e vari francobolli a disposizione. - L input è dunque multiplo, è infatti costituito dal valore V con cui la lettera va affrancata, dai francobolli 1,, k di cui siamo forniti e dai loro valori v(1),, v(k). - Output: sì o no, a seconda che sia possibile scegliere alcuni tra 1,, k in modo che la somma dei loro valori sia proprio V. Di nuovo: troppi casi da esaminare, e allo stato delle conoscenze nessun algoritmo rapido di soluzione. Ma se una soluzione c è - è rapida da suggerire, - è rapida da controllare. Ovviamente si intende ancora: rapido = polinomiale. Una molteplicità di esempi con le medesime caratteristiche (da Matematica, Logica, Enigmistica, Chimica, Biologia, ) La classe NP E formata dai problemi analoghi a quelli appena descritti: per gli input N opportuni, - c è un testimone che è rapido da presentare, - col suo aiuto è rapido controllare che N soddisfa quel che deve soddisfare. Dunque, se P è la classe dei problemi rapidi da risolvere, NP è la classe dei problemi rapidi da verificare. Evidentemente i problemi di P sono anche in NP: se una soluzione è rapida da calcolare, è anche rapida da controllare. P = NP? E vero che le classi P e NP coincidono, e dunque che un problema rapido da verificare è anche rapido da risolvere? In termini più rigorosi: se un problema ha un algoritmo che verifica le soluzioni in tempo al più polinomiale, è vero che dispone di un altro algoritmo, magari più lento, ma pur sempre capace di operare in tempo al più polinomiale, che ne calcola le soluzioni? Una questione facile da chiarire? No! Nel 2000 è stata inserita da una commissione internazionale di matematici tra le 7 questioni più difficili della ricerca matematica attuale (i così detti problemi del millennio). Applicazioni pratiche: ancora alla Crittografia moderna. I problemi NP-completi Ammettiamo di avere un problema S che sta in NP (la Fattorizzazione, o il Matrimonio a 3 sessi, o l Affrancatura, o uno dei tanti che ne condividono gli imbarazzi).

- Se dimostrassimo che S non sta in P e dunque che non c è algoritmo rapido capace di risolverlo, possiamo dedurre che P è diversa da NP. - Ma se dimostrassimo che S sta in P, faremmo un grosso errore di Logica a pretendere di dedurre che P è uguale a NP (in Matematica è pericoloso generalizzare da un esempio!). Eppure: il Matrimonio a 3 sessi e l Affrancatura hanno questo potere di rappresentatività. Cook e Karp (1970-71): dimostrare che P = NP equivale a trovare un algoritmo rapido di soluzione per il Matrimonio a 3 sessi, o per l Affrancatura. I problemi che hanno questa stessa capacità rappresentativa si dicono NP-completi: ne esistono miriadi in Enigmistica (sudoku), Combinatoria (l orario delle scuole), Chimica, Biologia e, ovviamente, Matematica. Chiaramente, se P = NP, il concetto della NP-completezza perde senso e fascino. Si ritiene che il Problema della Fattorizzazione (di cui è stabilita l appartenenza a NP ma è ancora dubbia l appartenenza a P) non sia comunque NP-completo (ammesso che P NP). Un bilancio provvisorio La classe P - una discutibile ma ragionevole candidatura per raccogliere i problemi risolubili a costi accessibili (rispetto al parametro tempo), - pur tuttavia povera di esempi e piena di dubbi. Proposte migliori? Proviamo a cambiare il criterio di efficienza. Ad esempio, usiamo lo spazio invece del tempo: le risorse di memoria che una computazione richiede, invece del numero dei suoi passi. Il criterio della memoria - collegato a quello del tempo (computazioni che richiedono di immagazzinare molta memoria richiedono anche molto tempo), - tuttavia indipendente (computazioni che richiedono molto tempo non scomodano necessariamente molta memoria) Un esempio: abbiamo due stringhe di 0 e 1, come - 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1-1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 e vogliamo controllare se esse coincidono o sono distinte: nel caso specifico, le due stringhe differiscono nella cifra segnalata in neretto. Un possibile algoritmo: si esplorano le stringhe da destra a sinistra, confrontando le cifre di uguale posto, prima le ultime 1 e 1, poi le penultime 0 e 0, poi ancora le terzultime 1 e 1; se si trovano due cifre diverse si conclude che le stringhe sono differenti; se le cifre di uguale posto si rivelano uguali fino in fondo, allora si dichiara che le stringhe coincidono. Tempo richiesto: nei casi peggiori, quello necessario a tutti i confronti richiesti (nel caso di sopra, il tempo di 22 confronti). Memoria richiesta: nessuna! Una volta che si è stabilito che due cifre di uguale posto coincidono, non occorre ricordarsi il loro valore, il fatto stesso che la computazione prosegue assicura che esse non differiscono.

Si formano così nuove classi di problemi che hanno costi di memoria accessibili (ovvero polinomiali, o addirittura logaritmici rispetto alla lunghezza dell input). Ma nessuna pare più convincente di P. Proviamo allora a modificare non il criterio di misura del costo della computazione, ma il modello di calcolatore a cui facciamo riferimento: non più una tradizionale Macchina di Turing, ma una qualche revisione aggiornata. Casualità L idea: pur di accelerare le risposte, sacrifichiamo la precisione. Entro certi limiti, accettiamo che il calcolatore ci dia risposte sbagliate, o incerte, purché i tempi di lavoro accelerino. Un ovvia esigenza: minimizzare errori o incertezze; avere risposte altamente affidabili, se non proprio completamente sicure. Un margine ragionevole di affidabilità? E. Borel (uno dei grandi esperti del Calcolo delle Probabilità): Un evento che ha probabilità 10-50 non accadrà mai, e comunque non sarà mai percepito? Per intendersi: pensiamo all evento fare 6 per 10 volte di seguito al superenalotto. - Non si può escludere in teoria - Incredibile nella pratica! Se il margine di errore o di incertezza è dello stesso ordine di grandezza, lo possiamo tollerare. Si costruiscono così algoritmi probabilistici - ancora dipendenti dall aiuto di testimoni, - rapidi, - talora fallibili, o incerti, - altamente affidabili (ovvero con probabilità di errore e incertezza inferiore a 10-50 ). Si distinguono due modelli contrapposti. - Algoritmi Montecarlo: risposte probabilmente vere in tempi certamente rapidi (la risposta arriva sempre, ma ha una minima probabilità di errore). - Algoritmi Las Vegas: risposte certamente vere in tempi probabilmente rapidi (c è una minima probabilità di incertezza, ma la risposta quando arriva è sicura). Ne derivano nuovi tentativi di identificare la classe dei problemi risolubili a costi accessibili (sotto questo nuovo punto di vista). Artù e Merlino, finalmente Un nuovo modello computazionale: gli algoritmi interattivi. La situazione: un problema, e un input N per quel problema.

Due personaggi - Artù (il verificatore ): giovane e ignorante, ma cocciuto e difficile da convincere, - Merlino (il dimostratore ): onnisciente, ma forse restio a dir tutta la verità. Il gioco delle parti: Merlino deve persuadere Artù in tempi rapidi e al di là di ogni ragionevole dubbio che la risposta dell input N è sì. Un modello che già conosciamo Anche nei problemi di NP si ammette che un interlocutore (nel nostro caso, Merlino) suggerisca rapidamente un dato chiave (eventualmente la stessa soluzione) e che sulla base di quella informazione si controlli rapidamente che N ha la risposta cercata. Il difetto in NP L interlocutore Merlino è costretto a comunicare ad Artù la soluzione. Ma ammettiamo che Merlino voglia celare ad Artù ogni informazione chiave, e trasmettergli solo certezze e non conoscenze: la certezza che la soluzione c è, ma nessun dato che possa rivelarla. Un esempio pratico Merlino è un inventore che ha scoperto un algoritmo rapido per il Matrimonio a 3 sessi, oppure l elisir dell eternità, vuole commercializzarlo e chiede al ricchissimo Artù dei fondi per avviare l attività. Deve dunque persuadere Artù della propria scoperta, ma evitare di trasmettergliene i dettagli (altrimenti Artù potrebbe usarli a proprio esclusivo vantaggio). Il rimedio: consentire un minimo di casualità. L interazione - Artù rivolge a Merlino domande casuali su N, svolge poi semplici calcoli di controllo. - Merlino risponde alle curiosità di Artù. - Il numero dei messaggi tra Artù e Merlino è piccolo (polinomialmente limitato dalla lunghezza dell input N). - Anche la durata di ogni singolo messaggio è piccola. Alla fine - se la risposta corretta all input N è sì, Merlino ha alta probabilità di convincerne Artù, - se la risposta corretta a N è no, Merlino ha bassa probabilità di ingannare Artù e di fargli credere sì. Una nuova classe di problemi: IP (Interattivo Polinomiale). In realtà, molte nuove classi in aggiunta a IP e alle precedenti. Un collegamento sorprendente Un teorema famoso di Shamir dice che IP la classe dei problemi che si risolvono in tempi al più polinomiale con algoritmi interattivi- coincide con la classe dei problemi che si risolvono con risorse al più polinomiali di memoria.

Una conclusione? Quale è dunque la classe che più autorevolmente si candida come quella dei problemi risolubili a costi accessibili? Finora: - una gran varietà di risposte, - nessuna realmente convincente. In realtà i siti internet sull argomento giungono a censire oltre 400 possibili proposte, e a questo proposito si parla ormai da anni di zoo della complessità. La classe dei problemi risolubili a costi accessibili pare ancora lontana da ogni convincente identificazione. Da sottolineare prima di concludere Il ruolo chiave della Matematica pura e addirittura della Filosofia della Scienza (Gödel, Turing e altri) nella nascita dell Informatica moderna. L Informatica (almeno quella Teorica) nasce come costola della Matematica. Per approfondimenti Sulla prima parte S. Leonesi-C. Toffalori, Matematica, miracoli e paradossi, Bruno Mondadori, 2007 (di prossima pubblicazione) Su P e NP (e non solo) K. Devlin, I Problemi del Millennio, Longanesi, 2004 Per ogni ulteriore curiosità tutti sono cordialmente invitati a scrivere a carlo.toffalori_at_unicam.it