Sei sulla pagina 1di 55

Algebra di

Boole

Elementi di Informatica - Algebra di Boole 1  A. Valenzano 1996-2002


Sommario

• Variabili e funzioni booleane


• Tabelle di verità
• Operatori booleani
• Espressioni booleane
• Teoremi fondamentali dell’algebra di
Boole
• Semplificazione delle espressioni logi-
che

Elementi di Informatica - Algebra di Boole 2  A. Valenzano 1996-2002


Variabili booleane
• Secondo Boole, il ragionamento è basato sulle
asserzioni, le quali assumono il valore Vero o Falso.
Esempio: oggi_piove. Introdusse così le variabili
logiche, che assumono due valori, T o F.
• Con le variabili logiche si possono modellare tutti i
fenomeni che assumono due valori, ad esempio i
circuiti di commutazione (ON e OFF), le cifre del
sistema binario (1 e 0), ecc.
• Useremo le variabili x1, x2, … , xn, che assumono valori
T o F, chiamandole variabili logiche o booleane.

Elementi di Informatica - Algebra di Boole 3  A. Valenzano 1996-2002


Funzioni booleane
• Una funzione logica F(x1, x2,…,xn) associa ad
ogni n-pla xi un valore logico T o F.

• Ogni funzione può essere specificata per mez-


zo di una tabella di verità, che assegna ad ogni
combinazione di valori x1, x2,…,xn il valore
assunto dalla funzione F.

Elementi di Informatica - Algebra di Boole 4  A. Valenzano 1996-2002


Tabelle di verità
Per ogni combinazione delle variabili indipen-
denti si riporta il valore di F.
Esempio: F(x,y,z)
x y z F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
Elementi di Informatica - Algebra di Boole 5  A. Valenzano 1996-2002
Numero di funzioni booleane

• Con n variabili si possono avere 2n combina-


zioni. Poiché una funzione può assumere solo
2 valori il numero di possibili funzioni diverse è
dato da:

2n
m=2

Elementi di Informatica - Algebra di Boole 6  A. Valenzano 1996-2002


Numero di funzioni booleane (2)

• Infatti:
x1 x2 … xn F0 F1 F2 Fm-1
0 0 0 0 1 0 1
1 0 0 0 0 1 1
0 1 0 0 0 0 1
……………………………….
1 1 1 0 0 0 1

Elementi di Informatica - Algebra di Boole 7  A. Valenzano 1996-2002


Tipi di funzioni booleane

• Completamente specificate: viene indicato il


valore di F per ogni combinazione delle varia-
bili indipendenti.
• Non completamente specificate: il valore di F
non è definito per una o più combinazioni
delle variabili indipendenti.

Nota: il valore di F per le combinazioni non spe-


cificate è detto "don't care" ed è indicato con "-"
sulla tabella di verità.
Elementi di Informatica - Algebra di Boole 8  A. Valenzano 1996-2002
Funzioni completamente
specificate
• Esempio: In una stazione, il treno parte se e solo se il
semaforo è verde e il capostazione ha dato il via.

Variabili logiche:
S: vale 1 (= vero) se il semaforo è verde
C: vale 1 (= vero) se il capostazione ha dato il via
Funzione:
T: vale 1 (= vero) se il treno parte

Elementi di Informatica - Algebra di Boole 9  A. Valenzano 1996-2002


Funzioni completamente
specificate (2)
Tavola di verità (completamente
specificata):

S C T
0 0 0
0 1 0
1 0 0
1 1 1

Elementi di Informatica - Algebra di Boole 10  A. Valenzano 1996-2002


Funzioni completamente
specificate (3)
• Altro esempio: Un allievo del Politecnico si
laurea se ha superato tutti gli esami e se ha
svolto una tesi di laurea oppure una prova di
sintesi.
Variabili:
E: vale 1 se l’allievo ha superato tutti gli
esami
T: vale 1 se ha svolto la tesi
S: vale 1 se ha svolto la sintesi
Funzione:
L: vale 1 se si laurea

Elementi di Informatica - Algebra di Boole 11  A. Valenzano 1996-2002


Funzioni completamente
specificate (4)
Tavola di verità:
E T S L
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Elementi di Informatica - Algebra di Boole 12  A. Valenzano 1996-2002


