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?