Algoritmo: il concetto matematico-logico più incompreso

Il commento del direttore editoriale

Alzi la mano chi, fino a pochi anni fa, non ha mai letto sui social commenti della serie “è colpa dell’algoritmo di Facebook!”, “reo” secondo qualche facinoroso attivista del web, del calo di popolarità di una pagina ospitata dal social network di Meta.

Un’accusa completamente infondata e assurda fino a rasentare il ridicolo, come è avvenuto negli ultimi anni con la “complicità” di alcuni giornali, che affrontarono la questione con molta superficialità, ma procediamo con ordine per fare chiarezza, e soprattutto per dire cosa c’entra l’algoritmo con un portale dedicato alla storia. Un po’ di pazienza e fra poco lo scopriremo assieme…

L’algoritmo di Facebook è innocente! Come lo sono tutti gli altri algoritmi…

Sebbene l’algoritmo di Facebook sia progettato per mostrare i contenuti che generano maggiore engagement, il suo funzionamento ha portato a diverse diatribe.

“OK, piano ma cosa si intende per engagement?” – direte voi, ed è presto detto: “È il grado di coinvolgimento e interazione degli utenti con i contenuti di un brand o di un’azienda. Include azioni come like, commenti, condivisioni, visualizzazioni e salvataggi, ed è un indicatore chiave dell’interesse del pubblico. Un elevato engagement aumenta la visibilità dei contenuti tramite gli algoritmi dei social media, favorisce la fidelizzazione del pubblico e può contribuire ad aumentare le vendite”.

L’engagement è in pratica un indicatore del livello di popolarità che raggiunge una pagina social, e che si basa sulla correlazione di diversi dati, come numero di like, quantità di condivisioni di un post, e di link verso il sito web abbinato al canale social, ecc.

Come è già stato detto l’algoritmo di Facebook tendeva a “premiare” i contenuti con l’engagement più alto registrato in un dato periodo, facendoli apparire ben in evidenza in modo da facilitarne l’accesso agli utenti; se ci pensate bene ha un senso, perché con la stessa tecnica di marketing si espongono i prodotti più ricercati nei punti più accessibili dei supermercati, come le mensole all’altezza degli occhi.

Ma perché il povero algoritmo di Facebook è spesso incolpato, e nessuno dice mai niente all’algoritmo di Linkedin? Cosa è una discriminazione per caso?

Battutaccia da bar dei nerd a parte proseguiamo…

L’algoritmo Facebookiano tende a mostrare agli utenti contenuti in linea con i loro interessi e le loro idee, perché sono quelli con cui interagiscono di più. Questo meccanismo può creare “camere dell’eco” dove le posizioni estreme sono messe in risalto, contribuendo alla polarizzazione sociale e limitando l’esposizione a diversi punti di vista, come spesso accade sul popolare social fondato da quel simpatico mattacchione di Zuckberg.

Ma a questo punto voglio essere io a fare una domanda a bruciapelo a voi amati lettori: “OK, tutto corretto fin qui, ma perché incolpare un algoritmo se la vostra pagina social non è più cosi popolare come prima? Ma soprattutto: gli accusatori sapranno almeno il significato di questa parola? “.

Se siete giunti fino a queste righe, e vi siete bloccati per un po, significa che ho colto nel segno, quindi respirate bene, prendete fiato e proseguiamo…

Cosa si intende esattamente per algoritmo? Riguarda solo Facebook o è qualcosa di più generale e magari si estende a tutto ciò che è intrinseco alle tecnologie informatiche?

Tenetevi pronti, fra poco inizierà il nostro “viaggio nel tempo” alla riscoperta del nostro passato per rispondere a queste domande!

Disinformazione sull'algoritmo di Facebook.
Disinformazione sull’algoritmo di Facebook.

 

Il concetto di Algoritmo, nato da un illustre matematico persiano

La nostra macchina del tempo oggi si dirige verso l’antica Persia, l’attuale Iran, per intenderci, nel IX secolo d.C, per conoscere un matematico che si chiamava: Muḥammad ibn Mūsā al-Khwārizmī, ma che noi chiameremo semplicemente Al-Khwarizmi per non complicarci la vita.

Al-Khwarizmi è considerato uno dei primi autori ad aver fatto riferimento al concetto di Algoritmo nel suo libro: “Regole di ripristino e riduzione”; il termine stesso di algoritmo deriva dalla trascrizione latina del nome del matematico persiano.

