sabato 4 aprile 2020

Alla scoperta delle leggi di fisica con il machine learning



Nel lontano 1999, pubblicai sul TI Technical Journal (March 1999) un articolo scritto con alcuni miei colleghi dal titolo “Semiconductor Device Modeling using a Neural Network” (Link) in cui si proponeva l’uso di neural network (NN) per cercare di predire alcuni parametri critici dei dispositivi a semiconduttore partendo dai dati prodotti da un simulatore TCAD. Ma perche’ usare una NN per fare quello che puo’ fare un simulatore TCAD molto sofisticato e disponibile in tutti i centri di ricerca di grosse compagnie? Questione di memoria. Il CAD per produrre un risultato ha bisogno di tanta memoria e di tempi lunghi, addirittura di intere giornate. Una rete invece occupa poca memoria e una volta che ha appreso e’ velocissima. L’unica cosa importante e’ che con il simulatore bisogna esplorare uno “spazio delle fasi” del modello quanto piu’ largo e’ possibile,  all’interno del quale poi la rete fara’ le sue predizioni. Dopo 21 anni ritrovo in giro la stessa idea, allargata ovviamente a tutti gli algoritmi di machine learning e non solo le reti NN,  e applicata non solo nel campo dei semiconduttori ma ai concetti di base della fisica stessa. Procediamo con ordine.
Nelle ultime due decadi il Machine Learning e’ diventato uno dei pilastri dell’Intelligenza Artificiale, e parte della nostra vita anche se non tutti se ne accorgono. Il termine e’ stato usato per la prima volta da A. Samuel nel 1959. Ma quale e’ la differenza tra un algoritmo tradizionale e uno di machine elarning? Nel primo caso il programmatore conosce il modello e definisce i parametri e i dati necessari alla risoluzione del problema, mentre nel secondo caso non c’e’ un modello a priori e né una strategia. Si fa in modo che il computer impari da solo eseguendo l’attivita’ e migliorandola iterativamente. In questo caso si parla di apprendimento automatico. Con la continua crescita dei dati a disposizione e’ ragionevole pensare che la Data Analytics diventera’ sempre piu’ pervasiva e un ingrediente necessario del progresso tecnologico. Il Machine Learning puo’ apparire in diverse forme come:

1.     Ranking delle pagine web
2.     Identificazione di spamming
3.     Traduzione automatica
4.     Riconoscimento vocale
5.     Riconoscimento immagini
6.     Identificare gli interessi delle persone (come per es. su amazon, netflix etc)

per fare solo pochi esempi.  Il machine learning comunque e’ una tecnica molto potente non solo nel predire quale film ci piace vedere ma anche nella ricerca scientifica. Non a caso viene utilizzato su diversi siti web per la classificazione della forma delle galassie, l’individuazione delle tracce delle particelle elementari dopo una collisione, il riconoscimento di una forma tumorale dall’analisi di immagini TAC o della presenza di infezione da Covid-19 dall’analisi delle immagini a raggi X. E non solo. E’ notizia dell’ultima ora che il machine learning sta aiutando gli scienziati a predire i risultati di alcuni fenomeni naturali e in alcuni casi a rivelare le leggi alla base del fenomeno. Si avete capito bene, le leggi che sono alla base della natura. Pensate un attimo al racconto della mela di Netwon e supponete di trasferirlo nel mondo di oggi. Il nostro Netwon avra’ un cellulare, con cui potra’ organizzare l’esperimento della mela raccogliendo in una tabella l’altezza da cui cade la mela e il tempo necessario per arrivare a terra.  E supponiamo anche che Netwon abbia tanta pazienza da raccogliere ben 5000 misure. Questa potrebbe essere la tabella compilata. Il sistema di misure utilizzato e’ l’MKS cioe’ metri, Kg e secondi. Con y0 Newton ha indicato la posizione iniziale della mela cioe’ l’altezza da cui essa cade. La prima riga per esempio dice che la mela cadendo da un’altezza di 82 metri impiega 4 sec per arrivare a terra e cosi via.
  

 Ipotizziamo che Newton, uomo dei nostri tempi abbia a disposizione un software molto sofisticato per l’analisi dei dati e machine learning,  JMP Pro sviluppato dalla prestigiosa SAS. Tra i diversi modelli a disposizione e’ stata scelta una semplice rete neurale il cui schema e’ riportato qui di seguito:



Una rete neurale e’ un algoritmo che cerca di simulare il comportamento del nostro cervello. E’ costituita da uno strato di ingresso (il nostro y0) da alcuni strati nascosti (nel nostro caso 2, quelli con cerchi verdi) e uno strato di uscita (il nostro tempo t). Ogni strato e’ costituito da diversi nodi che rappresentano i nostri neuroni e delle linee che entrano ed escono da essi che simulano le nostre sinapsi. Ad ogni connessione e’ associato un peso che va a moltiplicare il valore che viene presentato su quel link. La stessa cosa accade per le altre connessioni. Dopo di che si sommano tutti i valori che insistono sullo stesso nodo. Questo costituisce il valore x di una funzione che viene specificata all’interno di ogni nodo (vedi immagine sopra dei cerchi verdi). Questa funzione viene chiamata funzione di attivazione. Tra quelle piu’ note abbiamo la funzione a gradino o sigmoide, quella lineare e quella Gaussiana. A seconda della funzione quindi avremo in uscita un certo valore dato da f(x)=y. 
  

 La potenza di questi oggetti, come per il nostro cervello sta nel mettere insieme piu’ nodi con connessioni non lineari tra loro. Questo costituisce una rete neurale. Dando alla rete sia i valori in input che in output, essa aggiusta in modo opportuno tutti i pesi delle connessioni per far si che l’errore in uscita sia il piu’ piccolo possibile. In partica si stabilisce una funzione di costo (anche detto Mean squared error - MSE) e si cerca dei metodi matematici per minimizzarla. Con la rete mostrata nell’immagine Diagram e con 5000 esempi raccolti dal nostro buon Netwon questo il risultato ottenuto.



