A strange game, by Wargames

Oggi mi hanno fatto tornare in mente questo film. Fa parte dei miei ricordi di infanzia (e già avrei dovuto capire che c’era qualcosa che non andava… 😀 ) anche se non mi è mai rimasto impresso più di tanto.

Sto parlando di una specie di tecno-fantasy da guerra fredda in cui l’arsenale nucleare americano si arma quasi fosse un gioco… appunto.

In brevissimo (è un film del 1983 non credo si possa chiamare spolier, ma in case saltate allegramente): Settle, un giovane hacker amante dei videogiochi componendo numeri telefonici a caso riesce a raggiungere il supercomputer che si occupa di difendere la buona America dalla cattiva Russia. Il computer in questione è una sorta di intelligenza artificiale ante litteram che si allena con simulazioni di guerra e giochi di strategia per farsi trovare pronto a fare la contromossa ad un eventuale attacco russo. Vedendo la lista dei giochi su quel pc il nostro amico hacker si convince di esser entrato nell’azienda produttrice di videogiochi che cercava ed inizia a giocare contro il super computer ad una guerra termonucleare in cui, guarda un po’, lui assume il ruolo dei sovietici. Per il ragazzo è solo un gioco, per il computerone una seria minaccia. Le mosse del ragazzo sono scambiate per veri attacchi e tutto lo stato maggiore dell’esercito allertato per l’imminente attacco. La commistione fra “realtà reale” e “realtà virtuale” dilaga: i russi prendono i movimenti delle truppe americane come una dichiarazione di guerra e gli amMericani a loro volta sono insospettiti dalle strategie sovietiche. Il “gioco” si autoalimenta fino a delineare l’inizio di una guerra termonucleare. E’ praticamente tutto in mano al computer con una “sapente” esclusione del fattore umano che continua a decidere la strategia migliore per sterminare il nemico. L’algoritmo inizia a provare tutti i codici di lancio per avviare la sua offensiva.

Viene qui la parte che mi ha più colpito oggi del vecchio film: il modo con cui si cerca di fermare l’intelligenza artificiale ormai convinta di voler sterminare l’umanità: giocare a tris.

Praticamente l’idea del ragazzo per riuscire a fermare il computer è semplicemente quella di sovraccaricarlo. Al computer viene chiesto di giocare a tris contro se stesso: le partite finiscono velocemente in condizioni di stallo una dopo l’altra e lo stesso avviene con le varie simulazioni di guerra. Il pc “tralascia” (con tanto di scintille dai monitor come i fantasy anni ottanta-novanta volevano) le operazioni di lancio fino a convincersi che tutte le varie opzioni di guerra portano allo stesso risultato:

A strange game. The only winning move is not to play.

Il computer interrompe qualunque simulazione e chiede al suo creatore se non sia meglio giocare a scacchi.

Beh, diciamo che a parte un po’ l’effetto amarcord mi ha colpito molto l’approccio del “tris contro se stessi”. Praticamente un egregio modo per distogliere l’attenzione da compiti più seri è quello di focalizzare l’attenzione su processi abbastanza inutili, ripetitivi e senza speranza di vittoria. La condizione di stallo che si ripete ad ogni partita mi ricorda tanto le molteplici discussioni con i muri di gomma che trovo (troviamo, ne sono certo) qui e li.

WU

PS. Sotto la “scena madre” (nell’opinione di questo fesso) del film.

Annunci

Salary Theorem by Dilbert

“Dimostrare”, mediante quella che arbitrariamente definisco matematica-sociale, qualcosa che già tutti sappiamo da un intrinseca soddisfazione… almeno per un ingegnere (magari anche qualche sfumatura un po’ nerd). Poi, farlo anche in maniera ironica e corroborato dal solito faccione di Dilbert completa l’opera.

Oggi sono incappato nel teorema di Dilbert circa i salari. Sappiamo tutti che le retribuzioni medie dei “business man” o dei markettari sono più alte (e non a buon diritto) di quelle di un ingegnere, un tecnico o uno scienziato.

Beh, grazie al succitato teorema la cosa è oggi dimostrabile! I due postulati sono (anche questi ben noti a tutti) che la conoscenza è potere ed il tempo sono soldi.

