Gli algoritmi

A. Costantini | Un algoritmo è un concetto semplice che oggi ha molte manifestazioni complesse. La posizione centrale e opaca degli algoritmi al centro dei social network come Facebook fa sì che alcuni li vedano con una sorta di riverenza mistica. Gli algoritmi sono diventati sinonimo di qualcosa di altamente tecnico, difficile da capire e da vedere con un certo sospetto. Ma quando ci riferiamo all'algoritmo sappiamo davvero cosa significa? A giudicare da quanto ampiamente il termine è usato e abusato, molto probabilmente no. Per dirla semplicemente, un algoritmo è una sequenza di regole da seguire (istruzioni), per completare un'attività specifica o risolvere un particolare problema. Ad esempio, l’algoritmo per fare una torta potrebbe essere: ‎‎preriscaldare il forno, misurare gli ingredienti‎, mescolare gli ingredienti per fare la pastella, versare la pastella nel tegame, impostare il timer del forno, tenere in tegame in forno, se il timer si spegne, estrarre il tegame. Si, perché non sono indispensabili i computer per eseguirli: gli uomini scrivevano ed eseguivano algoritmi molto prima che esistessero i computer! D’altronde Il termine stesso deriva dalla trascrizione latina del nome del matematico persiano al-Khawarizmi e pare che già nell'era babilonese si scrivessero algoritmi per risolvere equazioni, utili a gestire la società agricola del tempo. Un programma per computer, l’app di un telefonino e qualsiasi altro software sono essenzialmente algoritmi scritti con uno dei tanti linguaggi di programmazione esistenti (Java, Python, C, C++, PHP, ecc). Per intenderci, ammesso che un computer possa cucinare, la ricetta della torta potrebbe essere riscritta in un linguaggio di programmazione e diventare un software. E’ facile intuire che per svolgere il suo compito un algoritmo debba essere composto da un numero finito di istruzioni (non ambigue) e terminare in un tempo finito, con risultato univoco. Un algoritmo può essere descritto non solo in linguaggio naturale (come la ricetta della torta) o in pseudocodice (più formale di quello naturale), ma anche in forma grafica con i cosiddetti diagrammi di flusso (flow chart).

ROBOT PUMApng

Esistono normalmente più algoritmi per lo stesso problema e, a seconda di dove vengono utilizzati, le prestazioni possono avere un impatto significativo sulla loro utilità. ‎Ad esempio, l'algoritmo che produce il percorso che un sistema di navigazione satellitare seguirà può scegliere tra molti percorsi diversi da A a B. È importante per l'esperienza dell'utente che venga consigliato il percorso ‎‎ottimale‎‎: l'utente non sarà soddisfatto di un percorso che richiede un'ora in più del necessario. Tuttavia, è improbabile che l'utente si preoccupi troppo se il suo viaggio dura un minuto in più, purché arrivi a destinazione.‎ Al contrario, l’algoritmo che regola il comportamento di un'auto a guida autonoma prende decisioni in una frazione di secondo in base ai dati dei sensori disponibili. Una cattiva decisione potrebbe avere conseguenze di vita o di morte, quindi l’algoritmo deve essere ‎‎robusto‎‎ e affidabile.‎ Ogni volta che facciamo una ricerca sul web, il motore di ricerca utilizza un algoritmo per classificare le pagine più pertinenti per quella ricerca. In questo caso l'utente si preoccupa ‎‎dell'accuratezza‎‎ dei risultati della ricerca, ma anche della ‎‎velocità‎‎ della ricerca. La qualità dell'esperienza di ricerca può influire sulla popolarità di quel motore di ricerca e, in definitiva, sui soldi che un'azienda è in grado di ricavare da esso.‎ L'articolo su casertasera.it.