Il campione a disposizione come vedete e’ stato diviso in 3 parti: un campione per il training, uno per la validation e un altro per il test.  Questo e’ vero per qualsiasi modello di machine learning utilizzato e non solo per le reti neurali. Questa divisione viene fatta per far si che la rete non impari a memoria perdendo cosi’ in generalizzazione della predizione. In effetti oltre al campione di training e di validazione dove la rete viene ottimizzata, si usa quello di test dove ci sono esempi che l’algoritmo non ha mai visto. Solo se le prestazioni della rete sono buone per entrambi il training e il test allora i suoi risultati si giudicano soddisfacenti. Nel nostro esempio i risultati sono eccezionali come ci dice il coefficiente R2 che e’ praticamente pari a 1 per tutti e 3 i gruppi. Ricordiamo che il parametro R2 esprime la bonta’ del nostro modello. Piu’ questo valore e’ vicino a 1 e piu’ il modello e’ buono. (per approfondimenti si puo’ consultare su questo blog il post ). Qui di seguito l’andamento previsto dalla rete della y0 e del tempo t. Come e’ possibile vedere la rete ha catturato correttamente l’andamento secondo la radice quadrata tra il tempo e l’altezza y0. 



Addirittura se andiamo a verificare il valore del tempo predetto in funzione dell’altezza y0 vediamo che la curva (in rosso) che meglio approssima i dati (in nero) e’ una radice quadrata e il coefficiente della radice quadrata di y0 e’ pari a 0.447 che e’ il valore previsto dalla teoria per l’accelerazione di gravita’.




Infatti la legge oraria della caduta dei gravi e’ data da:

Y=Yo+Vo*t-1/2*g*t^2

dove Yo e’ l’altezza, Vo la velocita’ iniziale e g l’accelerazione di gravita’, una costante pari a 9.8 m/sec2 in prossimita’ della superficie Terrestre. Per l’esperimento realizzato dal nostro Newton del 2020, Y=0 e Vo=0, cioe’

0=Yo-1/2*(9.8)*t^2

da cui

t=sqrt(Yo/5)=1/sqrt(5)*sqrt(Yo)=0.447*sqrt(Yo)  

avendo eliminata la soluzione negativa (in quanto il tempo e’ una quantita’ sempre positiva).
Adesso complichiamo leggermente le cose utilizzando l’intera legge oraria scritta precedentemente assumendo che la velocita’ iniziale non sia zero e che non ci sia un suolo su cui l’oggetto che cade possa fermarsi. Questo spiega i valori della y negativi nella tabella sottostante. I dati sono stati creati utilizzando la funzione RAND() di excel. Abbiamo introdotto anche una piccola variazione percentuale della costante g per cercare di confondere l’algoritmo. Come potete vedere e’ stata introdotta anche la massa m anche se dalla teoria sappiamo che essa non ha alcun impatto sulla caduta dei gravi come invece pensava Aristotele. Vediamo cosa succede utilizzando i predictive models di JMP Pro. 




Oltre alla rete neurale gia’ introdotta prima, sono stati utilizzati i seguenti modelli di machine learning: Random Forest (RF), Ensemble Boosted e KNN.
Prima di poter parlare di Random Forest dobbiamo introdurre il modello di decison tree da cui l’RF deriva. L’idea alla base dei modelli Tree e’ molto semplice. E’ quella dei mitici romani: dividi e governa. Dato un dataset con almeno una risposta Y (sia numerica che categorica) e tante features X (o anche predictors), l’algoritmo cerca di dividere il dataset in due gruppi per una certa X che massimizza la differenza tra i valori medi della Y nei due gruppi e che all’interno di ognuno di essi minimizza la standard deviation. Fatto cio’ ripete piu’ e piu’ volte questa divisione costruendo un vero e proprio albero con tanti rami e tante foglie (in giallo nell’immagine qui sotto).




 Purtroppo i decision tree sono molto sensibili ai dati in ingresso. Se i dati di training vengono cambiati (per esempio addestrando l’albero su un sottoinsieme dei dati di addestramento) l’albero decisionale risultante puo’ essere abbastanza diverso e con diverse previsioni.  Per questo motivo si e’ arrivati alle Random Forest (RF). Come il nome indica si tratta di un grande numero di alberi decisionali che operano come un tutt’uno nel senso che lavorano in parallelo. Le RF si basano sulla regola che un gruppo di persone e’ piu’ intelligente di un singolo individuo (saggio di J. Surowiecki, La saggezza della folla). Ogni singolo tree fa la sua previsione e la classe che ottiene piu’ voti diventa la previsione globale dell’algoritmo nel caso di classificazione oppure il valore medio nel caso di regressione. Individualmente, le previsioni fatte dai singoli alberi potrebbero anche essere non accurate, ma combinate insieme, si avvicineranno alla risposta corretta.
