Introduzione agli Algoritmi - Giovanni Morana

Problemi e soluzioni
Algoritmi e proprietá
Esempi
Introduzione agli Algoritmi
Informatica M-Z
Ing. Giovanni Morana
[email protected]
Universitá di Catania
03 Dicembre 2012
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Informazioni
Ricevimento
Martedi’ 13-15
Mercoledi’ 13-15
Libri
Linguaggio C - Guida alla programmazione
di Alessandro Bellini, Andrea Guidi
C. Corso completo di programmazione
di Harvey M. Deitel, Paul J. Deitel
The C Programming Language, 2o ed.
diBrian Kernighan, Dennis Ritchie
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Outline
1
Problemi e soluzioni
2
Algoritmi e proprietá
3
Esempi
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Formulazione di un problema
Un problema é ben formulato se:
non é evidente a priori che non esistono soluzioni;
il criterio di verifica delle soluzioni é univoco e si sa come
applicarlo;
l’insieme dei dati iniziali è completo.
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Risoluzione di un problema
Ogni problema viene prima scomposto in sotto-problemi più
semplici che, a loro volta, sono scomposti in problemi elementari.
Un problema é elementare quando puó essere risolto con una o
più azioni semplici.
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Risoluzione di un problema
Risolvere un problema significa definire un elenco di azioni che
eseguite da un esecutore conducono da determinate informazioni
iniziali ad altre informazioni finali, soddisfacenti un criterio di
verifica.
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Soluzione effettiva
Una soluzione di un problema si dice effettiva se l’esecutore é in
grado di
interpretare i dati di ingresso
interpretare la descrizione di tale soluzione, e quindi di
associare ad essa le azioni che deve compiere per eseguirla;
compiere tali azioni, completando l’esecuzione in un tempo
finito.
Una soluzione effettiva viene chiamata algoritmo.
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Algoritmo
Deriva dal nome del matematico Al-Khuwarimi (IX sec a.C.)
Definizione ISO
Un algoritmo è un insieme finito ed ordinato di regole formalizzate
destinato a fornire la soluzione di un problema, in un numero finito
di passi.
Definizione Mazurkiewicz
Procedura effettiva, comune per una classe di dati iniziali, la quale
trasformi, in un numero finito di passi elementari, i dati particolari
nel risultato richiesto
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Proprietá
Non ambiguitá: ogni passo deve produrre un risultato ben definito, per
tutti i possibili valori di ingresso.
Determinismo: per ogni passo compiuto deve essere determinato uno e
un solo passo successivo.
Eseguibilitá: ogni passo deve essere effettivamente eseguibile, in un
tempo finito, dall’esecutore.
Finitezza: l’algoritmo deve essere costruito da un numero finito di passi
discreti.
Terminazione: l’esecuzione dell’algoritmo deve terminare.
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Esempio#1
Risoluzione equazione di secondo grado ax 2 + bx + c = 0.
1. Calcoliamo il ∆:
∆ = b 2 − 4ac;
2. Valutiamo il ∆:
SE ∆ >= 0 ALLORA
√
∆)
2.1. Calcoliamo x1 = (−b+
2a
2.2. Calcoliamo x1 =
√
(−b− ∆)
2a
ALTRIMENTI
2.3 6 ∃x ∈ R
3. END
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Esempio#1
Risoluzione equazione di secondo grado ax 2 + bx + c = 0.
1. Calcoliamo il ∆:
∆ = b 2 − 4ac;
2. Valutiamo il ∆:
SE ∆ >= 0 ALLORA
√
∆)
2.1. Calcoliamo x1 = (−b+
2a
2.2. Calcoliamo x1 =
√
(−b− ∆)
2a
ALTRIMENTI
2.3 6 ∃x ∈ R
3. END
Ing. Giovanni Morana
Algoritmo?
Ogni passo ha un comportamento
certo
Il numero di passi è finito
Ogni passo è eseguibile
Si arriva ad una soluzione.
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Esempio#1
Risoluzione equazione di secondo grado ax 2 + bx + c = 0.
1. Calcoliamo il ∆:
∆ = b 2 − 4ac;
2. Valutiamo il ∆:
SE ∆ >= 0 ALLORA
√
∆)
2.1. Calcoliamo x1 = (−b+
2a
2.2. Calcoliamo x1 =
√
(−b− ∆)
2a
Calcoli & Condizioni
ALTRIMENTI
2.3 6 ∃x ∈ R
3. END
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Esempio#2
Algoritmo di Euclide per il M.C.M.
1. Considero A e B numeri interi;
2. SE A = B ALLORA
2.1 M.C.M = A (o B) - END
2.2 ALTRIMENTI SE A > B ALLORA
2.2.1 Calcoliamo A = A - B;
2.3 ALTRIMENTI
2.3.1 Calcoliamo B = B - A;
3. Ritorna a 2.
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Esempio#2
Algoritmo di Euclide per il M.C.M.
L’algoritmo di Euclide é ITERATIVO, cioé itera (esegue sempre lo
stesso blocco di comandi) fino a quando non si verifica una certa
condizione
Ing. Giovanni Morana
Introduzione agli Algoritmi
Problemi e soluzioni
Algoritmi e proprietá
Esempi
Esempio#2
Algoritmo di Euclide per il M.C.M.
1. Considero A e B numeri interi;
2. SE A = B ALLORA
2.1 M.C.M = A (o B) - END
2.2 ALTRIMENTI SE A > B ALLORA
2.2.1 Calcoliamo A = A - B;
Calcoli, Condizioni
& Salti
2.3 ALTRIMENTI
2.3.1 Calcoliamo B = B - A;
3. Ritorna a 2.
Ing. Giovanni Morana
Introduzione agli Algoritmi