Sei sulla pagina 1di 78

Rappresentazione

dellinformazione

Roberto Serra
Universit di Modena e Reggio Emilia &
European Centre for Living Technology, Venice

quale informazione?

finora abbiamo parlato di informazione in termini


molto generali

ma cosa vorremmo rappresentare?

numeri

lettere, parole

immagini

suoni

segnali

Continuo vs
discreto
luce

ticchet
tio

Continuo vs
discreto

le grandezze continue sono quelle che di


solito associamo ai sistemi fisici e
chimici spontanei

lunghezze, velocit, concentrazioni

sono tipicamente rappresentate da numeri


reali, che costituiscono un continuum

le grandezze discrete sono quelle che


possono assumere solo solo alcuni valori

ad esempio, un prezzo di vendita non pu


avere una granularit minore di 1/100 di euro

il ticchettio di un telegrafo Morse

la meccanica quantistica ha mostrato che


molte variabili che pensavamo continue sono
in realt discrete

alcuni ipotizzano che in realt siano tutte


cos, ma la nostra attuale descrizione del
mondo si basa in larga misura su variabili
continue

un calcolatore digitale opera con variabili


discrete

quindi per rappresentare variabili continue


in un calcolatore digitale necessario
approssimarle con variabili discrete

le variabili continue sono tipicamente associate a


valori reali

anche i numeri complessi sono coppie di reali

in un sistema digitale non possono possono essere