Passiamo adesso all’algoritmo di boosting. Come per le random forest anche questi modelli fanno parte dei cosiddetti modelli previsionali ottenuti tramite la composizione di vari modelli piu’ semplici (ensemble models). Il tutto nasce nel 1988 quando si capisce che un insieme di modelli di apprendimento deboli se messi insieme possono creare un modello robusto (l’unione fa la forza). Il concetto non e’ molto diverso dall’ottenere una funzione complessa a partire dalla somma di funzioni elementari semplici. Vediamo un esempio. Supponiamo di avere a disposizione dei dati (punti in blu nel grafico qui sotto) e vogliamo trovare la migliore curva che approssima questi punti. Poiche’ si vede un andamento globale a crescere la prima cosa che possiamo fare e’ provare con una funzione radice quadrata (in arancione). Non male. Osservando bene pero’ possiamo notare che ci sono delle oscillazioni intorno al valore della radice quadrata. Viene quindi spontaneo aggiungere alla radice quadrata una funzione seno (linea nera) che migliora l’approssimazione come si puo’ vedere dalla tabella excel riportata.



 


La somma dei residui al quadrato 

SUM(Y_actual-Y_predicted)^2

nel caso della radice quadrata e’ di circa 3800 mentre quella della funzione somma  

f(x)=a*sqrt(x)+b*(sin(c*x))                                                                a,b,c costanti

ha un valore di circa 200 cioe’ un fattore x19 di meno.
 E’ chiaro quindi che questo algoritmo lavora in serie cercando di migliorare un learner debole applicandone uno nuovo e cosi via. Allo stesso modo per un problema di classificazione o di regressione se M(x) e’ il primo modello avremo:

            Y=M(x)+e1                             con un’accuratezza per esempio pari a 84%

dove con e1 abbiamo indicato l’errore. Invece di procedere col costruire nuovi modelli, quello che si puo’ fare e’ cercare di modellizzare l’errore ottenendo qualche cosa come

e1=H(x)+e2

e a sua volta

e2=G(x)+e3

Se ci fermiamo qui otteniamo

Y=M(x)+H(x)+G(x)+e3

Arrivati qui possiamo assegnare degli opportuni pesi ai 3 learners M, G e H cercando di ottenere un’accuratezza migliore del primo learner M, cioe’

Y=aM(x)+bH(x)+cG(x)+e4                                                con Accuratezza>84%

L’ultimo modello utilizzato e’ il KNN cioe’ K-Nearest Neighbors model. Si tratta di uno dei modelli piu’ semplici del machine learning che produce dei buoni risultati in diverse situazioni. Si tratta di un algoritmo che cerca di predire una nuova istanza conoscendo i punti che sono separati in diverse classi. L’idea di base e’ quella di usare i k punti “piu’ vicini” (nearest neighbors) per effettuare la classificazione.



Questi algoritmi per poter lavorare correttamente hanno bisogno di una classe di training e di una metrica per calcolare la distanza (per esempio la distanza Euclidea) tra i vari records e il numero di vicini da utilizzare. Il processo di classificazione prima di tutto calcola la distanza rispetto ai record nel training set, identifica i k records piu’ vicini e utilizza le labels delle classe dei primi vicini per determinare la classe del record sconosciuto (per es. scegliendo quella che compare con maggiore frequenza) nel caso di classificazione oppure prendendo il valore medio dei primi vicini nel caso di regressione.  Qui di seguito un’immagine che mostra la definizione di primi vicini per diversi valori di k (da 1 a 3).


E’ chiaro che utilizzando valori diversi di k si otterranno risultati diversi come nel caso della regressione dove il valore medio dipende da quanti vicini vengono considerati. Bisogna quindi stabilire il valore ottimale di k. In genere l’errore per il gruppo di training e di validation ha un andamento come quello mostrato nell’immagine sottostante. Per piccoli valori di k l’errore sull’insieme di training e’ piccolo mentre quello sul validation set e’ grande. Chiaro segnale di overfitting nel senso che l’algoritmo ha una bassa generalizzazione della predizione avendo imparato a memoria. Al crescere di k vediamo che sia l’errore per il training set che per il validation set aumentano indicando che il modello e' in una condizione di underfitting. Comunque osservando la curva dell’errore del validation set (chiamata elbow a causa della sua forma a gomito) vediamo che essa mostra un minimo intorno a k=9. Questo valore di k e’ il valore ottimale del modello KNN.    



Dopo questo excursus sui modelli utilizzati, possiamo ritornare al nostro esperimento sintetico della caduta dei gravi. Utilizzando i 4 modelli descritti e presenti nel modulo di “Predictive modeling” di JMP Pro abbiamo ottenuto i seguenti risultati per la legge oraria del moto completa dei gravi. Il modello con le migliori prestazioni e’ stata la rete neurale seguita dal Boosted, dal KNN e per utlimo dal Random Forest. 



Osserviamo come la rete neurale (la stessa struttura di quella mostrata all’inizio di questo post) sia stata capace di prevedere l’andamento parabolico della y rispetto al tempo t.




Analizzando la sensibilta’ di ognuno dei parametri in X possiamo vedere come la rete abbia capito che la massa non ha alcun influenza sulla caduta di un corpo dando ragione a Newton e non ad Aristotele.



Interessante anche l’andamento della y con la g, l’accelerazione di gravita’ terrestre. Se questa diminuisce, come per esempio nel caso della luna, allora a parita’ di tempo t la y sara’ maggiore cioe’ il corpo avra’ percorso un tratto minore.   Altra osservazione.   Se guardiamo  al  grafico  che  mette in relazione  la y predetta  con quella  reale  si  puo’ vedere che se anche in termini di R2 i  3 modelli di NN,  Boosting e  KNN  sono molto simili essi  mostrano  una  varianza  intorno  alla  linea  centrale  diversa  con  la KNN essendo quella peggiore. 



