Quante molecole di emoglobina produciamo al secondo?

Lunedì ho ignominosamente ciccato una stima alla domanda del titolo, rispondendo “un miliardo”. A mia parzialissima discolpa, ho davvero tirato a indovinare, senza pensarci su: adesso provo a fare i conti spannometrici, come in ogni problema di Fermi che si rispetti, per vedere se vado un po’ meglio. I problemi di Fermi, se non lo sapeste già, sono quelli in cui bisogna dare una stima sensata della risposta senza andarla a cercare, usando magari in modo creativo tutte le reminescenze che vi vengono in mente.

Da dove parto? Da buon ex donatore di sangue, so che ci sono in media 4,5 milioni di globuli rossi per millimetro cubo di sangue, e che un globulo rosso vive una novantina di giorni. Inoltre il corpo umano ha circa 5 litri di sangue, che possiamo approssimare a 5 decimetri cubi. Arrotondando i numeri e usando la notazione esponenziale abbiamo 5·10^6·5·10^7 = 2,5·10^13 globuli rossi, diviso 100·10^5 = 2,5·10^6 globuli rossi prodotti per secondo. Questa è diciamo la parte facile, ed è una stima particolarmente corretta: qui per esempio dicono 2,4 milioni. Occhei, la fortuna del dilettante. Per quanto riguarda le molecole di emoglobina, mi trovo molto più a disagio e mi tocca arrampicarmi sugli specchi. Sempre come ex donatore so che la percentuale di emoglobina nel sangue è tra il 12 e il 18%, che arrotondo a 0,1 cioè un decimo. Abbiamo quindi circa 500 grammi di emoglobina nel sangue, che saranno come ordine di grandezza una mole: la molecola avrà un’ottantina di atomi, così ad occhio. Quindi il numero totale di molecole di emoglobina è il numero di Avogadro, 6·10^23, e quindi abbiamo circa 2·10^10 molecole di emoglobina per globulo rosso. Stavolta ho sbagliato per difetto di un fattore 100, banalmente perché una molecola di emoglobina è molto più grande di quello che pensavo: pesa circa 68.000 Dalton e non 500. Non si può avere sempre fortuna… In definitva il mio valore di 5·10^16 atomi è sbagliato rispetto alle stime tra 4,7 e 7·10^18 atomi, ma sicuramente molto più vicino alla realtà del valore che avevo tirato a indovinare.

Commenti? Per risolvere un problema di Fermi occorre avere conoscenze di tutti i tipi. Io avevo quelle empiriche da donatore di sangue, quelle delle misure standard come i circa 100.000 secondi in un giorno (sì, sono 86.400, ma qui si arrotonda), le reminescenze scolastiche come il numero di Avogadro ma mi mancavano quelle di chimica organica. Due ordini di grandezza di errore su un quintilione (americano: in italiano sarebbe un trilione) sono tanti o pochi? Decidete voi. Intanto mi porto a casa un valore di grandezza (una molecola complessa) che potrà servirmi in futuro per altri problemi di Fermi…

Ancora sulle dimostrazioni a conoscenza zero

Ultima puntata, almeno per il futuro prevedibile, sulle dimostrazioni a conoscenza zero. Stavolta il punto di vista è però un po’ diverso: spiegherò cosa c’è filosoficamente dietro a questo tipo di dimostrazioni, basandomi essenzialmente su questo vecchio post di Matthew Green.

Per prima cosa, il concetto nacque una quarantina d’anni fa, come spinoff degli studi sui sistemi di dimostrazione interattiva, dove un Dimostratore deve convincere un Verificatore che una certa affermazione matematica è vera. Il Verificatore ha a disposizione molte meno risorse computazionali del Dimostratore, altrimenti il problema non si porrebbe nemmeno. Fino alla metà degli anni ’80 del secolo scorso gli studi erano orientato sul vedere se il Verificatore poteva avere fiducia del Dimostratore, oppure quest’ultimo poteva fregarlo: Shafi Goldwasser, Silvio Micali e Charles Rackoff hanno pensato invece di rovesciare il punto di vista, chiedendosi “e se fosse il Verificatore quello di cui non ci fidiamo?” L’esempio che fa Green è quello delle password Unix. Il server salva una versione codificata (hash) della password più alcuni caratteri casuali (il salt); quando l’utente si collega manda la password, il sistema ricalcola l’hash e se coincide con quello salvato fa entrare l’utente, perché sa che l’utente conosce la password. Questo però significa che se il server è compromesso allora il cracker vede la password in chiaro: non esattamente una bella idea. Si può fare di meglio? La risposta è stata “(statisticamente) sì: posso avere una probabilità alta a piacere che il Verificatore riesca solo a sapere il bit di informazione “l’affermazione è vera”.

