Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor booleene Definiţia 4.1 Se numeşte algebră Boole (booleană) o latice B complementată şi distributivă. Deci, o algebră booleeană B verifică cele şase postulate ale laticilor, condiţiile de distributivitate, existenţa elementelor 0, 1 şi postulatul Pentru orice element a B, există a B astfel încât a a = 1, a a = 0. O algebră Boole poate fi definită şi direct, în felul următor: Definiţia 4.2 O algebră Boole este un sistem B= (B,,, 0, 1) unde: 1. a, b, c B (a b) c = a (b c); (asociativitatea lui ) 2. a, b, c B (a b) c = a (b c); (asociativitatea lui ) 3. a, b B a b = b a; (comutativitatea lui ) 4. a, b B a b = b a; (comutativitatea lui ) 5. 0 B unic astfel încât a B a 0 = 0 a = a; (element unitate pentru ) 37
38 PRELEGEREA 4. 6. 1 B unic astfel încât a B a 1 = 1 a = a; (element unitate pentru ) 7. a, b, c B a (b c) = (a b) (a c); (distributivitatea lui faţă de ) 8. a, b, c B a (b c) = (a b) (a c); (distributivitatea lui faţă de ) 9. a B, a B a a = 0, a a = 1. (complement) Echivalenţa dintre cele două Definiţii 4.1 şi 4.2 este imediată. O primă observaţie este că o algebră booleană are cel puţin două elemente 0 şi 1, iar 0 1. Exemplul 4.1 Fie Q o mulţime. Mulţimea Q= {P P Q} = 2 Q formează o algebră Boole cu operaţiile de reuniune şi intersecţie. Elementul 0 este mulţimea vidă, iar elementul 1 este mulţimea Q. Axiomele din Definiţia 4.2 se verifică imediat. Exemplul 4.2 Mulţimea B = {0, 1} cu operaţiile 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 formează de asemenea o algebră booleană B= (B,,, 0, 1). 4.2 Proprietăţi ale algebrelor booleene Toate proprietăţile laticilor modulare, distributive şi complementate sunt valabile într-o algebră Boole. Ele pot rezulta direct din Definiţia 4.1 sau pot fi deduse pe baza Definiţiei 4.2. Teorema 4.1 Într-o algebră booleană sunt verificate legile de idempotenţă: a a = a, a a = a. Demonstraţie: Vom avea a a = (a a) 1 = (a a) (a a ) = a (a a ) = a 0 = a. A doua relaţie este adevărată conform principiului dualităţii. Ea poate fi demonstrată şi direct, astfel: a a = (a a) 0 = (a a) (a a ) = a (a a ) = a 1 = a. Teorema 4.2 a 1 = 1, a 0 = 0.
4.2. PROPRIETĂŢI ALE ALGEBRELOR BOOLEENE 39 Demonstraţie: a 1 = (a 1) 1 = (a 1) (a a ) = a (1 a ) = a a = 1, a 0 = (a 0) 0 = (a 0) (a a ) = a (0 a ) = a a = 0. (a doua relaţie poate fi dedusă şi prin dualitate). Teorema 4.3 a (a b) = a, a (a b) = a. (absorbţie) Demonstraţie: a (a b) = (a 1) (a b) = a (1 b) = a (b 1) = a 1 = a, a (a b) = (a a) (a b) = a (a b) = a. Teorema 4.4 Pentru orice a B, a este unic. Demonstraţie: presupunem prin absurd că există două complemente a, a 1 ale lui a. Conform Definiţiei 4.2, avem a a = a a 1 = 1, a a = a a 1 = 0. Atunci a 1 = 1 a 1 = (a a ) a 1 = a 1 (a a ) = (a 1 a) (a 1 a ) = 0 (a 1 a ) = (a a ) (a 1 a ) = (a a 1) a = 1 a = a. Teorema 4.5 (a ) = a. Demonstraţie: (a ) este complementul lui a. Dar şi a este complementul lui a. Deoarece complementul este unic (Teorema 4.4), rezultă (a ) = a. Deci, putem considera complementara ca o aplicaţie bijectivă : B B. Teorema 4.6 (a b) = a b, (a b) = a b. (regulile De Morgan) Demonstraţie: Vom demonstra că (a b) (a b ) = 1 şi (a b) (a b ) = 0; deci a b şi a b sunt complementare. Din Teorema 4.4 rezultă că (a b) = a b. Deci (a b) (a b ) = [(a b) a ] [(a b) b ] = [(b a) a ] [a (b b )] = [b (a a )] (a 1) = (b 1) 1 = 1 şi (a b) (a b ) = [a (a b )] [b (a b )] = [(a a ) b ] [b (b a )] = 0 [(b b ) a ] = 0. Pentru a doua relaţie se procedează similar. Teorema 4.7 Într-o algebră Boole, a b a b. Demonstraţie: Avem a b = a b = b, deci a b = (a b) = b, adică tocmai a b
40 PRELEGEREA 4. Teorema 4.8 a b a b = 0 a b = 1. Demonstraţie: Din a b, folosind proprietatea de izotonie, avem a b b b = 0, deci a b = 0. Invers, dacă a b = 0, atunci a b = (a b) 1 = (a b) (b b ) = (a b ) b = 0 b = b, deci a b. La fel, a b a b = (a b ) = 0 = 1. Propoziţia 4.1 a b = 0 b a. Demonstraţie: a = a 0 = a (a b) = (a a) (a b) = 1 (a b) = a b, deci b a. Implicaţia inversă se verifică similar. 4.3 Alte operaţii booleene Înafara celor trei operaţii folosite până acum de o algebră booleană (,, ), mai sunt cunoscute şi alte operaţii. Astfel, putem enumera: 1. Diferenţa simetrică: a b = (a b ) (a b); 2. Operatorul Sheffer: a b = (a b) ; 3. Echivalenţa: a b = (a b ) (a b); 4. Implicaţia: a b = b a. Ele au o serie de proprietăţi a căror demonstrare o lăsăm ca exerciţiu. Propoziţia 4.2 1. 0 0 = 1 1 = 0, 0 1 = 1 0 = 1; 2. este asociativă şi comutativă; 3. a 0 = a, a 1 = a ; 4. a a = 0, a a = 1; 5. a b = c = a c = b; 6. a b = c = a b c = 0; 7. a (b c) = (a b) (a c). Propoziţia 4.3 1. a b = (a b) ;
4.4. FUNCŢII BOOLEENE 41 2. a b = a b ; 3. a b = (a b) (b a); 4. a b a b = 1. Propoziţia 4.4 Afirmaţiile 1. a b = 0; 2. a b = 1; 3. a = b; sunt echivalente. Propoziţia 4.5 şi verifică axiomele unei distanţe. 4.4 Funcţii booleene În continuare vom considera o algebră booleană particulară (vezi şi Exemplul 4.2) A= ({0, 1}, +,, 0, 1) unde + 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 Mai avem 0 = 1, 1 = 0. Axiomele unei algebre booleene se verifică imediat. În mod uzual, operatorul se omite (similar cu operatorul de înmulţire din matematică). Vom nota de asemenea {0, 1} n = {0, 1} {0, 1}... {0, 1}. }{{} n ori Definiţia 4.3 O funcţie booleană f(x 1, x 2,..., x n ) este o aplicaţie f : {0, 1} n {0, 1}. Exemplul 4.3 Pentru n = 2 se pot construi 16 funcţii booleene de două variabile: x 1 x 2 f 0 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 f 11 f 12 f 13 f 14 f 15 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 În general pentru n oarecare vom avea:
42 PRELEGEREA 4. Propoziţia 4.6 Pentru orice n 1 se pot defini 2 2n variabile. funcţii booleene de n Demonstraţie: Este imediată, deoarece {0, 1} n are 2 n elemente, iar {0, 1} numai două. Definiţia 4.4 Fie f, g : {0, 1} n {0, 1}. Definim f + g = h prin h(x 1, x 2,..., x n ) = f(x 1, x 2,..., x n ) + g(x 1, x 2,..., x n ); fg = h prin h(x 1, x 2,..., x n ) = f(x 1, x 2,..., x n ) g(x 1, x 2,..., x n ); f = g prin g(x 1, x 2,..., x n ) = (f(x 1, x 2,..., x n )). Exemplul 4.4 Să considerăm n = 2 şi funcţiile booleene (f 5 şi f 1 din Exemplul 4.3 f 0 1 g 0 1 0 0 1 0 0 0 1 0 1 1 0 1 Atunci funcţiile f +g, fg, f şi g sunt definite conform următorului tablou: x 1 x 2 f g f + g fg f g 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 Deci operaţiile cu funcţii sunt definite punct cu punct; reprezentarea lor sub formă tabelară constituie o modalitate convenabilă de calcul deoarece folosesc în mod direct formulele din tabelele de operaţii ale algebrei booleene A. Teorema 4.9 Fie F n mulţimea funcţiilor booleene de n (n 1) variabile. Sistemul F n = (F n, +,, 0, 1) formează o algebră booleană (algebra Boole a funcţiilor booleene de n variabile). Demonstraţie: Axiomele algebrei boolene se verifică uşor, folosind Definiţia 4.4. Funcţia 0 este definită iar funcţia 1 prin 0(x 1, x 2,..., x n ) = 0, x i {0, 1} (1 i n), 1(x 1, x 2,..., x n ) = 1, x i {0, 1} (1 i n).
4.4. FUNCŢII BOOLEENE 43 Definiţia 4.5 Fie F n algebra Boole a funcţiilor booleene de n variabile. Se numeşte pondere o aplicaţie w : F n N definită w(f) = card(f 1 (1)) (numărul de elemente din {0, 1} n care au imaginea 1 prin f). Exemplul 4.5 În Exemplul 4.3 sunt listate elementele algebrei F 2. Ponderile acestor elemente sunt listate în tabelul următor: f 0 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 f 11 f 12 f 13 f 14 f 15 w 0 1 1 2 1 2 2 3 1 2 2 3 2 3 3 4 Următorul rezultat este imediat. Teorema 4.10 1. w(f) + w(f ) = 2 n ; 2. w(f + g) + w(fg) = w(f) + w(g). Exemplul 4.6 Folosind Teorema 4.8 se poate defini şi o relaţie de ordine parţială pe F n. Astfel f g fg = 0 f + g = 1 Algebra F 1 a funcţiilor booleene de o variabilă este x f 0 f 1 f 2 f 3 0 0 0 1 1 1 0 1 0 1 Pe baza relaţiei de ordine definite mai sus, ele se pot aranja sub următoarea diagramă Venn: f 0 f 1 f 2 f 3 Vom încerca în continuare să definim o reprezentare a funcţiilor booleene, utilă în construirea circuitelor liniare. Această reprezentare se bazează pe noţiunea de minterm. Definiţia 4.6 Fie n (n 1) un număr întreg şi i [0, 2 n 1]. Considerăm (i 1, i 2,..., i n ) 2 reprezentarea binară a lui i: n i = i k 2 n k (0 i k 1). k=1 Atunci funcţia minterm m i (x { 1, x 2,..., x n ) F n este definită prin 1 dacă x1 = i m i (x 1, x 2,..., x n ) = 1, x 2 = i 2,..., x n = i n 0 altfel
44 PRELEGEREA 4. Vom nota în continuare i = (i 1, i 2,..., i n ) 2 reprezentarea binară a numărului întreg i [0, 2 n 1]. Propoziţia 4.7 1. m i m j = 0 dacă i j. 2. m i m i = m i. Demonstraţie: Imediat. Teorema 4.11 Orice funcţie booleană poate fi reprezentată în mod unic ca sumă de mintermi. Demonstraţie: Prin inducţie după k = w(f). k = 0: trivial; k = 1: orice astfel de funcţie este un minterm. k k +1: Să presupunem că f este o funcţie de pondere k +1. Deci există un întreg i = (i 1, i 2,..., i n ) 2 astfel ca f(i 1, i 2,..., i n ) = 1. Atunci conform Teoremei 4.10 f(x 1, x 2,..., x n ) = m i (x 1, x 2,..., x n ) + g(x 1, x 2,..., x n ) unde w(g) k. Unicitatea este şi ea imediată. Corolarul 4.1 Orice funcţie booleană f F n este de forma f(x 1, x 2,..., x n ) = i I m i (x 1, x 2,..., x n ) unde I {0, 1,..., 2 n 1}. Corolarul 4.2 Dacă f(x 1, x 2,..., x n ) = m i (x 1, x 2,..., x n ), i I g(x 1, x 2,..., x n ) = m i (x 1, x 2,..., x n ), atunci i J f(x 1, x 2,..., x n ) + g(x 1, x 2,..., x n ) = m i (x 1, x 2,..., x n ), f(x 1, x 2,..., x n )g(x 1, x 2,..., x n ) = i I J i I J f (x 1, x 2,..., x n ) = i I m i (x 1, x 2,..., x n ). m i (x 1, x 2,..., x n ), Exemplul 4.7 Fie n = 2 şi funcţia booleană: f(x 1, x 2 ) = m 0 (x 1, x 2 ) + m 2 (x 1, x 2 ) + m 3 (x 1, x 2 ) Un tabel cu valorile tuturor funcţiilor minterm de două variabile şi cu valorile funcţiei f este: x 1 x 2 m 0 (x 1, x 2 ) m 1 (x 1, x 2 ) m 2 (x 1, x 2 ) m 3 (x 1, x 2 ) f 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1
4.4. FUNCŢII BOOLEENE 45 Teorema 4.11 are şi o interpretare geometrică, deosebit de utilă pentru verificarea anumitor proprietăţi legate de aplicaţii la circuite. Astfel, să considerăm un cub n dimensional. Acesta are 2 n vârfuri, notate cu vectori de n elemente binare {0, 1}. Din fiecare vârf pleacă n laturi. O latură leagă două vârfuri dacă şi numai dacă notarea acestora diferă printr-o singură poziţie. În figura de mai jos sunt prezentate 1 - cub, 2 - cub şi 3 - cubul. 1 0 n = 1 11 10 01 00 n = 2 111 011 101 110 001 010 100 000 n = 3 Teorema 4.12 O funcţie booleană f F n se poate exprima în mod unic ca o submulţime de vârfuri ale unui n - cub. Demonstraţie: Se poate stabili o corespondenţă biunivocă între funcţiile minterm şi vârfurile unui n - cub astfel: m i (x 1, x 2,..., x n ) (i 1, i 2,..., i n ) 2 = i. Teorema 4.11 asigură unicitatea acestei reprezentări. Exemplul 4.8 Fie funcţia booleană f(x, y, z) = m 0 (x, y, z) + m 2 (x, y, z) + m 4 (x, y, z) + m 6 (x, y, z) + m 7 (x, y, z) O notaţie des utilizată este f(x, y, z) = (0, 2, 4, 6, 7), sau f are mulţimea de indici I = {0, 2, 4, 6, 7}. În reprezentare geometrică, funcţia are forma de jos, unde vârfurile care o definesc sunt marcate cu cercuri albe. 111 011 101 110 001 010 100 000 Pe un n - cub se poate defini şi o distanţă în modul următor:
46 PRELEGEREA 4. Definiţia 4.7 Fie i = (i 1, i 2,..., i n ) 2, j = (j 1, j 2,..., j n ) 2 două vârfuri ale unui n - cub. Distanţa dintre i şi j se defineşte prin n d(i, j) = (i k j k ). k=1 Expresia i k j k are valoarea 0 sau 1 după cum cei doi operanzi au sau nu aceeaşi valoare. Suma se face în mulţimea N a numerelor naturale. d(i, j) desemnează numărul de poziţii prin care diferă reprezentările binare ale lui i şi j. Se verifică uşor că d este o distanţă. Exemplul 4.9 Fie punctele i = (0, 1, 0, 1) şi j = (1, 0, 0, 1) într-un 4 - cub. Distanţa dintre ele este d(i, j) = 1 + 1 + 0 + 0 = 2. 4.5 Exerciţii Exerciţiul 4.1 Să se arate că într-o algebră booleană au loc relaţiile: a (a b) = a b, a (a b) = a b. Exerciţiul 4.2 Într-o algebră booleană: (a b c) (a b c) (a b c) (a b c ) = (a b) (b c) (a c) Exerciţiul 4.3 Demonstraţi afirmaţiile din Propoziţiile 4.2, 4.3 şi 4.4. Exerciţiul 4.4 Demonstraţi Propoziţia 4.5 Exerciţiul 4.5 Să se arate că aplicaţia pondere este o funcţie de evaluare pozitivă a laticii F n. Exerciţiul 4.6 Să se construiască diagrama Venn a elementelor laticii F 2. Exerciţiul 4.7 Să se arate că pe F n se poate defini o distanţă prin relaţia δ(f, g) = w(f + g) w(fg). Să se construiască un tabel cu distanţele elementelor lui F 2. Exerciţiul 4.8 Demonstraţi Teorema 4.10, Propoziţia 4.7 şi Corolarul 4.2. Exerciţiul 4.9 Demonstraţi unicitatea reprezentării unei funcţii booleene ca sumă de mintermi (Teorema 4.11). Exerciţiul 4.10 Să se reprezinte un 4 - cub. Care sunt reprezentările geometrice ale funcţiilor f(x 1, x 2, x 3, x 4 ) scrise compact astfel: (1, 5, 8, 10, 12); (0, 4, 5, 6, 9, 10, 14, 15); (3, 11, 15). Exerciţiul 4.11 Să se arate că funcţia d din Definiţia 4.7 verifică postulatele unei distanţe.