Visualizzazione post con etichetta algoritmo. Mostra tutti i post
Visualizzazione post con etichetta algoritmo. Mostra tutti i post

venerdì 25 ottobre 2019

Computer quantistici, rivoluzione presunta

Pochi giorni fa, Google ha annunciato di aver raggiunto la supremazia quantistica, ossia di aver fatto funzionare un computer quantistico per effettuare in 200 secondi un calcolo che un computer tradizionale avrebbe fatto in 10000 anni.
Non voglio qui spiegare cos'è un computer quantistico (è comunque una tecnologia di cui si parla da decenni), ma analizzare le conseguenze del suo avvento (che, sia chiaro, non è poi così imminente: siamo ancora in fase di prototipi, la commercializzazione per i comuni mortali è ancora lontana).

La prima e più evidente conseguenza riguarda le nostre "amate" password: se oggi, con i pur potentissimi computer moderni, le password da 8 caratteri (purché non banali) sono considerate abbastanza sicure, l'avvento dei computer quantistici le renderà sostanzialmente inutili perché indovinabili in pochi secondi.


In pratica, per mantenere lo stesso livello di sicurezza di una password da 8 caratteri, bisognerà passare a una da 13 o 14 caratteri. Sopravviveremo.

Una seconda considerazione invece deriva dal fatto che dovrebbero diventare molto più veloci quei calcoli che oggi sono i più complessi: le simulazioni.
Le simulazioni servono principalmente per fare previsioni: a partire da quelle del meteo (o del clima), e via via dinamiche varie, da quelle delle traiettorie dei corpi celesti, all'evoluzione sociale umana, etc. Il vero problema delle simulazioni non è però la quantità di calcoli necessaria: è la conoscenza reale del fenomeno che si vuole simulare, e la capacità di trasformarla in un modello matematico.
Primo esempio: le leggi che governano l'evoluzione dell'universo sono ormai acclarate con un buon grado di certezza; in questo caso, la capacità di calcolo dei nuovi computer permetterà sicuramente di andare oltre le nostre capacità attuali, permettendo nuove scoperte.
Secondo esempio: l'evoluzione del clima è probabilmente il problema con complessità più elevata che si affronti ai nostri giorni; ma al contrario di quello che la narrativa mediatica racconta, le dinamiche ed i fattori che la regolano sono note con estrema approssimazione (cioè: nessuno ne capisce ancora quasi nulla). Se i modelli di oggi falliscono nel fare previsioni accurate, il computer quantistico che userà gli stessi modelli permetterà di avere sì previsioni a più lungo termine, ma ancora più inaccurate ("propagazione dell'errore").

Ad onor del vero, la possibilità di aumentare i calcoli eseguibili permetterà di eliminare le approssimazioni che vengono volutamente introdotte nei modelli proprio per limitare il tempo necessario all'esecuzione dei calcoli; quindi un vantaggio, com'era prevedibile, si ha comunque.

Ma in ogni caso, senza l'intelligenza umana, anche il computer quantistico rimane un inutile ammasso di (costosissima) ferraglia.

AGGIORNAMENTO: IBM contesta la misura della prestazione rispetto ad un computer tradizionale, cioè lo stesso calcolo che il computer quantistico di Google ha fatto in 200 secondi, un computer di IBM lo avrebbe eseguito in circa 2 giorni e mezzo, invece di 10000 anni. Una bella differenza, che comunque non sminunisce il salto tecnologico; personalmente non sono in grado di giudicare chi abbia ragione, semplicemente la posizione di IBM mi sembra più plausibile.

AGGIORNAMENTO 2: un altro interessante articolo (anche se abbastanza tecnico), sostiene che in pratica il "calcolo" eseguito da Google non ha una reale utilità; ma la parte interessante è che pare che al momento i computer quantistici non siano programmabili nel senso tradizionale del termine. Questo vuol dire che finchè non sarà superato questo limite (se mai lo sarà), il computer quantistico sostanzialmente non serve a nulla! Lunga vita al computer tradizionale... ed ai programmatori.

sabato 20 ottobre 2018

Tutta colpa dell'Algoritmo