L’esempio fatto è diverso da quello delle due porte fatto la scorsa settimana, e rende forse più l’idea di come vanno le cose: poi il raccontino, pensato originariamente da Micali, è anche divertente. Io ho un grafo molto grande, e vorrei che i vertici fossero colorati con solo tre colori in modo che due vertici adiacenti non abbiano mai lo stesso colore. Questo mi può per esempio servire per una rete di trasmissione radio: due celle troppo vicine non possono usare le stesse frequenze, perché altrimenti i segnali interferirebbero. Il problema è computazionalmente pesante, NP completo: Google ha dirottato un bel po’ delle sue TPU dai chatbot per risolverlo, e adesso mi dice che ha la soluzione e mi chiede i soldi. Siamo però in un vicolo cieco: io non pago se non sono sicuro che la soluzione ci sia davvero, e Google non me la vuole mostrare finché non pago. Che fare? Basta avere un capannone abbastanza grande; pennarelli di tre colori; tanta, tanta carta. E un bel po’ di cappelli, come omaggio ai problemi di logica. Io disegno il mio grafo (diciamo con 1000 archi che uniscono i vertici) su un enorme foglio di carta ed esco; gli amici di Google scelgono a caso un associazione tra i colori dei pennarelli e la colorazione del grafo, e poi mettono un cappello sopra ogni vertice. Quando sono rientrato, scelgo un arco qualunque che connette due vertici. Google toglie i cappelli che coprono i due vertici: se i colori sono identici sono certo che mi aveva preso in giro e non aveva la soluzione, se invece sono diversi potrebbe avere ragione. Certo, avrebbe ancora una probabilità dell’ordine del 99,9% di avere solo avuto fortuna, visto che non posso sapere cosa c’è dietro tutti gli altri archi. Però Google mi dice che posso rifare l’esperimento quante volte voglio. Ogni volta si partirà da un’associazione casuale dei colori, quindi non posso sperare di costruirmi man mano una mappa; in compenso posso sempre scegliere l’arco che voglio. A furia di moltiplicare fattori 0,999 (il 99,9%), la probabilità che sia solo questione di fortuna può essere resa piccola a piacere. C’è persino un gioco interattivo, se volete divertirvi.

La definizione di un protocollo a conoscenza zero, secondo gli autori, deve soddisfare tre proprietà:

  1. Completezza: se il Dimostratore ha effettivamente una dimostrazione, deve convincere il Verificatore con una probabilità prossima a piacere al 100%.
  2. Validità: il Dimostratore può convincere il Verificatore solo se effettivamente ha una dimostrazione.
  3. Conoscenza zero Il Verificatore non avrà nessuna idea di quale possa essere la soluzione.

L’esperimento visto soddisfa sicuramente i primi due punti. Per il terzo, l’equivalente del video editato nell’esempio della settimana scorsa, le cose si fanno più fantascientifiche. Supponiamo che Google non sia in realtà riuscita a trovare una colorazione. In compenso uno dei loro progetti segreti è il prototipo di una macchina del tempo. Essa funziona perfettamente: l’unico problema è che al momento permette di tornare indietro solo di 314,15926… secondi. Avere poco più di cinque minuti è però sufficiente: se si acccorgono che sto scegliendo un arco i cui vertici hanno lo stesso colore, mandano un segnale e un tecnico torna indietro nel tempo, cambiando la colorazione ma lasciandola sempre casuale: il tutto fino a che non si ha uno schema dove i vertici hanno colori diversi. Il tutto senza che io mi possa accorgere di niente, ovviamente. Cosa significa tutto questo? Che se per assurdo io avessi una strategia che “estrae” informazione dopo avere osservato i due colori, estrarrei la stessa informazione anche nel caso che la macchina del tempo fosse stata messa in funzione. Ma in questo secondo caso la soluzione al mio problema non esiste: quindi l’assunto di partenza è falso e io non posso estrarre informazione.