Dato che la potenza (si, si gioca un po’ sul doppio senso potere-potenza, ma volete impuntarvi su questo?) è lavoro diviso tempo (come ogni buon ingegnere sa, non sono certo circa i C-level qualcosa…), sostituendo potenza con conoscenza e tempo con soldi si ottiene velocemente che maggiore è la tua conoscenza e minora è la tua prospettiva economica!

DilbertSalaryTheorem.png

Non è una frase fatta, sono le equazioni che lo dicono! Si, ok, ci stiamo ridendo un po’ su, ma la consueta prassi secondo cui i lavori tecnici non sono opportunamente incentivati, anche (ma, purtroppo, non solo) da un punto di vista economico è troppo diffusa. Ingiustamente, IMHO. Hanno voglia i Commerciali a vendere un prodotto che non c’è. Per un po’ funziona anche, con opportuna bravura anche per un bel po’, con degno supporto governativo/politico anche per tanto, ma sono sempre del parere che i nodi vengono al pettine.

Saper fare qualcosa vale tanto quanto saper coordinare chi la fa o saper vendere quello che si fa.

WU

PS. Mi tona in mente la frase di un mio professore che diceva sempre “chi sa fa, chi non sa insegna”. Professore, ripeto.

The First Machine-Generated Research Book

Ci immaginiamo (sostanzialmente perché ci piace farlo…) il mondo conquistato dalle macchine quando ci mettiamo a fare la guerra a cyborg stile Terminator oppure quando un super-codice alla Matrix ci ha ridotto allo stato vegetativo. Sarebbe anche simpaticamente distopico, ma sostanzialmente prima di arrivare ad essere schiavizzati dai computer e robot credo passerà tanta acqua sotto i ponti; anche che sia fluendo proprio in questo momento.

Non per questo non dobbiamo guardarci attorno ed osservare come oggi codici e macchine ci stanno colonizzando ; non tanto per averne paura (o fare qualche Kolossal…), quanto per capire dove ci siamo spinti e dove possiamo spingerci.

Sul fatto della mia posizione prevenuta nei confronti di pubblicazioni peer-reviewed non ne ho mai fatto mistero, sul fatto che oggi un algoritmo è in grado di pubblicare un libro, confesso, non avevo una posizione, ma tutto sommato inizio a pensare che sarebbe un sistema più obiettivo ed imparziale di tanti “luminari”.

Ad ogni modo, la realtà è che oggi (software alla conquista) si può acquistare, edito dalla Sringer (non esattamente la casa che cura le edizioni del giornaletto dell’oratorio) il primo libro generato da un algoritmo.

Lithium-Ion Batteries РA Machine-Generated Summary of Current Research: non esattamente il genere di libro che leggeremmo la sera a letto, ma sicuramente un ambito in cui la ricerca (ed immancabili pubblicazioni) abbondano. Perch̩ non pensare ad un algoritmo che le selezioni, cataloghi e vi scriva su un libro in cui i capitoli (ovviamente di senso compiuto!) sono estratti degli articoli che sono propriamente citati e linkati?

Springer Nature published its first machine-generated book, compiled using an algorithm developed by researchers from Goethe University. This collaboration broke new ground with the first machine-generated book to be published by a scholarly publisher.

The book offers an overview of new research publications on lithium-ion batteries – a structured, automatically generated summary of a large number of current research articles. It gives researchers an overview of the latest research in this rapidly growing field, allowing them to manage the information efficiently.

Il LIBRO offre una panoramica delle ultime ricerche nel campo (si, in questo caso parliamo di batterie agli ioni di litio, ma cosa ci limita?) ed è rivolto ad una platea che vuole avere un sistema efficiente e completo per capire cosa si sta facendo. Pochi fronzoli, referenze e molta sostanza… perfetto per un algoritmo-editore (… e mi immagino anche economicamente vantaggioso per la casa editrice stessa…).

Non è un manuale, ne una raccolta di articoli, non è un mattone tecnico o una descrizione antologica delle batteria agli ioni di lito, ma si tratta di una pubblicazione a tutti gli effetti esattamente come quelle che abbondano con editor, guest editor, lead editor, bla bla bla… Dalla intro del libro:

Advances in technology around Natural Language Processing and Machine Learning have brought us to the point of being able to publish automatically generated meaningful research text.

We have seen the rise of automated text generation in popular fiction (with quite diverse and fascinating results), automated journalism such as in sports, stock market reports or auto-produced weather forecast (data-to-text), automated medical reviews and not to forget the remarkable progress in dialog systems (chat bots, smart speakers).

As far as it concerns scholarly publishing, many attempts in this area up to now have had a negative perception, and the outcome has fallen short of expectations. Often such texts have been however quite successful in demonstrating flaws in the scientific reviewing processes, clearly serving as an important corrective.

L’algoritmo è il risultato di una stretta collaborazione fra editori scientifici linguisti ed informatici, e già questo potrebbe essere un successo. Ma vedere cosa siamo oggi in grado di fare con un buon software (oltre, ovviamente, a farci accapponare la pelle) non può che aprirci gli occhi su quanto imparziali siamo noi in tante, troppe mansioni.

“While research articles and books written by researchers and authors will continue to play a crucial role in scientific publishing, we foresee many different content types in academic publishing in the future: from yet entirely human-created content creation to a variety of blended man-machine text generation to entirely machine-generated text. This prototype is a first important milestone we reached, and it will hopefully also initiate a public debate on the opportunities, implications, challenges and potential risks of machine-generated content in scholarly publishing.”

WU

PS. Qui il pdf (per vostra goduria). Leggendone pezzi a caso mi pare anche scritto meglio di tanti articoli che mi passano davanti gli occhi…

Pigeon Ranking

… esisteva il PageRank di Google, perché fermarci? Per di più quando la cosa parte da uno scherzo (ebbene si, un pesce d’Aprile…), si trova sotto i nostri occhi tutti i giorni e motiva un bel team di ricerca che fa le cose che gli piacciono e viene anche pagato per farlo?

“When a search query is submitted to Google, it is routed to a data coop where monitors flash result pages at blazing speeds,” the copy said. “When a relevant result is observed by one of the pigeons in the cluster, it strikes a rubber-coated steel bar with its beak, which assigns the page a PigeonRank value of one. For each peck, the PigeonRank increases. Those pages receiving the most pecks, are returned at the top of the user’s results page with the other results displayed in pecking order.”

Correva il primo Aprile 2002 quando Google in una comunicazione “ufficiale” rivelò l’algoritmo alla base del proprio, super-segreto, da tanti emulato, sistema di indicizzazione delle pagine web. Il PageRank non era frutto, si disse, di Intelligenza Artificiale, bensì di Intelligenza Animale (il fatto che l’acronimo sarebbe lo stesso nei due casi quasi mi fa rabbrividire…). In particolare il sistema di ranking era affidato all’innata capacità di identificare la differenza di immagini e nel riconoscere pagine con contenuti più informativi del… piccione domestico. Le pagine con il maggior numero di beccate erano quelle che finivano ai primi posti nei criteri di ricerca, semplice no!?

Ovviamente (ovviamente) la cosa era un pesce d’Aprile ben architettato, ma anche quando si seppe la verità la cosa non morì li. Esperimenti sulle capacità di identificare e distinguere immagini da parte dei piccioni risalgono ai primi del novecento e, già all’epoca i risultati non erano affatto malvagi…

Partendo dallo scherzo per quasi un decennio un team di ricerca ha veramente provato a studiare più in dettaglio le capacità di condizionamento del Columba livia. Le abilità cognitive e visive dei piccioni sono state testate presso l’Università della California Davis nel campo della medicina diagnostica.

Quattro esemplari, in particolare, sono stati addestrati a distinguere fra le immagini di tumori al seno quelle benigne da quelle di tumori maligni. I piccioni dovevano beccare due pulsanti di differente colore in base al tipo di tumore. La ricompensa, nel caso di identificazione corretta, era ovviamente un po’ di cibo.

PigeonRank.png

Beh, già nel giro di un paio di settimane i piccioni categorizzavano correttamente l85-90% delle immagini. E c’è anche di più: sottoposti al test con un differente set di immagini tumorali (non legati al seno) gli uccelli si sono dimostrati in grado di generalizzare quanto appreso arrivando a catalogare correttamente circa 80% dei tumori.