"Facebook cambia algoritmo", "Algoritmo impazzito", "Twitter sconfessa l'algoritmo": sono solo alcuni (estratti di) titoli di notizie recenti che hanno a che fare il mostro dei nostri tempi: l'algoritmo. Pochi giorni fa, ad un convegno in tema di privacy, una stimatissima professoressa di Diritto ha confessato che deve farsi aiutare dai tecnici a capire cosa vuol dire che "si è perso il controllo dell'algoritmo". Ne ha ben ragione: non ne ho idea neanch'io, di cosa vuol dire. Ma alla fine, cos'è 'sto algoritmo?
Dal Dizionario della lingua Italiana di De Mauro:
matematica: insieme di regole per la risoluzione di un calcolo numerico; gener., procedimento matematico
informatica: insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema
Le parole su cui bisogna soffermarsi sono: regole, procedimento, risoluzione. Lo scopo di un algoritmo è trovare la soluzione di un problema; è composto da un procedimento e delle regole. Tutto qui; ma per capire meglio, guardiamolo un algoritmo (ho scelto quello che era mitico all'università, il bubble sort, che è il più efficiente tra i procedimenti di ordinamento):



In pratica, presa una sequenza di elementi, si procede a scambiare ripetutamente quelli che non rispettano l'ordinamento, finché non si arriva alla sequenza ordinata. Facile no?
In realtà, quello che mi preme sottolineare è che un algoritmo non è altro che un procedimento logico per risolvere un problema. Niente di più. Un frutto dell'ingegno umano. Che poi deve diventare qualcosa di realmente utilizzabile, tipicamente un programma software: il che vuole dire che qualcuno, che non è quasi mai chi ha "inventato" l'algoritmo, lo traduce in un linguaggio di programmazione, diventando, appunto, il programma (o parte di esso). In realtà, vale anche il viceversa: ogni programma non è altro che l'implementazione di uno o più algoritmi, che magari esistono solo nella testa del programmatore.
Ovviamente niente vieta che un algoritmo possa essere sbagliato (cioè non risolve correttamente il problema), o che lo sia il corrispondente programma (cioè il software non fa quello che prevede l'algoritmo); ma se si effettuano i dovuti controlli, la questione è marginale.
Che c'azzecca tutto ciò con gli algoritmi che impazziscono? Niente, appunto. Un algoritmo (o il computer attraverso il programma) fa ciò che gli viene detto. Il risultato è sbagliato se l'algoritmo (o il corrispondente programma) è sbagliato. Punto. A parte questo, non esistono algoritmi buoni o cattivi: buono o cattivo è lo scopo, o il risultato, dell'algoritmo.

Fin qui la teoria; la pratica è un po' più complicata. Perché gli algoritmi che, secondo alcuni, impazziscono, sono enormemente più complessi dell'esempio che ho proposto; ed è piuttosto comune (mi rifiuto comunque di considerarlo normale) che i suoi errori siano evidenziati in situazioni estreme, tipicamente dati enormi o molto diversi da quelli attesi da chi ha sviluppato l'algoritmo.
Gli algoritmi sono diventati famosi, uscendo dalle buie stanze dei nerd, con l'informatizzazione di massa, e da quando hanno iniziato ad avere effetti sulla vita dell'uomo comune: oggi vanno per la maggiore quelli che, a seconda dello scopo (o meglio, della tipologia di scopo) prendono il nome di Big Data, Intelligenza Artificiale, Machine Learning, e compagnia bella. Tutta roba bellissima per chi la studia, un po' meno per chi la subisce. Intanto perché l'abuso di questi algoritmi ci limita la libertà di scelta (vedi i risultati dei motori di ricerca: quelli che dovrebbero essere i più pertinenti sono scelti in base a criteri che non possiamo controllare); e poi perché molte volte nemmeno è chiaro come e perché si usano queste tecniche avanzatissime.

Facciamo un altro esempio, e lo prendiamo dal mondo dello sport, in particolare dalla pallavolo (chi mi conosce non ne resterà stupito). Esiste da anni la "moviola" in campo, per diverse situazioni; per stabilire la palla dentro o fuori, esistono in realtà due tecniche, una "reale" (telecamere ad alta velocità e risoluzione poste in corrispondenza alle linee) ed una "virtuale" (ricostruzione tridimensionale della traiettoria del pallone, lo stesso metodo usato nel tennis, cosiddetto occhio di falco).

 

Nessun dubbio che l'algoritmo alla base di "occhio di falco" sia corretto; tuttavia, basandosi sulla ricostruzione della traiettoria nello spazio a partire dalle immagini riprese da apposite telecamere che coprono tutto il campo (una tecnica, chiamata motion tracking, usata da più di 20 anni nel cinema, per esempio così fu generato Gollum nella trilogia del Signore degli anelli), richiede un'attentissima calibrazione e posizionamento per garantire precisione. Ma se hai una tecnica più semplice, e che non ti lascia nessun tipo di dubbio, perché usare un artificio, per quanto bellissimo e precisissimo? Eppure la prima viene utilizzata nelle competizioni italiane, e la seconda in quelle internazionali, ormai da diversi anni!

In conclusione, fermo restando che non sono gli algoritmi ad impazzire (è sempre e solo l'intelligenza umana a venire meno), è la dipendenza da essi il vero male della nostra società iperconnessa. Dove non portino effettivo beneficio per la comunità, è nostro dovere difenderci rifiutandoli, invece di lamentarci o, peggio, adeguandoci passivamente.

N.B. Il post è nato da un'idea di qualche giorno fa, ma non è un caso che sia stato scritto il giorno della finale del campionato mondiale femminile di pallavolo... serviva anche a smaltire la delusione della sconfitta (che non ha avuto nulla a che fare con decisioni arbitrali).