Il modello della Random Forest e’ quella che merita un discorso a parte. Infatti e’ quello che mostra le performance peggiori in termini di R2. Proviamo a fare un grafico con i valori della y reali e quelli invece predetti dall’algoritmo. Notiamo subito che la retta e’ spezzata in due parti. Una pendenza piu’ o meno simile per i valori positivi e negativi con diversa intercetta. Anche considerando il valore assoluto della y questa anomalia rimane. Questo e’ un andamento che gli altri modelli non mostrano.




Passiamo adesso ad un altro fenomeno fisico molto noto, quello dell'interazione gravitazionale. Anche qui grazie a Newton sappiamo che la legge con cui due masse M1 e M2 si attirano dipende dalla loro distanza al quadrato secondo la legge:

F=-G (M1M2/r^2)

dove G e’ la costante gravitazione un numero uguale in tutti i punti dell’universo ed r la distanza tra le due masse. Come nei casi precedenti abbiamo generato 5000 records aggiungendo al data set una colonna V (velocita’) per cercare di “ingannare” il modello.
Esattamente come prima il miglior learner risulta essere la rete neurale, seguita dal modello Boosted, dal KNN e in ultimo dalle Random forest con una performance veramente poco convincente. 





Essendo l’R2 veramente molto basso si e’ provato a cambiare i parametri di default di JMP per migliorare l’R2. Uno di essi si e’ dimostrato essere quello giusto. Passando dal valore di default 2 a 5 siamo passati da un 47.7% al 91% come mostrato nella figura sottostante.  Il parametro in discussione e’ il numero di predittori che la foresta utilizza  ad ogni split. Avremo quindi una foresta che produce i suoi alberi considerando un solo predittore ad ogni split. Poi una seconda foresta che ne considerera’ 2 e cosi via fino a 5.  

Ancora una volta i learner sono riusciti a catturare il corretto andamento della legge fisica come possiamo vedere dall’andamento come 1/r^2 della forza F. E di nuovo i modelli hanno interpretato correttamente l’impatto nullo della velocita’ sulla forza F come stabilito dalla legge gravitazionale di Newton.



Questa la rete neurale utilizzata con due strati nascosti e tre diverse funzioni di attivazione.


  
Analizzare e comprendere i risultati dei diversi modelli di machine learning ancora richiede l’intervento umano essendo i risultati non chiari al pari di una legge matematica con tutta la sua eleganza e bellezza. Ma di sicuro essi possono aiutarci a capire come si comportano le leggi del nostro Universo semplicemente guardando nei dati, la ricchezza del futuro, il petrolio che fara’ muovere la tecnologia e la scienza dei prossimi anni. Pensate per esempio alla possibilita’ di applicare il machine learning a problemi complessi come quelli dei 3 corpi o all’ipotesi di Riemann sugli zeri della funzione zeta per citarne solo alcuni. 


  

giovedì 2 gennaio 2020

Le Basiliche Paleocristiane di Cimitile - Un luogo da visitare



Con l'approvazione di mia figlia Gilda, e' con grande piacere che pubblico 2 suoi lavori relativi alle Basiliche paleocristiane di Cimitile in provincia di Napoli. Il primo e' uno studio sul degrado di alcuni elementi presenti nelle Basiliche mentre il secondo e' una presentazione sul lavoro di restauro effettuato nel 2004 sugli affreschi nella Cappella dei Santi Martiri.    
Prima di lasciare spazio ai lavori di mia figlia, voglio riportare le foto di alcuni frammenti di pavimentazione in opus sectile che mi hanno colpito per la loro bellezza e che ho fotografato nell'abside della Basilica Nova realizzata da Paolino, e subito dopo una possibile spiegazione del perche' al nome di San Felice, patrono di Cimitle sia stata aggiunto l'aggetivo "in Pincis".  





Come detto si tratta di pavimentazione in opus sectile a base marmorea a motivi complessi. 

Della pavimentazione si conservano i resti di cinque formelle disposte in senso est-ovest e con perfettamente allineate, circondate lateralmente da lastre marmoree di reimpiego e da una moderna pavimentazione in cemento. Le tre formelle centrali, accomunate dallo stesso motivo decorativo, sono costituite da un quadrato curvilineo aperto in giallo antico al centro del quale si trovano cerchi in porfido verde, listellati in giallo antico (formelle 2 e 4), o con un quadrato in giallo antico iscritto (formella 3). I quarti angolari, in pavonazzetto brecciato, listellati alternativamente in porfido rosso e verde, sono decorati da elementi decorativi bilobati e da elementi “gigliati” estroflessi, formati da uno scudo in pavonazzetto e da piccole volute in porfido verde e sormontati da una punta di lancia in porfido rosso. L’effetto complessivo della decorazione, ottenuta dall’unione di quattro formelle, è quello di ampie circonferenze decorate da motivi quadrilobati alternati ad elementi gigliati. Al centro è inserita una stella di quattro punte in porfido verde decorata da un dischetto in giallo antico. Le formelle esterne  presentano una stella a quattro punte in giallo antico bordata da listelli alternativamente in porfido verde e rosso. Al centro delle stelle è inserito un disco in porfido verde con un quadrato in giallo antico iscritto. Gli spazi angolari di risulta sono decorati da motivi floreali lobati e cuoriformi bordati da listelli in porfido verde. All’interno dei petali cuoriformi è inserito un motivo gigliato, costituito da due piccole volute e da un punta di lancia in porfido rosso. L’effetto complessivo è quello di una composizione formante ottagoni decorati da motivi floreali ad otto petali dei quali quattro lobati e quattro cuoriformi. Attorno alle formelle in sectile, lungo l’emiciclo dell’abside e nelle conche laterali, sono inserite delle lastre rettangolari di marmi diversi di reimpiego. Si riconoscono, in particolare, lastre in verde antico, giallo antico, in marmi bianchi e, probabilmente, in africano. Per quanto riguarda gli aspetti tecnici, lo spessore delle lastre non è uniforme, ma variante: lastre in pavonazzetto cm 0.6-1.4, lastre in porfido rosso cm 1.5, lastre in porfido verde cm 1-2.5, lastre in giallo antico cm 1. I singoli elementi marmorei, inoltre, risultano dalla connessione, generalmente grossolana, di più lastrine dello stesso materiale. Per quanto concerne la sintassi del pavimento, è possibile che le formelle in sectile a motivi complessi fossero utilizzate come motivo decorativo centrale della trichora, in corrispondenza dell’altare.

