Sunteți pe pagina 1din 22

Elemente de algebră booleeană 1

CAPITOLUL 1

Elemente de algebră booleeană

Algebra Boole a fost concepută de către matematicianul englez George Boole


(1815 ÷ 1864) ca o metodă simbolică de tratare a funcţiilor logicii formale. Abia în
1938, Claude Shannon avea să o utilizeze pentru prima oară la analiza circuitelor de
comutaţie.
Algebra Boole, cunoscută şi sub denumirea de Algebra logică sau Calculul
propoziţional, operează cu propoziţii despre care se poate afirma că sunt adevărate
sau false. Fiecărei propoziţii i se poate asocia o variabilă (numită variabilă logică
sau binară) care ia valoarea 1 când propoziţia este adevărată şi 0 când propoziţia
este falsă.

Exemple:
Fie un întrerupător X căruia îi asociem variabila x, fig. 1.1 a.

X Y
(x) (y)

a) b)

Fig. 1.1. Explicativă pentru propoziţiile simple


a) întrerupătorul X este (nu este) acţionat
b) bobina releului Y este (nu este) excitată

Propoziţia "Întrerupătorul X este acţionat" poate fi adevărată (x=1) sau falsă


(x=0).
Similar, pentru bobina de releu Y, fig. 1.1 b, se poate construi propoziţia
"Bobina Y este excitată", propoziţie care poate fi adevărată (y=1) sau falsă (y=0).

Propoziţiile pot fi simple (cazul exemplelor anterioare) sau compuse.


Propoziţiile compuse sunt cele a căror valoare de adevăr depinde de valoarea
de adevăr a propoziţiilor simple din care se compun şi de tipul legăturilor logice
dintre acestea.
Legăturile logice (operaţiile) de bază sunt prezentate în tab. 1.1.
Se observă că denumirile şi simbolurile operaţiilor logice diferă de la un
domeniu la altul. În cele ce urmează, vom utiliza aproape exclusiv notaţiile din
matematică.
2 Capitolul 1

Tab. 1.1. Denumirea şi simbolizarea operaţiilor de bază

Matematică Logică Tehnică


Prima lege de compoziţie
(suma logică) Disjuncţie SAU (OR)
x1+ x2 x1∨ x2 x1∨ x2
A doua lege de compoziţie Conjuncţie ŞI (AND)
(produsul logic) x1∧ x2 x1⋅ x2
x1⋅ x2
Elementul invers Negaţie NU (NOT)
x x x

Propoziţia compusă poartă numele de funcţie logică sau funcţie binară şi ia


valoarea logică 1 când este adevărată şi 0 când este falsă.
Funcţia logică este complet definită cu ajutorul unui tabel finit (tabel de
adevăr) având în primele coloane valorile logice ale propoziţiilor simple
(considerate independente) şi în ultima coloană - valorile logice ale funcţiei, obţinute
prin aplicarea operaţiilor logice asupra valorilor logice corespunzătoare ale
propoziţiilor simple.

1.1. Funcţii logice elementare


Pornind de la expresia generală a unei funcţii de n variabile binare,
y = f (x1, x2, ..., xn), (1.1)
observăm că numărul total de termeni care se pot construi cu ajutorul celor n
variabile binare este m = 2n, iar numărul total de funcţii care rezultă combinând între
ei cei m termeni este:
m m! n
N fn = C 0m + C1m + ... + C nm = ∑ j!(m − j)! = 2 m = 22 (1.2)
j= 0

Particularizând relaţiile (1.2) pentru n = 0, 1 şi 2 variabile, obţinem:


- pentru n = 0, Nf0 = 2 funcţii şi anume y1 = 0 şi y2 = 1;
- pentru n = 1, deci y = f (x), Nf1 = 4 funcţii şi anume y1 = 0, y2 = 1, y3 = x,
y4 = x ;
- pentru n = 2, deci y = f (x1, x2), se obţin Nf2 = 16 funcţii pe care le
prezentăm în tabelul 1.2.
Deşi tabelul 1.2 este sugestiv prin el însuşi, prezentăm în continuare unele
observaţii şi comentarii utile:
- ordinea x2x1 a variabilelor din tabelele de adevăr decurge din modul de
scriere binară a unui număr zecimal:
(N)zec. = 2n-1xn + 2n-2xn-1 + ... + 21x2 + 20x1 = (xnxn-1 ... x2x1)bin., (1.3)
unde xn este - după cum se observă - bitul cel mai semnificativ, iar x1 - bitul cel mai
Elemente de algebră booleeană 3

puţin semnificativ.
Tab. 1.2. Funcţii logice de două variabile

CIRCUITUL FUNCŢIA LOGICĂ


Nr. Structura Denumirea Tabelul de Schema logică Simbolul şi Denu-
crt. releistică adevăr echivalentă expr. alg. mirea
Circuit
1. deschis y1 = 0 Element
nul
Circuit
2. închis y2 = 1 Element
unu

X1 x1 y3
Y Neinversor x1 y3 Identita-
3. 0 0
te
x1 y 1 1 y3 = x1

x1 y4
4. X1 Y Inversor 0 1 x1 y4 Negaţie
x1 y 1 0 y4 = x1

x2 y5
5. X2 Y Neinversor 0 0 x2 y5 Identita-
te
x2 y 1 1 y5 = x2

X2 Y x2 y6
6. Inversor x2 y6 Negaţie
0 1
x2 y y6 = x 2
1 0

