L'ALGORITMO
A cosa serve
Un algoritmo rappresenta la massima concretizzazione di una capacità dell’essere umano: il problem solving, ossia la capacità di risolvere problemi, conoscendo le condizioni della situazione di partenza e prevedendo/osservando la situazione o le situazioni finali.Un algoritmo è importante per scrivere programmi funzionanti, sia che esso sia il programma che esegue ciclicamente la somma di più numeri inseriti sia che sia un grande software tipo Adobe Photoshop o Microsoft Flight Simulator, giusto per citarne qualcuno: naturalmente le tecniche di progettazione del software sono diverse, ma la risoluzione del problema o di una parte di esso è sempre affidata a un algoritmo.Oggi è facile affermare che gli algoritmi caratterizzano molti aspetti della nostra vita quotidiana.La prenotazione di un posto in aereo, l'effettuazione di una transazione sicura ad uno sportello bancario elettronico, la ricerca di informazioni nel Web, la sicurezza della firma elettronica, la compressione o decompressione di file di musica o immagini sono solo alcuni esempi della pervasività degli algoritmi nella nostra vita quotidiana.
Le sue caratteristiche
FINITO
Il processo risolutivo descritto dall’algoritmo deve terminare dopo un numero finito di passi o azioni elementari e deve essere caratterizzato da un punto iniziale e da un punto finale
DETTAGLIATO
Ad ogni passo dell’algoritmo deve corrispondere un’azione elementare che l’esecutore è in grado di compiere.
NON AMBIGUO
Ogni passo o azione elementare di un algoritmo deve essere univocamente interpretabile dall’esecutore.
GENERALE
L’algoritmo va inteso come metodo di risoluzione non di un unico caso, ma di una classe di problemi dello stesso tipo.
DETERMINISTICO
L'algoritmo deve risolvere il problema in modo che, partendo sempre dalle stesse condizioni iniziali, deve fornire sempre gli stessi risultati finali ad ogni sua esecuzione.
COMPLETO
Un buon algoritmo deve sempre considerare tutti i casi possibili che si possono verificare durante l’esecuzione e, per ogni caso previsto, indicare la soluzione da seguire.
LIMITATO NEL TEMPO
Anche se l'algoritmo impiega molto tempo per raggiungere la soluzione, deve sempre comunque avere un punto di arresto.
EFFICIENTE
L’esecuzione di un algoritmo deve comportare l’utilizzo, tendenzialmente, di meno risorse possibili (ossia tempo di esecuzione e spazio di memorizzazione).
Un semplice esempio
SOMMA DI DUE NUMERI INTERI
Tabelle dei dati
Pseudocodifica
Flowchart
Cosa è
Un algoritmo contiene proprio la descrizione del processo risolutivo di un certo problema assegnato.Tale descrizione consiste in una sequenza finita, ordinata ed univocamente interpretabile di passi o istruzioni elementari che permettono di risolvere una determinata classe di problemi.Non tutti i problemi che si incontrano sono risolvibili tramite algoritmi!
Le figure coinvolte
Risolutore
IL RISOLUTORE è colui che definisce il processo risolutivo per risolvere il problema.Al risolutore spetta l’attività creativa, il processo risolutivo non dipende solo da capacità tecniche ma anche dalla cultura, dall’intuizione e dall'esperienza del risolutore.Il risolutore è un essere umano!
aEsecutore
L’ESECUTORE è colui il quale esegue il processo risolutivo individuato dall'esecutore.All’esecutore spetta l’attività esecutiva del procedimento, ossia seguire il processo risolutivo descritto dal risolutore per giungere concretamente alla soluzione del problema,L’esecutore è la macchina!
Come si rappresenta
Linguaggio Formale
Un linguaggio formale si intende un linguaggio in cui i simboli e/o parole utilizzate hanno sempre un unico significato.Esempi di linguaggi formali: l'uso delle bandiere in formula 1, la segnaletica stradale, le segnalazioni in aeroporto sulla pista di rullaggio (AIRCFART MARSHALLING), le spie del cruscotto di un'automobile, etc.
aPseudocodifica
Flowchart
Dulcis in fundo
L'algoritmo più bello del mondo