Nell’ambito informatico, tutto questo si ottiene mediante uno “schema d’impegno” (commitment scheme). Il ruolo della macchina del tempo è banalmente il rilanciare il programma corrispondente al Dimostratore più volte. La morale di tutto ciò è che viviamo in un mondo difficile, dove non ci si può mai fidare di nessuno, ma per fortuna la matematica ci aiuta a ritrovare questa fiducia!

La sanità lombarda non riesce a parlare a sé stessa

Come sapete se leggete il mio blog, è un paio d’anni che Regione Lombardia chiama le persone che hanno fatto una prenotazione per verificare se ci vanno davvero. Fin qui nulla di male, ormai mi sono salvato in rubrica il numero e so già che dire.

È però successo che avevo prenotato una visita per Jacopo da effettuarsi il 26 febbraio, ma poi abbiamo scelto di farne una a pagamento. Così l’altro ieri sono entrato nel fascicolo sanitario e ho revocato la visita. Tutto semplice, pochi clic, un minimo di verifiche e via. Peccato che mi abbia appena chiamato il numero verde per confermare la visita. Io dico “guardi che l’ho già revocata”, l’addetta va a video, mi chiede per sicurezza la data di nascita del pargolo e dice “sì, in effetti è stata revocata”.

Ma è davvero tanto difficile fare un controllo prima di dare la lista delle chiamate?

Inps, parlare con te è un’esperienza

Ho due figli minorenni e quindi ho diritto all’assegno unico (di valore minimo, visto il mio ISEE, ma non è questo il punto). L’ho regolarmente ricevuto fino a che qualche mese fa decisi inopinatamente di spostare l’accredito sul mio conto Revolut, che poi è quello che uso per dare la paghetta ai figli. Tutto bene? No. Un mese fa mi accorgo che i soldi non mi arrivano più. Entro nel sito, leggo più attentamente, e scopro che poiché il conto Revolut ha un IBAN non italiano devo allegare un certificato di titolarità del conto. Ci sta, penso: quindi scrivo allegando il certificato e già che ci sono il documento di identità rinnovato. Dopo qualche giorno mi arriva la risposta: ho inviato la tessera sanitaria anziché la carta d’identità. Cretino io, rispondo stavolta con la carta d’identità. Da qua comincia il teatro dell’assurdo.

Risposta (sempre dopo qualche giorno): «Buongiorno, abbiamo acquisito la documentazione allegata ed avviato la procedura per la verifica della titolarità dell’IBAN. Tuttavia da verifiche effettuate nella domanda di AUU è presente un IBAN diverso. Pertanto si invita ad inserire il nuovo IBAN in domanda modificando le modalità di pagamento.»

Controrisposta mia: «Non riesco a capire. Fino all’anno scorso avevo un IBAN, poi ho chiesto di cambiarlo. Per forza adesso è diverso. Volevate documentazione ulteriore perché questo IBAN non è italiano, e ve l’ho mandata. Che altro serve?»

Ultima risposta: «Buongiorno, abbiamo acquisito la documentazione ed avviato la procedura per la verifica della titolarità dell’IBAN. A seguito della verifica si procederà allo sblocco dei pagamenti. Cordiali saluti »

Ora, io sono un imbecille, e questo dovrebbe essere chiaro. Ma non è che dall’altra parte siano messi molto meglio…

“Perché è arrivata quarta”

Perché Della Mea non ha vinto la medaglia di bronzo nonostante il 3º tempo in Gigante alle Olimpiadi

Il titolo di questo post è di Andrea Trapani. L’articolo però è di Fanpage.it e purtroppo è del tutto vero. A fanpage qualcuno ha pensato che avere due concorrenti giunte a pari merito significa che bisogna contare un unico tempo, e quindi chi è dopo ha segnato il terzo tempo complessivo: seguendo questa linea di pensiero la medaglia d’argento doveva essere tagliata a metà…

l’IA sta falsando sondaggi e ricerche online?