Funzioni non completamente
specificate
Si osservi che, nella realtà del Poli,
• non si può dare la tesi o la sintesi senza aver
prima superato tutti gli esami (combinazioni 2
e 4)
• non viene assegnata la sintesi, se l’allievo
svolge la tesi (combinazioni 3 e 8)
Per queste combinazioni si può non
assegnare un valore alla funzione (funzione
non completamente specificata). Per le
combinazioni che non accadono mai, si usa il
valore don’t care.

Elementi di Informatica - Algebra di Boole 13  A. Valenzano 1996-2002


Funzioni non completamente
specificate (2)
Tavola di verità:
E T S L
0 0 0 0
0 0 1 -
0 1 0 -
0 1 1 -
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 -

Elementi di Informatica - Algebra di Boole 14  A. Valenzano 1996-2002


Operatori booleani
• Rappresentano le operazioni basilari dell'al-
gebra di Boole.
• Le loro funzioni possono essere realizzate
tramite circuiti elettronici elementari talora
detti porte o porte logiche.
• Possono essere definiti tramite tabelle di
verità.
• Tutte le funzioni più complesse sono otte-
nute tramite opportune combinazioni di tali
operatori.

Elementi di Informatica - Algebra di Boole 15  A. Valenzano 1996-2002


Operatore AND
E' anche detto "prodotto logico":
Simbolo logico

Tavola della verità


x
y
x y x AND y
0 0 0 Notazioni
0 1 0 xy
1 0 0
xy
1 1 1
xy
x AND y
Elementi di Informatica - Algebra di Boole 16  A. Valenzano 1996-2002
Operatore OR
E' anche detto "somma logica":
Simbolo logico
Tavola della verità
x
x y x OR y y
0 0 0
0 1 1 Notazioni:
1 0 1 xy
1 1 1
xy
x OR y

Elementi di Informatica - Algebra di Boole 17  A. Valenzano 1996-2002


Operatore NOT
E' anche detto "negazione":
Simbolo logico
Tavola della verità
x
x NOT x
0 1
1 0 Notazioni:
x
~x
NOT x

Elementi di Informatica - Algebra di Boole 18  A. Valenzano 1996-2002


Operatore NAND

Tavola della verità Simbolo logico


x
x y x NAND y
y
0 0 1
0 1 1
Notazioni
1 0 1
xy
1 1 0
~ (x  y)
xy
x NAND y
Elementi di Informatica - Algebra di Boole 19  A. Valenzano 1996-2002
Operatore NOR

Tavola della verità Simbolo logico


x
x y x NOR y
y
0 0 1
0 1 0
Notazioni:
1 0 0
1 1 0 xy
~ (x  y)
x NOR y

Elementi di Informatica - Algebra di Boole 20  A. Valenzano 1996-2002


Operatore EX-OR
E' anche detto "or esclusivo":
Simbolo logico
Tavola della verità
x
x y x EX-OR y y
0 0 0
0 1 1 Notazioni:
1 0 1 xy
1 1 0
xy
x EXOR y

Elementi di Informatica - Algebra di Boole 21  A. Valenzano 1996-2002


Espressioni logiche

• Sono espressioni che combinano variabili


booleane tramite gli operatori logici
• Espressioni equivalenti: E1 ed E2 sono equi-
valenti se
• per tutte le combinazioni delle variabili in-
dipendenti per cui E1 = 1 anche E2 = 1 e
• per tutte le combinazioni delle variabili in-
dipendenti per cui E1 = 0 anche E2 = 0

Elementi di Informatica - Algebra di Boole 22  A. Valenzano 1996-2002


Espressioni equivalenti
Esempio di equazioni equivalenti:
Impossibile v isualizzare l'immagine.

Ta  xz  x yz
Tb  xz  yz
Ta  Tb

Elementi di Informatica - Algebra di Boole 23  A. Valenzano 1996-2002


Espressioni equivalenti (2)

_
x y z xz xyz yz Ta Tb
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
0 1 1 0 1 1 1 1
1 0 0 0 0 0 0 0
1 0 1 1 0 0 1 1
1 1 0 0 0 0 0 0
1 1 1 1 0 1 1 1

Elementi di Informatica - Algebra di Boole 24  A. Valenzano 1996-2002


Espressioni complementari

E1 ed E2 sono complementari se:


• per tutte le combinazioni delle variabili in-
dipendenti per cui E1 = 1 risulta E2 = 0 e
• per tutte le combinazioni delle variabili in-
dipendenti per cui E1 = 0 risulta E2 = 1

Nota: se due espressioni sono complementari


