Algoritmi
Come si può risolvere un problema?
Un problema può essere risolto tramite due modalità:
-MODALITA' EURISTICA: fare dei TENTATIVI in un certo DOMINIO LIMITATO di SOLUZIONI ESPLORABILI. I risultati sono corretti ma non sempre SOLUZIONI EFFICIENTI
-MODALITA' ALGORITMICA: applicare un INSIEME DI PASSI FINITO che mi consente di risolvere un PROBLEMA, quindi di arrivare alla SOLUZIONE del problema
Le caratteristiche di un algoritmo
Un algoritmo deve essere:
-NON AMBIGUO: ogni passo deve essere SPECIFICO e INTERPRETABILE in un unico modo
-COMPLETO: in un algoritmo devono esserci tutti gli ELEMENTI per risolvere un problema
-DETERMINISTICO: un algoritmo deve poter risolvere tutti i PROBLEMI di uno STESSO DOMINIO (stessa tipologia)
-FINITO: in un algoritmo ci devono essere un certo numero di PASSI e questi devono essere ripetuti sempre allo STESSO MODO
-GENERALE: un algoritmo non deve risolvere un SOLO PROBLEMA ma tutti i problemi di un certa CLASSE
Due tipi di approcci per risolvere un problema
Per risolvere un problema possiamo applicare due tipi di approcci:
-TOP DOWN (alto verso il basso): un problema viene suddiviso in PICCOLI PROBLEMI e per ognuno di loro si trova una SOLUZIONE
-BUTTOM UP (basso verso l'alto): si parte dalla SOLUZIONE e vedo in quale modo posso arrivare ad essa
