Fondamenti di Informatica II
Ingegneria Informatica e Biomedica
I anno, II semestre
A.A. 2005/2006
Algebra di Boole
Prof. Mario Cannataro
Università degli Studi “Magna Graecia”
di Catanzaro
Algebra Booleana :Introduzione
„
Tutti i dispositivi elettronici correntemente
usati si basano sull’elaborazione di valori
discreti di grandezze elettriche espressi da
numeri binari.
„
Il modello teorico di rappresentazione è
rappresentato dall’algebra di BOOLE, che a
sua volta è basata sulla logica classica.
Fondamenti Informatica II - Lez. 01
22.03.2006
2
Funzioni booleane (1/2)
Definizione di funzione booleana
Una funzione z = f(x1, x2, … , xn) si dice
booleana se:
z ∈ {0,1}
xi =1...n ∈ {0,1}
Essendo funzioni discrete, le funzioni booleane
possono essere rappresentate in forma tabellare.
Fondamenti Informatica II - Lez. 01
22.03.2006
3
Funzioni booleane (2/2)
„
Obiettivo: Esprimere una generica
funzione f come combinazione di operatori
elementari.
Fondamenti Informatica II - Lez. 01
22.03.2006
4
Algebra Booleana: Definizione
„
Dominio: NUMERI BINARI (COSTANTI E
VARIABILI)
„
Operazioni
‰
‰
„
Binarie :AND,OR,XOR,NAND,NOR.
Unarie :NOT.
Funzioni
f : {0,1} → {0,1}
n
Fondamenti Informatica II - Lez. 01
22.03.2006
5
Alcuni esempi di funzioni booleane
NOT
OR
AND
x1 f(x1)
x1
x2
f(x1, x2)
x1
x2
f(x1, x2)
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
Fondamenti Informatica II - Lez. 01
22.03.2006
6
Funzioni standard e simboli circuitali
Fondamenti Informatica II - Lez. 01
22.03.2006
7
Proprietà dell’algebra Booleana
Legge
AND
OR
Indentità
1*A=A
0+A=A
Elemento Nullo
0*A=0
1+A=1
Idempotenza
A*A=A
A+A=A
Inverso
A*¬A=0
A + ¬ A =1
Commutativa
A*B=B*A
A+B=B+A
Associativa
(A * B) * C = A * (B * C)
(A + B)+ C = A + (B + C)
Distributiva
A +(B*C) = (A+B) * (A+C)
A *( B+C) = (A*B) + (A*C)
Assorbimento
A * (A + B)= A
A+A*B=A
DeMorgan
¬ (A * B)= ¬ A + ¬ B
¬ (A + B)= ¬ A * ¬ B
Fondamenti Informatica II - Lez. 01
22.03.2006
8
Teorema di De Morgan
Ad Esempio la somma di due variabili può essere
trasformata in prodotto come segue
¬ (A + B)= ¬ A * ¬ B
Oppure il prodotto può essere trasformato in
somma:
¬ (A * B)= ¬ A + ¬ B
Fondamenti Informatica II - Lez. 01
22.03.2006
9
Rappresentazione tabellare di una funzione
booleana
x1
x2
x3
z
Numero d’ordine
Variabili d’ingresso
Uscita
0
1
2
3
4
5
6
7
x1 x 2 x3
000
001
010
011
100
101
110
111
z
1
1
0
0
0
1
0
1
Fondamenti Informatica II - Lez. 01
22.03.2006
10
Definizione di mintermine e maxtermine
Un mintermine pi è una funzione che vale 1 in
corrispondenza della sola configurazione i di
valori delle variabili
Un maxtermine si è una funzione che vale 0 in
corrispondenza della sola configurazione i di
valori delle variabili
Fondamenti Informatica II - Lez. 01
22.03.2006
11
Ancora sui mintermini ed i maxtermini
Un mintermine pi può essere rappresentato da
un’espressione algebrica consistente nell’AND
di tutte le variabili, dove ogni variabile compare
diretta se vale 1 nella configurazione i, negata
altrimenti
Un maxtermine si può essere rappresentato da
un’espressione algebrica consistente nell’OR di
tutte le variabili, dove ogni variabile compare
negata se vale 1 nella configurazione i, diretta
altrimenti
Fondamenti Informatica II - Lez. 01
22.03.2006
12
Esempi di mintermini e maxtermini
Numero
d’ordine
Variabili
d’ingresso
Uscita
Mintermini
(1)
Maxtermini
(0)
x1 x2 x3
z
p0 p1 p5 p7 s2 s3 s4 s6
0
000
1
1
0
0
0
1
1
1
1
1
001
1
0
1
0
0
1
1
1
1
2
010
0
0
0
0
0
0
1
1
1
p5 = x1 ⋅ x2 ⋅ x3
3
011
0
0
0
0
0
1
0
1
1
p7 = x1 ⋅ x2 ⋅ x3
4
100
0
0
0
0
0
1
1
0
1
5
101
1
0
0
1
0
1
1
1
1
s2 = x1 + x2 + x3
6
110
0
0
0
0
0
1
1
1
0
7
111
1
0
0
0
1
1
1
1
1
p0 = x1 ⋅ x2 ⋅ x3
p1 = x1 ⋅ x2 ⋅ x3
s3 = x1 + x2 + x3
s4 = x1 + x2 + x3
s6 = x1 + x2 + x3
Fondamenti Informatica II - Lez. 01
22.03.2006
13
I e II forma canonica di una funzione
La I forma canonica di una funzione f è l’OR di tutti i
mintermini pi per le configurazioni i dove f = 1. Tale
forma è anche detta forma SP (somma di prodotti)
La II forma canonica di una funzione f è l’AND di tutti i
maxtermini si per le configurazioni i dove f = 0. Tale
forma è anche detta forma PS (prodotto di somme)
Fondamenti Informatica II - Lez. 01
22.03.2006
14
Esempio pratico
Se richiamiamo i mintermini ed i maxtermini
dell’esempio precedente:
p0 = x1 ⋅ x2 ⋅ x3
p1 = x1 ⋅ x2 ⋅ x3
p5 = x1 ⋅ x2 ⋅ x3
p7 = x1 ⋅ x2 ⋅ x3
s2 = x1 + x2 + x3
s3 = x1 + x2 + x3
s4 = x1 + x2 + x3
z = p0 + p1 + p5 + p7 = x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 +
+ x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3
z = s2 ⋅ s3 ⋅ s4 ⋅ s6 = ( x1 + x2 + x3 ) ⋅ ( x1 + x2 + x3 ) ⋅
⋅ ( x1 + x2 + x3 ) ⋅ ( x1 + x2 + x3 )
z = p0 + p1 + p5 + p7 = ∑3 (0,1,5,7)
z = s2 ⋅ s3 ⋅ s4 ⋅ s6 = ∏3 (2,3,4,6)
s6 = x1 + x2 + x3
Fondamenti Informatica II - Lez. 01
22.03.2006
15
Riduzione algebrica di funzioni
Utilizzando le proprietà dell’algebra in modo
opportuno è possibile semplificare le forme
canoniche di una funzione. Nell’esempio precedente:
z = p0 + p1 + p5 + p7 = x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 +
+ x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 = x1 ⋅ x2 ( x3 + x3 ) +
+ x1 ⋅ ( x2 + x2 ) ⋅ x3 = x1 ⋅ x2 + x1 ⋅ x3
Fondamenti Informatica II - Lez. 01
22.03.2006
16
Completezza funzionale
L’esistenza delle forme canoniche è una dimostrazione
che le funzioni AND, OR e NOT costituiscono un
insieme funzionalmente completo, ovvero ciascuna
funzione può essere scritta in una forma algebrica
utilizzando solo questi tre operatori. Osservando poi
che:
x1 + x2 = ( x1 ⋅ x2 )
Si può concludere che anche AND e NOT sono un
insieme funzionalmente completo. Le uniche porte
logiche che costituiscono da sole un insieme
funzionalmente completo sono le porte NAND e NOR
Fondamenti Informatica II - Lez. 01
22.03.2006
17
Schema Completo
Z= (¬X1* ¬X2* ¬ X3) +
+ (¬X1* ¬X2 * X3) +
+ ( X1* ¬X2 * X3) +
+ ( X1 * X2 * X3)
Fondamenti Informatica II - Lez. 01
22.03.2006
18
Prima Semplificazione
Z= ¬X1 * ¬X2 (¬ X3 + X3) +
+ X1 * X3 (¬X2 + X2)
Fondamenti Informatica II - Lez. 01
22.03.2006
19
Ultima semplificazione
Z= ¬X1* ¬X2 + X1 * X3
Fondamenti Informatica II - Lez. 01
22.03.2006
20
Schema completo
Prima Semplificazione
Ultima semplificazione
Fondamenti Informatica II - Lez. 01
22.03.2006
21