Prossima

La conoscenza si forma attraverso le parole. Con il glossario di Prossima inGenere vuole comporre un lessico minimo del mondo digitale. Molte espressioni ormai entrate nell'uso infatti restano spesso opache nel significato, il nostro obiettivo è quello di renderle più trasparenti. Oggi parliamo di algoritmo

Algoritmo

3 min lettura
Credits Unsplash/Anton Maksimov
glossario algoritmo

Dal latino medievale algorithmus o algorismus, a sua volta derivato dall'arabo al-Khuwārizmī, appellativo con il quale era noto il matematico musulmano del IX secolo Muḥammad ibn Mūsa; il termine arabo significa "nativo di Khwarizm", cioè della Corasmia, regione dell'Asia Centrale corrispondente all'attuale Khiva in Uzbekistan, e designava dunque la provenienza geografica del matematico, astronomo, geografo e cronografo vissuto tra il 780 e l'850 d.C. circa alla corte di Baghdād come favorito del califfo al-Ma'mūn (813-833 d.C.).  

Al contrario di quanto ipotizzato da Ottorino Pianigiani, autore del Dizionario etimologico della lingua italiana, algoritmo non deriva, come logaritmo, dal greco arithmòs, numero, bensì dalla traslitterazione latina storpiata del nome dell'autore del trattato al-Kitāb al-mukhtasar fi hisab al-giabr wa'l-muqābala (Manuale di calcolo per completamento e riduzione), libro che ha introdotto in Europa il sistema di notazione decimale posizionale, diffondendo così l'utilizzo dei numeri arabi.  

L'opera di Muḥammad ibn Mūsa ha di fatto costituito il cardine degli studi matematici in Occidente fino al XVI secolo; dal titolo sono derivate le parole algebra – da al-ǧabr, "spostare", termine con cui al-Khwarizmi indicava una delle due operazioni utilizzabili per risolvere le equazioni di primo grado, spostando, appunto, un termine da un lato all'altro – e algoritmo, che trae invece origine da un equivoco legato alla traduzione latina errata del titolo stesso, a seguito della quale si perse del tutto la derivazione correlata al nome dell'autore del trattato: (Libro di) al-Khwarizmi sui numeri indiani fu infatti impropriamente tradotto come Algorismi de numero Indorum. Nel tempo, il termine algorismi, in seguito algoritmi, venne impiegato nel Medioevo per indicare quelle procedure per effettuare calcoli in notazione decimale, cioè con i numeri arabi, per poi ampliarsi ulteriormente in epoca moderna, arrivando a definire, più in generale, un procedimento matematico per risolvere un problema.

Più precisamente, per essere definito tale, un algoritmo deve possedere alcune proprietà formali: 

  • finitezza (numerica e temporale), l'algoritmo deve cioè avere un numero finito di istruzioni, e le operazioni contenute in esse devono poter essere svolte in un tempo finito e per un numero finito di volte;
  • non ambiguità: l'interpretazione delle istruzioni deve essere univoca;
  • eseguibilità: l'algoritmo deve essere effettivamente eseguibile da un esecutore, denominato "automa", che deve essere in grado di riconoscere le parti minime della descrizione dell'algoritmo, ossia il linguaggio con cui sono scritte le istruzioni con cui l'algoritmo è espresso;
  • determinismo: a ogni passo della procedura deve essere univocamente determinata l'operazione da eseguire successivamente. 

In ambito informatico, il termine algoritmo viene utilizzato per indicare un insieme di istruzioni che servono a risolvere un problema. Un algoritmo viene inizialmente espresso attraverso notazioni logiche come pseudocodici e diagrammi di flusso, cioè delle forme strutturate che, attraverso un lessico condiviso ("se-allora-altrimenti", "ripeti-finché"), permettono di esporre le regole e le operazioni dell'algoritmo in modo non ambiguo. Attraverso un linguaggio di programmazione è poi possibile esprimere l'algoritmo in una forma interpretabile da un computer, che sarà in grado di automatizzare le operazioni logiche dell'algoritmo stesso. 

Per risolvere problemi specifici in vari settori applicativi, possono essere sviluppati diversi tipi di algoritmi. Nell'ambito dell'intelligenza artificiale e del machine-learning, gli algoritmi costituiscono di fatto la base a partire dalla quale è possibile sviluppare sistemi intelligenti in grado di svolgere compiti che vanno dal riconoscimento delle immagini all'elaborazione del linguaggio naturale (natural-language processing), fino al fornire supporto decisionale (decision-making); in quest'ultimo caso, gli algoritmi possono essere utilizzati, ad esempio, per previsioni, classificazioni (trovare tra diverse classi quella corretta per un determinato campione di dati), clustering (raggruppamento di elementi omogenei in un insieme di dati), o per risolvere problemi complessi di ottimizzazione, dove si cerca cioè di trovare la soluzione migliore tra tutte quelle ammissibili.  

Per approfondire

Council of Europe Artifical Intelligence Glossary

Online Etymology Dictionary

Treccani: enciclopedia

Treccani: enciclopedia della matematica

Treccani: vocabolario

Consulta tutto il glossario