x2 x1 y7
X1 X2 0 0 0 x1
ŞI y7 Conjunc-
7. Y 0 1 0 x2
x1 x2 y (AND) ţie
1 0 0 y7 = x1 ⋅ x2
1 1 1

x2 x1 y8
X1 Negarea
0 0 1 x1 y8 conjunc-
Y ŞI-NU
8. X2 x1 0 1 1 x2
(NAND) ţiei
y y8 = x1 ⋅ x 2
x2 1 0 1
1 1 0
4 Capitolul 1

CIRCUITUL FUNCŢIA LOGICĂ


Nr. Structura Denumirea Tabelul de Schema logică Simbolul şi Denu-
crt. releistică adevăr echivalentă expr. alg. mirea

X1 x2 x1 y9
Y 0 0 0 x1 y9 Disjunc-
X2 x1 SAU x2
9. y 0 1 1
(OR) 1 0 1 y9= x1 + x2 ţie
x2
1 1 1

x2 x1 y10
x1 y10 Negarea
X1 X2 0 0 1 x2
10. Y SAU-NU disjunc-
0 1 0
x1 x2 y (NOR) 1 0 0
ţiei
y10= x1 + x 2
1 1 0

X1 X2 x1
x2 x1 y11 x1 y11
Y COINCI- x2
0 0 1
DENŢĂ x2 Echiva-
11. y 0 1 0 y11 y11=x1~x2=
x1 x2 (NXOR) lenţă
1 0 0 x1x 2 + x1 x 2
1 1 1

x2 x1 y12 x1
y12 Negarea
X1 X2 SAU x1
0 0 0 x2
Y EXCLUSIV echiva-
12. 0 1 1 x2 y12=x1⊕x2= lenţei
y (XOR) y12
1 0 1 x1 x 2 + x1 x 2
x1 x2
1 1 0

X1 x2 x1 y13
(nu are x1 Implica-
0 0 1 x1 y13
Y denumire y13 x2 ţie
13. X2 x1 0 1 0 x2
y consacrată) directă
1 0 1 y13= x 1+x2
x2 1 1 1

x1
Y x2 x1 y14 y14
X1 X2 INTERDIC- x2 Negarea
ŢIE 0 0 0 implica-
14. 0 1 1
x1
y14 y14= x 1 + x 2
x1 x2 y x2 ţiei
1 0 0 =x ⋅ x directe
1 2
1 1 0
Elemente de algebră booleeană 5

CIRCUITUL FUNCŢIA LOGICĂ


Nr. Structura Denumirea Tabelul de Schema logică Simbolul şi Denu-
crt. releistică adevăr echivalentă expr. alg. mirea

x2 x1 y15
X1 (nu are x1 Implica-
0 0 1 y15
denumire x2 ţia
15. X2 x Y 0 1 1 x1
consacrată) x2 y15 inversă
y 1 0 0 y15=x1+ x 2
x2 1 1 1

x2 x1 y16 x1
X1 X2 INTERDIC- x2 y16 Negarea
Y 0 0 0 x1
ŢIE y16 implica-
16. x1 x2 y 0 1 0 x2 y16= x 1 + x 2 ţiei
1 0 1
= x 1⋅x2 inverse
1 1 0

Exemplu:
(6)zec. = 22⋅1 + 21⋅1 + 20⋅0 = (110)bin.

- cele 16 funcţii apar în perechi (funcţia şi inversa ei);


- y1 şi y2, nu depind de x1 şi x2, deci nu sunt funcţii ci constante;
- y3 (y5) şi y4 (y6), nu depind de x2 (x1), deci nu sunt funcţii de două variabile,
ci doar de una singură;
- din tabelele de adevăr ale funcţiilor y7 şi y8, care corespund circuitelor ŞI
(AND), respectiv ŞI-NU (NAND), observăm că y7=1 (y8=0), numai dacă ŞI x1 ŞI x2
sunt 1 logic, deci ŞI întrerupătorul X1 ŞI întrerupătorul X2 sunt acţionate;
- din tabelele de adevăr ale funcţiilor y9 şi y10, care corespund circuitelor
SAU (OR), respectiv SAU-NU (NOR), observăm că y9=1 (y10=0), numai dacă SAU
x1, SAU x2, SAU ambele sunt 1 logic, deci SAU întrerupătorul X1, SAU X2, SAU
ambele sunt acţionate;
- y11=1, numai atunci cînd valorile logice ale variabilelor de intrare
COINCID, deci întrerupătoarele X1 şi X2 sunt fie ambele neacţionate, fie ambele
acţionate;
- y12=1, numai atunci cînd SAU x1, SAU x2, EXCLUSIV ambele sunt 1 logic;
- y13=0 (y14=1), numai dacă x1=1 şi x2=0, deci numai dacă X1 este acţionat şi
X2 este neacţionat;
- y15=0 (y16=1), numai dacă x1=0 şi x2=1, deci numai dacă X1 este neacţionat
şi X2 este acţionat.

Exprimarea matematică a unei funcţii logice necesită introducerea axiomelor


şi a regulilor de calcul ale algebrei Boole.
6 Capitolul 1

1.2. Axiomele algebrei Boole