rappresentati valori irrazionali (non esprimibili come
rapporto di due interi come p.es. , e, 2, etc.

una bella dimostrazione: dimostriamo che 2 non pu


essere pari al rapporto rapporto di due interi.
Ragionamento per assurdo: 2=p/q primi fra loro
(altrimenti semplifichiamo)

2=p/q => p2=2q2 => p2 pari => p pari quindi p=2p

p2=2q2 => 4p2=2q2 => 2p2=q2 => anche q pari contrario


allipotesi! QED

in un calcolatore abbiamo sempre a che fare con


sistemi finiti, quindi non possibile
esprimere in forma decimale numeri periodici

p.es. 1/3=0.333333.

ma necessario approssimarli con un numero


finito di cifre

p.es. 1/3=0.3333

2/3=0.6667,

2/3=0.666666,

reali
razionali

reali

rappresentabili su macchina digitale finita

calcolatori
analogici?

La competizione fra calcolatori analogici e digitali nel XX


secolo

I primi rappresentano le variabili in gioco mediante grandezze


fisiche che evolvono in opportuni circuiti, dando una risposta

P.es. calcolo di integrali

Il circuito simula fisicamente il processo da descrivere

si possono rappresentare numeri reali

I calcolatori digitali invece usano variabili discrete che cambiano


nel tempo secondo regole opportune

fino circa alla met del 900 i calcolatori analogici erano concorrenti
pericolosi, ma nella seconda met si sono affermati decisamente i
calcolatori digitali

per ora?

calolatori digitali

I calcolatori digitali usano variabili discrete che


cambiano nel tempo secondo regole opportune

Il programma simula logicamente il processo da


descrivere

Quanti diversi valori delle variabili discrete sono


necessari?

sono possibili diverse soluzioni, ma la pi semplice


quella che si basa solo su due valori

questa scelta rende molto semplice distinguere i


valori dal punto di vista circuitale

Rappresentazione
binaria
Due soli simboli

Nel mondo fisico

la pi semplice la presenza o assenza


di un fenomeno

Nel mondo logico

i concetti di vero e falso

Un sistema binario

imporre una scelta binaria (tertium non datur) non


privo di conseguenze

vi sono domande a cui non si pu rispondere con un


semplice s/no

mi ami? sei felice?

possono richiedere risposte pi articolate: vedremo per


che possibile esprimere mediante due soli simboli
tutto quello che pu essere espresso dal linguaggio

vi sono per anche domande fisiche che non ammettono


proprio una risposta binaria

da quale fenditura passato lelettrone?

Un sistema binario

come fare se vi sono pi di due alternative?


esprimere le diverse possibili situazioni come
combinazioni di stati elementari binari

esempio: i numeri (Sistema binario)

Lunit base di il bit

abbreviazione di binary digit

numeri decimali e
numeri binari

numeri decimali: 165 significa 1*100+6*10+5*1

165 = 5*100 + 6*101 + 1*102

analogamente, il numero binario 100110


corrisponde a

0*20 + 1*21 + 1*22+ 0*23+ 0*24+ 1*25

quindi, in base 10, a

2+4+32 = 38

Un sistema binario

combinando diversi bit in maniera opportuna


si possono rappresentare molte cose

Ladozione di un sistema binario, ovvero di


due soli simboli, presenta notevoli
vantaggi tecnologici

La memoria di un computer organizzata


come una sequenza di bit

ogni posizione registra la presenza o


lassenza

leggibile successivamente

Un gruppo di 8 bit costituisce un byte

Analogia

Un sentiero di blocchi di cemento

su ogni blocco pu esserci un sasso

Se su un blocco

c un sasso: rappresenta 1

non c un sasso: rappresenta 0

Esempio

10100010

Uno strano
computer

Codifica del CD-ROM


strato riflettente

raggio laser

lato etichetta

lato trasparente

Combinare pi bit

Come rappresentare simboli pi numerosi?

Una sequenza di bit rappresenta


abbastanza simboli per codificare dati
complessi

2 valori, con sequenze di lunghezza n ,


possiamo creare 2n simboli

Esempio con 2 simboli: le basi del DNA

00 A

01 C

10 G

11 T

non solo numeri

una sequenza di bit pu rappresentare


lo stato di un sistema

N biglie numerate 1, 2 N

{0,1}
2 urne lo stato della bigliaxi i-esima

X [x1, x2 ...xN ] {0,1}N

lo stato dell'intero sistema

informazione
N

stati

nr. bit
(I)

0,1

00, 01,
10, 11

000,001,0
10..

2N

W il numero di stati diversi

I log 2 W

un altro approccio

supponiamo di avere due giocatori; uno


sceglie a caso un numero, l'altro deve
indovinarlo

in altri termini: che probabilit ho di


scegliere a caso un particolare numero?

p=1/W

quindi

1
log 2 p
p
legame fra informazione e probabilit
I log 2 W log 2

la formula in questa versione vale se le


scelte sono equiprobabili

cosa succede?

se al posto delle
biglie consideriamo
delle molecole
che possono stare in
uno dei due comparti?
la descrizione dello
stato del sistema
la stessa

descrizione
macroscopica

noi potremmo essere


interessati a sapere solo
quante molecole stanno da una
parte e quante dall'altra

ovvero a una descrizione


macroscopica

uno stato macro corrisponder


a diversi stati micro

quanti?

probabilit dei
macrostati

esiste un solo modo per realizzare il macrostato N 1=0

esistono N modi diversi per realizzare N 1=1

(1,0,0 0,0),

(0,1,00,0),

(0,0,10,0) (0,0,0 0,1)

esistono N(N-1)/2 modi per realizzare N 1=2

(0,0,0 0)

una volta fissata la posizione di uno degli 1 restano N-1


posti possibili per la seconda (si divide per due per
evitare di contare due volte la stessa coppia, p.es. 2,3 e
3,2)

esistono N(N-1)(N-2)/(2*3) modi per realizzare N 1=3 ...

draft - not for quotation

numero
microstati per
certo valore di

di
un
N1

esistono N(N-1)(N-k+1)/(2*3*..*k) modi per


realizzare N1=k

esistono N modi diversi per realizzare N 1=N-1

esiste un solo modo per realizzare il macrostato


N ( N 1)...( N N1 1)
N1=N
( N1 )
N1!

draft - not for quotation

( N1 )

N ( N 1)...( N N1 1) ( N N1 )( N N1 1)...2 *1
*
N1!
( N N1 )( N N1 1)...2 *1

( N1 )

N!
N! N


N1!( N N1 )! N1! N 2! N1

macrostati

Per calcolare la probabilit di un dato


macrostato M, necessario:

Conoscere le probabilit dei singoli


microstati

Sommare tutte le probabilit dei


microstati che corrispondono allo stesso
macrostato M

In assenza di informazioni specifiche,


l ipotesi pi fair quella di supporre
che tutti i microstati abbiano la stessa
probabilit

draft - not for quotation

se tutti i microstati sono


equiprobabili, la probabilit di un
macrostato pari al numero di
microstati corrispondenti, diviso per
il numero totale di microstati
(2
( N )N) N!
possibili
p( N ) 1
2 N
1

draft - not for quotation

2N

N1!( N N1 )!

p(N1); N=6
0,35
0,3
0,25
0,2
0,15
0,1
0,05
0
0

p(N1); N=20
0,2

0,15

0,1
0,05

0
0

10

15

20

p(N1); N=50
0,12
0,1
0,08
0,06
0,04
0,02
0
-0,02

draft - not for quotation

10

20

30

40

50

entropia

il macrostato corrispondente al
maggior numero di microstati quello
pi probabile

se un sistema si trova in uno stato


diverso, tender ad evolvere verso
quello pi probabile

legame col secondo principio della


termodinamica!

cosa succede se gli


stati non sono
equiprobabili?

partiamo dal caso di un sistema con soli due


stati: 1 o 0

se sono equiprobabili, come abbiamo visto:

W=2, p=1/2;

se per i due stati non sono equiprobabili, e la


cosa nota, allora il compito di chi deve
indovinare pi facile

quindi linformazione associata alla conoscenza di


un valore vale di meno, minore della
precedente

I=logW=-logp=1

in questo caso linformazione data da una formula


simile alla precedente (-logp), ma riferita al
valore atteso (-<logp>)

come si calcola <>?

per ogni funzione f vale la stessa formula

<f>=f1p1+f0p0

dove f1 (f0) il valore di f quando il risultato del


lancio 1 (0)

e p1 (p0) la probabilit che il risultato del lancio sia


1 (0)

come si calcola <>? supponiamo di fare tanti lanci, e


che per ogni 1 io guadagni g1=10, e ad ogni 0 io
guadagni soltanto g0=2

e supponiamo che la probabilit di ottenere 1 sia x

in media, in M lanci otterr xM volte 1, (1-x)M volte 0

il mio guadagno atteso quindi 10xM+2(1-x)M =g 1xM+g0(1-x)M

il guadagno atteso per ogni lancio <g>=g 1x+g0(1-x)


=g1p1+g0p0

<g> proprio il valore atteso del guadagno g

la formula scritta in maniera da essere indipendente


dai valori effettivi del guadagno e delle probabilit,
del tutto generale

per ogni funzione f vale quindi la stessa formula

<f>=f1p1+f0p0

dove f1 (f0) il valore di f quando il risultato del


lancio 1 (0)

quindi adesso possiamo chiederci qual il valor medio


dellinformazione, ovvero del logaritmo della probabilit

<I>=-<logp>= -p1logp1 - p0logp0 = - pilogpi

lespressione ha valore generale, quindi non sempre


trasmettere il risultato di una scelta binaria
corrisponde a un bit di informazione

Rappresentazione
binaria

a rigore: un bit la quantit di


informazione associata ad una scelta
fra due alternative equiprobabili

in generale noi assoceremo comunque un


bit ad una scelta binaria, supponendo
implicitamente lequiprobabilit

come si fa di solito in informatica

il bit diventa una cosa che pu avere


due stati

tenete per presente anche la def. pi


generale di informazione

Rappresentazione
binaria

utilizzata per la codifica di


numeri e di caratteri

Anche per digitalizzare i suoni, i


video e altro

per codificare TUTTO!


vediamo ad esempio i simboli che
usiamo per scrivere (lettere, numeri,
segni di punteggiatura)

I caratteri da
codificare

95 caratteri (lingua inglese)

26 lettere minuscole e 26 maiuscole,

10 cifre numeriche,

10 segni aritmetici,

20 segni di interpunzione (spazi


inclusi)

3 caratteri non stampabili (a capo,


tabulazione, )

sono
sono necessari
necessari 77 bit
bit
2277=128
=128

Codifica ASCII

American Standard Code for


Information Interchange

rappresentazione a 7 bit

limportanza degli standard condivisi

Limiti

non basta per rappresentare i caratteri


dei linguaggi diversi dallinglese

lingue latine, nord europee,

Extended ASCII

Estensione di ASCII a 8 bit (256


simboli)

la prima met lASCII originale

con 0 alla MSD di ogni gruppo di bit

Vantaggi

codifica quasi tutti i linguaggi


occidentali

include molti altri simboli utili

Un gruppo di 8 bit costituisce un


byte

Codifica UNICODE

Utilizza 32 bit

Rappresenta anche i caratteri di


alfabeti non europei

p.e.: asiatici, arabi, ebraici,


cirillici,

I primi 256 caratteri sono quelli di


extended ASCII

I nuovi standard generalizzano quelli


vecchi, non li contraddicono

facilita i programmi di conversione

Champernowne number

a proposito di numeri binari e di informazione

questa una versione modificata del numero di


Cx

0.

0.01

0.0100011011

0.0100011011000001010011100101110111

iterando all'infinito, questo numero < 1


contiene tutte le possibili sequenze di bit

quindi anche tutti i libri che sono


stati scritti (e quelli che non sono
stati scritti!)

la biblioteca di Babel

contiene anche il genoma di ogni


individuo di ogni specie mai comparso
sulla terra

e tanti che non si sono mai visti

dipende dalla codifica

Codifica numero
telefonico

Il numero telefonico 888 555 1212

come sar rappresentato nella memoria di un


computer?

Codifica
Codifica ogni
ogni cifra
cifra
in
in un
un byte
byte ASCII
ASCII

Nota che il numero telefonico una


sequenza di simboli ma in effetti noi non
usiamo mai in questi casi le propriet dei
numeri

Codifica ridondante

Il codice per telecomunicazioni

lettere intelligibili anche in presenza


di rumore

necessariamente inefficiente

Es.: alfabeto NATO

Codifica NATO
A

Alpha

Hotel

Oscar

Victor

Bravo

India

Papa

Whiskey

Charlie

Juliet

Quebec

X-ray

Delta

Kilo

Romeo

Yankee

Echo

Lima

Sierra

Zulu

Foxtrot

Mike

Tango

Golf

November

Uniform

un altro codice
ridondante: il
codice genetico

Rappresentazione
dei numeri

Il caso pi semplice quello dei numeri


naturali

Compreso lo zero

interi senza segno

Vengono rappresentati come numeri binari

Esempio: 10100 =0*20+0*21+1*22+0*23+1*24 =

=4+16= 20

di solito esiste una lunghezza massima ammessa


della codifica di un numero, che determina il
valore massimo che pu essere rappresentato

dipende dalla macchina (e a volte dal linguaggio)

Conversioni fra
sistema binario e
decimale

Il sistema binario pu descrivere tutti i numeri come


quello decimale, anche se in maniera meno concisa

Entrambi sono sistemi posizionali

Non tutti sono cos, p.es. il sistema romano

104

103

102

101

100

3*104 + 0*103 + 5*102 + 5*101 + 2*100 = 30.000 + 500 + 50 +


2

Conversioni fra
sistema binario e
decimale

Sistema posizionale a base p ha p cifre: 0,p-1;


un numero generico Np rappresentato in questa
base da una sequenza cifre an, an-1a0
Np an p an1 p
n

n1

... a0 p ak pk
0

k 0

Abbiamo visto come convertire un numero binario in


decimale

Per effettuare la conversione da decimale a binario


possiamo usare un semplice algoritmo

qui descritto in linguaggio naturale

Dividi il numero per due e registra il


resto; poi dividi il quoziente per due
resto; ripeti queste operazioni finch
non si annulla; a quel punto scrivi le
in successione, partendo dallultima
risultato

valore del
e registra il
il quoziente
cifre dei resti
questo il

Esempio: il numero
165

165:2 = 82

resto 1

82:2 = 41 resto 0

41:2 = 20 resto 1

20:2 =10

resto 0

10:2 = 5

resto 0

5:2 = 2

resto 1

2:2 = 1

resto 0

1:2 = 0

resto 1

16510=101001012

perch funziona?

lo si capisce meglio applicandolo al


familiare sistema decimale

165:10 = 16

resto 5

16:10

resto 6

1:10

mettendo in ordine i resti


(dallultimo al primo) ottengo
proprio 165!

= 1
=

resto 1

Numeri interi

La rappresentazione pi semplice riserva il


primo bit per il segno (0 <-> +, 1 <-> -)

Se sono disponibili m bit potremo


rappresentare gli interi compresi fra (2 m1-1) e +(2m-1-1)

Quindi con un byte potremmo rappresentare i


numeri fra -127 e +127

A destra un esempio con tre bit

Si noti la doppia rappresentazione dello 0

Altre rappresentazioni meno intuitive


consentono di evitare questo spreco

-3
-2
-1
-0
+0
+1
+2
+3

111
110
101
100
000
001
010
011

La memoria di un calcolatore divisa


in byte da 8 bit

E in parole da 16 o 32 bit

Questo spiega perch in informatica


si sia fatto largo uso di sistemi di
numerazione a base 8 e soprattutto 16

Il sistema esadecimale consente di


descrivere con un unico simbolo il
contenuto di una parola da 16 bit

Come fa il sistema a sapere se la


successione di 1 e 0 in una data
posizione rappresenta un carattere
Ascii o un numero intero?

O addirittura, come vedremo, una


istruzione di programma?

Di questo si occupa il controllo, che


studieremo in futuro

Per ora vediamo altre


rappresentazioni

Numeri reali

Possono avere un numero infinito di


cifre decimali

Ma un calcolatore ha una memoria finita

P.es. , e, numero aureo, 2

In generale per ogni numero definita una


dimensione massima della porzione di
memoria che pu essere impiegata

Quindi in un calcolatore un numero reale


approssimato da un numero razionale

Con un numero limitato di cifre decimali

numero aureo

il rapporto fra due numeri, di cui


il maggiore medio proporzionale fra
la loro somma e il minore dei due

chiamato anche sezione aurea o divina


proporzione (Leonardo, Luca Pacioli)

(a b) : a a: b

scoperto dai pitagorici

o prima?

il limite del rapporto fra due


termini successivi della successione
di Fibonacci

a b a ab b2 a2

a2 ab b2 0
a
b
ab
ab
a
a b
b
2 1 0

Fk = Fk-1 + Fk-2

architettura (p.es. rettangolo


aureo), forme naturali

1 5
1, 618...
2

Numeri frazionari

Sono numeri reali compresi fra 0 e 1

approssimati con numeri razionali

Espressione in base p

n1

Np an p an1 p

... a2 p a1 p

a p

kn

Anche in questo caso esistono regole


per passare da base 2 a base 10

Rappresentazione
dei numeri reali

In virgola fissa: si definisce una


volta per tutte quanti bit sono
dedicati alla parte decimale

P.es. 00101001011.10110

Richiede di allocare un numero fisso di


posizioni per la parte decimale

Non sempre necessario

Risente delle consuete limitazioni sui


valori massimi esprimibili per la parte
intera

Fra (2m-1-1) e +(2m-1-1) se vi sono m bit


per la parte intera

Rappresentazione in
virgola mobile

Notazione esponenziale

345,67 = 0,34567*103

Il primo elemento, compreso fra -1 e 1,


detto mantissa

Ed un numero frazionario

Lesponente detto caratteristica

Ed un numero intero

In questo caso si riserva un numero fisso di


cifre alla mantissa e alla caratteristica

Lo stesso pu essere fatto in binario

Per passare alla notazione decimale si


operano le due conversioni
indipendentemente

La rappresentazione in virgola mobile


consente di rappresentare con lo stesso
numero di bit numeri pi grandi

Perch la notazione esponenziale consente di


rappresentare numeri elevati con poche cifre

Sebbene con granularit non uniforme

I numeri sono pi fitti attorno allo 0 e pi


radi alle estremit dellintervallo

I linguaggi di programmazione consentono di


scegliere il tipo di rappresentazione
numerica pi appropriato

vedremo in seguito altre rappresentazioni

Rappresentazione di
segnali sonori (p.es.
musica)
Le onde di pressione sonora fanno

vibrare i nostri timpani

La forza o intensit della pressione


determina il volume

La frequenza (numero di onde al


secondo) il tono

il caso pi
semplice: nota

una nota pura corrisponde a un'onda


sinusoidale

frequenza : numero di cicli al


secondo

un ciclo al secondo <-> un Hertz

lunghezza d'onda : distanza fra due


creste

velocit (di gruppo) V=

infatti se un'onda lunga 10m, e ne


passano 100 al secondo, il sistema
percorre 10*100=1000 m al secondo

stessa frequenza,
diversa intensit

sovrapposizione di
onde

in un segnale complesso possibile


distinguere i singoli componenti
sinusoidali mediante la tecnica
dell'analisi di Fourier

Da analogico a
digitale

Digitalizzare informazioni continue

I valori della pressione andranno


registrati a certi intervalli

e i risultati andranno espressi in


maniera digitale

Quando eseguire le misure?

non possiamo registrare ogni punto


dellonda

Conversioni

Campionamento

Si prendono le misure a intervalli


regolari

Frequenza di campionamento

il numero di misurazioni al secondo

maggiore la frequenza, pi accurata


sar la registrazione

la frequenza di campionamento non


coincide con quella dell'onda sonora

ma occorrono alcune cautele per evitare


disastri!

pressione del suono

Esempio di
campionamento

tempo

Quale frequenza?

Frequenza di campionamento legata a


quella dellonda

una frequenza di campionamento troppo


bassa potrebbe interpretare in maniera
errata i punti campionati (aliasing)

Regola di Nyquist

Frequenza di campionamento

almeno il doppio di quella dellonda da


registrare

luomo pu percepire suoni fino a


20.000Hz, un campionamento di 40.000Hz
sufficiente

la frequenza CD standard 44.100Hz

Quanti bit per


campione?

Quanto devessere accurato un


campione?

i bit devono rappresentare i valori sia


positivi che negativi

pi bit ci sono, pi accurato il


campione

Campione CD

La rappresentazione digitale dei CD


audio utilizza 16 bit

registra 65.536 livelli,

la met per i valori positivi e


altrettanti per quelli negativi

Il campionamento converte il segnale


in una sequenza di numeri, ognuno dei
quali indica il valore del segnale in
una specifica finestra

Una conversione simile viene operata


in numerosi altri casi

Segnali radar e sonar

Serie temporali di dati meteo

Serie temporali finanziarie