Trasparenze - Dipartimento di Informatica e Sistemistica

generalità
concetti di base
cosa significa informatica?

scienza dell’informazione


scienza dei computer (dall’inglese computer
science)


e l’informazione giornalistica?
per i progettisti di computer?
scienza per la rappresentazione e l’elaborazione
dell’informazione

e i computer?

ottobre 2002
meri esecutori
(c) Fabrizio d'Amore, 2002
2
informazione

dati di interesse


numeri, parole, simboli, testi, immagini,
suoni…
interessanti per
la consultazione
 la deduzione di novi dati (che siano deducibili…)

informatica = scienza per la rappresentazione e l’elaborazione dell’informazione
ottobre 2002
(c) Fabrizio d'Amore, 2002
3
rappresentazione dell’informazione

convenzione per
rappresentare tramite
simboli o parametri
fisici concetti astratti


simboli:
rappresentazione
digitale
parametri fisici:
rappresentazione
analogica
seven
informatica = scienza per la rappresentazione e l’elaborazione dell’informazione
ottobre 2002
(c) Fabrizio d'Amore, 2002
4
elaborazione dell’informazione

processo automatico che a partire da dati
in ingresso (input) produce dati in uscita
(output)

le regole che definiscono come costruire
l’output a partire dall’input costituiscono un
algoritmo

volto normalmente alla risoluzione di un
problema
ottobre
2002
informatica
(c) Fabrizio d'Amore, 2002
= scienza per la rappresentazione
e l’elaborazione dell’informazione5
concetto di problema

cosa è un problema?


risoluzione di un problema


descrizione di un contesto, di uno scenario
contesto + input → output
è necessario che l’output sia determinabile
(calcolabile) a partire dal contesto e
dall’input
ottobre 2002
(c) Fabrizio d'Amore, 2002
6
classe di problemi


insieme di problemi “simili”, definiti nello
stesso contesto che differiscono
essenzialmente nell’input
esempio:



contesto: “individuare su uno stradario il
percorso migliore fra due città”
input: “partenza = Roma, destinazione =
Milano”
output: “autostrada A1”
ottobre 2002
(c) Fabrizio d'Amore, 2002
7
istanze di problemi



classe di problemi + input = istanza di
problema
in genere il termine “problema” è usato in
modo ambiguo, talvolta per indicare classe
di problemi, talvolta per indicare istanza di
problema
esempio:


risoluzione di un’equazione di secondo grado
classe o istanza?
ottobre 2002
(c) Fabrizio d'Amore, 2002
8
tipi di problemi

decisionali


ammettono solamente una risposta: sì oppure no
di ottimizzazione

in un insieme di soluzioni ammissibili si vuole
individuare quale soddisfa meglio una determinata
proprietà

esempio: percorso Roma – Milano, proprietà di interesse:
distanza percorsa


ottobre 2002
una soluzione ammissibile è un qualunque percorso che
colleghi le due città
la soluzione ottimale è quella che minimizza la distanza
Roma – Milano
(c) Fabrizio d'Amore, 2002
9
sommario problemi
ottobre 2002
decisione
ottimizzazione
classe
√
√
istanza
√
√
(c) Fabrizio d'Amore, 2002
10
risoluzione dei problemi (1)

nella definizione di una classe di problemi
si specifica cosa deve essere calcolato
(una volta noto l’input)


in altre parole, data un’istanza di problema, è
perfettamente definito l’output del problema
(purché sia risolvibile e i dati siano sufficienti)
non viene invece fornito un metodo di
soluzione

dato l’input, come è possibile determinare
l’output?
ottobre 2002
(c) Fabrizio d'Amore, 2002
11
risoluzione di problemi (2)





analisi e comprensione delle specifiche
familiarità con la classe di problemi
individuazione di un insieme di strategie
ammissibili
scelta di un metodo
descrizione dettagliata del metodo
ottobre 2002
(c) Fabrizio d'Amore, 2002
12
risoluzione di problemi (3)

come mettere in pratica il metodo?


l’attuazione della procedura di risoluzione
può essere complessa
chi mette in pratica il metodo?

la descrizione dettagliata della procedura di
risoluzione non può essere indipendente
dall’attuatore
quanto è intelligente l’attuatore?
 quale grado di autonomia ha?
 sa interpretare il contesto?

ottobre 2002
(c) Fabrizio d'Amore, 2002
13
algoritmi


descrizione di una sequenza ordinata di passi
elementari che porta senza ambiguità alla
individuazione
della soluzione
di un
problema
da Ar al-Khwārazmī,
matematico
arabo
(IX
la sequenza
di passi,del
anche
se lunga,
deve
secolo) originario
Khwārazm
(Khiva)
essere
finita
che
per primo suggerì un metodo per