Fie o mulţime M compusă din n elemente (x1, x2, ..., xn) şi operaţiile "⋅"
(produs logic) şi "+" (sumă logică) deja prezentate.
Spunem că mulţimea M formează o algebră Boole dacă:
1. Mulţimea M conţine cel puţin două elemente distincte:
∃ xi, xj ∈ M, cu xi ≠ xj. (1.4)
2. Pentru orice xi, xj ∈ M, avem:
xi ⋅ xj ∈ M şi xi + xj ∈ M, cu 1 ≤ i, j ≤ n. (1.5)
3. Operaţiile "⋅" şi "+" prezintă următoarele proprietăţi:
a) comutativitatea:
x1 ⋅ x2 = x2 ⋅ x1; (1.6)
x1 + x2 = x2 + x1; (1.7)
b) asociativitatea:
x1 ⋅ x2 ⋅ x3 = (x1 ⋅ x2) ⋅ x3 = x1 ⋅ (x2 ⋅ x3) = ... ; (1.8)
x1 + x2 + x3 = (x1 + x2) + x3 = x1 + (x2 + x3) = ... ; (1.9)
c) distributivitatea (uneia faţă de cealaltă):
x1 ⋅ (x2 + x3) = x1 ⋅ x2 + x1 ⋅ x3; (1.10)
x1 + (x2 ⋅ x3) = (x1 + x2) ⋅ (x1 + x3); (1.11)
4. Ambele operaţii admit câte un "element neutru" cu proprietatea:
x ⋅ 1 = 1 ⋅ x = x; (1.12)
x + 0 = 0 + x = x; (1.13)
5. Pentru orice x ∈ M, va exista un element x (non x) cu proprietăţile:
x ⋅ x = 0; (1.14)
x + x = 1. (1.15)
Relaţiile 1.14 şi 1.15 poartă numele de principiul contradicţiei, respectiv -
principiul terţului exclus şi se enunţă astfel:
Principiul contradicţiei: o propoziţie nu poate fi şi adevărată şi falsă în
acelaşi timp.
Principiul terţului exclus: o propoziţie este sau adevărată, sau falsă, o a treia
posibilitate fiind exclusă.

1.3 Regulile de calcul ale algebrei Boole


Pornind de la axiome, se deduc următoarele teoreme care devin reguli de
calcul în cadrul algebrei Boole:
1. Principiul dublei negaţii:
x = x (dubla negaţie este echivalentă cu afirmaţia). (1.16)
Elemente de algebră booleeană 7

2. Idempotenţa:
x14
⋅ x2
⋅ ...4
3⋅x = x ; (1.17)
n
x1+42
4x + ...
43 +x=x.
4 (1.18)
n
3. Absorbţia:
x1 ⋅ (x1 + x2) = x1; (1.19)
x1 + (x1 ⋅ x2) = x1. (1.20)
4. Legile elementelor neutre:
x ⋅ 0 = 0; (1.21)
x + 0 = x; (1.22)
x ⋅ 1 = x; (1.23)
x + 1 = 1. (1.24)
5. Formulele lui De Morgan:
x1 ⋅ x 2 = x 1 + x 2 ; (1.25)
x1 + x 2 = x1 ⋅ x 2 . (1.26)

Exerciţii:
Justificăm în continuare relaţiile 1.11, 1.19, 1.20, 1.25 şi 1.26:
(1.11): x1 + (x2 x3) = (x1 + x2) (x1 + x3).
Se lucrează în membrul drept, ţinând seama de relaţiile 1.17, 1.10 şi 1.24, se
obţine succesiv:
(x1 + x2) (x1 + x3) = x1 x1 + x1 x3 + x1 x2 + x2 x3 = (conf. 1.17) =
= x1 + x1 x3 + x1 x2 + x2 x3 = (conf. 1.10) =
= x1 (1 + x3 + x2) + x2 x3 = (conf. 1.24) =
= x1 + x2 x3 = x1 + (x2 x3).
(1.19): x1 (x1 + x2) = x1 x1 + x1 x2 = (conf. 1.17) =
= x1 + x1 x2 = (conf. 1.10) = x1 (1 + x2) = (conf. 1.24) = x1.
(1.20): x1 + (x1 x2) = x1 + x1 x2 = x1 (1 + x2) = (conf. 1.24) = x1.
Relaţiile (1.25) şi (1.26) se verifică cu ajutorul tabelului de adevăr (tab. 1.3):

Tab. 1.3. Demonstrarea relaţiilor lui De Morgan


rel. 1.25 rel.1.26

x2 x1 x1⋅x2 x1 ⋅ x2 x1 x2 x1 + x2 x1+ x2 x1 + x2 x1 ⋅ x2

0 0 0 1 1 1 1 0 1 1
0 1 0 1 0 1 1 1 0 0
1 0 0 1 1 0 1 1 0 0
1 1 1 0 0 0 0 1 0 0
8 Capitolul 1

1.4. Exprimarea algebrică a funcţiilor booleene


O funcţie logică de n variabile independente, y = f (x1, x2, ..., xn), poate fi
exprimată algebric sub formă canonică (disjunctivă sau conjunctivă), sub formă
elementară (disjunctivă sau conjunctivă) sau sub formă neelementară.

1.4.1. Forma canonică


Forma canonică presupune operarea cu termeni canonici. Prin termen
canonic înţelegem un termen în care sunt prezente toate variabilele independente,
luate sub formă directă sau negată.

1.4.1.1. Forma canonică disjunctivă


În cadrul formei canonice disjunctive (FCD) termenii sunt legaţi între ei prin
disjuncţii, iar variabilele - în cadrul fiecărui termen, numit "constituent al unităţii" -
prin conjuncţii.
Exemplu:
În cazul unei funcţii de două variabile, tab. 1.4, Pk (termenul canonic al FCD) va
fi produsul logic al celor două variabile, luate direct sau negate, forma directă
corespunzînd valorii logice 1 a variabilei, iar cea negată - valorii 0, astfel încât să
rezulte Pk = 1 (de aici denumirea de "constituent al unităţii").

