Cos’è un algoritmo?

Un algoritmo è un insieme di istruzioni. La definizione è davvero così semplice. Un algoritmo può essere facile come dare istruzioni come questa:

  1. Vai in fondo alla strada.
  2. Prendi la prima a destra.
  3. Trova la seconda casa sulla sinistra.
  4. Bussa alla porta.
  5. Consegnare il pacchetto.

Ma mentre la definizione di un algoritmo è semplice, il significato reale e come influisce sulla nostra vita può essere piuttosto complesso.

Rottura di un algoritmo

Un esempio comune di un algoritmo che usiamo nella nostra vita quotidiana è una ricetta. Questo insieme di istruzioni ci fornisce tutti gli ingredienti di cui avremo bisogno e indicazioni su cosa fare con questi ingredienti. Sembra facile, vero?

Ma cosa succede se non si sa dove si tiene il misurino? Avreste bisogno di un algoritmo per trovarlo. Potrebbe anche essere necessario un algoritmo su come usare un misurino.

Quindi, se un algoritmo è un insieme di istruzioni, deve anche tener conto di chi o cosa interpreterà tali istruzioni. Ad esempio, se si danno indicazioni ad un amico che spiegano come arrivare da casa propria al negozio di alimentari più vicino, l’amico saprà come arrivare a quel negozio solo se saprà dove si trova la vostra casa. Non sono in grado (ancora) di trovare quel particolare negozio di alimentari, ad esempio a casa di un altro amico.

Ecco come un algoritmo può essere sia semplice che complesso. E quando si parla di algoritmi informatici, capire cosa è in grado di fare un computer è una parte fondamentale della formulazione degli algoritmi.

Come si sono evoluti gli algoritmi di ordinamento

Uno dei primi algoritmi creati è stata la routine di ordinamento delle bolle. L’ordinamento a bolle è un metodo per l’ordinamento di numeri, lettere o parole attraverso il loop di un set di dati, confrontando ogni set di valori uno accanto all’altro e scambiandoli quando necessario.

Questo ciclo viene ripetuto fino a quando l’algoritmo può muoversi attraverso l’intera lista senza bisogno di scambiare nulla, il che significa che i valori sono ordinati correttamente. Questo tipo di algoritmo viene spesso definito come un algoritmo ricorsivo, perché si ripete su se stesso in loop fino a quando non completa l’operazione.

Questo tipo di algoritmo potrebbe sembrare semplice:

  1. Vai al primo valore.
  2. Controllare il valore rispetto al valore successivo e, se necessario, scambiare le posizioni.
  3. Passare al valore successivo e ripetere il confronto.
  4. Se siamo alla fine della lista, tornare in cima se qualche valore è stato scambiato durante il ciclo.

Ma l’ordinamento a bolle non si è rivelato il modo più efficiente di ordinare i valori. Con il passare del tempo e con l’aumentare della capacità dei computer di svolgere rapidamente compiti complessi, sono emersi nuovi algoritmi di ordinamento.

Uno di questi algoritmi scansiona la prima lista e crea una seconda lista di valori ordinati. Questo metodo fa solo un singolo passaggio attraverso la lista originale, e con ogni valore, farà un loop attraverso la seconda lista fino a trovare il posto corretto per mettere il valore. Di solito, è più efficiente rispetto al metodo dell’ordinamento a bolle.

È qui che gli algoritmi possono diventare davvero folli. O davvero interessanti, a seconda di come la si guarda.

Mentre il metodo di ordinamento a bolle è considerato uno dei metodi più inefficienti per l’ordinamento dei valori in molti modi, se la lista originale è preselezionata correttamente, l’ordinamento a bolle può essere uno dei più efficienti . Questo perché, in questo caso, l’algoritmo di ordinamento a bolle passerà attraverso la lista una sola volta e determinerà che è correttamente ordinato.

Purtroppo non sempre sappiamo se la nostra lista è preselezionata, quindi dobbiamo scegliere un algoritmo che sarà il più efficiente da utilizzare in media su un gran numero di liste.

Cosa impariamo dall’algoritmo di ordinamento delle bolle

  • Gli algoritmi si evolvono nel tempo man mano che troviamo modi più efficienti di fare le cose e/o i computer diventano più capaci di svolgere compiti complessi.
  • Gli algoritmi sono talvolta scelti perché sono «più» efficienti «la maggior parte» del tempo.
  • Solo perché un algoritmo è più efficiente il più delle volte non significa che sia sempre il migliore in ogni singolo caso.

Algoritmi di Facebook e altro nella vita quotidiana

Gli algoritmi sono al lavoro per aiutare gli esseri umani ogni giorno. Quando si cerca sul web, un algoritmo è al lavoro per trovare i migliori risultati di ricerca. Chiedete indicazioni al vostro smartphone e un algoritmo decide il percorso migliore da seguire. E quando navighi su Facebook, un algoritmo decide quali dei post di Facebook dei nostri amici sono più importanti per noi. (Speriamo che i nostri amici non scoprano quale Facebook pensa che ci piaccia di più!)

Un esempio di algoritmo semplice

Ma pensare in modo algoritmico può aiutarci ben oltre la nostra vita al computer. Può anche aiutarci a costruire un panino migliore.

Diciamo che si comincia con due fette di pane, spalmando la senape su una fetta e la maionese su un’altra fetta. Mettete una fetta di formaggio sul pane con la maionese, un po’ di prosciutto sopra, un po’ di lattuga, due fette di pomodoro e poi tappate con quella fetta con la senape. Buono il panino, vero?

Sicuramente, se lo mangiate subito. Ma se lo lasciate sul tavolo per un po’, quella fetta di pane in cima potrebbe inzupparsi a causa dell’assorbimento di un po’ di quel pomodoro. È un problema che non avevi previsto e potresti fare panini per anni prima di notarlo, ma una volta che lo fai, puoi iniziare a pensare a come cambiare il tuo algoritmo per costruire un panino migliore.

Per esempio, potreste sbarazzarvi del pomodoro. Ma non si vuole perdere quel sapore di pomodoro. Così, invece, si può mettere il pomodoro sul panino dopo il pane e la lattuga. Questo permette alla lattuga di formare una barriera protettiva tra il pomodoro e il pane.

Ecco come si evolve un algoritmo. E un algoritmo non deve essere gestito da un computer per essere un algoritmo. Un algoritmo è un processo, e i processi sono tutti intorno a noi.

Deja un comentario