Procedimenti risolutivi ...
Scegli la strategia giusta...
Un algoritmo ben posto deve rispettare alcune proprietà:
-
correttezza:
- perviene alla soluzione del problema dato
- efficienza:
- perviene alla soluzione nel modo migliore possibile –! La velocità è solo uno dei criteri. Si parla in generale di qualità
- finitezza:
- Il numero di istruzioni che fanno parte di un algoritmo è finito
- terminazione:
- Le operazioni definite in esso vengono eseguite un numero finito di volte
- L’esecutore deve terminare in tempo finito per ogni insieme di valori in ingresso
- determinismo:
- Le istruzioni presenti in un algoritmo devono essere definite senza ambiguità
- Un algoritmo eseguito più volte e da diversi esecutori, a parità di premesse, deve giungere a medesimi risultati
- realizzabilità pratica:
- L’esecutore deve essere in grado di eseguire l’algoritmo con le risorse a sua disposizione (informazioni + tecnologia)
- genericità:
- Un algoritmo, compatibilmente con i vincoli espressi dal problema, si occupa della risoluzione di famiglie di problemi
Poniamo ora l'accento su uno di questi concetti che appare essere quello più complesso:
cos'è esattemente un algoritmo deterministico?