Oggigiorno, quando sentiamo parlare di algoritmi, il pensiero si sposta subito a computer,
intelligenze artificiali e altri esempi di tecnologie moderne.
Ma gli algoritmi hanno radici matematiche
lontane, millenarie e,
dall’Egitto alla Babilonia, passando per Grecia, Persia, e
poi in tutto il mondo,
ci hanno aiutati a risolvere i problemi più disparati in maniera sempre più precisa.
Ma cosa sono esattamente, e come stanno migliorando
le nostre vite?
Un algoritmo è una sequenza ordinata di istruzioni che serve a risolvere un problema,
o raggiungere un obiettivo, nel modo più efficiente possibile.
Può – in modo molto semplicistico – essere
paragonato a una ricetta:
servono specifici input;
che vengono usati seguendo una sequenza di istruzioni;
per ottenere un determinato risultato.
Se però guardiamo con più attenzione a come funziona un algoritmo,
ci accorgiamo che deve rispondere a determinati requisiti:
Tutti i passaggi devono essere elementari, ossia non scomponibili;
I passaggi devono essere chiari e non equivocabili;
I passaggi devono essere finiti e richiedere una quantità finita di input;
L’esecuzione deve avere termine dopo un tempo finito;
L’esecuzione deve portare a un risultato univoco.
Queste condizioni valgono per ogni tipo di algoritmo, dal crivello di Eratostene
ai lavori di Al-Khawarizmi, fino ad arrivare al primo algoritmo informatico
ideato dalla matematica britannica Ada Lovelace, nella prima metà dell’800.
Grazie al lavoro svolto da Ada Lovelace nello sviluppo di un algoritmo
per il calcolo dei numeri di Bernoulli, si accenderà una rivoluzione
che stimolerà e ispirerà generazioni di matematici, scienziati e futuri informatici.
Dai tempi di Ada le cose sono cambiate, e ora gli algoritmi vengono usati anche per scopi
non puramente matematici.
Come la ricerca di un albergo o un volo.
Ma facciamo un esempio:
Giulia sta creando, per il sito della sua
agenzia di viaggi,
un algoritmo capace di comparare i prezzi di voli di più compagnie,
per aiutare i clienti a trovare la migliore offerta.
Per testarlo decide di utilizzare degli input precisi:
la tratta, il periodo, il tipo di volo.
Ora non le resta che impostare le istruzioni da seguire per raggiungere il risultato
nel minor tempo possibile.
Per farlo decide di usare un algoritmo di
ordinamento che sfrutta la tecnica
“divide et impera”, ossia che suddivide il problema in più problemi di dimensione minore.
Come primo passaggio l’algoritmo raccoglierà tutti i voli che rispondono ai parametri richiesti
in una lista non ordinata.
Poi prenderà i singoli risultati e li abbinerà a coppie, ordinandoli per grandezza.
Poi trasformerà le coppie in quartine,
e continuerà fino al raggiungimento del risultato richiesto.
E pensare che, in tempi non così lontani,
svolgere un servizio come quello descritto
era lento e inutilmente complesso.
Ma la versatilità degli algoritmi ha semplificato sempre di più le cose,
permettendoci di vivere in un presente dove le macchine si guidano da sole,
in cui possiamo cercare e trovare un’infinità di informazioni in tempi brevissimi,
o ancora delegare lavori banali o pericolosi a macchinari altamente specializzati.
Ciononostante, gli algoritmi, come ogni strumento a nostra disposizione,
possono avere degli effetti negativi.
Affidarsi senza riserve ai risultati che generano rischia di creare situazioni paradossali
come quanto accaduto ad alcuni insegnanti di Washington D.C..
L’ex cancelliere delle scuole pubbliche
del distretto di Columbia aveva introdotto
un sistema di valutazione degli insegnanti gestito da un algoritmo.
Questo sistema avrebbe permesso di identificare quali insegnanti eccellevano e quali no:
agli inizi sembrava funzionare e, tra il 2009 e il 2011, circa il 7% degli insegnanti valutati
venne licenziato a causa del basso punteggio ottenuto.
Ma qualcosa presto andò storto: un insegnante venne licenziato senza delle motivazioni reali,
tre non ricevettero il bonus che gli spettava
e altri quaranta vennero valutati in modo assolutamente errato.
Le cause?
Un errore di sintassi nel codice dell’algoritmo.
Questo è solo uno degli esempi di come possano
sbagliare gli algoritmi, che però sono riconducibili
a errori umani, o utilizzi erronei dello strumento.
Insomma, probabilmente gli algoritmi non saranno
la soluzione a ogni nostro problema,
ma se utilizzati nel modo corretto potranno rendere concrete
le idee che daranno forma al nostro futuro.
