Introduzione agli algoritmi
Paolo Bison
Fondamenti di Informatica
A.A. 2001/02
October 11, 2001
Algoritmo
descrizione di come si deve eseguire un lavoro o risolvere
un problema
sequenza di passi/istruzioni
Al-Khuwarizmi
luogo di origine di un matematico arabo
procedimento di calcolo
esistono anche in altri contesti:
processo
montare un
mobile
cucinare
algoritmo
passo tipico
istruzioni
incolla
di montaggio A su B
ricetta
aggiungere olio
P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi
1
Esecuzione
esecutore
uomo/calcolatore
funzionalità dell’esecutore:
– capire il significato di ogni passo
– eseguire l’operazione corrispondente
descrizione
uomo
calcolatore
linguaggio naturale
programma in un
linguaggio di programmazione
indipendenti dal linguaggio in cui sono espressi
potenza espressiva del linguaggio
P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi
2
Programmazione
problema
algoritmo
programma
più programmi per lo stesso algoritmo
fasi
– progettare un algoritmo
– esprimerlo in un linguaggio di programmazione (programma)
– far eseguire il programma
P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi
3
Progettazione
Dato un problema come si progetta un algoritmo che lo risolva
?
NON
ESISTE
algoritmi
un
algoritmo
per
progettare
attività intellettuale
metodologie e linguaggi
prevedere tutti i possibili eventi che potrebbero verificarsi
durante l’esecuzione
(NORAD)
P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi
4
Computabilità
Ci sono problemi per
algoritmi?
– halting problem
i
quali
non
Dato un problema, come possiamo
esiste un algoritmo che lo risolva?
P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi
esistono
sapere
se
5
Correttezza
Dato un algoritmo, come possiamo essere sicuri che è corretto?
metodi formali
metodi empirici
inaffidabilità dei programmi
P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi
6
Complessità
dato un algoritmo
quali sono le risorse necessarie per eseguirlo ?
in quanto tempo ?
se ci sono più algoritmi per un dato problema, qual’ è il
“migliore”?
esistono problemi per i quali il miglior algoritmo richiede
tante
risorse
da
rendere
impossibile
l’elaborazione?
– crittografia
P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi
7