Boole
Boole
Boole
Lezione 1
Lezione 1
Introduzione al corso
Libri di Testo, materiale didattico
Algebra di Boole
Definizione Assiomatica
Proprietà e Teoremi notevoli
1
Materiale didattico
Fadini, Esposito “Teoria e Progetto delle Reti
Logiche”, Liguori Editore
Fadini, Mazzocca “Reti Logiche, Complementi ed
esercizi, Liguori Editore
Fadini, De Carlini, “Macchine per l’elaborazione
dell’informazione”, Liguori Editore,
Lucidi sul Motorola 68000
Logic Work 4
Ntumin opp Espresso
Altre info: sito http://cds.unina.it/~picus
Logica
… da Aristotele
…a G. Boole
“ An Investigation into the Laws of
Thougths …”
<K, +, .>
K un insieme
+,. operatori interni che godono delle
seguenti proprietà
2
Reticolo
Commutativa A+B = B + A
A.B = B.A
Associativa A+(B+C)= (A+B)+C
Idempotenza A+A = A
A.A=A
Assorbimento A+A.B=A
A.(A+B) = A
Relazione d’Ordine
a+b = a
a.b=a
Infatti:
Prop. Riflessiva: a+a = a (per idempotenza)
antisimmetrica: a+b = a; b + a = b; →a=b
Transitiva
a+b=a; b+c=b;
a+(b+c)=a; (a+b)+c=a; → a+c=a
3
Massimo e Minimo
Minimo 0
Massimo 1
∀x∈K,
x.0=0
X+1=1
Complemento e Distributività
Complemento
∀x ∈ K , ∃x :
x + x = 1
x⋅x = 0
Proprietà ditributiva
(a+b) . c = a . c + b . C
(a .b)+c = (a+c) .(b+c)
4
… algebra di Boole
Reticolo distributivo, dotato di massimo,
minimo e complemento
Esempi di Algebre di Boole
Algebra degli Insiemi
Algebra delle Proposizioni
Algebra dei Circuiti
Dimostrazione
sono tutti reticoli distributivi, dotati di massimo,
minimo e complemento
Proprietà
a + ab = a + b
a + a b = (a + a )(a + b) = a + b
A ∪ Ac∩B = A ∪ B
5
De Morgan
( x + y ) = x ⋅ y
( x ⋅ y ) = x + y
…. Una prima importante conseguenza
x+ y = x+ y = x⋅y
x⋅ y = x⋅ y = x + y
Dimostrazione
Tabellare (per ogni valore di x,y il primo membro
e’ uguale al secondo)
algebrica
De Morgan
Dimostrazione algebrica
( x + y ) + x y = x + x y + y + x y = 1 + 1 = 1
( x + y ) ⋅ x y = xx y + yx y = 0 + 0 = 0
….. Valgono le proprietà del complemento …..
6
Generalizzazione
Teorema di DM Generalizzato
∑ a = ∏i =1 ai
n n
i =1 i
Teorema di Shannon
f ( x1 , x2 ,...., xn ) = δ f ( x1 , x2 ,...., xn )
Implicazione
x→y
Se x è vera, y e’ vera
Se x è falsa, y è vera opp falsa
x y
x+y=y
0 0
0 1
1 1
7
ovvero
x⊂y
Nei linguaggi
If x then y
x y
Altra definizione
È sempre vero che
x falsa, y è vera opp falsa
x vera, y vero
x y + x y + xy = 1 ⇒ x ( y + y ) + xy = 1
da cui
… Semplice il significato
x + xy = 1
insiemistico
8
esempio
Sillogismo aristotelico
P1: Tutti gli uomini sono mortali
P2: Socrate è un uomo
P3: Socrate è mortale
P1∧P2→P3
dimostrazione
U = Insieme degli uomini
M = insieme dei mortali, U⊂M
S = Socrate
P1: U+M = M
P2: S+U = U
S+U+M=U+M ⇒
S+M=M
…. Ovvero Socrate è mortale
9
Esercizio a casa
Dimostrare che
(x→y)∧(y→x)→x=y
Lezione 2
Altre relazioni notevoli
Porte logiche
Funzioni Booleane
Livelli di una funzione
Forme canoniche
10
Relazioni notevoli
EQUIVALENZA
(x→y)∧(y→x)→x=y
x ≡ y = x y + xy
OR ESCLUSIVO
x ≡ y = x y + xy = x y ⋅ xy = ( x + y ) ⋅ ( x + y ) =
( x + y )( x + y ) = xx + xy + yx + yy =
xy + yx = x ⊕ y
XOR
Somma modulo 2
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
x y x≡y x ⊕y
0 0 1 0
0 1 0 1
1 0 0 1
1 1 1 0
11
Porte Logiche
Funzioni Booleane
B={0,1}
f: B x Bx …..x B→B
(x1,x2,…,xn) →y∈B
y=f (x1,x2,…,xn) x y z
Tabella di Verità 0 0 1
0 1 0
1 0 0
1 1 1
12
Esempio di funzioni
AND
y=x1x2
OR
y=x1+x2
NOT
y=x
Funzioni di Funzioni
x1 ⊕ x2= x1 x2 + x1 x2 y=f(y1,y2)
Funzione di AND, OR, NOT y1=f(x1,x2)
y2=f(x1,x2)
x1
. Livello 0 =
x2 variabili della f.
+ Livello di una funz.
l=max l(yi)+1
x1
.
x2
Livello 0 Livello 1 Livello 2
13
Formalmente …
F={f1,f2,…fn} insieme di funzioni
y=fy(y1,y2,…,yn) con fy∈F (1)
Se ogni y è sempre riconducibile alla
(1), l’insieme F è detto Funzionalmente
Completo
Se F={AND, OR, NOT}, la funzione è detta
ALGEBRICA, o RAZIONALE
esempio
y = x( z + t ) q + xy[z + xy (t + y )]
t
y +
x .
y +
z x .
x y +
q .
t
z +
3 4 5
1 2
3 2 1
liv. complementari 5 4
14
Forme canoniche (1)
….mettiamo in evidenza ….
y = f ( x1 , x2 ,.., xn ) =
x1 f (1, x2 ,.., xn ) + x1 f (0, x2 ,.., xn ) =
x1 [x2 f (1,1,.., xn ) + x2 f (1,0,.., xn )] + x1 [x2 f (0,1,.., xn ) + x2 f (0,0,.., xn )]
y = x1 x2 ....xn f (1,....,1) + ... + x1 x2 ....xn f (0,....,0)
esempio: 2 variabili
x1 x2 y
f(10)=f(01)=1 0 0 0
f(00)=f(11)=0 0 1 1
1 0 1
1 1 0
y = x1 x2 + x1 x2
15
Un po’ di definizioni…
Litterals
Variabile o il suo negato
Clausola
Prodotto di letterali
Mintermine
Clausola di ordine massimo
… esempio
y = x1 x2 f (00) + x1 x2 f (01) + x1 x2 f (10) + x1 x2 f (11)
y = P0α 0 + P1α1 + P2α 2 + P3α 3
Ove
Pi indica un mintermine
αi il valore assunto dalla funzione in
corrispondenza di quel mintermine
16
1a forma canonica
… generalizzando,
y = ∑i =0 α i Pi
2 n −1
Numero caratteristico
x1 x2 y La ennupla (α0, α1, ….., αn)
0 0 0 α0
È il numero caratteristico
0 1 1 α1
della funzione
1 0 1 α2
1 1 0 α3
#f=(0110)=6
17
Una semplice regola
x y z f α0= α1= α3= α5= α6=0
0 0 0 0 α2= α4= α7=1
0 0 1 0
0 1 0 1
P2:(010)
0 1 1 0
P2:(100)
1 0 0 1
P2:(111)
1 0 1 0
1 1 0 0
f = x yz + xyz + xyz
1 1 1 1
z
xyz Minima intersezione tra
insiemi
18
Maxtermini
Somma di letterali, Si
Pi = Si
…se nego f, ottengo una somma di
mintermini che hanno valore tabellare 1
… riottengo la f negando due volte
2 n −1 2 n −1 2 n −1
αi=1
∑α P = ∏ (α
i =1
i i
i =1
i + Pi ) = ∏ (α i + S i )
i =1
αi=0
αi+ Si=1
αi+ Si= Si
2a forma canonica
2 n −1
y = ∏ (α i + Si )
i =1
19
esempio
x y z f S0:(000)
S1:(001)
0 0 0 0
S3:(011)
0 0 1 0
S5:(101)
0 1 0 1 S6:(110)
0 1 1 0
f = ( x + y + z )( x + y + z )
1 0 0 1
1 0 1 0 ( x + y + z )( x + y + z )
1 1 0 0 ( x + y + z)
1 1 1 1
Lezione 3
Equazioni Booleane
Don’t Care (DC)
Implicanti di una funzione
Forma minima di una funzione
Mappe di Karnaugh
Metodo tabellare
20
Risoluzione di equazioni
Pi=1
x yz = 1 ⇒ (010) soluzione
ΣiPi=1
x yz + xyz = 1 ⇒ soluzioni : (010), (100)
f (x1,x2,…,xn)=1
⇔ ΣiαiPi=1
Ris. equzioni
Caso più generale
f (x1,x2,…,xn)=g(x1,x2,…,xn)
Ma che significa nell’algebra di Boole che f=g?
f ⋅ g + f ⋅ g =1
detto F = f ⋅ g + f ⋅ g
Ci riconduciamo al caso precedente:
F=1
21
Funzioni incompletamente
specificate
Data la funzione y=f (x1,x2,…,xn), può
accadere che in corrispondenza di alcune
ennuple, il valore dii y non è assegnato
y vale in quei punti indifferentemente 0 opp 1
“Don’t Care” DC
Le variabili non sono tra loro indipendenti
È realmente indifferente ai fini pratici il valore di y in tali
punti.
esempio
Trascodifica esadecimale/display a 7
seg.
HEX Dec/enc
encoder
input
22
Esempio ….
X1 X2 X3 x4
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
Punti che specificano la funzione
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0 A che sono
1 0 0 1 utili i DC
1 0 1 0
?
1
1
0
1
1
0
1
0
DON’T CARE
1 1 0 1
1 1 1 0
1 1 1 1
osservazione
(x1,x2,…,xn)→ (y1,y2,…,yn)
y=f(x)
z=x y⇔zi=xiyi ∀i
z=x+y⇔zi=xi+yi ∀i
z=α y⇔zi= α yi ∀i
23
Implicanti
f=γ1+ γ2+…+ γm , con γi clausola
Se γi è vero, f è vera
γi →f : è un implicante della funzione f
Un implicante di una funzione
che non implica a sua volta nessun altro
implicante della funzione
… è detto implicante primo
ab b ab
a a
a a
b ab a b
b ab ab ab ab
b
24
Mappa di Karnaugh (K-map)
a
b
0 1
0 1
1 1 1
Che rappresento?
00 0
111
101
100 10 110
25
… Proiettando sul piano
K-Map
00 01 11 10
0 1 1 1
1 1 1 1 1
4 variabili
La rappresentazione grafica non è immediata
Passeremo direttamente alla Mappa di K
x1x2
x3x4 00 01 11 10
00
01
11
10
26
esempio
x1x2
x3x4 00 01 11 10
00 1 1 1
01 1 1
11 1
10 1 1
f = x1 x3 + x1 x2 x3 x4 + x2 x4
Concetto di “costo”
f = ab + ab(c + d ) + c d
a b
c
a b
d
c d
27
Concetto di “costo”
f = ab + ab(c + d ) + c d
Costo degli ingressi
Ci = 12
28
…. Ma come trovare i PI?
Copertura massima di Mappe di K
Algoritmi numerici
Implementati al calcolatore
NTUMIN, ESPRESSO
Vediamo un esempio pratico
esempio
x y z v u xy xyv
0 0 0 0 0
xy
0
0
0
0
0
1
1
0
1
0 zv 00 01 11 10
0
0
0
1
1
0
1
0
0
1
00 0 1
0
0
1
1
0
1
1
0
1
1
yz v 01 1 1 1
11 0 1 1 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 0 10 0 1 1 0
1 0 1 1 1
1 1 0 0 0
xzv
1 1 0 1 0 xzv yz
1 1 1 0 1
1 1 1 1 1
29
Implicanti Primi Essenziali
Un primo implicante di f è detto
“essenziale” se è l’unico ad essere
implicato da un mintermine di f
y = x y + yz + x z v + xzv + xyv + yz v
30
Metodo di Quine-McCluskey
1. Riordino dei mintermini della tabella
secondo il numero di 1 contenuti nella
configurazione
x y z v Pi 2. Ogni configurazione in un
0 0 0 1 1
Gruppo viene confrontata con
0 1 0 0 4
0 1 0 1 5
Tutte le configurazioni del gruppo
0 1 1 0 6 Successivo
1 0 0 1 9
• se si trovano configurazioni
0 1 1 1 7
1 0 1 1 11
adiacenti, ciò indica la presenza
1 1 1 0 14 di somma di mintermini
1 1 1 1 15
Vanno spuntati!
Consensi …
Consensi:
1-5;1-9;4-5;4-6
5-7;6-7;6-14;9-11
7-15;11-15;14-15
x y z v Pi
0 0 0 1 1 √ Es. 1-5: 0001-0101Æ0-01
0 1 0 0 4 √
0 1 0 1 5 √
0 1 1 0 6 √
1 0 0 1 9 √ Il procedimento si itera,
0 1 1 1 7 √
1 0 1 1 11 √
…………
1 1 1 0 14 √
1 1 1 1 15 √ Tutti marcati: nessun PI
31
iterazione
x y z v Pi
x y z v Pi
0 - 0 1 1,5 A
0 1 - - 4,6/5,7 E
- 0 0 1 1,9 B
- 1 1 - 6,7/14-15 F
0 1 0 - 4,5 √
0 1 - 0 4,6 √
0 1 - 1 5,7 √
0
-
1
1
1
1
-
0
6,7
6,14
√
√
Ha termine qui la prima fase
1 0 - 1 9,11 C Dell’algoritmo.
- 1 1 1 7,15 √ I PI individuati Sono
1
1
-
1
1
1
1
-
11,15
14,15
D
√
A,B,C,D,E,F
Fase 2 (Patrick)
P1 P4 P5 P6 P7 P9 P11 P14 P15
A 1 1
B 1 1
C 1 1
D 1 1
E 1 1 1 1
F 1 1 1 1
32
Fase 2 (Patrick) (cont)
Si cancellano E ed F e tutti
P1 P9 P11
i mintermini “coperti” da E ed F
A 1
B 1 1 •Non esistono più essenzialità
•Ogni mintermine è coperto da
C 1 1 almeno due implicanti
D 1
u = x y + yz + yz v + xyv
33
Osservazioni
P0 P2 P3 P4 P5 P7
Non sempre le
A 1 1 riduzioni dovute
B 1 1 ad essenzialità e
C 1 1 dominanza
D 1 1
consentono di
E 1 1
F 1 1
giungere ad una
soluzione!
Non esistono righe essenziali, né relazioni di dominanza
Æalgoritmi di Branch&Bound
esamina delle alternative (albero delle scelte)
Definizione
Definiamo Nucleo l’insieme degli
implicanti primi essenziali per una
funzione f.
Le forma minima di f sarà data da
f=N+α
34
Don’t Care
Una funzione booleana con DC può essere
descritta da:
On-set (Off-set)
DC-set
Che fare dei DC?
Posso tralasciare il DC set, senza modificare gli
algoritmi precedenti
…ma le condizioni di indifferenza possono
costituire una opportunità ulteriore per
minimizzare ….
35
… e Mc Kluskey?
x y z v u x y z v Pi
0 0 0 0 0 0 1 0 0 4 √
0 0 0 1 0 0 0 1 1 3 √
0 0 1 0 0 0 1 0 1 5 √
0 0 1 1 - 0 1 1 0 6 √
0 1 0 0 1 1 0 1 0 10 √
0 1 0 1 - 0 1 1 1 7 √
0 1 1 0 - 1 0 1 1 11 √
0 1 1 1 - 1 1 0 1 13 √
1 0 0 0 0 1 1 1 0 14 √
1 0 0 1 0 1 1 1 1 15 √
1 0 1 0 1
1 0 1 1 1 3,5,6,7 vengono evidenziate
1 1 0 0 0 NON e’ necessario coprire le condizioni di
1 1 0 1 1 indifferenza
1 1 1 0 1
…non potranno mai esistere
1 1 1 1 1
implicanti primi costituiti da soli DC …
Esempio … (cont)
x y z v Pi
0 1 0 - 4,5 √ x y z v Pi
0 1 - 0 4,6 √ 0 1 - - 3,5/6,7 A
0 - 1 1 3,7 √ - - 1 1 3,7/11,15 B
- 0 1 1 3,11 √ - 1 - 1 5,7/13,15 C
0 1 - 1 5,7 √ - 1 1 - 6,7/14,15 D
- 1 0 1 5,13 √ 1 - 1 - 10,11/14,15 E
0 1 1 - 6,7 √
- 1 1 0 6,14 √
1 0 1 - 10,11 √
1 - 1 0 10,14 √
- 1 1 1 7,15 √
1 - 1 1 11,15 √
1 1 - 1 13,15 √
1 1 1 - 14,15 √
36
… ovvero
P4 P10 P11 P13 P14 P15
A 1
B 1 1
C 1 1
D 1 1
E 1 1 1 1
u=A+E+C
37
Esercizi da fare a casa
Data la funzione f(abcde)
incomp. specificata:
On set={p4,p6,p14,p15,p24,p25}
DC set={p1,p3,p7,p16,p27,p28}
Calcolare la forma minima con il metodo di
Quine-McCluskey
Posso usare le K-Map? Come?
38
Lezione 4
Forme NAND, NOR
Altre funzioni di due variabili
disparità
z = x+ y = x↓ y
39
Proprietà notevoli
1)
x ↑ x = x⋅x = x + x = x
2)
x ↑ 1 = x ⋅1 = x + 0 = x
… dualmente per la nor
Osservazione
Vale la proprietà associativa?
?
( x ↑ y) ↑ z = x ↑ ( y ↑ z)
xy xy
z 00 01 11 10 z 00 01 11 10
0 1 1 0 1 0 1 1 1 1
1 1 1 0 1 1 0 0 1 0
x↑ y ( x ↑ y) ↑ z
40
Osservazione
Vale la proprietà associativa?
?
( x ↑ y) ↑ z = x ↑ ( y ↑ z)
xy xy
z 00 01 11 10 z 00 01 11 10
0 1 1 1 1 0 1 1 0 0
1 1 0 0 1 1 1 1 1 0
y↑z x ↑ ( y ↑ z)
ATTENTI!! NON VALE LA PROPRIETA’ ASSOCIATIVA
x⋅ y = x⋅ y = x + y = x ↓ y {NOR}
x + y = x + y = x. y = x ↑ y {NAND}
41
Da forma and-or a nand
f = γ 1 + γ 2 + .....γ n
f = f = γ 1 + γ 2 + .....γ n = γ 1 ⋅ γ 2 ⋅ .....γ n = γ 1 ↑ γ 2 ↑ .....γ n
esempio
f = ab + cd + ef = ab ↑ cd ↑ ef =
( a ↑ b ) ↑ (c ↑ d ) ↑ (e ↑ f )
…. ovvero
1. Data una funzione f ….
se al primo livello complementare trovo un OR, la funzione
si dirà in forma OR, facilmente trasformabile in forma
NAND
se al primo livello complementare trovo un AND, la
funzione si dirà in forma AND, facilmente trasformabile in
forma NOR
2. Data una funzione a più livelli in forma OR (AND),
ottengo la forma NAND prendendo le variabili che
si trovano a livello complementare pari così come
sono, e negando quelle a livello complementare
dispari …
Stando bene attenti all’ordine ….
NON VALE LA PROPRIETA’ ASSOCIATIVA ….
42
esempio
f = a[b + c(d + e )] + a c + dc + k
a
. k
c
+
d
d .
+ c
b
e a
. + .
c
5 4 3 2 1
Ovvero …
[ ]
f = a ↑ b ↑ c ↑ (d ↑ e ) ↑ (a ↑ c) ↑ (d ↑ c) ↑ k
… dimostriamo algebricamente
f = a[b + c(d + e )] + a c + dc + k =
a[b + c(d + e )] ↑ a c ↑ dc ↑ k =
a ↑ [b + c(d + e )] ↑ (a ↑ c) ↑ (d ↑ c) ↑ k =
[ ]
a ↑ b ↑ c(d + e ) ↑ (a ↑ c) ↑ (d ↑ c) ↑ k =
[ ]
a ↑ b ↑ c ↑ ( d + e) ↑ ( a ↑ c ) ↑ ( d ↑ c ) ↑ k =
a ↑ [b ↑ c ↑ (d ↑ e )] ↑ (a ↑ c) ↑ (d ↑ c) ↑ k
43
Funzioni di 2 variabili
x y f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f14 f14 f15
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Co ∧ ∧ x ∧ y ⊕ ∨ ↓ ≡ ¬y y ¬x X ↑ ta
ntr ¬y ¬x → → ut
ad x y olo
d. gia
Parità e Disparità
00101011 01101011
44
Funzioni di Parità
x = ( x1 , x2 ,...xn )
1, se x ha un numero di 1 dispari
d ( x) =
0, se x ha un numero di 1 pari
Es. d(10101101)=1
p( x) = d ( x)
2 variabili
x1
….. Ho 1 nei
0 1 mintermini 01 e 10
x2
0 1
… mintermini con
numero di 1
1 1 dispari….
d ( x1 , x2 ) = x1 x2 + x1 x2 = x1 ⊕ x2
45
4 variabili
x1x2
x3x4 00 01 11 10
00 1 1 Costo minimo
Decomposizione funzionale
0
1 x1 d(x1)=1
0
1
0 x2 d(x2)=0 d(x)=d(d(x1), d(x2), d(x3))
1
1
1 x3 d(x3)=0
C ∝ 23−1 + 23−1 + 2 2−1 = 2 2 + 2 2 + 2 = 6
x
C=C(d(x1))+C(d(x2))+C(d(x3))
C ∝ 2 n−1 = 27
46
Disparità e parità (3 v)
… disparità = negato di parità ….
p ( x1 , x2 ) = x1 ⊕ x2 = x1 ≡ x2
… e per tre variabili …..
d ( x1 , x2 , x3 ) = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3
p ( x1 , x2 , x3 ) = d ( x1 , x2 , x3 ) = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3
Relazione Notevole
d ( x1 , x2 ) = x1 x2 + x1 x2 = x1 ⊕ x2 = d ( x1 , x2 ) = p( x1 , x2 )
d ( x1 , x2 , x3 ) = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3 =
= p ( x1 , x2 , x3 ) = d ( x1 , x2 , x3 )
47