Algebra di Boole ed elementi di logica

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Algebra di Boole
ed elementi di logica
Marco D. Santambrogio – [email protected]
Ver. aggiornata al 22 Marzo 2012 Obiettivi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Algebra di Boole
§  Algebra di boole a due valori: algebra
di commutazione
§  Operazioni logiche
§  Espressioni logiche
§  Assiomi e proprietà dell’algebra di
commutazione
2
Cenni all’algebra di Boole
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  L’algebra di Boole (inventata da G. Boole,
britannico, seconda metà ’800), o algebra
della logica, si basa su operazioni logiche
•  Le operazioni logiche sono applicabili a
operandi logici, cioè a operandi in grado
di assumere solo i valori vero e falso
•  Si può rappresentare vero con il bit 1 e
falso con il bit 0 (convenzione di logica
positiva)
3
Algebra Booleana: definizione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Algebra Booleana B è un sistema algebrico
identificato dalla sestupla (B,+,*,’,0,1) dove:
§  B è l'insieme su cui vengono definite le operazioni
(supporto)
§  +,*,’ sono le operazioni binarie OR e AND e
l’operazione unaria NOT
§  0,1 sono elementi speciali di B.
•  0 è l’elemento neutro rispetto a +
•  1 è l’elemento neutro rispetto a *
§  Assiomi - 4 -
Algebra Booleana a due valori:
Algebra di Commutazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
“Tra tutte le algebre booleane, l'algebra booleana a due
valori........è la più utile. Essa è la base matematica
della analisi e progetto di circuiti di commutazione
che realizzano i sistemi digitali.”
[Lee, S.C., Digital Circuit And Logic Design. Englewood Cliffs, NJ:
Prentice-Hall, 1976]
- 5 -
Operazioni logiche fondamentali
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Operatori logici binari (con 2 operandi
logici)
§  Operatore OR, o somma logica
§  Operatore AND, o prodotto logico
•  Operatore logico unario (con 1 operando)
§  Operatore NOT, o negazione, o inversione
•  Poiché gli operandi logici ammettono due
soli valori, si può definire compiutamente
ogni operatore logico tramite una tabella di
associazione operandi-risultato
6
Operazioni logiche fondamentali
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Le variabili dell’algebra booleana a due valori possono assumere
solo i due valori 0 e 1
§  precisamente, se x indica una variabile, è
•  x = 0 se e solo se x ≠ 1
•  x = 1 se e solo se x ≠ 0
•  Algebra Booleana a due valori: ({0,1},+,*,’,0,1) dove + (OR) e
* (AND) sono definiti come + 0 1
0 0 1
1 1 1
* 0 1
0 0 0
1 0 1
•  Mentre l’operazione a un solo elemento (unary operation) detta
complementazione o negazione (NOT) è definita come
‘
0 1
1 0
§  Nota: il simbolo associato al NOT è spesso indicato come ’(esempio
x’), !(esempio !x) o sopra segnando la variabile.
Operatori logici di base e loro tabelle di verità
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
A B
A or B
0 0
0
0 1
1
1 0
1
1  1
1
(somma logica)
A B
A and B
0 0
0
0 1
0
1 0
0
1  1
1
(prodotto logico)
A
not A
0
1
1
0
(negazione)
Le tabelle elencano tutte le possibili combinazioni in ingresso
e il risultato associato a ciascuna combinazione
8
Espressioni logiche (o Booleane)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Come le espressioni algebriche, costruite con:
§  Variabili logiche (letterali): p. es. A, B, C = 0 oppure 1
§  Operatori logici: and, or, not
•  Esempi:
A or (B and C)
(A and (not B)) or (B and C)
•  Precedenza: l’operatore “not” precede l’operatore
“and”, che a sua volta precede l’operatore “or”
A and not B or B and C = (A and (not B)) or (B and C)
•  Per ricordarlo, si pensi OR come “+” (più), AND
come “×” (per) e NOT come “-” (cambia segno)
9
Tabella di verità di un’espressione logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
A and B or not C
ABC
X = A and B
Y = not C
X or Y
000
0 and 0 = 0
not 0 = 1
0
or
1
=1
001
0 and 0 = 0
not 1 = 0
0
or
0
=0
010
0 and 1 = 0
not 0 = 1
0
or
1
=1
011
0 and 1 = 0
not 1 = 0
0
or
0
=0
100
1 and 0 = 0
not 0 = 1
0
or
1
=1
101
1 and 0 = 0
not 1 = 0
0
or
0
=0
110
1 and 1 = 1
not 0 = 1
1
or
1
=1
111
1 and 1 = 1
not 1 = 0
1
or
0
=1
Due esercizi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
A
0
0
1
1
B
0
1
0
1
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
NOT ((A OR B) AND (NOT A))
1
0 0 0 0
1 0
0
0 1 1 1
1 0
1
1 1 0 0
0 1
1
1 1 1 0
0 1
C
0
1
0
1
0
1
0
1
(B
0
0
1
1
0
0
1
1
OR NOT C) AND (A OR NOT C)
1 1 0
1
0 1 1 0
0 0 1
0
0 0 0 1
1 1 0
1
0 1 1 0
1 0 1
0
0 0 0 1
1 1 0
1
1 1 1 0
0 0 1
0
1 1 0 1
1 1 0
1
1 1 1 0
1 0 1
1
1 1 0 1
11
Problema: errori sull’input
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Problema
§  Preso un dato inserito da tastiera
§  Per potervi applicare la trasformazione di
nostro interesse
§  Dobbiamo prima verificare che il dato sia
coerente con quanto ci aspettiamo
•  Soluzione
§  Definire l’insieme dei caratteri validi
§  Verificare l’appartenenza del carattere
inserito, all’insieme dei caratterei validi
12
Pseudocodice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Dati
§  L’insieme dei caratteri ammissibili
{a, b, c, …, z}
1.  Richiedere l’inserimento di un
carattere
2.  Se carattere inserito corretto
3.  Allora stampa a video carattere-32
4.  Altrimenti stampa a video un
messaggio di errore
13
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Dati
§  L’insieme dei caratteri ammissibili
{a, b, c, …, z}
•  Il carattere inserito deve essere
§  =>a
§  <= z
14
Maiuscolo: solo if
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
15
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il carattere inserito deve essere
§  X: =>a
§  Y: <= z
•  X e Y devono essere entrambe vere
X Y
X and Y
0 0
0
0 1
0
1 0
0
1  1
1
(prodotto logico)
16
Maiuscolo: espressione logica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
17
Maiuscolo: codice ottimizzato
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
18
A che cosa servono le espressioni logiche?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  A modellare alcune (non tutte) forme di ragionamento
§  A = è vero che 1 è maggiore di 2 ? (sì o no, qui è no) = 0
§  B = è vero che 2 più 2 fa 4 ? (sì o no, qui è sì) = 1
§  A and B = è vero che 1 sia maggiore di 2 e che 2 più 2 faccia 4 ?
Si ha che A and B = 0 and 1 = 0, dunque no
§  A or B = è vero che 1 sia maggiore di 2 o che 2 più 2 faccia 4 ?
Si ha che A or B = 0 and 1 = 1, dunque sì
•  OR, AND e NOT vengono anche chiamati connettivi
logici, perché funzionano come le congiunzioni
coordinanti “o” ed “e”, e come la negazione “non”, del
linguaggio naturale
•  Si modellano ragionamenti (o deduzioni) basati solo
sull’uso di “o”, “e” e “non” (non è molto, ma è utile)
19
Che cosa non si può modellare tramite
espressioni logiche?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Le espressioni logiche (booleane) non modellano:
§  Domande esistenziali: “c’è almeno un numero reale x tale
che il suo quadrato valga -1 ?” (si sa bene che non c’è)
∃x | x2 = -1
è falso
§  Domande universali: “ogni numero naturale è la somma
di quattro quadrati di numeri naturali ?” (si è dimostrato
di sì)
∀x | x = a2+b2+c2+d2 è vero (“teorema dei 4
quadrati”)
Più esattamente andrebbe scritto: ∀x ∃a,b,c,d | x = a2+b2+c2+d2
•  ∃ e ∀ sono chiamati “operatori di quantificazione”, e
sono ben diversi da or, and e not
•  La parte della logica che tratta solo degli operatori
or, and e not si chiama calcolo proposizionale
•  Aggiungendo gli operatori di quantificazione, si ha il
calcolo dei predicati (che è molto più complesso)
20
Tautologie e Contraddizioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Tautologia
§  Una espressione logica che è sempre vera, per
qualunque combinazione di valori delle variabili
•  Esempio: principio del “terzo escluso”: A or not A
(tertium non datur, non si dà un terzo caso tra
l’evento A e la sua negazione)
•  Contraddizione
§  Una espressione logica che è sempre falsa, per
qualunque combinazione di valori delle variabili
•  Esempio: principio di “non contraddizione”: A and not
A (l’evento A e la sua negazione non possono essere
entrambi veri)
21
Equivalenza tra espressioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Due espressioni logiche si dicono equivalenti (e
si indica con ⇔) se hanno la medesima tabella
di verità. La verifica è algoritmica. Per esempio:
AB
not A and not B ⇔ not (A or B)
00
1 and 1 = 1
not 0 = 1
01
1 and 0 = 0
not 1 = 0
10
0 and 1 = 0
not 1 = 0
11
0 and 0 = 0
not 1 = 0
•  Espressioni logiche equivalenti modellano gli stessi
stati di verità a fronte delle medesime variabili
22
Proprietà dell’algebra di Boole
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  L’algebra di Boole gode di svariate proprietà,
formulabili sotto specie di identità
§  cioè formulabili come equivalenze tra espressioni
logiche, valide per qualunque combinazione di
valori delle variabili
23
Algebra Booleana a due valori: Assiomi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Vale per la somma rispetto al prodotto come per il prodotto rispetto alla
somma – non esiste precedenza fra le due operazioni, occorre sempre
immaginare le parentesi “sottintese” intorno a ogni applicazione di
un’operazione.
• 
Gli operatori descritti godono delle proprietà definite
dai seguenti assiomi (postulati di Huntington):
§  Le operazioni di disgiunzione (+) e congiunzione (·)
sono commutative, cioè per ogni elemento a,b ∈ B
a+b = b+a
a·b = b·a
§  Esiste un elemento neutro (o identità) rispetto a +
(indicato con 0) e un elemento neutro rispetto a ·
(indicato con 1), cioè:
a+0=a
a·1=a
§  Le due operazioni sono distributive rispetto all’altra,
cioè per ogni a,b,c ∈ B, risulta:
a+(b·c)=(a+b)·(a+c)
a·(b+c)=(a·b)+(a·c)
§  Per ogni a ∈ B esiste l’elemento a’∈ B, detto negazione
logica o complemento di a, tale che:
a+a’=1
a·a’=0
Algebra di Commutazione: Proprietà 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
1: associativa
a+(b+c)=(a+b)+c
a*(b*c)=(a*b)*c
2: idempotenza
a+a=a
a*a=a
a+1=1
a*0=0
3: elemento nullo
4: unicità elemento inverso: il complemento di a,
a’,
è unico
5: assorbimento
a+(a*b)=a
a*(a+b)=a
Algebra di Commutazione: Proprietà 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6: Semplificazione
a+a’b = a+b
7: involuzione ((a)’)’ =
a*(a’+b) = a*b
a
8: Leggi di De Morgan
(a+b)’ = a’*b’
(a*b)’ = a’+b’
9: consenso
a*b+a’*c+b*c = a*b + a’*c
(a+b)*(a’+c)*(b+c)=(a+b)*(a’+c)
- 26 -
Uso delle proprietà
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Trasformare un’espressione logica in un’altra,
differente per aspetto ma equivalente:
not A and B or A =
= 
= 
= 
= 
= 
= 
(assorbimento)
not A and B or (A or A and B) =(togli le parentesi)
not A and B or A or A and B = (commutativa)
not A and B or A and B or A = (distributiva)
(not A or A) and B or A =
(legge dell’elemento 1)
true and B or A =
(vero and B à B)
B or Aè più semplice dell’espressione originale
•  Si può verificare l’equivalenza con le tabelle di verità
•  Occorre conoscere un’ampia lista di proprietà e si
deve riuscire a “vederle” nell’espressione (talvolta è
difficile)
27
Problemi di fine giornata…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Riscrivere tutti i codici visti fino ad
oggi utilizzando, invece di catene di
if, delle espressioni logiche
28
Fonti per lo studio + Credits
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Fonti per lo studio
§  Introduzione ai sistemi informatici, D.
Sciuto, G. Buonanno, L. Mari, 4a Ed,
McGrawHill
•  Capitolo 2
•  Credits
§  Daniele Braga
•  http://home.dei.polimi.it/braga/
§  Cristiana Bolchini
•  http://home.dei.polimi.it/bolchini/didattica/
retilogichea/index.htm