Tab. 1.4. Explicativ pentru generarea FCD şi FCC ale funcţiilor de două variabile

x2 x1 Pk ∝\f f0 f1 ... f10 ... f15 Sk


0 0 P0 = x 2 ⋅ x 1 α0 0 1 0 1 S0 = x2+x1
0 1 P1 = x 2 ⋅x1 α1 0 0 1 1 S1 = x2+ x1
1 0 P2 = x2⋅ x1 α2 0 0 0 1 S2 = x 2 +x1
1 1 P3 = x2⋅x1 α3 0 0 1 1 S3 = x 2 + x 1

Vectorul α = {α0, α1, α2, α3} din tab. 1.4, ale cărui componente αk pot lua
valorile 0 sau 1 logic, particularizează funcţia de două variabile f (x1, x2).
2 n
Se observă că există 2 2 funcţii de două variabile, sau, în general, 2 2 , unde s-a
notat cu n numărul variabilelor de intrare.
Forma canonică disjunctivă generală a unei funcţii de două variabile este deci:
fFCD(x1, x2) = α0 ⋅ P0 + α1 ⋅ P1 + α2 ⋅ P2 + α3 ⋅ P3, (1.27)
sau comprimat:
3
fFCD(x1, x2) = ∨ α k ⋅ Pk . (1.28)
k =0
Elemente de algebră booleeană 9

Pentru o funcţie de n variabile, FCD este:


N −1
fFCD(x1, x2, ..., xn) = ∨ α k ⋅ Pk , unde N = 2n. (1.29)
k=0

1.4.1.2. Forma canonică conjunctivă


În cadrul formei canonice conjunctive (FCC), termenii sunt legaţi între ei prin
conjuncţii, iar variabilele - în cadrul fiecărui termen, numit "constituent al lui zero" -
prin disjuncţii.

Reluînd exemplul funcţiilor de două variabile, Sk (termenul canonic al FCC, tab.


1.4) va fi suma logică a celor două variabile luate sub formă directă sau negată,
forma directă corespunzînd valorii logice 0 a variabilei, iar cea negată - valorii 1,
astfel încât să rezulte Sk = 0 (de aici denumirea de "constituent al lui zero").
2
Cele 2 2 funcţii logice de două variabile se vor obţine din FCC prin
particularizarea valorilor componentelor vectorului α.
Forma canonică conjunctivă generală a unei funcţii de două varibile este deci:
fFCC(x1, x2) = (α0 + S0) ⋅ (α1 + S1) ⋅ (α2 + S2) ⋅ (α3 + S3), (1.30)
sau comprimat:
3
fFCC(x1, x2) = ∧ (α k + S k ) . (1.31)
k=0

Pentru o funcţie de n variabile, FCC este:


N −1
fFCC(x1, x2, ..., xn) = ∧ (α k + S k ) , unde N = 2n. (1.32)
k =0

Cu ajutorul exemplului anterior se poate demonstra că FCD şi FCC sunt


echivalente.
Astfel, calculând f10 în ambele moduri, obţinem:
3
f10FCD(x1, x2) = ∨ α k ⋅ Pk = x 2 x1+x2x1 => x1( x 2 + x2) = x1; (1.33)
k =0
3
f10FCC(x1, x2) = ∧ (α k + S k ) = (x2 + x1)( x 2 + x1) =>
k=0
=> x2x1 + x1 x 2 + x1 = x1 (x2 + x 2 +1) = x1, (1.34)
rezultate care susţin afirmaţia de echivalenţă a celor două forme de exprimare.

1.4.2. Forma elementară


Forma elementară (FE) are în alcătuire cel puţin un termen elementar. Prin
termen elementar înţelegem un termen care nu conţine toate cele n variabile ale
funcţiei, deci care nu este canonic.
La forma elementară se ajunge prin minimizare.
10 Capitolul 1

Exemplu:
Funcţia de trei variabile:
fFE(x1, x2, x3) = x1x2x3 + x1 x 2 (1.35)
este dată sub forma elementară. Termenul x1 x 2 este elementar deoarece nu
conţine toate variabilele de intrare. Forma elementară (1.35) se obţine prin
minimizare din forma canonică:
fFCD(x1, x2, x3) = x1x2x3 + x1 x 2x3 + x1 x 2 x 3. (1.36)
Într-adevăr, dînd factor comun x1 x 2 între ultimii doi termeni din (1.36) şi
aplicînd principiul terţului exclus, obţinem:
f (x1, x2, x3) = x1x2x3 + x1 x 2(x3 + x 3) = x1x2x3 + x1 x 2. (1.37)

1.4.3. Forma neelementară


Funcţiile logice scrise sub formă canonică sau elementară (ambele,
disjunctive sau conjunctive) pot fi aduse la forma neelementară (FNE) dacă există
variabile sau grupuri de variabile comune mai multor termeni.
Comparativ cu formele din care provin, formele neelementare se pot
implementa cu circuite logice având un număr mai mic de intrări, dar structurate pe
mai multe niveluri logice.

Exemplu:
Pornind de la funcţia:
f (x1, x2, x3) = x1x2x3 + x1 x 2 x 3, (1.38)
dată în FCD, observăm că variabila x1 este comună ambilor termeni şi, prin
urmare, putem scrie:
f FNE(x1, x2, x3) = x1(x2x3 + x 2 x 3), (1.39)
unde forma (1.39) este neelementară.
Implementarea formelor (1.38) şi (1.39) conduce la circuitele din fig. 1.3.
Se remarcă scăderea numărului de intrări/poartă şi creşterea numărului de
niveluri logice în cazul implementării FNE, fig. 1.3 b.