[…] The birds proved to have a remarkable ability to distinguish benign from malignant human breast histopathology after training with differential food reinforcement; even more importantly, the pigeons were able to generalize what they had learned when confronted with novel image sets. The birds’ histological accuracy, like that of humans, was modestly affected by the presence or absence of color as well as by degrees of image compression, but these impacts could be ameliorated with further training. Turning to radiology, the birds proved to be similarly capable of detecting cancer-relevant microcalcifications on mammogram images […]

Si è quindi passati a studiare “l’effetto gruppo”, ovvero capire se ad un maggior numero di beccate di un dato bottone corrispondesse effettivamente una maggiore affidabilità nella catalogazione. La risposta è stata ancora una volta affermativa: la “saggezza dello stormo” nella catalogazione era mediamente superiore a quella dei singoli pennuti arrivando a sfiorare il 93% di accuratezza.

Se non altro è stata la conferma che la regola della “saggezza delle folle” applica benissimo anche agli stormi: ovvero quando una massa di individui (o piccioni) inesperti è capace di fornire comunque una risposta adeguata a un problema (ah, e questa teoria è effettivamente una delle componenti alla base dell’intelligenza artificiale del PageRank di Google che tende a dare più importanza alle pagine “linkate” da più fonti esterne…).

WU

PS. Google Pigeon è un’altra cosa ancora (vera)…

Il problema dei conigli

Quante coppie di conigli verrebbero prodotte in un anno, a partire da un’unica coppia, se ogni mese ciascuna coppia da alla luce una nuova coppia che diventerebbe produttiva a partire dal mese successivo.

Ok, rileggiamo.

Abbiamo una coppia di conigli, il primo mese. Al secondo mese abbiamo la coppia originaria e la nuova coppia di coniglietti da questa generata. Il mese successivo abbiamo che la coppia originaria genera un’altra coppia, mentre la coppia nata il mese precedente (diciamo la fine?) non ha ancora procreato; abbiamo quindi tre coppie. Al mese quattro abbiamo che sia la coppia originaria, sia la prima coppia generata danno alla luce due nuove coppie di roditori, siamo a cinque coppie. …e così via (come di solito si dice quando le cose diventano troppo complesse da spiegare).

A parte i miei deliri, il problema in questione fu posto dal re di Sicilia Federico II, ma se non vi siete persi troppo nella precedente descrizione di coppie e conigli vi sarete accorti che la cosa intrigante è la successione che risponde al quesito. I primi dodici termini della successione (nonché la risposta al quesito che ne è poi la genesi) sono;

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 255, 377

Dopo un anno abbiamo 377 coppie di conigli; il re di Sicilia era contento e Fibonacci aveva “scoperto” la sua successione (ma voi siete di quelli che pensano che la matematica è già scritta e noi la dobbiamo scoprire oppure che è tutto un costrutto umano, benché dimostrabilmente incompleto, che costruiamo ed ampliamo giorno per giorno?).

La successione di Fibonacci è composta da termini che sono via via la somma dei due precedenti… proprio come la “gemmazione” dei conigli di cui sopra. Senza sproloquiare sulle sue n proprietà, facciamo almeno un cenno (un altro?!) alla sezione auree che è, magia delle magie, il rapporto costante fra due termini consecutivi della successione.

La sezione aurea è stata per secoli l’incarnazione del concetto di armonia; dalle piramidi alle spirali naturali la ritroviamo praticamente ovunque e la cosa decisamente suggestiva è che qualcosa che ci pare ben fatto o ben proporzionato è molto probabile nasconda la sezione aurea come numero magico del rapporto fra alcune sue parti. Un girasole? Il Partenone? La Gioconda? Il Modulor (forse il primo a fare un uso cosciente)?

Benché armonico per eccellenza, la sezione aurea è un numero “sporco”, ovvero irrazionale, si può determinare in un’infinità di modi, ma forse il più famoso (e comodo) è:

phi = (1+radice(5))/2 = 1,6180339887