esistono
problemi
che non
ammettono nel
algoritmi
sommare
due numeri
rappresentati
risolutivi o che, in altre parole, non ammettono alcun
sistema numerico
Hindu
procedimento
risolutivo
che dia garanzia di
terminazione
di norma concepiti con riferimento a una classe
di problemi
ottobre 2002
(c) Fabrizio d'Amore, 2002
14
problema della capra,
del lupo e del cavolo
1.
2.
3.
4.
5.
6.
7.
porta
torna
porta
porta
porta
torna
porta
ottobre 2002
la capra sull’altra sponda
indietro
il cavolo sull’altra sponda
indietro la capra
il lupo sull’altra sponda
indietro
la capra sull’altra sponda
(c) Fabrizio d'Amore, 2002
15
qualità degli algoritmi

correttezza



output corretti in corrispondenza di input
ammissibili
quali output negli altri casi?
efficienza

uso efficace delle risorse
tempo
 spazio

ottobre 2002
(c) Fabrizio d'Amore, 2002
16
visione funzionale degli algoritmi
input
A1
A3 =
A1 + A2
output
input
A2
output
ottobre 2002
(c) Fabrizio d'Amore, 2002
A2
output
18
es: equazione
o
2
grado
ax  bx  c  0
2
 b  b  4ac
x
2a
2
ottobre 2002
(c) Fabrizio d'Amore, 2002
19
es: equazione
b
o
2
grado/2
*
b
-
√
*4
+
a
*
b
-
/
x1
c
a
ottobre 2002
(c) Fabrizio d'Amore, 2002
*2
20
ancora sulla visione funzionale

utile sia nell’approccio top-down, sia
bottom-up



top-down: decomposizione di un problema
complesso in sottoproblemi più semplici
bottom-up: riuso di soluzioni già disponibili
occorre un sistema per descrivere la
sequenza delle operazioni previste
ottobre 2002
(c) Fabrizio d'Amore, 2002
21
diagrammi o grafi di flusso
(flow charts)
start
I/O
stop
sottoprogramma
operazione
ottobre 2002
(c) Fabrizio d'Amore, 2002
test
selezione
22
diagrammi di flusso (esempio)
start
calcola
x2=(-b-r)/(2a)
output x1
input
a, b, c
calcola
x1=(-b + r)/(2a)
output x2
calcola
d = bb – 4ac
calcola
r = √d
end
ottobre 2002
se
d è d'Amore,
< 0??2002
(c) Fabrizio
23
esempio equazione 2° grado
start
calcola
x1=(-b + r)/(2a)
calcola
x2=(-b - r)/(2a)
input
a, b, c
calcola
r = √d
output
x1, x2
no
calcola
d = bb – 4ac
ottobre 2002
d<0?
sì
output
“no radici reali”
(c) Fabrizio d'Amore, 2002
end
24
descrizione di algoritmi

diagramma di flusso


pseudo-codice



quando l’algoritmo diviene complesse sono estesi e di
difficile comprensione/correzione
informale, ampiamente utillizzato
ha sostituito il diagramma di flusso negli ultimi venti
anni
codice

richiede la conoscenza di un linguaggio di
programmazione
ottobre 2002
(c) Fabrizio d'Amore, 2002
25
pseudo-codice
start
input(a, b, c)
d = bb – 4ac
if(d < 0)
output(“no radici reali”)
else
e = sqrt(d)
x1 = (-b + e) / (2a)
x2 = (-b – e) / (2a)
output(x1, x2)
stop
ottobre 2002
(c) Fabrizio d'Amore, 2002
26
radice quadrata

metodo numerico per il calcolo rapido della
radice quadrata di un reale non negativo r

metodo di Newton-Raphson

1 r
xn 1    xn 
2  xn


occorre criterio di arresto
 es., se xk 1  xk  
ottobre 2002
(c) Fabrizio d'Amore, 2002
27
radice quadrata (flow chart)
x =
(r/x + x)/2
x = 1
xprec = ∞
ε = 0.000001
xprec=x
sì
input(r)
ottobre 2002
|x-xprec|>ε?
(c) Fabrizio d'Amore, 2002
no
output x
28
radice quadrata (pseudo-codice)
start
input(r)
x=1 (ad esempio)
xprec = ∞
ε = 0.000001
while(|x-xprec| > ε)
xprec = x
x = (r/x + x)/2
output(x)
stop
ottobre 2002
(c) Fabrizio d'Amore, 2002
29