Voglio chiudere questo breve post riportando l'attenzione del lettore ai pavimenti con disegni analoghi che ho ritrovato ad Ostia, Castellamare di Stabia e Pompei come e' possibile vedere dalle foto qui riportate. 









Passiamo adesso all'aggettivo in Pincis.
Il Santo intorno alla cui tomba Paolino costrui il complesso basilicale di Cimitile, e’ Felice. La vita del prete Felice  è narrata dallo stesso Paolino. Nato a Nola nel III secolo da un ricco padre di origini Siriane, Felice aveva sofferto le persecuzioni ed era stato imprigionato, torturato e poi liberato miracolosamente da un angelo che lo aveva condotto in un luogo deserto (per questo, pur non essendo stato ucciso è stato venerato da sempre come martire). Grazie alla pace costantiniana Felice rientro’ nella diocesi di Nola. Qui, pur essendo stato indicato come successore dal vescovo Massimo, alla morte di questi rifiutò l'elezione e visse in povertà fino alla fine dei suoi giorni. Venne sepolto nell’allora Coemeterium di Nola, l’attuale Cimitile.
Inizialmente il Santo venne indicato come San Felice prete e martire come si puo’ constatare dagli stessi Carmi che San Paolino scrisse per diversi anni in suo onore.
Eppure oggi oltre a « prete e martire » al nome di Felice si aggiunge « in Pincis ». Come mai? Di ipotesi negli anni ne sono state fatte diverse, ma quella che secondo noi e’ la piu’ accreditata e’ la seguente.        
A Roma gia’ a partire dall’anno 772 dC quando era papa Adriano I (come da nostra ricerca su testi antichi), e’ attestata la presenza di una chiesa dedicata a « San Felicis » alle falde del colle Pincio cosi chiamato dal nome del Senatore Pincio che ivi costrui’ un sontuoso palazzo detto poi in Pincis (Domus Pincy nel’immagine sottostante che riporta il colle Pincio ai tempi della Roma dei papi). 



Di seguito il frontespizio di uno dei diversi libri pubblicati tra il 1500 e il 1700 che riporta la presenza della chiesa di San Felice in Roma ai tempi dei papi Adriano I, e Benedetto III 






Il restauro degli affreschi della Cappella dei SS Martiri nel complesso Basilicale di Cimitile



mercoledì 18 settembre 2019

Come gli algoritmi stanno cambiando il corso della matematica


I matematici a lungo si sono chiesti se fosse possibile esprimere il numero 33 e 42 come somma di 3 cubi, cioe’ se l’equazione 33=x3+y3+x3 e  42=x3+y3+z3    avesse  una soluzione. Si sa che 29 puo’ essere scritto come 33+13+13, per esempio, mentre 32 non e’ esprimibile come somma di 3 interi ognuno elevato alla terza potenza; ma dopo circa 60 anni nulla si sa per il 33 e 42.   Negli ultimi mesi, Andrew Booker un matematico dell’Universita’ di Bristol ha finalmente risolto l’enigma grazie all’utilizzo di potenti supercomputer. Ha scoperto che:  
1.     33=(8,866,128,975,287,528)³ + (–8,778,405,442,862,239)³ + (–2,736,111,468,807,040)³
2.     42=(-80,538,738,812,075,974)3 + (80,435,758,145,817,515)3 + (12,602,123,297,335,631)3
Si tratta di interi con un elevato numero di cifre (16 e 17). Pensate che questi numeri hanno un ordine di grandezza 7/8 volte maggiore della distanza Terra-Sole espressa in Km. Da qui si evince la necessita’ dell’impiego di supercomputer per portare a termine la ricerca di tali mostri numerici. Questa notizia si e’ subito diffusa sulla rete e c’e’ stata una grande euforia da parte degli ambienti di Teoria dei numeri. Ma perche’?  Di sicuro una parte e’ giustificata dalla difficolta’ nel trovare la soluzione di queste equazioni. E’ dal 1955 che i matematici hanno provato a trovare le soluzioni intere che soddisfano l’equazione:
k = x³ + y³ + z³
con k, x, y e z numeri interi.
In alcuni casi le soluzioni sono facili, come per k=29; altre volte si sa che la soluzione non esiste, come per tutti i numeri k che lasciano un resto di 4 o 5 quando divisi per 9, come per il numero 32. In genere pero’ le soluzioni non sono cosi triviali, come per il caso di 33 e 42 dove i 3 interi sembrano quelli di un biglietto della lotteria senza alcuna struttura prevedibile.
Al momento, per i matematici il solo modo per scoprire queste soluzioni e’ l’utilizzo della forza bruta dei computer per provare le differenti combinazioni di cubi di interi e sperare nella vittoria.  Con la soluzione trovata da Booker non ci sono altri interi k al di sotto di 100 per cui non si conosce la soluzione dell’equazione cubica.  Questo  risultato e’ arrivato non solo grazie all’utilizzo di un supercomputer molto veloce ma anche grazie ad un nuovo modo di effettuare la ricerca delle soluzioni (nuovo algoritmo).
E per k maggiore di 100 cosa succede? Ci sono al momento 11 interi che ancora resistono tra 100 e 1000 e una infinita’ di essi oltre 1000.  Purtroppo non c’e’ alcuna indicazione teorica, nessun pattern che possa permettere ai matematici di avere un’idea di dove cercare. Il classico ago in un pagliaio.  Ma allora, perche’ impegnare del tempo nella ricerca di questi numeri?
Quello che e’ interessante, secondo Booker, e’ che ogni nuova soluzione puo’ aiutare a decidere cosa e’ vero circa il problema della somma dei 3 cubi. L’equazione di questo problema 
k = x³ + y³ + z³
e’ quella che I teorici chiamano un’equazione Diofantea, una specie di struttura algebrica, le cui proprieta’ hanno affascinato i matematici per millenni. Queste equazioni sono delle equazioni polinomiali le cui variabili sconosciute hanno dei valori interi. Esse compaiono in diversi problemi, anche piuttosto semplici della vita quotidiana. Esistono anche i sistemi di equazioni diofantee che rappresentano una naturale estensione delle equazioni. Ad esempio,  si immagini che un negoziante debba acquistare un certo numero di maglioni a collo basso da 40 € ed un certo numero di maglioni a collo alto da 60 €, avendo a disposizione 560 €. Si desidera sapere quanti maglioni di un tipo e quanti dell’altro riesce ad acquistare, nell’ipotesi di voler spendere l’intera cifra a disposizione. Indicando con y il numero di maglioni a collo basso acquistati, ovviamente intero, essendo improbabile che il negoziante voglia acquistare mezzo maglione, e con x quello dei maglioni a collo alto, deve essere
40y + 60x = 560 → 2y + 3x = 28 .
Si tratta di un’equazione in due incognite con coefficienti interi di cui si ricercano le soluzioni intere.


