Cos’è un algoritmo? Definizione ed esempi

Un algoritmo è una sequenza di istruzioni per completare un'attività. L'ordine della sequenza è significativo. In informatica, gli algoritmi dicono ai processori cosa fare.

Gli algoritmi risolvono calcoli o altri problemi operando su variabili. Le variabili su cui opera un algoritmo sono input. Il risultato dell'operazione è l'output dell'algoritmo.

Quando seguiamo una ricetta per cuocere una torta, stiamo in effetti eseguendo un algoritmo. Gli input sono gli ingredienti. Obbedendo all'algoritmo, facciamo così e così agli input, creiamo l'output, la torta.

I matematici scrivono algoritmi come formule, come x + y = z. In questo esempio, gli input sono xey e l'output è z.

In informatica, le variabili manipolate dagli algoritmi si trovano in posizioni di archiviazione.

Un semplice algoritmo in un computer potrebbe funzionare in questo modo: prendi la quantità nella posizione A1 e aggiungila alla quantità nella posizione A2. Memorizzare il risultato nella posizione A3.

Origine del termine algoritmo

Il padre dell'algoritmo era il matematico e astronomo persiano Muammad ibn Ms al-Khwrizm. Nacque intorno alla fine dell'VIII secolo e morì intorno alla metà del IX.

Gli storici ritengono che il principale risultato di Al-Khwrizm sia stato il portare i numeri e l'algebra indù-arabi nella matematica europea.

Il suo nome in latino era Algorithmi, da cui derivano i termini algebra e algoritmo.

Algoritmi e computer

Gli autori del popolare libro di testo universitario Introduzione agli algoritmi riassumono la relazione tra algoritmi e computer.

Prima che esistessero i computer, esistevano gli algoritmi, scrivono Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein, nella prefazione alla terza edizione.

Ma ora che ci sono i computer, ci sono ancora più algoritmi, aggiungono, e gli algoritmi sono al centro dell'informatica.

Un altro esempio di un semplice algoritmo di calcolo è trovare il massimo. Gli input sono un elenco di numeri positivi. Ogni input è memorizzato nella propria posizione. Il compito è trovare il numero più grande nell'elenco e inserirlo nella posizione di output (Max).

Come insieme di istruzioni per il computer, l'algoritmo potrebbe assomigliare a questo:

  1. Imposta Max su zero.
  2. Confronta il primo numero dell'elenco con Max.
  3. Se il nuovo numero è maggiore di Max, rendi Max uguale a quel numero.
  4. Ripetere l'operazione per ogni numero successivo nell'elenco.

Al termine dell'algoritmo, la posizione Max contiene il massimo nell'elenco.

Nel suo libro The Master Algorithm , Pedro Domingos afferma semplicemente che un algoritmo è una sequenza di istruzioni che dice a un computer cosa fare.

Domingos è professore di informatica e ingegneria all'Università di Washington negli Stati Uniti. Dice che puoi scomporre tutti gli algoritmi in tre semplici operazioni logiche: AND, OR e NOT.

Algoritmi sofisticati

Creando complessi di semplici algoritmi, possiamo far eseguire ai computer compiti sofisticati. Dall'invio di messaggi di testo alla ricerca in Internet, utilizziamo algoritmi che in fondo eseguono solo semplici operazioni logiche.

Un notevole esempio dell'uso di algoritmi avanzati è il Progetto Genoma Umano (HGP).

Gli scienziati di HGP hanno utilizzato sofisticati algoritmi per mappare il DNA umano. Usando questi e altri strumenti di calcolo, hanno identificato 100.000 geni e sequenziato tutte le 3,2 miliardi di coppie di basi chimiche nel genoma.

Apprendimento automatico

Più recentemente, gli algoritmi sono passati a un nuovo livello: l'apprendimento automatico. Con gli algoritmi di apprendimento automatico, i computer possono migliorare sempre di più nel fare le cose.

Un tempo, l'unico modo per far sì che un computer completasse un'attività, sia che si trattasse di pilotare un aereo o di sommare numeri, era scrivere algoritmi un'istruzione alla volta. E sono rimasti fissi, finché un essere umano non li ha aggiornati.

Ma con l'apprendimento automatico, i computer possono aggiornare le proprie istruzioni. Possono eseguire algoritmi che apprendono ogni volta che completano un'attività. Alla fine di ogni ciclo, inseriscono l'apprendimento o l'inferenza nel ciclo successivo. Inoltre, più dati hanno, meglio ottengono.

Quando ti unisci ad Amazon o Netflix come nuovo cliente, gli algoritmi di machine learning entrano subito in funzione. Raccolgono informazioni sulle tue ricerche, insieme alla cronologia degli acquisti e delle visualizzazioni. Più usi i servizi, meglio loro riusciranno a offrirti opzioni che si adattano a quelle che ritengono essere le tue preferenze.

La società sta cambiando, un algoritmo di apprendimento alla volta. L'apprendimento automatico sta rifacendo scienza, tecnologia, affari, politica e guerra, afferma Domingos, che è anche un importante ricercatore di apprendimento automatico.

Un giorno, aggiunge, ci sarà un robot in ogni casa, che lava i piatti, fa i letti, bada anche ai bambini mentre i genitori lavorano.


Articoli correlati interessanti:

  • I ricercatori dell'Università di Tokyo creano un algoritmo che prevede gli acquisti dei consumatori
  • L'algoritmo di deep learning può risolvere un cubo di Rubik più velocemente della maggior parte degli esseri umani
  • L'algoritmo di apprendimento automatico individua quasi tutti i pannelli solari statunitensi
  • Studio: gli algoritmi basati sull'IA possono prendere decisioni di investimento molto redditizie
  • Google Chrome riceve un notevole aumento di velocità grazie al nuovo algoritmo di compressione
  • L'aggiornamento dell'algoritmo Netflix riduce il consumo di dati del 20%.

Torna su