Sul gruppo Whatsapp di ex cseltini un amico ha inviato il link a questo lancio di agenzia, dall’inquietante titolo “L’allarme: l’IA sta falsando sondaggi e ricerche online –
L’IA è sempre più capace di simulare il comportamento umano”. Come sempre, il testo italiano non è molto comprensibile: così sono andato a leggere l’articolo originale (è sotto paywall, ma si legge quasi tutto… e ho anche scoperto che con un account ORCID posso arrivare in fondo. Misteri) e ho finalmente capito qualcosa in più.

Il problema di base è ben precedente all’arrivo in massa dell’IA. Come si fa ricerca nelle scienze sociali? Per mezzo di sondaggi. E come si recupera la gente nei sondaggi? Puoi pagare una società specializzata che ti cerca un certo numero di persone in modo per quanto possibile rappresentativo della popolazione – il che non significa scegliere a caso, come si può ingenuamente pensare! Puoi fare come Libero, che chiede ai suoi lettori di rispondere e poi strombazza i risultati come rivelazioni. Puoi chiedere agli amici degli amici se rispondono al tuo Google Form – e otterrai comunque risultati falsati, ma almeno onesti. Oppure, se ti servono risposte articolate puoi acquistare manodopera a basso costo da servizi come Amazon Mechanical Turk, Prolific, Cloud Research’s Prime Panels e Cint’s Lucid, di cui io conoscevo solo il primo. Il guaio è che questi servizi sono pagati ai compilatori a cottimo: più ne completi, più soldi ti danno. In passato i ricercatori avevano il vantaggio di valutare ad occhio la qualità dei testi e buttare via quelli evidentemente creati solo per essere pagati: richiedere un numero minimo di caratteri nella risposta era già un modo per impegnare i compilatori. Nonostante questo, alcuni metastudi dicono che tra il 30% e il 90% delle risposte non sono vere, il che fa pensare che forse anche gli studi stessi non è che siano così solidi; ma ora la gente prende il testo, lo dà in pasto a un chatbot, copincolla la risposta e via, e i problemi sono esacerbati. Se già prima fare sondaggi in questo modo faceva schifo, che cosa è allora peggiorato? Banalmente il fatto che questi studi servono spesso per capire se e come le minoranze si comportano diversamente rispetto a quanto fa la maggioranza. E che succede se uno prende ChatGPT e gli fa tirare fuori la risposta? Che per definizione questa risposta seguirà il pensiero della maggioranza…

La parte che almeno io ho trovato interessante è vedere quali tecniche vengono oggi usate per sgamare le risposte artificiali in questo campo. Se ricordate, qualche settimana fa avevo scritto di come migliorare la prosa di un chatbot, e quindi implicitamente quali sono i segni di un testo generato da un’IA; ma ogni campo ha le sue caratteristiche. I metodi che si usano in questo caso sono vari. Il primo è vedere statisticamente la struttura delle risposte: un umano tende a usare più spesso i voti estremi nella scala, mentre un’IA è meno polarizzata. Questo metodo non è certamente perfetto, ma ha il vantaggio che è improbabilmente che qualcuno si metta a tarare il proprio LLM per modificare questo comportamento, essendo qualcosa di nicchia. Un secondo sistema è quello di usare i paradati, cioè qualcosa che non è un dato, non è un metadato (cioè non dà informazioni sul dato, come i dati EXIF nelle foto dove si trovano modello della fotocamera, otturatore, autore e così via), ma dice cosa si è fatto per inserire il dato. I paradati sono per esempio usati in alcuni CAPTCHA, come quello dove basta cliccare “non sono un robot”. viene registrato il movimento del mouse, che per un umano ha un pattern molto più erratico di quello di un bot. Nel nostro caso si può misurare il modo in cui si scrive: un copincolla aggiunge in un sol colpo una grande quantità di caratteri, mentre per esempio io quando scrivo ho dei burst di velocità seguiti da attimi di pausa mentre penso a cosa aggiungere, oltre a cancellazioni e riscritture sia per refusi mentre digito che per parole che dopo un po’ preferisco sostituire con qualcosa di più specifico. La brutta notizia è che pare che invece in questo campo gli LLM vengono addestrati per simulare meglio gli umani, oltre naturalmente al fatto che magari a noi arriva solo il testo completo del questionario compilato e che potrebbero esserci problemi di privacy a salvare i paradati senza dirlo.