Qualche elementare considerazione numerica fornisce i risultati presentati nella tabella precedente. Dunque, il negoziante ha alcune possibilità, rappresentate dai quattro punti evidenziati in figura, e deciderà di approvvigionarsi di un tipo oppure dell’altro tipo di maglione, a seconda delle scorte di magazzino che possiede. È opportuno sottolineare che, se non vi fosse stato il vincolo delle soluzioni intere, il problema avrebbe ammesso infinite soluzioni, rappresentate da tutti i punti che si trovano sulla retta di seguito disegnata.

Se il negoziante dell’esempio appena sviluppato avesse avuto a disposizione solamente di 550 €, decidendo sempre di spendere l’intera somma a disposizione, come sarebbe cambiata la soluzione? Ebbene, sembra incredibile, ma non esiste alcuna combinazioni di numeri interi che soddisfa l’equazione
40𝑥 + 60𝑦 = 550 → 4𝑥 + 6𝑦 = 55.
È facile convincersi di quanto affermato, osservando che il primo membro è sempre un numero pari, mentre il secondo è dispari.
Le proprieta’ fondamentali delle equazioni Diofantee, ancora impegnano i matematici di tutto il mondo. Per esempio, non esiste nessun metodo affidabile che ci possa dire se una equazione Diofantea abbia o no una soluzione. Secondo Booker, il problema della somma dei 3 cubi e’ una tra le piu’ semplici delle equazioni Diofantee. E’ esattamente alla frontiera di cosa puo’ ancora essere maneggiato anche se con difficolta’.   Per questa ragione, gli esperti di Teoria dei Numeri sono desiderosi di capire tutto quello che c’e’ da capire sulla somma dei 3 cubi. 
Un risultato sicuramente piu’ eclatante, sarebbe quello di provare la congettura che 
k = x³ + y³ + z³
ha un’infinita’ di soluzioni per ogni numero intero k, ad eccezione di quelli che hanno come resto 4 o 5 quando divisi per 9. Gli strumenti concepiti per tale dimostrazione potrebbero aiutare a forzare la logica del problema o essere applicati ad altre equazioni Diofantee. I risultati di Booker, offrono un supporto per questa congettura, dando ai matematici una maggiore confidenza sulla ricerca della dimostrazione. In realta’, ogni qualvolta i matematici hanno fatto una ricerca estendendo l’intervallo numerico, hanno trovato nuove soluzioni rimuovendo cosi possibili controesempi alla congettura.
Ma chi era Diofanto? Vissuto nel III secolo dopo Cristo, è considerato l’iniziatore del calcolo algebrico. Scrisse un trattato sui numeri poligonali e sulle frazioni, ma la sua opera principale sono gli Arithmetica, un trattato in tredici volumi dei quali soltanto sei sono giunti fino a noi. La sua fama è principalmente legata a due argomenti: le equazioni indeterminate ed il simbolismo matematico. Ben poco si sa della sua vita e quel poco è stato trasmesso da Herbert Westren Turnbull (31 agosto 1885 – 4 maggio 1961), un storico inglese della Matematica che ha rinvenuto e tradotto l’epigramma greco, noto come Epitaffio di Diofanto. Si tratta di un problema aritmetico proposto sotto forma di epigramma e fa parte di una raccolta di quarantasei indovinelli, che il grammatico latino Metrodoro, durante il VI secolo dopo Cristo, incluse nell’Antologia Greca. Tutti i quesiti corrispondono ad equazioni di primo grado ad un’incognita. Ecco il testo dell’indovinello. Questa tomba rinchiude Diofanto e, con grande meraviglia, dice matematicamente quanto ha vissuto. La sua giovinezza durò un sesto della sua vita; poi la sua barba iniziò a crescere dopo un dodicesimo; si sposò dopo un settimo e gli nacque un figlio dopo cinque anni. Il figlio visse la metà degli anni del padre e il padre morì quattro anni dopo il figlio. Quanti anni visse Diofanto?
Detta 𝑥 l’età di Diofanto, il problema si traduce nell’equazione
1 6 𝑥 + 1 12 𝑥 + 1 7 𝑥 + 5 + 1 2 𝑥 + 4 = 𝑥𝑥 = 84 .
Se l’epitaffio corrisponde a verità, Diofanto morì all’età di ottantaquattro anni.
Un altro indovinello di tipo diofanteo è stato proposto, qualche anno fa, quale test di ingresso agli studi universitari tecnico-scientifici. Ecco il testo. Fra tre anni Matteo avrà il doppio dell’età che Sara aveva tre anni fa, mentre ora il quadruplo degli anni di lui è pari al quintuplo degli anni di lei. Se è possibile determinarlo, qual è l’età di Matteo e di Sara? Si indichi con 𝑥 l’età di Matteo e con 𝑦 quella di Sara. Per determinare queste due incognite intere, è sufficiente impostare un sistema lineare di equazioni, utilizzando le due condizioni imposte dal testo dell’indovinello. Precisamente, l’affermazione contenuta nel testo fra tre anni Matteo avrà il doppio dell’età che Sara aveva tre anni fa, in termini analitici, si trasforma nell’equazione 𝑥 + 3 = 2(𝑦 − 3) → 𝑥 − 2𝑦 = −9. Similmente, l’affermazione ora il quadruplo degli anni di lui è pari al quintuplo degli anni di lei, diventa 4𝑥 − 5𝑦 = 0. Mettendole insieme, risulta il sistema di due equazioni lineari [𝑥 − 2𝑦 = −9 , 4𝑥 − 5𝑦 = 0] , la cui soluzione costituisce l’obiettivo dell’esempio. Prima però di risolverlo, è opportuno verificare che esso ammetta un’unica soluzione, per cui è necessario verificare che il determinante | 1 −2 4 −5| = 3 ≠ 0 sia diverso da zero. Si ottiene allora che
𝑥 = 15,  𝑦 = 12,
cioè Matteo ha quindici anni e Sara ne ha dodici. La figura che segue illustra in maniera grafica l’intersezione tra le due rette 𝑦 =( 𝑥 + 9)/2 (blu), 𝑦 = 4/5𝑥 (rossa), cioè la soluzione grafica dell’indovinello: l’asse delle ascisse rappresenta l’età di Matteo, quello delle ordinate indica invece l’età di Sara, e il punto 𝑃 è la soluzione del problema.