La sezione aurea si può ottenere dal rapporto fra due lunghezze diverse delle quali la maggiore è medio proporzionale fra la somma delle due e la minore. Eh? Se siete alti 170 cm, ed siete ben proporzionati possiamo assumere che il vostro ombelico si trovi ad una distanza da terra che è data dalla sezione aurea per la vostra altezza; ovvero a circa 105 cm dal terreno ed il vostro busto misura circa 65 cm. Se fate il rapporto fra tutti questi numeri indovinate che ritrovate?

Il perché questo numero ci piaccia così tanto non lo sappiamo, il perché ricorra così spesso in natura è puro mistero, ma esiste, lo vediamo (più o meno inconsciamente) ogni giorno e l’abbiamo “scoperto” grazie a qualche coppia di conigli (e tanto genio matematico).

WU

Collatz che tende ad 1

Altro giochino matematico (questo ve lo ricordate?)… prima di dirvi che rimane una delle congetture più inafferrabili della matematica.

Prendiamo un numero a caso, intero e maggiore di 1. Se il numero è pari dividiamo per due, mentre se è dispari moltiplichiamo per tre ed aggiungiamo uno. Algebricamente facciamo:

collatz1.png

Mi sembra abbastanza semplice, proviamo con 11. Tanto per tirare un numero a caso…

Prendiamo il numero risultante e riapplichiamo la regola. Che succede secondo voi?

Allora:

  • 11 è dispari, quindi faccio: 11*3+1 = 34
  • 34 è pari, quindi faccio: 34/2 = 17
  • 17 è dispari, quindi faccio: 17*3+1 = 52
  • 52 è pari, qundi faccio: 52/2 = 26

Avete l’impressione che stiamo divergendo? Che stiamo ottenendo numeri a caso? Ottimo, continuiamo.

  • 26 è pari, quindi faccio: 26/2 = 13
  • 12 è dispari, quindi faccio: 12*3+1 = 40
  • 40 è pari, quindi faccio: 40/2 = 20
  • 20 è pari, quindi faccio: 20/2 = 10
  • 10 è pari, quindi faccio: 10/2 = 5
  • 5 è dispari, quindi faccio: 5*3+1 = 16
  • 16 è pari, quindi faccio: 16/2 = 8
  • 8 è pari, quindi faccio: 8/2 = 4
  • 4 è pari, quindi faccio: 4/2 = 2
  • 2 è pari, quindi faccio: 2/2 = 1

Il fatto che abbia raggiunto 1 è un caso? Che succede se applica l’algoritmo ad 1?

  • 1 è dispari, quindi faccio: 1*3+1 = 4
  • 4 è pari, quindi faccio: 4/2 = 2
  • 2 è pari, quindi faccio: 2/2 = 1

torno ad 1. Effettivamente in alcuni enunciati dell’algoritmo si pone anche come condizione di stop quando la serie raggiunge 1.

Ora la domanda, da molti milioni di dollaroni, è, ma si raggiunge sempre 1 o esiste qualche numero (magari con qualche decina di cifre, tanto per essere ultra-difficile da scovare…) per cui ciò non è vero? Beh, la risposta è, come nelle migliori tradizioni, non lo sappiamo.

Esatto, siamo di fronte alla congettura di Colaltz.

Non esiste una dimostrazione matematica che si finisce sempre con l’ottenere 1 (che come abbiamo visto ritorna ad uno nel giro di tre iterazioni), ma è stata provata numericamente (al pc, per intenderci) fino a circa 1 x 10^20… un numero decisamente grande da lasciare qualche dubbio che il primo contro-esempio possa essere ancora maggiore…

Inoltre, un po’ ad occhio, l’algoritmo dimezzando i numeri pari e facendo *3+1 con i dispari aumenta solo i dispari di un fattore circa 3/4, quindi vi sono buone speranze che questi decrescano verso 1.

Per farla breve: ci crediamo tanto ed effettivamente abbiamo buone ragioni per farlo, ma dimostrare matematicamente che sappiamo come finisce questo giochino in tutti i casi possibili ed immaginabili non è alla nostra portata.

La matematica non è ancora pronta per problemi di questo tipo [Paul Erdős, matematico, circa questa congettura]

WU

PS. Sotto un po di fury computations (si, ho fatto uno stupido foglio excel fare giocare… peto venia) con tre esempi dell’andamento dei valori per 11, 367 ed 888.
L’andamento ed i valori raggiunti dalla successione variano sostanzialmente, ma il destino unitario rimane lo stesso.

