Algoritmi e calcolabilità - Lezione in semi-presenza
4. Esempi di problemi ed algoritmi
Anche una ricetta è un algoritmo, ma una ricetta è parametrica, cioè, ha delle variabili iniziali?
In un certo senso sì, la ricetta è parametrica perché dipende per quante persone devo cucinare.
Il menù di un ristorante è un algoritmo? È una sequenza ma non è un algoritmo. Al contrario, un menù fisso è un algoritmo perché il cameriere sa che, seguendo quell’ordine, deve portare determinate portate. Quindi un menù fisso è un algoritmo perché è una dichiarazione di una procedura.
La lista della spesa è un algoritmo? No perché se non prendo le cose al mercato nell’ordine in cui le ho scritte sul foglio, non accade nulla.
Un algoritmo quindi è una sequenza di istruzioni atte a risolvere un problema parametrico dato.
Una ricetta è praticamente sempre un algoritmo. Una ricetta è parametrica?
Data una ricetta produce sempre lo stesso dolce.
Le ricette sono procedure, sequenze di operazioni, alcune sequenze non si possono invertire o saltare quindi si tratta di algoritmi.
Anche lo spartito musicale è un algoritmo. Ma è parametrico?? ???...in un certo senso a volte sì, poiché l'esecuzione dipende dalla velocità metronomica (quando non è indicata direttamente nello spartito),tuttavia vi sono altri fattori che non potremmo definire parametrici, perché non variano in maniera proporzionale.
Ma la ricetta è parametrica? In un certo senso sì perché può variare la quantità di persone…
Riprendendo dalla lezione precedente, avevamo iniziato a parlare delle operazioni. Per prima cosa avevamo visto cos’è un problema e quando è risolvibile, poi avevamo visto che esiste il concetto di soluzione del problema che abbiamo riconosciuto come un algoritmo, e poi abbiamo visto che, per risolvere un problema, esistono diversi ruoli.
Per risolvere un problema abbiamo bisogno di un algoritmo e di un esecutore. Quindi i ruoli saranno: colui che ha creato l’algoritmo che serve affinché il problema venga risolto, e l’esecutore ovvero colui che deve eseguire il problema. L’esecutore segue l’algoritmo e lo svolge ovvero fa il processo. Il processo non è altro che una sequenza di passi attuata da qualcuno, non prima, però, che l’algoritmo sia stato scritto.
Si richiede anche l’esistenza di un individuo che pensi l’algoritmo. Un individuo creativo, più “geniale” degli altri poiché ha pensato l’algoritmo stesso. Visto ciò, ci siamo soffermati sulla capacità risolutiva dell’algoritmo stesso, ovvero: l’algoritmo individuato inizialmente poteva risolvere un solo problema, o almeno così noi pensavamo. In realtà, introducendo il concetto di variabile, si ha a disposizione una serie di algoritmi che risolvono una serie di problemi (problemi che sono molto simili tra loro).
Un algoritmo è una sequenza di istruzioni atte a risolvere un problema parametrico dato.
Si vedrà il problema della somma, il problema della moltiplicazione e il problema del MCD (massimo comun divisore).