mercoledì 14 agosto 2019

Primi additivi e moltiplicativi


In passato ho dedicato parte del mio tempo a scoprire nuove sequenze matematiche. Una sequenza e’ una stringa ordinata finita o infinita di numeri.
Come vedete parlo di scoperta e non di invenzione. Questo perche’ sono convinto che la matematica esista indipendentemente dall’uomo. La matematica pervade il nostro universo ed e’ alla base delle equazioni fisiche che lo regolano. E queste esistevano gia’ molto prima che comparisse l’uomo visto che erano a lavoro gia’ al momento del Big bang senza che nessun uomo le pensasse o le elaborasse. La matematica quindi esiste per se stessa e non perche’ creata dalla mente dell’uomo. So che esitono matematici e scienziati che la pensano diversamente ma questo e’ il mio personalissimo pensiero.
Ok, ma come si fa a capire se una sequenza scoperta e’ veramente nuova, interessante ed utile da un punto di vista matematico? Semplicemente digitando i primi termini della sequenza sul sito di N. J. A. Sloane “The on-line encyclopedia of integer sequences”. Se la sequenza c’e’ allora non siete stati voi a scoprirla per primi. Negli anni passati di sequenze ne ho scoperte circa un trecento (tutte inserite nell’Enciclopedia di Sloane)  e oggi voglio parlarvi di alcune di esse a cui sono particolarmente affezionato. Inizio col chiedervi cosa lega,  secondo voi,  questi numeri:

2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89, 101, 113

Da un rapido sguardo sembra che tutti i termini ad eccezione del primo siano dispari. Inoltre nessun numero ha 5 come ultima cifra. Questo esclude, quindi i numeri divisibili per 5. Ma anche i multipli di 3 vanno esclusi essendo i  numeri presenti nella sequenza non divisibili per 3. Sembra che tutto punti ai numeri primi, cioe’ ai numeri divisibili per 1 e per se stessi solo. Eppure guardando attentamente manca il numero primo 13, 17, 19 per citarne solo alcuni. Quale e’ la proprieta’ condivisa da questa stringa di numeri che al momento ci sfugge? Semplicemente questa: numeri primi la cui somma delle cifre e’ ancora un numero primo. Per esempio 43 fa parte della sequenza in quanto 43 e’ un primo e lo e’ anche la somma delle sue cifre 4+3=7. Al contrario 13 non fa parte della sequenza in quanto 13 e’ un numero primo ma non lo e’ la somma delle sue cifre che da’ 4. A questo link un video youtube che parla dei primi additivi. Questo come appare la sequenza sul sito di Sloane. Link





