Рет қаралды 14,992
Ho anche una newsletter settimanale, i precedenti post li trovi gratuitamente qui : mathonelist.su... Per ripetizioni a livello universitario o di scuole superiori scrivimi a list@mathone.it 👉👉 Se vuoi supportare il canale ed il progetto, puoi farlo qui mathone.it/sup...
Cos’è un algoritmo? Eh, domanda non troppo facile ma senz’altro di fondamentale importanza. Ormai siamo nell’era digitale, dove gli algoritmi regnano sovrani. Tutti i dispositivi che utilizziamo quotidianamente sono basati su essi, direi quindi che un po’ di loro conoscenza non guasta a nessuno
Per definire questo “oggetto”, vediamo di partire da un semplice esempio
Sai preparare il caffè, giusto?
Algoritmo per preparare il caffè:
1. Prendi la moka
2. Svita il raccoglitore
3. Estrai il filtro con il caffè della scorsa volta
4. Svuota il caffè del filtro nel cestino
5. Versa l'acqua nella caldaia fino a riempirla a livello del filtro
6. Inserisci il filtro
7. Versa il caffè pressandolo in modo che sia colmo, non deve starcene più
8. Avvita il raccoglitore
9. Accendi il fuoco
10. Posiziona la moka sopra la fiamma
11. Aspetta il suono del vapore che ti avverte che il caffè è pronto
12. Spegni la fiamma
13. Prendi una tazzina pulita
14. Versa il caffè
15. Gustatelo!
Ottimo, ora mentre ti gusti il tuo bel caffè, ascoltami che andremo a vedere quali sono le proprietà fondamentali delle istruzioni
che abbiamo visto in modo da rendere la preparazione del caffè un algoritmo.
Vediamo quindi di estrarre le proprietà fondamentali di un algoritmo a partire da questo semplice esempio. Esso è una sequenza di istruzioni/azioni che vanno eseguite in un ordine specifico. Questa sequenza è inoltre finita in tempo, nel senso che sai già che riuscirai a preparare il tuo buon caffè. Inoltre questa preparazione/procedura non può essere ambigua, interpretabile, ma deve funzionare chiunque sia il “cuoco”, ecco perchè ti ho detto versa il caffè fino a che il filtro non è colmo, altrimenti avrei potuto dirti versa un po' di polvere di caffè. Per concludere, le istruzioni devono essere elementari, semplici, non ulteriormente spezzabili in azioni più semplici.
Definizione più rigorosa del concetto di ALGORITMO
Si dice algoritmo una sequenza finita e ordinata di operazioni elementari e non ambigue che permettono di risolvere, in maniera deterministica, un problema in tempo finito, ovvero l’algoritmo ha un termine.
Se non hai mai sentito parlare di algoritmo in termini un po’ più formali, è molto probabile che ti sfugga l’importanza di qualcuna delle richieste che l’algoritmo deve soddisfare per essere definito tale.
Vediamo quindi un paio di esempi che sembrerebbero algoritmi ma non lo sono perchè non rispettano una o più di queste strane proprietà.
Un esempio semplice di non determinismo di una sequenza di istruzioni potrebbe essere introdotta nella procedura di preparazione del caffè. Per esempio si decide che appena si è messo il caffè nel filtro si lancia un dado e a seconda del numero che esce si salterà una delle operazioni che abbiamo elencato successivamente. Non solo questa procedura non è deterministica ma non è nemmeno detto che ci permetta di ottenere il risultato finito, ovvero di gustarci il nostro buon caffè dopo pranzo.
Un altro “algoritmo” molto semplice ma che non può essere definito tale in quanto non termina è il seguente:
a=2
Finchè a è pari:
a=2a
Restituisci
a
fine
Chiramente se moltiplichiamo un numero pari per 2, esso rimarrà pari
Può sembrare stupido come esempio, ma è sufficientemente chiaro per capire l’importanza di queste proprietà nella buona caratterizzazione di un algoritmo.
Ritornando alla quantità del caffè da mettere nel filtro, se ti avessi detto di metterne un po' il percorso e il risultato sarebbe stato soggettivo, per esempio sarebbe dipeso anche dalla moka che stai utilizzando. Ok, noi abbiamo il buon senso e siamo CAPACI di prepararci il caffè, ma se si dicesse così ad un computer, o comunque dare queste istruzioni ad una planetaria o un robottino che cucina per te, è ovvio che lui non sarebbe in grado di decidere quanto caffè mettere, a meno di non essere precisi o insegnargli il buon senso, ma questo è un discorso più complicato.
Ecco il perchè dell’importanza della non ambiguità delle istruzioni.
-----------------------------------------------------------------------------------------------------------------
Se vuoi approfondire le tematiche qui trattate, mi trovi anche qui:
🏁 Sul Blog : mathone.it/
😎 Su Facebook: / math0ne
📷 Su Instagram: / mathoneig