ALGEBRA DI BOOLE
L’algebra di Boole deve il suo nome allo studioso irlandese George Boole (1815-1867) che
per primo affrontò i problemi di carattere logico non solo dal punto di vista filosofico, come
era stato fatto fino ad allora, ma anche sotto l’aspetto rigorosamente matematico.
Essa definisce 3 operazioni logiche fondamentali:
1. prodotto logico o operazione AND: è vero solo se le variabili logiche di cui si segue
il prodotto sono tutte vere;
2. somma logica o operazione OR: è vero solo quando risulti vero una delle variabili;
3. negazione logica o operazione NOT: è una operazione che agisce su un’unica
variabile negandola.
E dalla tabella della verità (che indica i valori di uscita relativi a tutte le possibili
combinazioni delle variabili d’ingresso) con A e B due bit generici:
AND OR
A B A*B A+B
NOT
_
A A
DERIVATE
A B NAND
0 0
0
0
0
1
0 0
1
1
0 1
0
1
1
0
0 1
1
0
1 0
0
1
1 0
1
0
1 1
1
1
1 1
0
0
NOR
L’operazione di negazione di una grandezza logica si indica soprasegnando la lettera
rappresentativa. In questo caso 0 e 1 non sono numeri ma rappresentano valori logici.
0 FALSO
1 VERO
Esiste anche la somma logica esclusiva o “esclusivo” o EX-OR: il risultato è vero solo se
una ed una sola delle variabili è vera.
EX-OR
EX-OR
NEGATO
_______
Ᾱ*B+A*Ḃ
Ᾱ*B+A*Ḃ
_______
A B
A₢B
A₢B
0 0
0
1
0 1
1
0
1 0
1
0
1 1
0
1
Il teorema fondamentale dell’algebra di Boole afferma che qualunque forma di
elaborazione sui dati codificati in codice binario può ricondursi ad una opportuna
successione delle sole 3 operazioni logiche fondamentali (AND, OR, NOT) le quali sono
dunque i passi elaborativi più elementari a livello macchina.
Due espressioni logiche dipendenti dalle stesse n variabili booleane si dicono equivalenti
quando il valore assunto dalla prima è uguale a quello assunto dalla seconda per tutte le
2n combinazioni di stati assegnati alle n variabili.
U=f1(A,B,C,D,…,N)=?=V=f2(A,B,C,D,…,N)
A* Ḃ +A =?=A + A*B
Ᾱ *B + A * Ḃ=?= (A+B)*( Ᾱ+ Ḃ)
A*B + Ᾱ=?= A*B+ Ḃ
in forma più generalizzata
0+0=0
0+1=1+0=1
1+1=1
A+1=1
A+0=A
A+Ᾱ=1
0*0=0
0*1=1*0=0
1*1=1
A*1=A
a*0=0
A*Ᾱ=0
_
_
A=A
_
1=0
_
0=1
_
_
0=0
A+A=A
_
_
1=1
A*A=A
Vi sono poi le seguenti proprietà:
•
proprietà COMMUTATIVA
A+B= B+A
•
A*B= B*A
proprietà ASSOCIATIVA
A+B+C= (A+B)+C= A+(B+C)=B+(A+C)
•
proprietà DISTRIBUTIVA
A*(B+C) =A*B+ A*C
A*B*C= (A*B)*C= A*(B*C)=B*(A*C)
Per le espressioni booleane vale il principio della dualità per il quale una relazione che
esprime una determinata regola, si può ottenere un’altra proprietà, che si dice duale alla
prima, sostituendo ordinatamente 01 10 ORAND ANDOR
A+1=1 A*0=0
A+ Ᾱ=1 A* Ᾱ=0
A*1=A A+0=A
A+B=B+A A*B=B*A
Data una tabella si può sempre individuare una funzione logica che la
rappresenta. La corrispondenza non è biunivoca nel senso che, mentre ad
una funzione corrisponde sempre una ed una sola tabella, viceversa ad una
tabella possono corrispondere più funzioni, ovviamente equivalenti.
Per la risoluzione di problemi di automazione, risulta di fondamentale importanza saper
individuare una delle funzioni corrispondenti ad una data tabella.
Abbiamo due metodi.
METODO ASSOCIATIVO
A
0
0
1
B
0
1
0
U
1
1
0
_
A+B
_
1
1
0
_
_
_ _
U= (A+B)*(A+B)
A
0
0
1
B
0
1
0
U
0
1
1
_
A+B
_
1 1 0
_ _
U= (A+B)*(A+B)
METODO DISSOCIATIVO
A B U
0 0 1
_ _
A*B
A B U
0 0 0
_
0 1 1
A*B
A+B
_
0 1 1
A*B
_
1 0 0
1 1 0
1 0 1
1 1 0
__
_
U= A*B + A*B
_
_
U= A*B * A*B
A*B
_
A+B