E1 = E2

Elementi di Informatica - Algebra di Boole 25  A. Valenzano 1996-2002


Espressioni complementari (2)

Esempio di funzioni complementari:

Ta  x y  x y
Tb  x y  xy
Ta  Tb

Elementi di Informatica - Algebra di Boole 26  A. Valenzano 1996-2002


Espressioni complementari (3)

_ _ __
x y xy xy xy xy Ta Tb
0 0 0 0 1 0 0 1
0 1 0 1 0 0 1 0
1 0 1 0 0 0 1 0
1 1 0 0 0 1 0 1

Elementi di Informatica - Algebra di Boole 27  A. Valenzano 1996-2002


Espressioni duali

• E2 è duale di E1 se può essere ottenuta da E1:


• sostituendo l'operatore OR con l'operatore
AND e viceversa (tenendo conto delle pre-
cedenze degli operatori in E1 !!);
• sostituendo il valore 0 con il valore 1 e vi-
ceversa.
Regola di complementazione: l'espressione com-
plementare di E1 può essere ottenuta dalla sua dua-
le E2 complementando tutte le variabili in E2.

Elementi di Informatica - Algebra di Boole 28  A. Valenzano 1996-2002


Esempi di espressioni booleane

F(a,b,c) = a  (b + c) Fd = a + (b c) F = a + (b c)


a b c F Fd F
0 0 0 0 0 1
0 0 1 0 0 1
0 1 0 0 0 1
0 1 1 0 1 1
1 0 0 0 1 1
1 0 1 1 1 0
1 1 0 1 1 0
1 1 1 1 1 0
Elementi di Informatica - Algebra di Boole 29  A. Valenzano 1996-2002
Teoremi dell’algebra booelana

• Possono essere dimostrati per induzio-


ne completa (verifica della validità per
ogni combinazione delle variabili indi-
pendenti).
• Dato un teorema esiste il teorema
duale.
• Se è dimostrata la validità di un teore-
ma è dimostrata anche la validità del
teorema duale.

Elementi di Informatica - Algebra di Boole 30  A. Valenzano 1996-2002


Principali teoremi
a) X  0  0
Duale : X  1  1
b) X 1  X
Duale : X  0  X
c) X  X  X
Duale : X  X  X
d)X  X  0
Duale : X  X  1
Elementi di Informatica - Algebra di Boole 31  A. Valenzano 1996-2002
Principali teoremi (2)
e) X  Y  Y  X _ propr. _ commutativa
Duale : X  Y  Y  X
f ) X  Y  Z  ( X  Y )  Z  X  (Y  Z ) _ propr. _ assoc.
Duale : X  Y  Z  ( X  Y )  Z  X  (Y  Z )
g ) X  Y  ...  Z  X  Y  ...  Z _ teorema _ DeMorgan
Duale : X  Y  ...  Z  X  Y  ...  Z
h) X  Y  X  Z  X  (Y  Z ) _ propr. _ distributiva
Duale : ( X  Y )  ( X  Z )  X  Y  Z

Elementi di Informatica - Algebra di Boole 32  A. Valenzano 1996-2002


Principali teoremi (3)
i ) X  X  Y  X _ teorema _ dell ' inclusione
Duale : X  ( X  Y )  X
j ) X  Y  X  Y  X _ teor. fusione _ diretta
Duale : ( X  Y )  ( X  Y )  X
k ) X  X Y  X  Y
Duale : X  ( X  Y )  X  Y
l )Z  X  Z  X  Y  Z  X  Z  Y
Duale : ( Z  X )  ( Z  X  Y )  ( Z  X )  ( Z  Y )
Elementi di Informatica - Algebra di Boole 33  A. Valenzano 1996-2002
Principali teoremi (4)

m) X  Y  X  Z  Y  Z  X  Y  X  Z
Duale : ( X  Y )  ( X  Z )  (Y  Z )  ( X  Y )  ( X  Z )
n) X  Y  X  Z  ( X  Z )  ( X  Y )
Duale : ( X  Y )  ( X  Z )  X  Z  X  Y
o) X  f ( X , X , Y ,..., Z )  X  f (1,0, Y ,..., Z )
Duale : X  f ( X , X , Y ,..., Z )  X  f (0,1, Y ,..., Z )

Elementi di Informatica - Algebra di Boole 34  A. Valenzano 1996-2002


Principali teoremi (5)