niv. 1 niv. 2 niv. 1 niv. 2 niv. 3


x1
x2
x2 x3
x3
x1 x2
f(x1,x2,x3)
x3
x2
x3 x1 f(x1,x2,x3)

a) FCD b) FNE

Fig. 1.3. Comparaţie FCD - FNE


Elemente de algebră booleeană 11

1.5. Reprezentarea funcţiilor booleene cu ajutorul diagramelor


Veitch - Karnaugh
Un alt mod de reprezentare a funcţiilor booleene în afara tabelului de adevăr
(TA) îl constituie diagrama Veitch - Karnaugh (VK).
Reluând exemplul funcţiei de două variabile ŞI (AND) al cărei tabel de
adevăr este tab. 1.5, observăm corespondenţa celor patru combinaţii logice ale
variabilelor x1 şi x2 cu vârfurile unui pătrat de latură l = 1, desenat în planul (x1, x2),
fig. 1.4.
Este uşor de sesizat faptul că orice sens de deplasare am alege pe conturul
pătratului din fig. 1.4, coordonatele unui vârf diferă de coordonatele unui vârf vecin
prin valoarea logică a unui singur bit.

Tab. 1.5. Tabelul de adevăr al funcţiei


00 10
ŞI (AND) de două variabile x2

x2 x1 y
0 0 0
0 1 0 01 11
1 0 0
1 1 1 x1

Fig. 1.4. Un model de ordonare


ciclică a combinaţiilor logice ale
celor două variabile de intrare.

Rearanjând liniile tabelului de adevăr (tab. 1.5) după modelul sugerat în fig.
1.4, obţinem tab. 1.6 în care oricare două linii vecine, inclusiv prima cu ultima,
diferă între ele prin valoarea logică a unei singure variabile.

Tab. 1.6. Explicativ pentru construirea codului binar


reflectat al unei funcţii de două variabile

x2 x1 y
0 0 0
0 1 0
1 1 1
1 0 0

Examinând primele două coloane ale tab. 1.6, constatăm că ele se pot obţine
prin introducerea unei "oglinzi" după 21 = 2 linii pentru coloana x1 şi după 22 = 4
linii pentru coloana x2.
12 Capitolul 1

Desigur, reflectarea în oglindă a valorilor logice ale variabilei x2 nu mai are


loc deoarece numărul de linii ale TA al unei funcţii de două variabile este 22 = 4.
Codul binar reflectat obţinut în tab. 1.6 mai este cunoscut şi sub denumirea
de cod ciclic sau cod Gray.
Prezentând tab. 1.6 într-o formă în care valorile logice alocate variabilelor x1
şi x2 constituie adresele celor 22 = 4 locaţii în care funcţia ia valori, obţinem
diagrama VK a funcţiei AND de două variabile, fig. 1.5.
Faptul că diagrama VK are caracter ciclic este evidenţiat de prima şi ultima
coloană care pot fi considerate vecine deoarece diferă între ele prin valoarea logică a
unui singur bit de adresă (00 - 10).

x2x1 00 01 11 10

0 0 1 0

Fig. 1.5. Diagrama VK a funcţiei ŞI (AND)


de două variabile

Diagrama VK din fig. 1.5 poate fi deci privită ca un cilindru obţinut prin
curbarea figurii şi suprapunerea laturilor din stânga şi din dreapta (îngroşate în
desen), devenite generatoare.
În cazul unei funcţii (AND) de trei variabile, liniile tabelului de adevăr (tab.
1.7) pot fi puse în corespondenţă cu coordonatele vârfurilor unui cub, fig. 1.6.

Tab. 1.7. Tabelul de adevăr al funcţiei


ŞI (AND) de 3 variabile x3

x1 x3 x2 x1 y 100
101
0 0 0 0
0 0 1 0
110 111
0 1 0 0 000
0 1 1 0 x1
001
1 0 0 0
1 0 1 0
1 1 0 0 010 011
1 1 1 1 x2

Fig. 1.6. Un model de ordonare


ciclică a combinaţiilor logice ale
celor 3 variabile de intrare

Observăm şi în acest caz, că diferenţa coordonatelor a două vârfuri vecine ale


cubului este - orice drum am alege - de un singur bit, fapt care ne sugerează o
Elemente de algebră booleeană 13

rearanjare a tab. 1.7 pe principiul codului binar reflectat, tab. 1.8.

Tab. 1.8. Explicativ pentru construirea codului binar


reflectat al unei funcţii de 3 variabile

x3 x2 x1 y
0 0 0 0
0 0 1 0
0 1 1 0
0 1 0 0
1 1 0 0
1 1 1 1
1 0 1 0
1 0 0 0

Dispunerea "oglinzilor" în tab. 1.8 se face la fiecare 21 = 2 locaţii în coloana


lui x1, la fiecare 22 = 4 locaţii în coloana lui x2 şi la fiecare 23 = 8 locaţii în coloana
lui x3.
Diagrama VK corespunzătoare tabelului 1.8 poate fi prezentată de maniera
din fig. 1.7 a sau b.
x2x1 x1
00 01 11 10
x3
0 0 0 0 0 0 0 0 0

1 0 0 1 0 0 0 1 0 x3

a) b) x2

Fig. 1.7. Două modalităţi de reprezentare a diagramei VK a unei funcţii de 3 variabile

