Rappresentazione ed elaborazione automatica dell`informazione

annuncio pubblicitario
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione ed
elaborazione automatica
dell’informazione
Prof. Michele Amoretti
Fondamenti di Informatica
a.a. 2008/2009
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Sommario
•
Codifica dell’informazione
•
Rappresentazione dell’informazione nei calcolatori
- informazioni numeriche
- informazioni testuali
- suoni
- immagini
•
Algebra booleana
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Codifica dell’informazione
Un simbolo è un elemento della comunicazione rappresentante un
concetto o quantità (per es. un'idea, un oggetto, una qualità).
Un alfabeto è un insieme finito di simboli (diversi tra loro).
Es.
Alfabeto italiano: {A, B, C, D, …Z}
Alfabeto greco: {α, β, γ, δ, ...ω}
Alfabeto binario: {0, 1}
Una stringa è una sequenza finita di simboli giustapposti.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Codifica dell’informazione
Un codice è un insieme di regole che
mettono in corrispondenza biunivoca ogni
simbolo appartenente ad un alfabeto più
ricco con una stringa di simboli appartenente
ad un alfabeto più ridotto.
Per codifica si intende il processo di
trasformazione dell’informazione
secondo le regole definite da un certo codice.
La decodifica è il processo inverso.
Es. Codice Morse
Definisce la corrispondenza tra un insieme
di stringhe di simboli nell’alfabeto {., _} e
l’insieme dei simboli dell’alfabeto inglese.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione dell’informazione nei calcolatori
I calcolatori elettronici sono macchine complesse in grado di
elaborare velocemente grandi quantità di informazione, ma per
farlo richiedono che l’informazione sia espressa secondo un
qualche codice che utilizzi i simboli dell’alfabeto più semplice di
tutti, quello binario.
Perchè?
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione dell’informazione nei calcolatori
.. perché dal punto di vista della progettazione e realizzazione
circuitale è più conveniente elaborare segnali digitali a 2
livelli, piuttosto che segnali digitali a M>2 livelli o segnali analogici.
La figura confronta un segnale analogico e
un segnale digitale. Nel primo
l’informazione è contenuta nella forma
stessa del segnale, mentre nel secondo è
contenuta nella particolare sequenza di bit
che esso realizza.
Nel seguito vedremo come si esprimono informazioni di vario tipo
in termini di simboli binari, e come si elaborano.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione dell’informazione nei calcolatori
L'unità atomica è il bit – simbolo b.
L'insieme di 8 bit è detto byte – simbolo B.
210 B = 1 KB (kilobyte)
220 B = 1 MB (megabyte)
230 B = 1 GB (gigabyte)
La memoria dei calcolatori è divisa in celle la cui dimensione W è
ormai standard ed è proprio pari a 1 byte.
Multipli del byte sono:
word (16 bit)
double-word (32 bit)
quad-word (64 bit)
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di informazioni numeriche
Il calcolatore, come dice il nome stesso, è una macchina che calcola.
Qualsiasi informazione in ingresso viene ricondotta a informazione di
tipo numerico, su cui il processore (che è il cuore del calcolatore)
svolge operazioni aritmetiche.
Un processore “a N bit” è in grado di elaborare numeri interi compresi
tra 0 e 2N-1 (o tra -2N-1 e 2N-1-1).
Di solito N è un multiplo di 8.
I processori più potenti oggi sono a 64 bit.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Richiamo su numeri e sistemi di numerazione
Numero: descrizione quantitativa degli oggetti contenuti in un
dato insieme.
Sistema di numerazione: insieme di simboli e regole atti a
rappresentare i numeri.
Numerazione posizionale: ogni cifra assume un valore che dipende
dalla posizione (peso) nella stringa numerica.
Es. sistema posizionale decimale
1475 = 1x103 + 4x102 + 7x101 + 5x100
In generale, dato un numero B≥2 detto base e l’insieme β
composto da B simboli diversi, β={0,1,2,…,B-1}, si possono
scrivere stringhe di n cifre (ciascuna in β)
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Conversione di base
Da base B a base 10:
(cn-1cn-2…c1c0)B = (cn-1xBn-1 + cn-2xBn-2 +…+ c1xB1 + c0xB0)10
Da base B=2 (sistema binario) a base 10:
100112 = 1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 1910
Da base B=16 (sistema esadecimale) a base 10:
2216 = 2x161 + 2x160 = 3410
Da base B=8 (sistema ottale) a base 10:
4178 = 4x82 + 1x81 + 7x80 = 27110
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Conversione di base
Da base 10 a base 2:
ripeti
dividere per 2 il numero in base 10
- il resto è ci (i=0,…,n-1)
- il quoziente è il nuovo dividendo
fino a che l’ultimo quoziente ottenuto non è più divisibile.
Es. 3510: (17,1)(8,1)(4,0)(2,0)(1,0)(0,1)  1000112
Da base Bk a base B: reinterpretare la stringa cn-1cn-2…c1c0 in
base Bk, sostituendo a ciascun ci della base Bk la corrispondente
rappresentazione in base B.
Es. 1AB0716 = (0001 1010 1011 0000 0111)2
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Aritmetica binaria
Somma: come nel sistema decimale, da destra verso sinistra,
tenendo conto dei riporti.
0+0=0
0+1=1
1+0=1
1+1=0 con riporto di 1
Sottrazione: come nel sistema decimale, da destra verso sinistra,
tenendo conto dei prestiti.
0-0=0
0-1=1 con prestito di 1
1-0=1
1-1=0
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Aritmetica binaria
Moltiplicazione: come nel sistema decimale, si calcolano i prodotti
parziali e l’esecuzione della loro somma.
0×0=0
0×1=0
1×0=0
1×1=1
Divisione: come nel sistema decimale, si procede per sottrazioni
tra parti del dividendo e del divisore.
0/0 indefinito
0/1=0
1/0 errore
1/1=1
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Numeri binari negativi
Rappresentazione in modulo e segno: il bit più significativo
rappresenta il segno del numero (1 sta per negativo, 0 per
positivo).
Rappresentazione in complemento a 1: il cambiamento di
segno viene ottenuto complementando ciascun bit.
Rappresentazione in complemento a 2: il cambiamento di
segno viene ottenuto complementando a 1 e aggiungendo 1.
In genere si adotta quest’ultima perché non introduce la doppia
rappresentazione dello zero (+0 e -0) e perché consente di
effettuare le sottrazioni come se fossero delle somme.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Numeri binari negativi
Es.
Usando 3 bit e la notazione in
complemento a 2 si possono
rappresentare i seguenti numeri:
(3 – 2)10 è 011 + 110 = 001
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Numeri in virgola fissa
La stringa
cn-1cn-2…c1c0 ,c-1c-2…c-m
è composta da una parte intera (a sinistra della virgola) e da una
parte frazionaria (a destra della virgola).
Conversione della parte frazionaria da base B a base 10:
c-1xB-1 + c-2xB-2 +…+ c-mxB-m
Conversione della parte frazionaria da base 10 a base 2:
ripeti
moltiplicare per 2 il numero in base 10
- la parte intera del risultato è ci (i=-1,…,-m)
- la parte frazionaria del risultato è il nuovo moltiplicando
fino a che la parte frazionaria risulta 0.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Numeri in virgola fissa
Es.
Conversione di 5,7510
Parte intera: 510  1012
Parte frazionaria:
0,75*2 = 1,5  la prima cifra binaria dopo la virgola è 1
0,5*2 = 1,0  la seconda cifra dopo la virgola è 1
Quindi
5,7510  101,112
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Numeri in virgola mobile
Usando la cosiddetta notazione in virgola mobile (floating point) o
scientifica, un numero viene espresso da tre elementi:
B (base)
E (esponente)
M (mantissa)
M×BE
Questo metodo di scrittura permette di rappresentare un
larghissimo insieme numerico all'interno di un determinato
numero di cifre, cosa che la virgola fissa non concede.
Es.
5,7510 si scrive 5,75×100, o meglio ancora .575×101
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Numeri in virgola mobile
Es.
Usando la notazione scientifica normalizzata, in base B=2, è
il numero 5,7510 diventa:
+.10111 × 2+3
Con 16 bit, si potrebbe usare la seguente rappresentazione:
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Numeri in virgola mobile
Forma normalizzata:
•
si sceglie di avere la seguente relazione: 0 ≤ M < 1
•
l’esponente è espresso in complemento a B
•
la mantissa è espressa in modulo e segno
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Standard IEEE-754/85
Singola precisione (n=32 bit):
Il segno è 0 per il + e 1 per il –
La mantissa di 23 bit è in notazione normalizzata implicita,
cioè si intende 0,{i 23 bit della mantissa}
L’esponente di 8 bit è in notazione polarizzata (biased) con
costante di polarizzazione (bias) pari a 127; in dettaglio:
00000000
00000001
…
01111111
…
11111110
11111111
config. riservata
è -126
è0
è +127
config. riservata
Doppia precisione (n=64 bit):
come sopra ma con 52 bit per la mantissa e 11 bit per
l’esponente, con bias pari a 1023.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Limiti della rappresentazione binaria di numeri decimali
Attenzione! Certi numeri che in base 10 hanno una quantità finita di cifre
dopo la virgola, potrebbero averne una quantità infinita se convertiti in
un’altra base, e in particolare nella base 2.
Es. 0,110  0,0001100110011..2
I processori possono gestire operandi di dimensione limitata, per cui
effettuano dei troncamenti quando i numeri decimali hanno
rappresentazione binaria con troppe cifre dopo la virgola.
E’ possibile quindi che poi la riconversione in decimale non dia il
risultato atteso.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di informazioni testuali
Per rappresentare dati testuali in binario, il sistema assegna a
ciascuna lettera o simbolo stampabile un numero univoco, quindi
memorizza internamente tale simbolo usando l’equivalente binario del
numero.
Es.
Simbolo, valore decimale, valore binario
A,
0,
00000000
B,
1,
00000001
C,
2,
00000010
D,
3,
00000011
..
..
..
Z,
26,
00011010
..
..
..
@,
128,
10000000
..
..
..
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Codifica ASCII
American Standard Code for the Interchange of Information
Codifica che usa 8 bit per ciascun simbolo
alfanumerico, ma il bit più significativo è
sempre a 0 perché in origine la codifica era
a 7 bit. Quindi si hanno 128 possibili simboli
(ASCII standard).
Usando anche il bit più significativo si hanno
256 possibili simboli (ASCII esteso).
Alcuni simboli non sono stampabili, ma sono
caratteri di controllo usati soprattutto nei
protocolli di comunicazione.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Codifica UNICODE
Sta guadagnando popolarità perché usa 16 bit per ciascun
carattere, il che significa che può rappresentare 216 = 65536
caratteri univoci contro invece dei soli 28 = 256 dell’ASCII esteso.
Questo è particolarmente
importante in un mondo
che è sempre più
globalizzato, grazie alle
reti informatiche e in
particolare al Web.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di suoni
Il suono è una informazione di tipo analogico.
Una singola nota è una forma d’onda sinusoidale con una certa
ampiezza (che rende conto dell’intensità con cui viene suonata a nota)
e un certo periodo (il cui inverso, la frequenza, caratterizza la nota in
modo univoco – do piuttosto che fa, ecc. e con quale “altezza”).
Un suono complesso è dato dalla sovrapposizione di molteplici forme
d’onda.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di suoni
Il microfono traduce il suono in un segnale analogico che per essere
memorizzato (e quindi elaborato) da un calcolatore elettronico deve
essere digitalizzato.
Vengono presi dei campioni del segnale analogico, a intervalli
regolari. La sequenza dei valori numerici campionati viene
memorizzata nel calcolatore come sequenza di stringhe binarie.
Viceversa, a partire da valori numerici è possibile generare un segnale
analogico.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di immagini
Un’immagine è una serie continua di valori di intensità e colore, e può
essere digitalizzata campionando le informazioni analogiche,
esattamente come accade per il suono.
Il processo di campionamento, definito spesso scansione, consiste
nella misurazione dei valori di intensità di punti distinti situati a
intervalli regolari su tutta la superficie dell’immagine. Questi punti
sono chiamati pixel, dall’inglese “picture elements”; maggiore è il
numero di pixel utilizzati, più precisa risulta la codifica dell’immagine.
Mediamente l’occhio umano non è in grado di distinguere con
precisione i componenti separati da meno di 0,1 mm, perciò se i pixel
sono sufficientemente densi, appaiono alla vista come una singola
immagine contigua.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di immagini
Una fotocamera digitale di buona qualità, per esempio, memorizza
circa 6–8 milioni di pixel per fotografia.
Per un’immagine da 8 × 12 cm, ciò equivale a circa 60.000 pixel/cm2
o 250 pixel per cm lineare. Ciò significa che i singoli pixel sono
separati da circa 0,04 mm, troppo poco
perché l’occhio umano possa distinguerli
uno per uno.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di immagini
Una delle domande chiave a cui occorre rispondere è quante
informazioni vengono memorizzate per ciascun pixel.
Supponiamo di voler memorizzare la rappresentazione di un’immagine
in bianco e nero. La soluzione più facile ed efficiente in termini di
spazio è quella di contrassegnare ciascun pixel come bianco,
memorizzato come binario 0, o nero, memorizzato come binario 1.
Il solo problema è che in questo modo si produce un’immagine in
bianco e nero, molto netta e con contrasto visivo non sempre
gradevole. Un modo migliore, anche se richiede più spazio, consiste
nel rappresentare le immagini in bianco e nero utilizzando una
scala di grigi di intensità variabile. Per esempio, se si utilizzano
3 bit per pixel, è possibile rappresentare 23 = 8 gradazioni di intensità
dal livello 0, bianco puro, al livello 7, nero puro.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Rappresentazione binaria di immagini
Il formato più comune per la memorizzazione delle immagini a
colori è lo schema di codifica RGB, dove RGB è l’acronimo in lingua
inglese dei colori rosso, verde e blu (Red, Green, Blue).
Questa tecnica descrive uno specifico colore catturando il singolo
contributo di un pixel per ciascuno dei tre colori fondamentali: rosso,
verde e blu. Comunemente, si utilizza un byte per ciascuno dei 3
colori, il che consente di rappresentare intervalli di intensità da 0
a 255.
Es. Magenta
RGB: (255,0,255)
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Spazio di memorizzazione richiesto
Un romanzo di 300 pagine contiene circa 100000 parole. Ciascuna
parola è costituita in media da cinque caratteri e ogni carattere può
essere codificato nel set di codici ASCII usando 8 bit.
Così, il numero totale di bit necessario a rappresentare questo libro è
all’incirca:
100000 parole × 5 car/parola × 8 bit/car = 4 Mbit
A titolo di confronto, 1 minuto di registrazione audio codificata in
standard MP3, che esegue il campionamento 44100 volte al secondo
con profondità di 16 bit per campione, richiede:
44100 campioni/sec × 16 bit/campione × 60 sec/minuto = 42 Mbit
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
L’elaborazione dell’informazione affonda le sue radici nella logica,
che è la scienza delle regole e delle leggi del pensare.
0/1  falso/vero
La logica è alla base di ogni argomentazione. I greci riconobbero per
primi il suo ruolo nella matematica e nella filosofia e si dedicarono al
suo studio con grande impegno e con notevoli risultati.
Risalgono infatti a filosofo greco Aristotele (384, 322 a.C.) i primi studi
seri in questo campo. Nelle sue opere, raccolte sotto il titolo Organon,
scrisse il primo trattato sistematico di logica. La sua opera ebbe una
notevole influenza, non sempre positiva, in tutti i campi del sapere per
parecchi anni fino a tutto il Medioevo.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
Ma essendo la logica di Aristotele espressa nel linguaggio
naturale, ne conservava tutte le ambiguità.
Solo nel 17esimo secolo, con Leibniz, i filosofi iniziarono ad
esprimere le regole del ragionamento per mezzo di un formalismo
simbolico.
Fu nel 1847 con la pubblicazione dei testi “Analisi matematica
della logica” di George Boole e “Logica Formale” di Augustus De
Morgan che si cominciò a parlare di logica simbolica e che la logica
cominciò a far parte integrante della matematica.
Con Boole e DeMorgan, la logica e la matematica divennero
strettamente intrecciate. La logica è da allora considerata parte
della matematica, ma alla stesso tempo ne costituisce il
linguaggio.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
L’algebra booleana definisce le regole di manipolazione
dei due valori logici vero e falso.
L’algebra booleana è utilizzata in molti campi del sapere,
ad esempio nella progettazione dei circuiti logici
(che sono alla base dei calcolatori), nella teoria degli
insiemi, nel calcolo proposizionale, ecc.
Le regole dell’algebra Booleana vengono utilizzate
nella scrittura di algoritmi e programmi, perché questi sono
modelli formali di procedure mentali o manuali umane
che si vuole vengano riprodotte da una macchina.
G. Boole - Mathematical Analysis of Logic (1847)
La logica va collegata alla matematica e non alla metafisica. Si costruisce un sistema
formale e solo successivamente si assegna ad esso una interpretazione nel linguaggio
comune.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
L’algebra booleana consiste di:
- un insieme K i cui elementi possono assumere solo i valori 0 e 1
- due funzioni {+, } che fanno corrispondere a una qualsiasi coppia
di elementi in K un elemento in K
- una funzione {¯}
tali per cui valgono i seguenti assiomi:
1. K contiene al minimo due elementi a e b, tali che a  b
2. Chiusura: Per ogni a e b in K: a+b  K, a• b  K
3. Proprietà commutativa: a+b = b+a, a • b = b • a
4. Proprietà associativa: (a + b) + c = a + (b+c) = a+ b+c
a • (b • c) = (a • b) • c = a • b • c
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
5. Identità:
Esiste un elemento identità rispetto a {+}, tale che a + 0 = a,
per ogni a  K
Esiste un elemento identità rispetto a {• }, tale che a • 1 = a,
per ogni a  K
6. Proprietà distributiva:
a + (b • c) = (a + b) • (a + c)
a • (b + c) = (a • b) + (a • c)
7. Elemento inverso: per ogni a  K esiste un elemento
a  K tale che (a + a) = 1 e (a • a) = 0
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
8. Dualità: scambiando somme con prodotti e 0 con 1 il valore di
verità di un proposizione non cambia
Teoremi:
1. Idempotenza:
a+a=a
a•a=a
2. Elementi forzanti:
a+1=1
a•0=0
3. Assorbimento:
a + (a • b) = a
(a+b) • a = a
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
4. Teorema di De Morgan:
a1+a2+ .. +an = a1 · a2 · .. · an
Dimostrazione per induzione:
I) a1+a2 = a1 · a2 si dimostra per induzione perfetta
II) se vale a1+a2+ .. +ak = a1 · a2 · .. · ak per k=n
allora vale anche per k=n+1
perché
(a1+a2+ .. +an)+an+1 = a1+a2+ .. +an · an+1
= a1 · a2 · .. · an · an+1
Versione duale: a1 · a2 · .. · an = a1 + a2 + .. + an
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
Una funzione logica z  f ( x1 , x2 ,..., xn ) è una legge che fa
corrispondere a ogni combinazione di valori delle variabili
indipendenti x1 , x2 ,..., xn uno e un solo valore binario della
variabile z. Può essere espressa in forma algebrica o tabellare.
A
f(A)=A
1
0
0
1
NOT
inversione
A
B
0
0
1
1
0
1
0
1
f(A,B)=A+B
0
1
1
1
OR
somma logica
A
B
0
0
1
1
0
1
0
1
f(A,B)=A• B
0
0
0
1
AND
prodotto logico
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
Altre funzioni ed operatori elementari sono:
A
B
0
0
1
1
0
1
0
1
EX-OR
(XOR)
f(A,B)=AB
0
1
1
0
A
B
0
0
1
1
0
1
0
1
f(A,B)=A•B
A
B
0
0
1
1
0
1
0
1
1
1
1
0
f(A,B)=A+B
1
0
0
0
NOR
NAND
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
Oltre alle funzioni OR e AND, esistono altre funzioni logiche a due
variabili (in tutto sono 16).
X
Y
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10 F11 F12 F13 F14 F15
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
AND
X
somma
OR
aritmetica
o EX-OR
NOR
Rappresentazione ed elaborazione automatica dell’informazione
NAND
Prof. M. Amoretti
UNIVERSITA’ DEGLI STUDI DI PARMA
Corso di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Algebra booleana
Una qualunque funzione logica può essere realizzata utilizzando un
numero limitato di funzioni elementari (insieme completo).
Sono insiemi completi:
NAND, NOR, (AND,NOT), (OR,NOT)
Questa proprietà garantisce che l’uso di un limitato numero di
funzioni consente di rappresentare una qualunque funzione logica.
Rappresentazione ed elaborazione automatica dell’informazione
Prof. M. Amoretti
Scarica