collatz2.png

Interferometria

interferometria.png

Non è proprio così semplice (come qui ci illumina XKCD), ma effettivamente è così affascinante. E’ praticamente un’applicazione del principio di sovrapposizione. Un’onda elettromagnetica risultante dalla combinazione di onde separate ha proprietà che sono legare alle onde originarie.

Ora, se le due onde hanno la stessa frequenza può accadere che l’interferenza sia costruttiva, quando le due onde sono in fase, o distruttiva, quando sono fuori fase.

Operativamente, le onde sono spesso radio o laser e la variazione di intensità dell’onda risultante su un rilevatore da una misura dell’entità e del tipo di interferenza fra le due onde originarie. Il metodo ha un incredibile risoluzione e consente di non dover realizzare telescopi/radiotelescopi/rilevatori in generale con estensioni immani, ma semplicemente due o più sorgenti a metri/chilometri/milioni di chilometri di distanza. Il “telescopio” virtuale risultante ha uno specchi di diametro equivalente alla distanza fra le sorgenti (ed è, quasi, indipendente dalla dimensione della singola sorgente)… wow!

Si, abbiamo scoperto così le onde gravitazioni (e non quelle di gravità). E’ così che osserviamo la Terra nei più piccoli dettagli, che determiniamo il moto di stelle binarie o di pianeti extrasolari. Il contro? Una mole non indifferente di dati da post-processare e combinare via software, di certo molto più economico ed affidabile di uno specchio da centinaia di km.

Se solo funzionasse anche con gli esseri animati. E perché fermarsi ai cani? Due menti “in sintonia” che agiscono come un’unica enorme mente a km di distanza? Troppo panteismo? Un po’ di antiche reminiscenze di Gaia? Olismo esasperato? Di sicuro tutti o anche una combinazione di essi, ma da qualche parte al mondo un’altro fesso che sproloquia come me su queste cose, in questo momento, ci deve pur essere (almeno per tranquillizzare l’omino del mio cervello). Che poi non (s)ragioniamo come un’unica mente è assolutamente ovvio ed assolutamente un bene.

WU

Generatore lineare congruenziale

La matematica è per sua natura abbastanza ordinata, abbastanza ripetitiva ed abbastanza prevedibile. Certo, abbastanza.

In un mondo come questo è quindi non proprio banalissimo avere la generazione di numeri che siano veramente, ma veramente casuali. Ci si accontenta spesso di numeri pseudo-casuali (ovvero numeri generati da un algoritmo che pur essendo deterministico produce una sequenza che ha circa le stesse proprietà statistiche di una sequenza casuale) tipicamente perché il vero caso non serve poi a molto ed è computazionalmente difficile da ottenere.

In altre parole esiste un’equazione “semplice” per ottenere una sequenza di numeri che sembra prodotta dal caso. L’algoritmo LCG (Linear Congruential Generator) è uno dei più vecchi, semplici e conosciuti algoritmi che ci danno l’impressione del caso.

L’algoritmo si basa su un modulo (m), un moltiplicatore (A) ed un incremento (C); uno dei valori della successione, il cui periodo è al più m, è quindi definito da:

Xn+1 = (A Xn + C) mod m

Inutile dire che la semplicità dell’equazione (ed il conseguente largo uso anche in algoritmi numerici) si paga in termini di bontà dei risultati; la scelta dei tre coefficienti diventa fondamentale (e potrebbe essere a sua volta il frutto di un generatore di numeri casuali 🙂 ).

Ed ora facciamo qualche prova:

LCG.png

Cose simpatiche:

  • il penultimo caso è l’algoritmo della Borland C/C++
  • se A ed m sono molto maggiori di C, i valori della successione si schiacciano su C
  • nel primo e secondo caso (ed in generale per ogni combinazione di fattori abbastanza semplice e lineare) la successione è tutt’altro che casuale
  • ovviamente più grandi sono (numericamente) i tre fattori e più l’aspetto casuale della faccenda viene fuori.

… pensateci la prossima volta che vi viene chiesto di dire un numero a caso.

WU