Ci sono tecniche furbette, tipo partire dall’immagine di un’illusione ottica e modificarla in modo che per gli umani l’illusione non ci sia più mentre le IA continuano a “vedere” le somiglianze con gli esempi trovati nel corpus di addestramento. Ma il metodo di gran lunga più divertente, almeno per me, è applicare i problemi di Fermi, quelli dove bisogna dare una stima ragionevole di una certa quantità: nell’articolo si fa l’esempio di stimare il numero di molecole di emoglobina prodotte al secondo dal corpo umano, oppure il numero di centri commerciali negli USA. Se mi si dà un po’ di tempo, probabilmente riesco a dare una stima ragionevole, applicando conoscenze collaterali; ma se devo rispondere in pochi secondi tirerò a indovinare e sbaglierò quasi sicuramente di brutto, mentre l’IA nello stesso tempo troverà probabilmente una stima accurata. Un CAPTCHA alla rovescia, insomma: per dimostrare di essere umano ti tocca sbagliare. E se dicessimo al chatbot di sbagliare apposta? Nel contesto delle risposte ai sondaggi non credo che i partecipanti abbiano le competenze necessarie per arrivarci in autonomia, ma è possibile e forse anche probabile che ci siano dei software appositi per aiutarli a compilare con l’IA questi sondaggi, e in quei software regole simili possono essere implementate senza problemi. Ma del resto ci aveva già pensato Alan Turing nel suo articolo seminale del 1950, come ho raccontato in fondo a questo mio post su MaddMaths!… Diciamolo: ci continuerà a essere una battaglia tra guardie umane e ladri IA per distinguere gli output, e finché saremo in testa noi andrà tutto bene.

PS: le mie risposte immediate alle due domande di fermi sono state 1 miliardo e 350.000; Deepseek ha risposto “tra 4,7 e 7 quintilioni” (in realtà sbagliando di un fattore 10 rispetto ai suoi stessi conti, scrive proprio 10^17 e non 10^18) e “tra 900 e 115000” (qui io ho usato una definizione di shopping mall come nella seconda stima, ma con la prima definizione sarei comunque stato sul 2500: insomma un fattore 3 di errore in ogni caso). Sulle molecole ho completamente sbagliato… proverò poi a fare i conti con un po’ più di calma.

Quizzino della domenica: Diagramma magico di Venn

787 – aritmetica

Nella figura qui sotto vedete un diagramma di Venn: come sapete, serve per indicare le possibili combinazioni di tre caratteristiche del tipo sì/no. Immaginate ora di sostituire alle lettere da A a G i numeri da 1 a 7: il diagramma di Venn si dice magico se la somma dei quattro numeri in ciascun cerchio è la stessa. Costruite un diagramma magico di Venn dove questa costante magica è massima e uno dove è minima.

Il diagramma di Venn
(trovate un aiutino sul mio sito, alla pagina https://xmau.com/quizzini/p787.html; la risposta verrà postata lì il prossimo mercoledì. Problema ispirato da Futility Closet.)

Il leggendario tesoro di Hell Gate (libro)

copertinaSi ricomincia con i libri da leggere per verificare che mio figlio li legga davvero e sappia poi fare le verifiche a scuola. Questa opera seconda di Morosinotto è scritta molto bene, nel senso che la storia (potremmo quasi definirla un romanzo storico, visto che alcuni dei personaggi di contorno sono realmente esistiti) si costruisce man mano, dando uno spaccato della New York della fine degli anni ’20 del secolo scorso; il tutto inframezzato dalla storia di Bill Swan, schiavo finito con gli inglesi durante la guerra di indipendenza americana. Poi chiaramente è uno juvenile, e non potete aspettarvi una caratterizzazione introspettiva di chissà quale tipo, ma direi che non è certo quello il punto. A me personalmente le tavole all’inizio dei capitoli non dicono molto, anche se Morosinotto scrive nella postfazione che ci ha messo molta cura, ma a ciascuno il suo.

Davide Morosinotto, Il leggendario tesoro di Hell Gate, Mondadori 2025, pag. 496, € 17, ISBN 9788804792185 – come Affiliato Amazon, se acquistate il libro dal link Bezos mi dà qualche centesimo dei suoi utili
Voto: 5/5