Per chi non lo ricordasse, i numeri primi sono gli atomi della matematica. Cosi’ come tutto quello che ci circonda e’ fatto di atomi, cosi i numeri naturali sono il prodotto univoco di numeri primi. Il terorema fondamentale dell’aritmertica, infatti stabilisce che ogni numero naturale maggiore di 1 o e’ un numero primo o si puo’ esprimere come prodotto di numeri primi. Tale rappresentazione e’ unica, se si prescinde dall’ordine in cui compaiono i fattori. Facciamo un esempio. Il numero intero 10 e’ dato dal prodotto dei due numeri primi 2 e 5. Il numero 15 dal prodotto di 3 e 5. 20 dal prodotto 2*2*5 e cosi via. Questo significa che e’ possibile ottenere tutti i numeri che conosciamo a partire da un suo sottoinsieme: i numeri primi. I numeri naturali sono infiniti. Qualsiasi numero venga in mente per quanto grande che sia, puo’ essere sempre superato dallo stesso numero piu’ 1. Da qui si capisce facilmente che i numeri naturali sono infiniti. Cosa possiamo dire invece per i numeri primi? Si ritiene che la risposta sia stata data dal matematico greco Eulero nei suoi Elementi (Libro IX proposizione 20) che stabili’ in modo rigoroso che il numero dei primi e’ infinito. E cosa succede per i primi additivi? Sono meno dei numeri primi e questo e’ ovvio essendo un loro sottoinsieme. Ma il loro numero e’ finito o infinito? E quanti primi additivi ci sono se cambiamo la base passando per esempio da base 10 a base 2, 3, 12 ecc.? Nel 2009 Drmota, Maduit e Rivat hanno dimostrato che il numero di primi minori di n con somma delle cifre in base b uguale a k tende, se b-1 e k non hanno divisori comuni, a:



dove Π(n) indica il numero di primi fino a n e ϕ(b-1) e’ la funzione di Eulero, cioe’ il numero di interi positivi minori di b-1 che non hanno divisori in comune con b-1. Questo significa che per numeri n, molto grandi e’ possibile trovare un numero molto grande di primi (tendente all’infinito)  la cui somma delle cifre k e’ essa stessa un numero primo.
Nel 2012 Glyn Harman (Link) ha dimostrato che, se e’ vera una congettura sulla distribuzione dei numeri primi in piccoli intervalli, la somma dei reciproci dei primi additivi minori di n in base 10 tende a:
3/2(ln(ln(ln(n)))    per n tendente all’infinito
Qui l’andamento della somma dei reciproci dei primi additivi.




Quindi il numero di primi additivi e’ infinito.
La congettura stabilisce che esista una funzione f(x) che tende a zero al crescere di x, tale che il numero di primi nell’intervallo [x, x+sqrt(x)f(x)] tenda a (sqrt(x)f(x))/ln(x). Sebbene assolutamente plausibile questa congettura e’ piu’ forte della stessa congettura di Riemann.
Dalla sequenza dei primi additivi a quella dei primi la cui somma delle cifre e’ un numero pari o un  numero dispari il salto e’ breve.

2,11,13,17,19,31,37,53,59,71,73,79,97,101,103,...

3,5,7,23,29,41,43,47,61,67,83,89,113,131,137,...

Queste due sequenze in media hanno lo stesso numero di elementi? Nessuno ha saputo rispondere fino a che nel 1968, il matematico russo Alexander Gelfond ipotizzo’ di si. Ma si trattava di una congettura e non di una dimostrazione. Per ottenere quest’ultima si e’ dovuto aspettare il 2010 quando alcuni ricercatori dell’Istituto di Matematica di Luminy (Francia) hanno pubblicato un  articolo negli Annals of Mathematics dal titolo Sur un probleme de Gelfond: la somme des chiffres des nombres premiere.
Il metodo impiegato ha le sua fondamenta nella matematica combinatoria, la teoria analitica dei numeri e l’analisi armonica. Di sicuro questa scoperta permettera’ di rispondere ad altre questioni relative alle sequenze dei numeri primi ancora aperte. Questioni che oltre all’interesse puramente teorico sono legate alla costruzione di sequenze di numeri pseudo-randomici ed hanno importanti applicazioni nella crittografia.  
Dopo i primi additivi il passaggio a quelli che ho chiamato primi moltiplicativi e’ stato semplice. La sequenza e’ costituita da quei numeri primi il cui prodotto delle cifre e’ anch’esso un numero primo. Per esempio 113 fa parte della sequenza in quanto 1*1*3=3 che e’ primo (link).

 

 Osserviamo che il prodotto di un qualsiasi numero di cifre in base 10 (0,1,2,3,4….9) escludendo lo 0 e’ un numero composto (prodotto di piu’ fattori) a meno che non abbiamo una cifra prima e tanti 1.   

1*3*4*7=84                      ovviamente non e’ primo essendo il prodotto dei fattori  3*2*2*7

1*1*1*1*1*1*3*1=3    e’ un numero primo

Questa propieta’ e’ stata evidenziata nel 2014 da Jens Kruse Andersen un amante dei numeri primi e autore di un sito dal titolo Prime records.
Al momento non conosciamo molto su questi numeri, come anche su quelli ottenuti semplicemente dall’intersezione dei primi  additivi e moltiplicativi che riporto qui di seguito (link). 



  Chiunque in questi giorni di afa voglia divertirsi con questi numeri lo puo’ fare. E chissa’ che non possa scoprire qualche importante proprieta’ da meritarsi un posto nell’Enciclopedia di N. J. A. Sloane.
 In bocca al lupo.

http://www.wikio.it