Le prime nozioni di algoritmo, tuttavia, si trovano in documenti risalenti al XVII secolo a.C. (molto prima dell’epoca in cui visse Al-Khwarizmi), conosciuti come i papiri di Ahmes, uno scriba egizio, noti anche come papiri di Rhind, che contengono una collezione di problemi con relativa soluzione comprendendo un problema di moltiplicazione che lo scrittore dichiara di aver copiato da altri papiri anteriori di due secoli.

Al-Khwarizmi, matematico persiano del IX secolo d.C.
Al-Khwarizmi, matematico persiano del IX secolo d.c., uno dei primi autori ad aver fatto riferimento al concetto di Algoritmo.

Chi lo avrebbe mai detto vero? Eppure è cosi: a distanza di secoli continuiamo ad usare parole la cui origine è molto curiosa, ma proseguiamo nel nostro viaggio nel tempo per capire cosa è, e già che ci siamo, a cosa serve conoscere il “mondo degli algoritmi”.

A questo punto è la mia “parte nerd” che deve esprimersi a cui cedo la parola.

Definizione di Algoritmo

In matematica, e informatica un algoritmo è una sequenza finita di operazioni (dette anche istruzioni) che consente di risolvere tutti i problemi di una stessa classe o di calcolare il risultato di un’espressione matematica.

“Ma come…tutto qui?” – direte voi – si, per il momento è sufficiente, perché è meglio analizzare le cose una alla volta, giusto per non andare in confusione.

L’algoritmo non è altro che un concetto matematico-logico, e che è rappresentato da una lista di istruzioni da eseguire secondo un ordine stabilito.

Un esempio pratico? Pensate alla procedura per calcolare l’area di un triangolo, se decideste di scriverla sotto forma di lista come fareste? Provateci, sarebbe qualcosa di simile a questo blocco di istruzioni:

  1. Introduci la base.
  2. Introduci l’altezza.
  3. Calcola l’area con la formula: (b x h)/2.
  4. Scrivi il risultato.

La “forza” dell’algoritmo risiede nella sua caratteristica di essere esteso ben oltre la risoluzione di problemi matematici e di geometria.

Tradotto in altre parole ancora più semplici: qualunque procedura che noi applichiamo quotidianamente potrebbe definirsi tranquillamente algoritmo: una prova?

Pensate a quando vi alzate la mattina per fare il caffè espresso con la classica macchinetta: ogni operazione va eseguita nel giusto ordine no?

Prima versate l’acqua nel recipiente fino alla sommità inferiore della valvola, poi mettete sopra il recipiente il piccolo imbuto forato, in cui metterete poi il caffè macinato, poi avviterete la parte superiore della caffettiera al gruppo recipiente-imbuto, metterete la caffettiera sul fornello, accenderete quest’ultimo e dopo pochi minuti il vostro caffè sarà pronto.

Bene, che ci crediate o no, la procedura appena descritta è un algoritmo.

Proprio cosi, e per quanto possa sembrarvi insolito, strano, a tratti irreale, anche la preparazione del caffè è un algoritmo.

“Ma io a casa uso la macchinetta con le cialde!” – giuro..se qualcuno di voi lo ha solo pensato, vi banno dal sito Codex Historia per sempre…scherzo naturalmente, in tal caso, ovviamente cambierà la procedura per fare il caffè e di conseguenza si adotterà un altro algoritmo, ma sostanzialmente non cambierà nulla: l’algoritmo è un concetto talmente astratto da potersi adattare a qualunque contesto.

Anche la preparazione di una ricetta è un algoritmo, così come lo studio di una funzione che è l’incubo di molti studenti alle superiori, oppure l’elaborazione di un percorso con Google Map da una città all’altra in auto, la sequenza di accensione e spegnimento delle luci nei semafori, l’attivazione dei sistemi di allarme della propria casa, e cosi, via, gli esempi potrebbero non finire mai.

Matematico persiano Al-Khwarizmi.
L’origine della parola algoritmo è legata al nome del matematico persiano Al-Khwarizmi.

Ma ovviamente un concetto che ha che fare soprattutto con l’informatica non può essere cosi limitato alla semplice definizione fatta prima, ed infatti non lo è, un algoritmo in quanto tale, deve essere:

finito: è costituito da un numero finito di istruzioni e deve sempre terminare;
deterministico: partendo dagli stessi dati in ingresso, si devono ottenere i medesimi risultati;
non ambiguo: le operazioni non devono poter essere interpretate in modi differenti;
generale: deve essere applicabile a tutti i problemi della classe a cui si riferisce, o ai casi dell’espressione matematica.

La prima proprietà è fin troppo facile da comprendere: d’altronde è impossibile effettuare una procedura all’infinito…qui in realtà ci sarebbe parecchio da dire, perché è da anni che votiamo le persone sbagliate in parlamento ma è meglio lasciare perdere….