p) f ( X , X , Y ,..., Z )  X  f (1,0, Y ,..., Z )  X  f (0,1, Y ,..., Z )


Duale : f ( X , X , Y ,..., Z )  ( X  f (0,1, Y ,..., Z )  ( X  f (1,0, Y ,..., Z )
q ) f ( X , Y ,..., Z ,,)  f ( X , Y ,..., Z ,,) _ deMorgan _ generalizzato

Elementi di Informatica - Algebra di Boole 35  A. Valenzano 1996-2002


Espressione che rappresenta
una funzione
Problema: una luce L deve essere
accesa / spenta da due interruttori
separati A e B. Tavola di verità della
funzione L:
A B L
0 0 0
0 1 1
1 0 1
1 1 0

Elementi di Informatica - Algebra di Boole 36  A. Valenzano 1996-2002


Espressione che rappresenta
una funzione (2)
Si consideri l’espressione T data come:
_ _
T = AB+AB
La tavola di verità è:

_ _
A B AB AB T
0 0 0 0 0
0 1 1 0 1
1 0 0 1 1
1 1 0 0 0

Elementi di Informatica - Algebra di Boole 37  A. Valenzano 1996-2002


Espressione che rappresenta
una funzione (3)
L e T si comportano allo stesso modo riga per riga: si
dice che T “rappresenta” L.

Regola: si considerano le combinazioni per cui la


funzione vale 1.
L’espressione avrà tanti termini in OR quanti sono gli 1
della funzione.
Ogni termine contiene tutte le variabili in AND. Una
variabile sarà affermata se nella combinazione quella
variabile vale 1, sarà negata se la variabile vale 0.
L’espressione ottenuta sarà quindi nella forma somma
di prodotti (min-term).

Elementi di Informatica - Algebra di Boole 38  A. Valenzano 1996-2002


Semplificazione delle espressioni
booleane
•I teoremi fondamentali possono essere
impiegati per semplificare le espres-
sioni usate per specificare le funzioni
booleane.
• Se una funzione non è completamente
specificata si possono utilizzare le com-
binazioni di "don't care" per semplificar-
ne l'espressione.

Elementi di Informatica - Algebra di Boole 39  A. Valenzano 1996-2002


Semplificazione delle
espressioni booleane (2)
Regola per la semplificazione:
• si confronta ciascun termine con tutti i
successivi;
• se i due termini confrontati contengono le
stesse lettere e nei due termini c’è una sola
differenza di una lettera che in un termine è
affermata e nell’altra è negata, si applica il
teorema:
_
xY + xY = Y

Elementi di Informatica - Algebra di Boole 40  A. Valenzano 1996-2002


Semplificazione delle
espressioni booleane (3)
• i due termini utilizzati nella fusione si
marcano come utilizzati;
• se alla fine ci sono termini non utilizzati in
nessuna fusione (non marcati), si riportano
nell’espressione finale;
• si ripete il tentativo di fusione
nell’espressione ottenuta, fino a quando, ad
una passata, non si sono effettuate più
fusioni.
L’espressione ottenuta è minima (si possono
eventualmente applicare altri teoremi, per
migliorare la forma).

Elementi di Informatica - Algebra di Boole 41  A. Valenzano 1996-2002


Esempi di semplificazione

Tavola di verità di “al Poli ci si laurea”:


E T S L
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Elementi di Informatica - Algebra di Boole 42  A. Valenzano 1996-2002


Esempi di semplificazione (2)

L  ET S  ET S  ETS 
ES (T  T )  ET ( S  S ) 
ES  ET 
E (S  T )
Elementi di Informatica - Algebra di Boole 43  A. Valenzano 1996-2002
Esempi di semplificazione (3)

x y z F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 -

Elementi di Informatica - Algebra di Boole 44  A. Valenzano 1996-2002


Esempi di semplificazione (4)

a) don't care = 0

F  x yz  x yz  x yz  x yz 


 x  z  ( y  y )  y  z  ( x  x)  x  y  z 
 xz  yz  x yz 
 z  ( x  y)  x  y  z

Elementi di Informatica - Algebra di Boole 45  A. Valenzano 1996-2002


Esempi di semplificazione (5)

a) don't care = 1

F  x yz  x yz  x yz  x yz  x yz 


 x  z  ( y  y )  y  z  ( x  x)  y  z  ( x  x)  x  z  ( y  y ) 
 x  y  ( z  z) 
 xz  yz  yz  xz  x y 
 z  ( x  x)  z  ( y  y )  x  y 
 z  z  x y  z  x y