Ambele prezentări permit evidenţierea ciclicităţii prin curbarea figurilor,


suprapunerea laturilor îngroşate şi transformarea dreptunghiului în cilindru. În fig.
1.7 b au fost marcate numai zonele în care variabilele iau valoarea logică 1.
Pentru funcţii de patru variabile diagrama VK poate fi reprezentată ca în fig.
1.8 a sau b.
În ambele cazuri este respectat principiul ciclităţii, pătratul care reprezintă
diagrama VK putînd fi transformat în cilindru atît în cazul în care se suprapun
laturile verticale, cât şi în cazul în care se suprapun laturile orizontale.
Într-adevăr, locaţia 0000 este vecină atît cu locaţia 0010 cât şi cu 1000.
Pentru funcţii de cinci variabile se utilizează două tabele alăturate de tipul
celui din fig. 1.8.a (sau b), unul pentru x5 şi altul pentru x 5.
14 Capitolul 1

x2x1 x1
00 01 11 10
x4x3
00

01
x3
11
x4
10

x2
a) b)

Fig. 1.8. Două modalităţi de reprezentare a diagramei VK a unei funcţii de 4 variabile

Pentru funcţii de mai mult de cinci variabile, utilizarea diagramelor VK


devine anevoioasă şi este preferabil să se recurgă la alte metode, algebrice sau
tabelare.

1.6. Minimizarea funcţiilor logice


Cu cât o funcţie logică are o expresie mai simplă (conţine mai puţini termeni,
iar termenii - mai puţine variabile), cu atât circuitul logic rezultat prin
implementarea funcţiei este mai simplu (conţine mai puţine porţi logice, porţile
având un număr mai mic de intrări), fiabilitatea sa creşte, iar preţul de cost scade.
Suntem, prin urmare, deosebit de interesaţi în simplificarea (minimizarea) formei
analitice a unei funcţii booleene, având astfel garanţia obţinerii unui circuit logic mai
simplu şi mai performant.
Operaţiunea de minimizare poate fi aplicată funcţiilor logice exprimate sub
formă canonică (disjunctivă sau conjunctivă), precum şi funcţiilor logice incomplet
definite.
Minimizarea unei funcţii logice poate fi făcută fie cu ajutorul diagramelor
VK, fie prin metode analitice.

1.6.1. Minimizarea cu ajutorul diagramelor VK


Minimizarea funcţiilor logice cu ajutorul diagramelor VK constă în
parcurgerea următoarelor etape:
Elemente de algebră booleeană 15

A. Alcătuirea diagramei VK şi completarea locaţiilor acesteia cu valorile


logice corespunzătoare termenilor funcţiei.
Astfel, în cazul unei exprimări sub forma canonică disjunctivă (FCD) a
funcţiei, fiecărui termen îi corespunde o locaţie care conţine "1" logic, iar în cazul
exprimării sub formă canonică conjunctivă (FCC) - o locaţie care conţine "0" logic.
Evident, atât în cazul FCD cât şi în cazul FCC, locaţiile cărora nu le
corespunde nici un termen canonic vor primi valori logice complementare celor
menţionate mai sus, iar cele ce corespund unor stări nedeterminate (cazul funcţiilor
incomplet definite) se vor marca cu "*" şi vor fi interpretate, după caz, ca "0" sau
"1" logic, în procesul de minimizare.
B. Minimizarea propriu-zisă
Minimizarea poate fi de tip disjunctiv sau conjunctiv în funcţie de conţinutul
"1" sau "0" logic al locaţiilor cu care se operează.
Ea constă din două etape şi anume:
B.1. Gruparea locaţiilor vecine ce conţin "1" ("0") logic în grupe de câte 20,
21, ..., 2k locaţii.
Ţinând seama de faptul că oricare două locaţii vecine din diagrama VK diferă
între ele prin valoarea logică a unei singure variabile, gruparea a 2 (21) locaţii vecine
care au acelaşi conţinut conduce la eliminarea acelei variabile care, înregistrînd o
variaţie logică de la o locaţie la alta, nu poate caracteriza grupul. Prin urmare, în
cazul unei funcţii de n variabile, doi termeni canonici conţinând câte n variabile
fiecare şi care corespund celor două locaţii vecine grupate, vor fi înlocuiţi cu un
singur termen format din n-1 variabile;
Generalizînd, gruparea a 2k locaţii vecine care au acelaşi conţinut şi care
corespund celor 2k termeni canonici formaţi din câte n variabile fiecare, conduce la
eliminarea a k variabile şi, prin urmare, la obţinerea unui singur termen format din
n-k variabile.
La realizarea grupărilor de locaţii vecine ce conţin "1" ("0") logic, este
necesară respectarea următoarelor reguli:
r1) fiecare locaţie din diagrama VK care prezintă interes din punct de vedere
al tipului de minimizare utilizat, poate face parte din oricât de multe grupări, dar cel
puţin din una;
r2) cel mai avansat grad de simplificare se obţine dacă locaţiile ce conţin "1"
("0") logic din diagrama VK formează un număr minim de grupuri, fiecare grup
conţinând la rândul său un număr cât mai mare de locaţii.
B.2. Scrierea formei minimale a funcţiei
Forma minimală disjunctivă (FMD) sau conjunctivă (FMC) conţine atâţia
termeni câte grupări de locaţii au fost realizate. Locaţiilor izolate, care nu au putut fi
cuprinse în nici o grupare, le vor corespunde termenii canonici iniţiali din care au
provenit. Grupurilor de 2k locaţii le vor corespunde termeni elementari formaţi din
câte n-k variabile care caracterizează grupul.
În cadrul FMD (FMC), termenii canonici şi/sau elementari, vor fi legaţi între
ei prin disjuncţii (conjuncţii) iar variabilele în cadrul fiecărui termen se vor afla în
16 Capitolul 1