L’algoritmo deve essere deterministico, e non potrebbe che essere così d’altronde; riprendendo l’esempio del calcolo dell’area del triangolo è chiaro che se metto sempre gli stessi valori di base e altezza, alla fine ottengo sempre lo stesso valore per l’area.

Un’altra caratteristica molto importante dell’algoritmo è data dalla sua non ambiguità: non possiamo quindi interpretare le istruzioni da effettuare in modo arbitrario, perché comporterebbe degli errori nella produzione di risultati.

Un esempio pratico? Pensate al calcolo dell’area del triangolo: siamo davvero sicuri che possiamo inserire tutti i numeri che vogliamo? Se avete risposto si, mi spiace dirlo, ma avete sbagliato: trattandosi di misure geometriche non possiamo introdurre valori non positivi, e cioè uguali o minori di zero.

L’algoritmo in pratica deve essere formulato in modo da non risultare mai ambiguo, prevedendo tutti i casi in cui potrebbero generarsi degli errori.

Infine l’algoritmo deve essere generale, in modo da adattarsi a tutti i possibili casi di un’intera classe di problemi simili. La procedura descritta per la preparazione del caffè espresso, ad esempio, è valida per tutte le caffettiere classiche Moka, indipendentemente dalla loro grandezza o della marca.

Definizione di algoritmo.
Definizione di algoritmo.

Ma perché l’algoritmo è un concetto fondamentale dell’informatica?
Anzitutto perché è alla base della nozione teorica di calcolabilità: un problema è calcolabile quando è risolvibile mediante un algoritmo.

Inoltre, l’algoritmo è un concetto cardine anche nella fase di programmazione dello sviluppo di un software: preso un problema da automatizzare, la programmazione costituisce essenzialmente la traduzione o codifica di un algoritmo per tale problema in programma, scritto in un certo linguaggio, che può essere quindi effettivamente eseguito da un calcolatore rappresentandone la logica di elaborazione.

“OK, ma che cavolo significa in parole più semplici?” – Ritorniamo un attimo all’esempio del calcolo dell’area del triangolo, il cui algoritmo è il seguente:

  1. Introduci la base.
  2. Introduci l’altezza.
  3. Calcola l’area con la formula: (b x h)/2.
  4. Scrivi il risultato.

È sicuramente un algoritmo corretto e coerente con il problema da risolvere, ma non possiamo fornirlo così come è stato scritto ad un computer, dobbiamo “codificarlo” nel modo giusto; in un certo senso dobbiamo proprio tradurlo in un linguaggio comprensibile ad un elaboratore elettronico, quindi dobbiamo ricorrere ad un linguaggio di programmazione.

Un linguaggio di programmazione vale l’altro in casi semplici come questo, in linguaggio PHP il codice che ci serve per calcolare l’area di un triangolo potrebbe essere simile al seguente, che è la fedele “codifica” o “traduzione” se preferite della lista di operazioni precedente.

<?php
$base = 54;
$altezza = 32;
$area_triangolo=($base * $altezza) / 2;
echo 'Area = '.$area_triangolo;
?>

Questo codice non è altro che l’algoritmo precedente scritto in linguaggio PHP, in una forma comprensibile ai computer che presenta le stesse operazioni, ma scritte in una forma diversa.

Ci sarebbe molto da dire sul concetto di algoritmo, e sugli studi condotti da Al-Khwarizmi nella matematica dall’importanza notevole al punto da fornire contributi non indifferenti in tutti i campi scientifici, e di cui usufruiamo ancora oggi; ma sarà meglio parlarne nei prossimi “viaggi nel tempo”, per adesso, cari lettori, speriamo di avere contribuito a smontare una falsa credenza che circola da anni nei meandri oscuri del web legata ad una presunta “entità malvagia” nota come algoritmo di Facebook, a cui si è cercato di “rendere giustizia” in un certo senso.

Prima di congedarci, vi lasciamo con un consiglio da prendere in forte considerazione: siate sempre curiosi, evitate di ripetere frasi a pappagallo ignorandone il significato solo per seguire una moda; spesso, dietro il significato di una parola, c’è un intero mondo da scoprire, e tutto questo è meraviglioso se ci pensate, perché la conoscenza è alla base di tutto; al contrario la disinformazione può essere pericolosa perché alimenta paure ingiustificate; a volte rasentando il ridicolo, come è accaduto nel caso dell’algoritmo di Facebook.

A presto!

- Advertisement -spot_img

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Scopri di più

Recenti