Elementi di Informatica - Algebra di Boole 46  A. Valenzano 1996-2002


Realizzazioni circuitali

A A
B B

C C
D D

Infatti

(A·B)·(C·D) = A·B + C·D = A·B + C·D


Elementi di Informatica - Algebra di Boole 47  A. Valenzano 1996-2002
Esempio: full adder

La somma S di 2 numeri binari A e B di n bit


può essere ricondotta a n somme elementari
di 3 bit tenendo conto che:
• ak, bk sono i bit di peso k di A e B
• sk è il k-esimo bit di S
• rk è il riporto generato dalla somma dei bit
di peso k-1, k-2, ... 0 di A e B.
• r-1 = 0
Elementi di Informatica - Algebra di Boole 48  A. Valenzano 1996-2002
Full adder: tabelle di verità
Si possono ricavare le tabelle di verità di
sk e rk in funzione di ak , bk e rk-1
ak bk rk-1 sk rk
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Elementi di Informatica - Algebra di Boole 49  A. Valenzano 1996-2002
Full adder: espressioni
booleane
ak bk rk-1 sk rk
0 0 0 0 0 akbkrk-1
0 0 1 1 0
0 1 0 1 0
akbkrk-1 akbkrk-1
0 1 1 0 1
1 0 0 1 0
akbkrk-1
1 0 1 0 1 akbkrk-1
1 1 0 0 1 akbkrk-1
1 1 1 1 1
akbkrk-1
akbkrk-1
Elementi di Informatica - Algebra di Boole 50  A. Valenzano 1996-2002
Full adder: semplificazione
delle espressioni
Le espressioni di sk e rk sono date da:
sk  a k b k rk 1  a k bk r k 1  ak b k r k 1  ak bk rk 1 
 rk 1 (a k b k  ak bk )  r k 1 (a k bk  ak b k ) 
 rk 1 (ak  bk )  r k 1 (ak  bk ) 
 rk 1  ak  bk
rk  a k bk rk 1  ak b k rk 1  ak bk r k 1  ak bk rk 1 
 bk rk 1  ak rk 1  ak bk 
 rk 1 (ak  bk )  ak bk
Elementi di Informatica - Algebra di Boole 51  A. Valenzano 1996-2002
Full adder: struttura a blocchi
Le funzioni che forniscono sk ed rk possono
essere realizzate in un unico circuito elettronico
(full adder):
an bn rn-1 an-1bn-1rn- a0 b0 0
carry
2

rn sn rn- sn-1 r0 s0
1
Elementi di Informatica - Algebra di Boole 52  A. Valenzano 1996-2002
Esempio (I)
Problema (tema di esame del 27/2/96):
Si considerino due valori A = a1a0 e
B = b1b0 espressi in complemento a 2 su 2 bit.
Scrivere l’espressione di una funzione
booleana F che è vera se e solo se A = -B
Soluzione:
conviene considerare i bit che
costituiscono A e B come variabili
indipendenti e scrivere la funzione come
F (a0,a1,b0,b1).

Elementi di Informatica - Algebra di Boole 53  A. Valenzano 1996-2002


Esempio (II)
a1 a0 b1 b0 A B F
0 0 0 0 0 0 1
0 0 0 1 0 1 0
0 0 1 0 0 -2 0
0 0 1 1 0 -1 0
0 1 0 0 1 0 0
0 1 0 1 1 1 0
0 1 1 0 1 -2 0
0 1 1 1 1 -1 1
1 0 0 0 -2 0 0
1 0 0 1 -2 1 0
1 0 1 0 -2 -2 0
1 0 1 1 -2 -1 0
1 1 0 0 -1 0 0
1 1 0 1 -1 1 1
1 1 1 0 -1 -2 0
1 1 1 1 -1 -1 0

F = a1a0b1b0 + a1a0b1b0 + a1a0b1b0


Elementi di Informatica - Algebra di Boole 54  A. Valenzano 1996-2002
Esempio (III)

Semplificazione di F:

F = a1a0b1b0 + a1a0b1b0 + a1a0b1b0 =

= a1a0b1b0 + a0b0 (a1b1 + a1b1) =

= a1a0b1b0 + a0b0 (a1 + b1)

Elementi di Informatica - Algebra di Boole 55  A. Valenzano 1996-2002

Potrebbero piacerti anche