conjuncţie (disjuncţie) şi vor fi luate direct sau negat astfel încât termenul
respectiv să devină un constituent al unităţii (al lui zero).

Exemplu:
Considerăm o funcţie logică de 3 variabile dată fie prin tabelul de adevăr (tab.
1.9), fie prin FCD (rel 1.40) sau FCC (rel. 1.41):

Tab. 1.9. Tabelul de adevăr al unei funcţii de 3 variabile binare

x3 x2 x1 y

0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

y FCD = x 3 x 2 x 1 + x 3 x 2 x 1 + x 3 x 2 x 1 + x 3 x 2 x1 + x 3 x 2 x1 ; (1.40)
1424 3 1 424 3 1 424 3 1 424 3 1 424 3
P1 P2 P3 P4 P5
y FCC = ( x 3 + x 2 + x1 ) ⋅( x 3 + x 2 + x1 ) ⋅ ( x 3 + x 2 + x1 ) . (1.41)
144244 3 144244 3 1442443
S1 S2 S3
Indiferent de la care din cele 3 forme pornim, se obţine aceeaşi diagramă VK din
fig. 1.9, în care am notat cu P1, P2, ..., P5 locaţiile ce conţin "1" logic şi corespund
termenilor din FCD, iar cu S1, S2, S3 locaţiile ce conţin "0" logic şi corespund
termenilor din FCC.
(x3+x2)
x2x1
00 01 11 10
x3
0 0(S1) 0(S2) 1(P1) 1(P2) x3x 2
(x2+x1)
x2
1 0(S3) 1(P3) x3x2
1(P4) 1(P5)

x3x1

Fig. 1.9. Diagrama VK a funcţiei din exemplul considerat

e1) Obţinerea FMD


Grupând, spre exemplu, P1P2, observăm că gruparea a 21 = 2 locaţii va trebui să
conducă la eliminarea unei singure variabile de intrare din cele 3: x3 = 0 -
Elemente de algebră booleeană 17

caracterizează ambele locaţii şi se reţine sub forma x 3; x2 = 1 - caracterizează


ambele locaţii şi se reţine sub forma x2; în sfîrşit, x1 este 1 pentru locaţia P1 şi 0
pentru locaţia P2, deci x1 variază în cadrul grupului de locaţii P1P2 şi dispare.
Termenul elementar care caracterizează complet grupul P1P2 este x 3 ⋅ x 2 şi se
trece în fig. 1.9.
Procedând analog cu grupul P4P5 se obţine termenul elementar x3x2, iar pentru
grupul P3P4, termenul x3x1.
Relaţia 1.40 devine, prin urmare:
y = x 3 x 2 + x 3 x 2 + x 3 x1 , (1.42)
123 123 1 2 3
P1P2 P4P5 P3P4
dar aceasta nu reprezintă o formă minimală!
Într-adevăr, conform regulii r2, se poate obţine un grad şi mai ridicat de
simplificare a funcţiei, grupând împreună locaţiile P1P2P4P5. După cum rezultă din
consideraţiile expuse la punctul B.1, gruparea a 22 = 4 locaţii va conduce la
eliminarea a două din cele 3 variabile. Termenul elementar ce va corespunde
grupului P1P2P4P5 se obţine astfel: x3 este 0 pentru P1P2 şi 1 pentru P4P5, deci
variază în cadrul grupului de 4 locaţii şi dispare; x2 este 1 pentru P1P4 şi tot 1
pentru P2P5, deci nu variază şi se reţine sub forma x2; în sfîrşit, x1 este 1 pentru
grupul P1P4 şi 0 pentru P2P5, deci variază în cadrul grupului de 4 locaţii şi dispare.
Termenul elementar rezultat este x2, iar forma minimală disjunctivă a funcţiei
(1.40) este:
yFMD = x2 + x3x1. (1.43)

e2) Obţinerea FMC


Pentru scrierea FMC, se grupează S1S2 şi S1S3.
Grupul de locaţii S1S2 este caracterizat de x3 = 0 şi x2 = 0. Variabila x1 variază în
cadrul grupului şi, necaracterizându-l, dispare. Termenul elementar rămas este (x3
+ x2).
Pentru grupul de locaţii S1S3 se elimină x3 care variază în cadrul grupului şi
rămâne termenul elementar (x2 + x1).
Forma minimală conjunctivă a funcţiei (1.41) este, prin urmare:
yFMC = (x3 + x2) ⋅ (x2 + x1). (1.44)
Comparând relaţiile 1.40 cu 1.43 sau 1.41 cu 1.44, minimizarea formelor
algebrice ale funcţiei este evidentă. Totuşi, pentru eliminarea oricăror semne de
întrebare, implementăm în fig. 1.10 şi fig. 1.11 formele canonice şi cele minimale.
Simplificarea structurilor logice prin minimizare este acum absolut vizibilă.

Observaţii:
1. Cele două forme minimale (rel. 1.43 şi 1.44) sunt convergente.
Într-adevăr, prelucrând relaţia (1.44) obţinem:
yFMC = (x3 + x2) (x2 + x1) = x3x2 + x3x1 + x 2 x 2 + x2x1 =
123
x2
= x2( x 3 + 1 + x 1 ) + x3x1 = x2 + x3x1 = yFMD. (1.45)
14243
1
2. Forma minimală (disjunctivă sau conjunctivă) nu este unică, deşi ea conţine
un anumit număr (minim) de termeni, fiecare dintre aceştia fiind constituit dintr-un
anumit număr (minim) de variabile de intrare. Prin urmare, se pot obţine două sau
18 Capitolul 1

