TI PRESENTO UN AMICO, SI CHIAMA ALGORITMO
La Cucina, ma soprattutto la Pasticceria, sono arti delicate e complesse, che pertanto richiedono la stesura di protocolli dettagliati.
Mi spiego meglio: quando siamo alle prese con la preparazione di un nuovo piatto, seguiamo attentamente le istruzioni della ricetta: pesare tot grammi, cuocere a fiamma bassa, mescolare fino a quando la crema non è densa, e così via. Anche se non ne siamo coscienti, seguiamo un algoritmo, ovvero una sequenza di azioni precisa, univoca e non equivocabile, che deve portarci da un punto A ad un punto B, nel caso della cucina, dagli ingredienti grezzi al piatto finito.
Siamo abituati ad associare l’algoritmo al solo ambiente informatico, ma non è cosi: infatti, la maggior parte delle cose che realizziamo durante la nostra giornata sono frutto della successione di azioni ben definite, ed in effetti la pianificazione delle nostre giornate è essa stessa un algoritmo, rappresentabile da un punto di vista grafico da un diagramma di flusso.[1]
Il concetto di algoritmo non è nato in epoca moderna, ma ha origini ben più antiche: si deve andare indietro al 750-850 d.C. circa, presso la corte reale di Baghdad, dove il matematico Muhammad ibn-Musa al-Khwarizmi esercitava la propria attività, e dove scrisse il libro “Regole di ripristino e riduzione”, che contiene il primo riferimento scritto all’algoritmo.[2] Questo matematico viene ricordato anche per avere ideato lo zero e l’algebra, oltre che per aver inventato il metodo per effettuare le addizioni che tutti noi abbiamo imparato alle elementari.[3]
All’inizio del secolo scorso, ed esattamente nel 1928, l’algoritmo venne introdotto da David Hilbert come mezzo per prendere decisioni; altri contributi decisivi vennero successivamente dati da Gödel, Herbrand, Kleene, Church, Post e Turing.[4]
Per essere efficace ed assolvere al suo scopo, un algoritmo deve rispondere ad alcuni requisiti[5]:
- Atomicità: l’azione da eseguire, proprio come gli atomi, deve essere indivisibile (ora sappiamo che non è così, almeno per gli atomi), ovvero semplice e non ulteriormente scomponibile. Ad esempio “cuocere la pasta”, non rientra in un’azione compresa in un algoritmo, perché con questa espressione s’intende prendere una pentola, riempirla d’acqua, accendere il gas, e così via.
- Non ambiguità: l’azione da eseguire non si può prestare a molteplici interpretazioni, ma solo ad una.
- Finitezza: l’algoritmo deve essere composto da un numero ben definito di passi.
- Terminazione: l’algoritmo deve produrre un risultato entro un tempo finito.
- Effettività: l’esecuzione dell’algoritmo deve portare ad un solo risultato, ovvero essere univoco, come già detto in precedenza.
Affinché l’algoritmo possegga tutte queste caratteristiche, è necessario che il problema che esso è chiamato a risolvere o il compito che deve affrontare sia chiaro, che i dati di partenza siano noti e sufficienti allo scopo, e che il problema sia risolubile.[6]
Oggi associamo gli algoritmi perlopiù ai social networks, e si è costituita in noi la convinzione che siano qualcosa di malefico da cui difendersi.
[1]http://linuxdidattica.org/docs/altre_scuole/planck/programmazione/gli_algoritmi.html
[2]https://www.unicusano.it/blog/didattica/corsi/cose-un-algoritmo/
[3]http://linuxdidattica.org/docs/altre_scuole/planck/programmazione/gli_algoritmi.html
[4]https://it.wikipedia.org/wiki/Algoritmo
[5]https://www.unicusano.it/blog/didattica/corsi/cose-un-algoritmo/
[6]http://linuxdidattica.org/docs/altre_scuole/planck/programmazione/gli_algoritmi.html
<<< La prossima parte martedì 30 novembre >>>
Autrice: Annarita Noschese
Editor: Francesco PennaNera
Copy Editor: Francesco Di Concilio
Cover design: Sheila Havziart