Che cos’è un algoritmo?

0
Share

Algoritmo è una parola che viene usata spesso. Ma cosa sono davvero gli algoritmi e perché alcune persone non si sentono a loro agio utilizzandoli?

Gli algoritmi sono istruzioni per la risoluzione dei problemi

Viviamo in un mondo in cui i computer sono solo vagamente compresi, anche se permeano ogni momento della nostra vita. Ma c’è un’area dell’informatica in cui chiunque può comprendere le basi di ciò che sta accadendo. Quella area dell’informatica è chiamata programmazione.

La programmazione è un lavoro difficile che sta alla base di tutto il software in circolazione. Anche se la tua conoscenza della programmazione deriva esclusivamente dai film degli anni 90′ e dai resoconti delle notizie, probabilmente non hai bisogno che qualcuno ti spieghi cosa fa un programmatore. Un programmatore scrive il codice per un computer e il computer segue le istruzioni di quel codice per eseguire attività o risolvere problemi.

Bene, nel mondo dell’informatica, un algoritmo è solo una parola di fantasia per comprendere il codice. Qualsiasi insieme di istruzioni che comunica a un computer come risolvere i problemi è un algoritmo, anche se l’attività è estremamente semplice. Quando accendi il computer, questo segue una serie di istruzioni su “come attivarsi”. Questo è un algoritmo. Quando un computer della NASA utilizza dati di onde radio grezzi per eseguire il rendering di una fotografia dello spazio esterno, questo è chiamato algoritmo.

La parola “algoritmo” può essere usata per descrivere qualsiasi insieme di istruzioni, anche al di fuori del regno dell’informatica. Ad esempio, il tuo metodo per ordinare l’argenteria in un cassetto è un algoritmo, così come il tuo metodo di lavarsi le mani dopo aver usato il bagno.

Algoritmo

In questi giorni, la parola “algoritmo” tende ad essere riservata per alcune conversazioni tecnologiche molto specifiche. Non si sente la gente parlare di algoritmi di “matematica di base”, al contrario, senti gli utenti di Instagram che si lamentano degli algoritmi di suggerimento degli amici o della privacy non gestita correttamente da Facebook.

Se “algoritmo” è un termine associato alle istruzioni di calcolo, allora perché lo usiamo quasi esclusivamente per descrivere aspetti confusi, magici e malvagi del mondo digitale?

La maggior parte delle persone usa “Algoritmi” e “Apprendimento automatico” in modo intercambiabile

In passato, i programmatori si riferivano alla maggior parte delle istruzioni computazionali come “codice”. Ciò rimane vero per la maggior parte. L’apprendimento automatico è la vasta area di calcolo in cui tendiamo ad usare la parola “algoritmo” invece di “codice”. Ciò ha, comprensibilmente, contribuito alla confusione e al disagio che circonda la parola “algoritmo”.

L’apprendimento automatico è in circolazione da molto tempo, ma è diventato solo una parte importante del mondo digitale negli ultimi 15 anni. Mentre l’apprendimento automatico sembra un’idea complicata, è piuttosto facile da capire. I programmatori non possono scrivere e testare codice specifico per ogni situazione, quindi scrivono codice che può imparare da solo.

Pensala come una forma più pratica di intelligenza artificiale. Se classifichi una quantità sufficiente di email del tuo capo come spam, il tuo client di posta elettronica inizierà a spostare automaticamente tutte le e-mail del tuo capo nella cartella spam. Allo stesso modo, Google utilizza l’apprendimento automatico per garantire che i risultati di ricerca di YouTube siano pertinenti e Amazon utilizza l’apprendimento automatico per suggerire quali prodotti ti possono interessare.

Naturalmente, l’apprendimento automatico non è perfetto. Il nome “machine learning” è abbastanza inquietante da mettere a disagio alcune persone, e alcuni degli usi popolari per l’apprendimento automatico sono eticamente discutibili. Gli algoritmi utilizzati da Facebook per i dati o gli utenti sul Web rappresentano un esempio poco lusinghiero di apprendimento automatico.

Nella stampa, sentirai parlare di “Algoritmo di Google” per il posizionamento dei risultati di ricerca, “Algoritmo di YouTube” per la raccomandazione di video e “Algoritmo di Facebook” per decidere quali post vedi nella tua timeline. Questi sono tutti argomenti di contesa e dibattito.

CONSIGLIATO: Il problema con l’intelligenza artificiale

Perché gli algoritmi sono controversi

La divisione è un algoritmo familiare (tra molti altri) per la divisione dei numeri. È solo che viene eseguito dagli scolari anziché dai computer. La tua CPU Intel utilizza un algoritmo completamente diverso quando divide i numeri, ma i risultati sono gli stessi.

Il discorso a testo generalmente utilizza l’apprendimento automatico, ma nessuno parla dell’algoritmo “discorso a testo” perché esiste una risposta oggettivamente corretta che ogni umano può immediatamente riconoscere. A nessuno importa “come” il computer capisce cosa hai detto o se è apprendimento automatico o no. Ci interessa solo se la macchina ha la risposta giusta.

Ma altre applicazioni di machine learning non hanno il vantaggio di avere una risposta “giusta”. Ecco perché gli algoritmi sono diventati un argomento regolare di conversazione nei media.

Un algoritmo per ordinare alfabeticamente una lista è solo un modo per realizzare un’attività definita. Ma un algoritmo come quello di Google che classifica i migliori siti web per una ricerca oppure YouTube che raccomanda il miglior video sono molto più vaghi e non svolgono un compito definito. Le persone possono discutere se quell’algoritmo sta producendo i risultati che dovrebbe e certamente le persone avranno opinioni diverse. Ma, con il nostro esempio di ordinamento alfabetico, tutti possono concordare che l’elenco finisce alfabeticamente in ordine alfabetico. Non c’è polemica.

Come dovremmo usare la parola “Algoritmo?”

Gli algoritmi sono la base di tutto il software. Senza algoritmi, non avresti un telefono o un computer, e probabilmente stai leggendo questo articolo su un pezzo di carta (in realtà, non lo leggeresti affatto).

Ma il pubblico in generale non usa la parola “algoritmo” come termine per il codice del computer. In effetti, la maggior parte delle persone presuppone che ci sia una differenza tra un codice di computer e un algoritmo, ma non esiste. A causa della parola “algoritmo”, associata con l’apprendimento automatico, il suo significato è diventato nebbioso, tuttavia il suo utilizzo è diventato più specifico.

Sviluppatore di software

Dovresti iniziare a usare la parola “algoritmo” per descrivere anche i pezzi più banali del codice del computer? Probabilmente no, poiché non tutti capiranno cosa intendi. I linguaggi cambiano continuamente e lo fanno sempre per una buona ragione. Le persone hanno bisogno di una parola per descrivere il mondo confuso, opaco e talvolta discutibile del machine learning, e “algoritmo” sta diventando quella parola, per ora.

Detto questo, è bene tenere a mente che un algoritmo (e l’apprendimento automatico) è, in sostanza, un mucchio di codice scritto per risolvere i compiti. Non c’è trucco magico; è solo un’iterazione più complicata del software con cui abbiamo già familiarità.

Autore del blog Digitalart. Programmatore con la passione per i computer, dolci e la cucina in generale. Ama cimentarsi in produzioni grafiche e scrivere articoli interessanti.

Potrebbe piacerti anche...