Algebra di Boole - Politecnico di Torino

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 logiche
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 mezzo 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 indipendenti 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 combinazioni. Poiché una funzione può assumere solo
2 valori il numero di possibili funzioni diverse è
dato da:
m=2
Elementi di Informatica - Algebra di Boole 6
2n
 A. Valenzano 1996-2002
Numero di funzioni booleane (2)
• Infatti:
Fm-1
x1 x2 … xn F0 F1 F2
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 variabili 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 specificate è 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
specificata):
S
0
0
1
1
C
0
1
0
1
Elementi di Informatica - Algebra di Boole 10
verità
(completamente
T
0
0
0
1
 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
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
Elementi di Informatica - Algebra di Boole 12
S
0
1
0
1
0
1
0
1
L
0
0
0
0
0
1
1
1
 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
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
Elementi di Informatica - Algebra di Boole 14
S
0
1
0
1
0
1
0
1
L
0
0
1
1
 A. Valenzano 1996-2002
Operatori booleani
• Rappresentano le operazioni basilari dell'algebra 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 ottenute 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
0
0
1
1
y
0
1
0
1
x AND y
0
0
0
1
x
y
Notazioni
xy
xy
xy
x AND y
Elementi di Informatica - Algebra di Boole 16
 A. Valenzano 1996-2002
Operatore OR
E' anche detto "somma logica":
Tavola della verità
x
0
0
1
1
y
0
1
0
1
x OR y
0
1
1
1
Simbolo logico
x
y
Notazioni:
xy
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
0
1
NOT x
1
0
Notazioni:
x
~x
NOT x
Elementi di Informatica - Algebra di Boole 18
 A. Valenzano 1996-2002
Operatore NAND
Tavola della verità
x
0
0
1
1
y
0
1
0
1
x NAND y
1
1
1
0
Simbolo logico
x
y
Notazioni
xy
~ (x  y)
xy
x NAND y
Elementi di Informatica - Algebra di Boole 19
 A. Valenzano 1996-2002
Operatore NOR
Tavola della verità
x
0
0
1
1
y
0
1
0
1
x NOR y
1
0
0
0
Simbolo logico
x
y
Notazioni:
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":
Tavola della verità
x
0
0
1
1
y
0
1
0
1
x EX-OR y
0
1
1
0
Simbolo logico
x
y
Notazioni:
xy
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 equivalenti se
• per tutte le combinazioni delle variabili indipendenti per cui E1 = 1 anche E2 = 1 e
• per tutte le combinazioni delle variabili indipendenti 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
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
Elementi di Informatica - Algebra di Boole 24
xz
0
0
0
0
0
1
0
1
_
xyz
0
0
0
1
0
0
0
0
yz
0
0
0
1
0
0
0
1
Ta
0
0
0
1
0
1
0
1
Tb
0
0
0
1
0
1
0
1
 A. Valenzano 1996-2002
Espressioni complementari
E1 ed E2 sono complementari se:
• per tutte le combinazioni delle variabili indipendenti per cui E1 = 1 risulta E2 = 0 e
• per tutte le combinazioni delle variabili indipendenti 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
0
0
1
1
y
0
1
0
1
_
xy
0
0
1
0
Elementi di Informatica - Algebra di Boole 27
_
xy
0
1
0
0
__
xy
1
0
0
0
xy
0
0
0
1
Ta
0
1
1
0
Tb
1
0
0
1
 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 precedenze degli operatori in E1 !!);
• sostituendo il valore 0 con il valore 1 e viceversa.
Regola di complementazione: l'espressione complementare di E1 può essere ottenuta dalla sua duale 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)
a
0
0
0
0
1
1
1
1
Elementi di Informatica - Algebra di Boole 29
b
0
0
1
1
0
0
1
1
Fd = a + (b c)
c
0
1
0
1
0
1
0
1
F
0
0
0
0
0
1
1
1
Fd
0
0
0
1
1
1
1
1
F = a + (b c)
F
1
1
1
1
1
0
0
0
 A. Valenzano 1996-2002
Teoremi dell’algebra booelana
• Possono essere dimostrati per induzione completa (verifica della validità per
ogni combinazione delle variabili indipendenti).
• Dato un teorema esiste il teorema
duale.
• Se è dimostrata la validità di un teorema è 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
0
0
1
1
B
0
1
0
1
Elementi di Informatica - Algebra di Boole 37
_
AB
0
1
0
0
_
AB
0
0
1
0
T
0
1
1
0
 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 espressioni usate per specificare le funzioni
booleane.
• Se una funzione non è completamente
specificata si possono utilizzare le combinazioni di "don't care" per semplificarne 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
0
0
0
0
1
1
1
1
Elementi di Informatica - Algebra di Boole 44
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
F
0
1
0
1
0
1
1
-
 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
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
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
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
akbkrk-1
akbkrk-1
akbkrk-1
akbkrk-1
Elementi di Informatica - Algebra di Boole 50
akbkrk-1
akbkrk-1
akbkrk-1
akbkrk-1
 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):
carry
an bn rn-1 an-1bn-1rn2
rn
sn
Elementi di Informatica - Algebra di Boole 52
rn1
sn-1
a0 b0 0
r0
s0
 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
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
-2
-2
-2
-2
-1
-1
-1
-1
0
1
-2
-1
0
1
-2
-1
0
1
-2
-1
0
1
-2
-1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
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