Algebra di Boole Semplificazione di espressioni

Programmazione in C
Semplificazione di espressioni
Algebra di Boole
Semplificazione di espressioni
Proprietà fondamentali
Minimizzazione
2
© 2006 Politecnico di Torino
1
Programmazione in C
Semplificazione di espressioni
Semplificazione di espressioni
Proprietà dell’algebra
Gli operatori and, or, etc. soddisfano specifiche
proprietà
Al contrario di quanto avviene nell’algebra
ordinaria le proprietà sono dimostrabili per
induzione completa
Si valuta la proprietà per tutte le possibili
combinazioni delle variabili indipendenti
La proprietà è valida se è sempre verificata
4
© 2006 Politecnico di Torino
2
Programmazione in C
Semplificazione di espressioni
Principali proprietà (1/3)
Involuzione
(0’)’ = 1’ = 0
(1’)’ = 0’ = 1
(x’)’ = x
Assorbimento
x ⋅ x =x
x+ x =x
0⋅0=0
1⋅1=1
Identità
0+0=0
1+0=1
x ⋅ 1 =x
x+ 0 =x
Complemento
0 + (0)’ = 0 + 1 = 1
1 + (1)’ = 1 + 0 = 1
x ⋅ x’ = 0
x + x’ = 1
5
Principali proprietà (2/3)
Dominanza
x ⋅0 =0
x+1=1
Proprietà commutativa
x ⋅y = y⋅x
x+y=y+x
Proprietà associativa
x ⋅ y ⋅ z = (x ⋅ y) ⋅ z = x ⋅ (y ⋅ z)
x + y + z = (x + y) + z = x + (y + z)
Proprietà distributiva
x ⋅ (y + z) = x ⋅ y + x ⋅ z
x + (y ⋅ z) = (x + y) ⋅ (x + z)
© 2006 Politecnico di Torino
6
3
Programmazione in C
Semplificazione di espressioni
Principali proprietà (3/3)
Inclusione o assorbimento
x+x⋅y =x
x ⋅ (x + y) = x
Fusione diretta
x ⋅ y + x ⋅ y’ = x
(x + y) ⋅ (x + y’) = x
Teorema di De Morgan
(x ⋅ y)’ = x’ + y’
(x + y)’ = x’ ⋅ y’
Ridondanza
Sono valide?
x ⋅ (x’ + y) = x ⋅ y
x + x’ ⋅ y = x + y
7
Esempio 1
?
(x + y)’ = x’ ⋅ y’
x
y
x’
y’
x+y
(x+y)’
x’ ⋅ y’
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
=
8
© 2006 Politecnico di Torino
4
Programmazione in C
Semplificazione di espressioni
Esempio 2
?
x + x’ ⋅ y = x + y
x
y
x’
x’ ⋅ y
x + x’⋅y
x+y
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
=
9
Semplificazione di espressioni
© 2006 Politecnico di Torino
5
Programmazione in C
Semplificazione di espressioni
Funzioni equivalenti
Due funzioni f1 e f2 sono equivalenti se, per tutte
le combinazioni delle variabili indipendenti
Qualora f1 = 1 allora anche f2 = 1
Qualora f1 = 0 allora anche f2 = 0
Se due funzioni f1 e f2 sono equivalenti allora
f1 = f2
Data una funzione logica f esistono più
espressioni (equivalenti) che la rappresentano
11
Esempi
f1 (x1, x2) = x1 ⊕ x2
= x1’ ⋅ x2 + x1 ⋅ x2’
f2 (x1, x2) = (x1 ⊕ x2)’
= x1’ ⋅ x2’ + x1 ⋅ x2
© 2006 Politecnico di Torino
x1
x2
f1
0
0
0
0
1
1
1
0
1
1
1
0
x1
x2
f2
0
0
1
0
1
0
1
0
0
1
1
1
12
6
Programmazione in C
Semplificazione di espressioni
Minimizzazione
Problema
Tra tutte le funzioni equivalenti trovare quella
minima
Che cosa si intende per minima?
La più semplice
La meno costosa da realizzare
Etc.
Le proprietà (e i teoremi) possono essere
impiegate per semplificare le funzioni booleane,
passando da una funzione equivalente a un’altra
13
Esempio 1
f (x1, x2, x3) = x1’ ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3
= x2 ⋅ x3 ⋅ (x1’ + x1)
= x2 ⋅ x3 ⋅ 1
= x2 ⋅ x3
x2
x3
f (x1, x2, x3)
f non dipende da x1
© 2006 Politecnico di Torino
Proprietà distributiva
x ⋅ (y+z) = x ⋅ y + x ⋅ z
Complemento
x + x’ = 1
Identità
x⋅1=x
14
7
Programmazione in C
Semplificazione di espressioni
Esempio 2
f (x, y, z) =
= x’⋅y’⋅z + x’⋅y⋅z + x⋅y’⋅z + x⋅y⋅z’
= x’⋅z⋅(y’+y)
+ x⋅y’⋅z + x⋅y⋅z’
=
+ x⋅y’⋅z + x⋅y⋅z’
x’⋅z
=
(x’+x⋅y’)⋅z
+ x⋅y⋅z’
=
(x’+y’) ⋅ z
+ x⋅y⋅z’
Proprietà distributiva
x ⋅ (y+z) = x ⋅ y + x ⋅ z
Complemento e
identità
x + x’ = 1, x ⋅ 1 = x
Proprietà distributiva
x ⋅ (y+z) = x ⋅ y + x ⋅ z
Teorema
x + x’ ⋅ y = x + y
15
© 2006 Politecnico di Torino
8