mai multe forme "la fel de minimale", dar niciodată o formă "mai minimală"
decât alta!

x
x2
x1
x
x2
x
x3 x2
x yFCD yFMD
x3
x1
x1
x3
x2
x1
x3
x2
x

a) implementarea FCD b) implementarea FMD

Fig. 1.10. Comparaţie FCD – FMD

x3
x2
x1 x3
x3 x2
x2 yFCC yFMC
x2
x x1
x
x2
x1

a) implementarea FCC b) implementarea FMC

Fig. 1.11. Comparaţie FCC - FMC

Considerând, pentru exemplificare, diagrama VK din fig. 1.12, constatăm că


grupările P1P3 şi P2P5 sunt "obligatorii", în timp ce P4 se poate grupa fie cu P3, fie
cu P5, în ambele variante rezultând forme "la fel de minimale".
Elemente de algebră booleeană 19

x2x1
00 01 11 10
x3
0 1P1 0 1P2 0

1 1P3 1P4 1P5 0

Fig. 1.12. Explicativă pentru obţinerea unor forme "la fel de minimale"

1.6.2. Minimizarea prin metoda analitică


Minimizarea prin metoda analitică are acelaşi domeniu de aplicabilitate ca şi
cea realizată cu ajutorul diagramei VK.
Minimizarea de tip disjunctiv porneşte de la FCD în care se grupează
termenii care diferă prin valoarea logică a unei singure variabile (proprietatea de
distributivitate), după care se elimină variabila care este în disjuncţie cu negata sa
(principiul terţului exclus).

Exemplu: Reluând exemplul de la paragr. 1.6.1, rel. 1.40, etapele minimizării


prin metoda analitică sunt:
- gruparea perechilor de termeni P1P2, P3P4 şi P4P5, dând factor comun grupurile
de variabile comune; observăm că termenul P4 a fost "prins" în două grupări,
ceeace echivalează cu scrierea sa de două ori, fapt permis de principiul
idempotenţei;
- eliminarea parantezelor pe baza principiului terţului exclus;
- gruparea termenilor elementari P12 P45, dând factor comun variabila comună x2;
- eliminarea parantezelor (principiul terţului exclus);
- scrierea FMD.
Schematic, etapele minimizării sunt prezentate mai jos:
yFCD = x 3x2x1 + x 3x2 x 1 + x3 x 2x1 + x3x2x1 + x3x2 x 1;

P1 P2 P3 P4 P5

x 3x2 ( x1 + x 1 ); x3x1 ( x 2 + x 2 ); x3x2 ( x1 + x 1 )


1
424 3 1424 3 1
424 3
=1 =1 =1

P12= x 3 x 2 P34=x3x1 P45=x3x2

P1245 = ( x 3 + x 3 )x2 (1.46)


1424 3
=1
yFMD = x2 + x3x1. (1.47)
20 Capitolul 1

Minimizarea de tip conjunctiv este similară celei de tip disjunctiv cu


următoarele deosebiri: se porneşte de la FCC în care se fac grupările respective,
după care se elimină variabila care se află în conjuncţie cu negata sa (principiul
contradicţiei).

Prezentăm, pe acelaşi exemplu, etapele minimizării de tip conjunctiv:


yFCC = (x3 + x2 + x1) ⋅ (x3 + x2 + x 1) ⋅ ( x 3 + x2 + x1);

S1 S2 S3

S12 = (x3 + x2) + ( x1 ⋅ x1 )


123
=0

S13 = (x2 + x1) + ( x 3 ⋅ x 3 ) (1.48)


123
=0
yFMC = (x3 + x2) ⋅ (x2 + x1). (1.49)

1.6.3. Minimizarea funcţiilor incomplet definite


În cazul funcţiilor incomplet definite, vom asocia în diagrama VK simbolul
"*" pentru acele puncte din domeniul de definiţie în care funcţia nu este definită.
În timpul minimizării funcţiei, simbolului "*" i se atribuie valoarea logică "0"
sau "1", după cum dictează interesele minimizării.

Exemplu:
Considerăm diagrama VK din fig. 1.13, în care simbolul "*" este convenabil să
fie interpretat drept "1" logic. Se obţine y = x 2 .
x2x1
00 01 11 10
x3
0 1 1 0 0

x2 1 1 * 0 0

Fig. 1.13. Explicativă pentru minimizarea funcţiilor incomplet definite

1.6.4. Concluzii
Deşi minimizarea prin metoda analitică urmează practic aceiaşi paşi cu
minimizarea bazată pe diagrama VK, ea este mult mai dificilă dearece grupările de
termeni sunt mai greu de observat.
Elemente de algebră booleeană 21

Minimizarea bazată pe diagramele VK devine complicată pentru mai mult de


5 variabile de intrare.
Întrucât FMD şi FMC sunt convergente, este indicat să se utilizeze acea
variantă de minimizare care conduce la o formă mai simplă. Adeseori se optează
însă pentru varianta implementabilă cu circuitele logice disponibile la utilizator:
FMC în cazul în care se dispune în majoritate de porţi NOR şi FMD în cazul în care
se dispune în majoritate de porţi NAND.

S-ar putea să vă placă și