
Prima di dare la definizione di algoritmo cerchiamo di capire in cosa potrebbe esserci utile. Partiamo da questo esempio:
Sono in autostrada e voglio che l’automobile su cui sono si fermi.
La risposta che viene spontaneo dare è ovviamente quella di usare il pedale del freno. Ma è davvero sempre la risposta corretta? No, non lo è sempre, infatti, anche parlando in generale, usare il pedale del freno non sempre ci permette di fermare l’automobile. Quando questo non avviene? Quando, per esempio, l’automobile che stiamo guidando è già ferma!
Nel caso in esame potrei essere semplicemente fermo in sosta nella piazzola di un autogrill e, in questo caso, per fermare l’automobile semplicemente non devo fare niente in quanto è già ferma. Può sembrare che si sta volutamente cercando il “pelo nell’uovo” ma non è assolutamente così. Il problema che ci è stato posto non specificava l’attuale velocità dell’automobile e di conseguenza se la risposta che abbiamo dato è quella di usare il pedale del freno abbiamo inconsciamente supposto che la macchina si stesse muovendo.
Questa supposizione, va chiarito, è ragionevole, di fatto normalmente non viene chiesto cosa bisogna fare per fermare un’automobile già ferma. Ma la supposizione che sia in movimento rende la soluzione fornita meno completa poichè restringe il campo delle possibilità introducendo un’ipotesi iniziale particolare.
A fronte della consapevolezza che non è fornita la velocità dell’automobile, la risposta potrebbe diventare: se l’automobile si sta muovendo allora utilizzo il pedale del freno, altrimenti non faccio niente in quanto sono già fermo. Abbiamo raggiunto quindi una risposta corretta? No, in generale non abbiamo ancora raggiunto una risposta corretta perché di fatto il quesito ci sta informando che noi siamo sull’automobile, ma non sta informando su quante persone sono a bordo dell’automobile e tanto meno ci sta informando sul fatto che stiamo guidando.
Nulla vieta che siamo seduti sul sedile del passeggero e che quindi se vogliamo fermare l’automobile dobbiamo chiedere al pilota di farlo. Anche la seconda soluzione è basata su una supposizione, ovvero quella che si sta guidando, ma come per quanto detto sopra è solo una supposizione dato che il testo della domanda non lo specifica chiaramente.
La nuova risposta che possiamo dare diventa ora: se la macchina è ferma non faccio niente, se invece si sta muovendo e sto guidando allora devo usare il pedale del freno, mentre, se non sto guidando, devo chiedere al pilota di utilizzare il pedale del freno.
Sono sicuro che il concetto a questo punto sia passato! La risposta è corretta e definitiva? In generale non lo è… le variabili che possiamo associare all’arresto di un automobile sono molteplici e di certo non le abbiamo ancora valutate tutte.
Dobbiamo valutarle tutte al fine di dare una risposta? Ovviamente no, se così fosse decidere come fermare la propria automobile richiederebbe parecchio tempo, forse troppo (dipende dal motivo per cui abbiamo deciso di fermarci). Ma se non dobbiamo valutarle tutte, allora quante dobbiamo valutarne? Questa è realmente la risposta più difficile da dare in questo corso e, a parte casi particolari che vedremo già dalla prossima lezione, dipende da quanto dobbiamo essere precisi nel dare la risposta stessa.
Come esercizio è utile in questa prima fase porsi dei problemi e trovarne la soluzione prestando attenzione ai passaggi. Un buon esercizio è quello di porsi un problema per cui riusciamo a trovare una soluzione che non necessita di nessuna supposizione per essere valida. Ne esistono davvero tanti e la prossima volta ne analizzeremo uno.