Documente Academic
Documente Profesional
Documente Cultură
Algebrele booleene
Note de curs
Dr.Ing.Mat. ION I. BUCUR
n anul 1854 apare la New York, n editura Dover Publication, lucrarea An
Investigation of the Laws of Thought a matematicianului i logicianului englez George
Boole. Aceast lucrare conine introducerea unei algebre (o structur algebric)
intenionat s descrie relaiile logice complexe ale limbajului natural.
Focalizarea acestei lucrri asupra limbajului natural i relaiilor logice complexe ale
acestuia este deosebit de important dac se privete aceast abordare prin prisma
translatrii unei descrieri, n limbaj natural, a funcionrii unui circuit (bloc
funcional) oarecare, ntr-o descriere riguroas, ne-ambigu i echivalent funcional
acesteia.
n linii mari activitatea de proiectare actual n domeniul circuitelor digitale este
compus, ntre altele, dintr-o translatare de acest fel. Termenii au evoluat n
complexitate dar ideia este, n principiu, aceeai.
Dup aproape o sut de ani de la apariia lucrrii lui Boole, n 1938, matematicianul
Claude Shannon, care lucra pentru Bell Telephone Laboratories, propune n lucrarea
Symbolic Analysis of Relay and Switching Circuits, o algebr a comutatorilor
destinat analizei i proiectrii sistemelor binare discrete.
Algebra introdus de Shannon este o extindere a algebrei logice introduse de Boole.
Blocurile funcionale fundamentale ale acestei algebre I, SAU i NU sunt cele mai
convenabile implementri ale acestei algebre. Un comutator nchis (conduce) are
valoarea 1, iar un comutator deschis are valoare 0. Un astfel de comutator poate
reprezenta o variabil a algebrei lui Shannon. Primele dou blocuri funcionale admit
dou sau mai multe variabile, iar cel de-al treilea bloc funcional este definit doar
pentru o singur variabil. Definiiile acestor blocuri funcionale sunt simple, n
termenii introdui de Shannon. Astfel, oricare bloc fundamental are o descriere
succint a valorii liniei (unice) de ieire n raport cu liniile (argumentele, variabilele)
de intrare:
(a) Blocul I are valoarea 1 dac i numai dac toate variabilele sale (dou sau mai
multe) au valoarea 1;
(b) Blocul SAU are valoarea 0 dac i numai dac toate variabilele sale (dou sau mai
multe) au valoarea 0;
(c) Blocul NU are valoarea 1 dac i numai dac variabila sa (unic) are valoarea 0.
n tabelul 1 sunt exemplificate succint aceste trei blocuri funcionale, primele blocuri
(I i SAU) fiind prezentate, pentru simplitate, doar pentru dou variabile.
PROIECTARE LOGIC
x
0
0
1
1
y
0
1
0
1
I(x,y)
0
0
0
1
x
0
0
1
1
SAU(x,y)
0
1
1
1
y
0
1
0
1
x
0
1
NU(x)
1
0
PROIECTARE LOGIC
matematic fac din procesul de translatare al acestora, n proiectarea
sistemelor i circuitelor digitale, o activitate ne-trivial.
Modul cel mai uzitat de introducere al algebrei booleene face apel la setul de postulate
introdus de Huntington n anul 1904. Primul postulat poate fi considerat ca stabilind
sistemul aflat n studiu.
I.
Exist o mulime K de obiecte sau elemente, satisfcnd o relaie de
echivalen notat prin =, ndeplinind principiul substituiei.
Prin substituie se nelege c dac a = b atunci a poate fi substituit prin b n orice
expresie care conine elementul a fr s fie afectat validitatea expresiei respective.
IIa.
Este definit o lege de compoziie + astfel nct expresia a + b este n K,
a, b K.
IIb.
Este definit o lege de compoziie * astfel nct expresia a * b (abreviat ab)
este n K, a, b K.
IIIa. Exist un element 0 K, astfel nct a + 0 = a, a K.
IIIb. Exist un element 1 K, astfel nct a * 1 = a, a K.
IVa. a + b = b + a, comutativitatea legii +.
IVb. a * b = b * a, comutativitatea legii *.
Va.
a + (b * c) = (a + b) * (a + c), distributivitatea + fa de *.
Vb. a * (b + c) = (a * b) + (a * c), distributivitatea * fa de +.
VI.
a K, a K, astfel nct
a * a = 0, i
a + a = 1.
x,y K, astfel nct x y.
Se poate remarca faptul c nu s-a precizat nimic n legtur cu numrul sau tipul
elementelor care alctuiesc mulimea K. Exist mai multe mulimi care satisfac aceste
postulate. Cteva dintre acestea vor fi exemplificate n continuare.
Pentru ca un set de postulate s fie valid acesta trebuie s fie consistent. Aceasta
revine la faptul c nici unul dintre postulate nu contrazice oricare dintre celelalte
postulate din setul considerat. Verificarea consistenei se poate face prin examinarea
fiecrui postulat, pentru a demonstra c nici un postulat nu contravine oricrui grup
posibil de postulate, dar abordarea este extrem de laborioas. Exist, ns, o alte cale
mult mai simpl, pentru verificarea consistenei. Pentru aceasta este necesar s se
gseasc doar un singur exemplu de algebr boolean despre care se tie, n mod
independent, c este consistent. Dac o astfel de structur algebric satisface toate
postulatele lui Huntington, atunci postulatele n sine sunt consistente.
Cea mai simpl algebr boolean const din numai dou elemente, notate prin 1 i 0,
definite c satisfac:
1 = 0, 0 = 1
1 * 1 = 1 + 1 = 1 + 0 = 0 + 1 = 1,
i
0 + 0 = 0 * 0 = 1 * 0 = 0 * 1 = 0.
PROIECTARE LOGIC
Se remarc faptul c postulatele I, II, III i VII sunt satisfcute prin definiie.
Satisfacerea legilor de comutativitate (IVa i IVb) este evident iar verificarea legilor
de distributivitate (Va i Vb) necesit doar alctuirea listelor de valori de-o parte i de
alta a ecuaiilor, pentru toate combinaiile de valori ale variabilelor a, b i c.
Postulatul VI este imediat verificabil dnd valori (0 i 1) variabilei a.
O alt cerin important este independena postulatelor. Aceasta revine la verificarea
faptului c nici unul dintre postulate nu poate fi dedus din celelalte. Postulatele, aa
cum au fost exprimate sunt independente. Aceast verificare este mult mai complex,
si nu este esenial pentru aceast lucrare. Pe de alt parte, nu este necesar abordarea
algebrelor booleene printr-un set independent de axiome. Exist multe tratri ale
subiectului care includ ntre axiome anumite teoreme, din raiuni de simplificare a
modului de prezentare, nu face obiectul acestei abordri i poate fi gsit n lucrrile
de specialitate.
Se poate trage o prim concluzie pe marginea aparatului formal introdus.
O algebr boolean se definete, n general, peste o mulime K B {0,1} nzestrat
cu dou operaii, notate aditiv + i respectiv multiplicativ *, care satisfac legile de
comutativitate i distributivitate. Mulimea B conine ntotdeauna cele dou elemente
notate 0 i 1. Acestea sunt elementele neutre ale operatorului aditiv i, respectiv,
multiplicativ:
a* 1 = a, a + 0 = a ,aB.
n fine, oricare element a din B are un complement, notat n cele ce urmeaz prin a.
Relaiile importante dintre un element i complementul su sunt enunate astfel:
a * a = 0 i a + a = 1, aB.
Este important de reinut c ambele elemente ale mulimii B nu trebuie privite ca fiind
numere, sunt doar notate prin dou numere. La fel de bine se pot utiliza alte dou
simboluri distincte, dar tradiional se utilizeaz 0 i 1. Aceste simboluri corespund,
din punct de vedere tehnologic, unor stri distincte ale unor dispozitive fizice care
implementeaz operatorii acestor algebre.
Se poate remarca cu uurin faptul c algebra boolean difer, ca structur algebric,
de algebra obinuit prin distributivitatea ambilor operatori, pe de-o parte, i prin
apariia complementului, pe de-alt parte.
O privire mai atent asupra postulatelor lui Huntington relev faptul c anumite
postulate sunt grupate n perechi.
Fiecare postulat dintr-o pereche poate fi obinut din cellalt postulat prin
interschimbarea simbolurilor 0 i 1, ca i a operatorilor + i *. Astfel:
a + 0 = a, prin interschimbarea amintit devine a * 1 = a, iar
a + (b * c) = (a + b) * (a + c) se transform n a * (b + c) = (a * b) + (a * c).
Oricare teorem care poate fi demonstrat n algebra boolean are o teorem dual
care este de asemenea adevrat. Cu alte cuvinte, fiecare pas din demonstraia unei
teoreme poate fi nlocuit de dualul acestuia producnd demonstraia teoremei duale.
PROIECTARE LOGIC
acestea au un rol mai limitat de aplicabilitate, furniznd relaii utilizate n construcia
demonstraiei unor rezultate cu grad ridicat de generalitate, teoremele.
Att lemele ct i teoremele vor fi enunate dar vor fi demonstrate numaio parte (cele
mai semnificative) demonstraiile celorlalte leme i teoreme fiind lsate ca exerciii.
Lema 1
Elementele 0 i 1 sunt unice.
Demonstraie: se presupune c exist dou elemente 0, notate prin 01 i 02. n
baza postulatului IIIa, pentru orice elemente w1 i w2 din K au loc relaiile:
w1 + 01 = w1 i w2 + 02 = w2.
Acum fie w1 = 02 i w2 = 01:
02 + 01 = 02 i 01 + 02 = 01.
Utiliznd comutativitatea operatorului + i proprietatea de tranzitivitate a egalitii,
rezult:
01 = 02.
Prin dualitate se poate demonstra i unicitatea elementului 1.
Lema 2
Pentru orice element w K au loc relaiile:
w + w = w i
w * w = w.
Lema 3
Pentru orice element w K au loc relaiile:
w + 1 = 1 i
w * 0 = 0.
Lema 4
Elementele 0 i 1 sunt distincte iar 1 = 0.
Lema 5
Pentru orice elemente w1 i w2 din K au loc relaiile:
w1 + w1w2 = w1, i
w1(w1 + w2) = w1.
Lema 6
Complementul unui element w K, w, este unic.
Lema 7
Pentru orice element w K, (w) = w.
Lema 8
Oricare ar fi elementele u, v i w K, are loc relaia:
u * ( (u + v) + w) = ( (u + v) + w) * u.
Teorema 1
Oricare ar fi elementele u, v i w K, au loc relaiile:
u + (v + w) = (u + v) + w, i
u * (v * w) = (u * v) * w.
Teorema 2
Pentru orice pereche de elemente u i v K, se verific relaiile:
u + uv = u + v i
u(u + v) = uv.
PROIECTARE LOGIC
Teorema 3
Urmtoarele dou relaii sunt adevrate oricare ar fi elementele u i v K:
(u + v) = u * v i
(u * v) = u + v.
PROIECTARE LOGIC
Exemplul 2:
Identitatea a + 1 = 1, se transform, prin aplicarea principiului
dualitii, n identitatea: a * 0 = 0.
PROIECTARE LOGIC
Este interesant de remarcat c atunci cnd Dn este privit ca fiind alctuit din produse
de divizori primi netriviali, i sunt utilizate n clar mulimile acestor divizori, atunci se
poate scrie o formul apropiat de cea realizat pentru algebra submulimilor:
Dn={,{2},{3},{5},{2,3},{2,5},{3,5},{2,3,5}},
deoarece 1 nu are nici un divizor netrivial.
Acum apare evident izomorfismul acestei algebre cu algebra submulimilor unei
mulimi, n cazul de fa exemplificndu-se pentru raiuni de simplitate - cu doar trei
elemente distincte.
Algebra binar este construit peste mulimea suport minimal B = {0,1} iar
operaiile binare + i * sunt disjuncia, respectiv, conjuncia, adesea denumite sum,
respectiv, produs sau, nc, SAU, respectiv I. Spaiul multidimensional descris de
variabilele cu valori binare este notat prin Bn . Acest spaiu mai este referit prin cubul
n-dimensional (hipercub) din cauza generalizrii reprezentrii spaiului B3 care
geometric descrie un cub peste triedrul natural. Un punct din Bn este reprezentat
printr-un vector cu n ranguri binare. Atunci cnd sunt asociate variabile binare
dimensiunilor spaiului boolean Bn , un punct se poate identifica prin valorile
corespunztoare acestor variabile. Un literal este o valoare, o instaniere, a unei
variabile sau a complementului acesteia. Un produs de n literali reprezint un punct
din spaiul i se spune c reprezint un cub zero-dimensional. Se utilizeaz curent
referirea unui produs de literali prin denumirea generic cub.
Algebra funciilor booleene de n variabile este construit astfel:
(Fn(B), +, *, 0, 1 ), unde:
Fn(B) este mulimea funciilor booleene de n variabile definite peste Bn, cu valori n
B, n 1.
+ este adunarea acestor funcii,
* este multiplicarea acestor funcii,
0 este funcia identic nul, iar
1 este funcia constant 1.
Aceast algebr a funciilor scalare joac un rol deosebit n fundamentele matematice
ale analizei i sintezei dispozitivelor numerice pentru c operatorii i elementele
acesteia se pot implementa prin dispozitive care se pot produce industrial n mod
eficient. Studiul proprietilor acestei algebre arat modul n care sunt utilizabili
operatorii i elementele acesteia pentru modelarea conceptelor dezvoltate n calculul
algebrico-analitic tradiional.
Funciile booleene
O funcie scalar din Fn(B) incomplet specificat este definit peste o partiie a
mulimii Bn. Valorile din domeniul de definiie (adesea referite generic prin puncte)
unde funcia nu este definit, se numesc valori neprecizate ale funciei, sau, condiii
neprecizate (dont care, este termenul anglo-saxon). Aceti vectori din domeniul de
definiie al unei funcii se refer, n fapt, la valori care nu sunt utilizate i, prin urmare
valorile funciei respective nu sunt observate n acele puncte.
Un interes deosebit l prezint funciile vectoriale definite peste Bn cu valori n Bm
unde m > 1. O astfel de funcie este considerat echivalent unui vector de funcii din
Fn(B). Valorile neprecizate ale funciilor vectoriale pot fi distincte pentru fiecare
8
PROIECTARE LOGIC
dintre cele m componente ale respectivei funcii. Acest aspect se datoreaz faptului c
punctele neprecizate pot fi proprii unor anumite componente ale vectorului de funcii.
Din acest motiv funciile vectoriale incomplet specificate sunt considerate ca fiind
definite peste Bn, dar cu valori n mulimea {0,1,*}m , unde prin simbolul * s-a notat
condiia de nedefinire, de neprecizare, a funciilor scalare. Pentru fiecare component
scalar a unei funcii vectoriale se poate defini o partiie a domeniului de definiie
dup valorile luate. Astfel, toate punctele n care o funcie scalar ia valorile 0, 1 i *
se numesc, tradiional, 0-set, 1-set, i respectiv *-set (off set, on set i respectiv dc set,
n literatura anglo-saxon). Nu exist pericolul unei confuzii ntre notaia punctelor
din codomeniu desemnnd valori nedefinite, pe de-o parte, i operatorul multiplicativ
al acestei algebre deoarece tradiional operatorul multiplicativ este omis utilizndu-se
simpla juxtapunere (juxtapunerea a dou variabile, spre exemplu, este echivalent
produsului acestora).
O generalizare, ntr-un anumit sens, a noiunii de funcie boolean este relaia
boolean. O relaie boolean este definit, n principiu, ntre spaii booleene. Astfel,
unui punct dintr-un domeniu se asociaz mai multe puncte din codomeniu (spre
deosebire de funcii unde se asociaz un singur punct din codomeniu). Relaiile
booleene i optimizarea acestora joac un rol deosebit n sinteza i optimizarea
circuitelor, reelelor, multi-nivel.
Pentru funciile booleene, n spe funciile de variabile binare cu valori binare, au
fost introduse numeroase definiii i notaii n vederea evidenierii unor aspecte
analitice mai importante ale acestora. O parte dintre acestea, cele mai semnificative,
vor fi, succint, enunate n cele ce urmeaz.
Mulimea variabilelor unei funcii este numit mulimea suport, sau pe scurt, suportul
funciei.
PROIECTARE LOGIC
obiecte implementate prin structuri echivalente acestei forme de reprezentare. Ca
form de reprezentare are cele mai multe metode dezvoltate i cu performane printre
cele mai bune. Dimensiunile reale ale funciilor reprezentabile prin formule sunt
superioare celor reprezentabile prin formele tabelare. Printre obiectele dezvoltate cu
aceast reprezentare cele mai cunoscute sunt cele corespunztoare sumelor de produse
(produselor de sume) n dou sau mai multe nivele.
Diagramele de decizii binare (Binary Decision Diagrams, termenul n original,
abreviat BDD) au fost iniial introduse de Lee i apoi reluate de Akers, pentru
reprezentarea prin arbori sau grafuri aciclice direcionate cu rdcini, a funciilor
binare de variabile binare, scalare. Aceste reprezentri permit manipulri de funcii cu
complexitate superioar celor reprezentabile prin formule booleene.
Reprezentarea propus de Akers utilizeaz pentru o decizie evaluarea unei variabile
din suportul funciei. Utiliznd aceast structur, ulterior, Bryant a introdus
diagramele de decizii ordonate (Ordered Binary Decision Diagrams, cu abrevierea
OBDD) i a demonstrat existena unor algoritmi performani de manipulare a acestor
forme de reprezentare.
Schimbnd maniera de decizie prin evaluarea unei funcii n locul evalurii unei
variabile, Karplus a introdus grafele aciclice direcionate numite ITE (abrevierea
sintagmei if-then-else) apreciate ca fiind o generalizare a OBDD. Exist funcii ale
cror reprezentri prin ITE sunt mai compacte dect prin OBDD.
Formulele booleene
Exist numeroase situaii n care anumite proprieti ale unor dispozitive, reale sau
simulate, virtuale, sunt exprimate prin formule construite peste algebrele booleene. O
legtur de mare importan exist ntre formulele i funciile booleene.
O variabil boolean este o variabil care ia valori din mulimea B. Prin literali se
neleg variabile booleene care pot fi asertate sau complementate (negate). Variabilele
sunt cele mai simple exemple de funcii booleene.
Expresiile construite prin simboluri legate prin operatorii * i + sunt cele mai simple
exemple de formule booleene. Formulele pot fi dezvoltate ierarhic utiliznd paranteze.
O formul boolean se definete astfel:
Definiia 2: Dat o algebr boolean B i n simboluri x1, x2, , xn, atunci
mulimea formulelor booleene peste cele n simboluri este alctuit din:
(1) Elementele mulimii B care sunt formule,
(2) Simbolurile x1, x2, , xn care sunt formule,
(3) Dac g i h sunt formule, atunci tot formule sunt i
(3.1) (g) + (h),
(3.2) (g) * (h) i
(3.3) (h).
Un ir de caractere este o formul boolean dac i numai dac aceasta se
obine printr-un numr finit de aplicri ale regulilor 1, 2 i 3.
10
PROIECTARE LOGIC
Se poate remarca din definiia anterioar c numrul formulelor booleene de n
variabile este infinit.
Este esenial de vzut modul n care unei formule booleene F, corect definite, i se
poate asocia o funcie de asemenea corect definit.
Dat F, o formul boolean de n simboluri, atunci funcia f , de n variabile,
corespunztoare acestei formule se definete astfel:
Definiia 3: Dac F = b B, atunci formula reprezint funcia constant
definit prin:
f(x1, x2, , xn) = b, (x1, x2, , xn) Bn;
Dac F = xi, atunci formula reprezint proiecia funciei definit prin:
f(x1, x2, , xn) = xi, (x1, x2, , xn) Bn;
Dac formula este de forma G + H, ori G * H, ori G, atunci funcia de n
variabile corespunztoare se definete dup cum urmeaz:
(g + h) (x1, x2, , xn) = g(x1, x2, , xn) + h(x1, x2, , xn),
(g * h) (x1, x2, , xn) = g(x1, x2, , xn) * h(x1, x2, , xn),
(g) (x1, x2, , xn) = (g(x1, x2, , xn))
(x1, x2, , xn) Bn.
Numrul de funcii booleene de n variabile definite peste o algebr boolean finit
este finit.
Exemplul 2. Se consider algebra construit peste mulimea B = {0,1,
a,a}.
Se consider mulimea simbolurilor ca fiind {x,y}, atunci, o formul
boolean cu aceste dou simboluri poate fi, spre exemplu:
F = a * x + a * y.
Tradiional operatorul * se poate omite, fiind subneles, utilizndu-se
simpla juxtapunere a simbolurilor.
Funcia boolean de dou variabile f: B2 B, corespunztoare formulei
booleene F = a * x + a * y, va avea domeniul de definiie:
B2 = {(0,0), (0,1), (0,a), (0,a), (1,0), (1,1), (1,a), (1,a), (a,0), (a,1), }
i poate fi definit punctual (deoarece domeniul de definiie este finit)
evalund expresia considerat n fiecare punct al domeniului de definiie:
f(0,0) = a, f(0,1) = 0, f(0,a) = a, f(0,a) = 0, f(1,0) = 1, .
Formulele canonice
Formulele canonice de reprezentare ale unei funcii sunt unice pentru o funcie dat.
Exist forme canonice din categoria expresiilor booleene, dar exist i forme canonice
11
PROIECTARE LOGIC
din categoria diagramelor de decizii binare, acestea sunt diagramele de decizii binare
ordonate.
Atunci cnd se compar dou forme canonice se ine seama de specificul respectiv.
Astfel, dac se compar reprezentri canonice OBDD atunci comparaia va avea loc
ntre doi arbori sau dou grafe aciclice orientate cu rdcini.
Astfel de forme sunt utile atunci cnd se compar dou funcii n vederea stabilirii
identitii lor. Adeseori n proiectare se aleg anumite formule de reprezentare ale unei
funcii n funcie de natura tehnologiei utilizate, criteriile de performan etc. Pentru
evitarea unor erori care pot aprea n procesul de calcul al unei formule de
implementare pentru o funcie dat se procedeaz, n general, la validarea funcional
a formulei implementate. Exist mai multe metode de validare funcional. Una dintre
cele mai simple este calculul formei canonice att pentru funcia considerat ct i
pentru formula sa de implementare.
Teorema de reprezentare
O funcie f: Bn B este boolean dac i numai dac aceasta poate fi
exprimat prin identitatea:
f ( X ) = f ( A) X A
A{0 ,1}n
f ( x1 , x 2 , x3 ) = f (0,0,0) x1' x 2' x3' + f (0,0,1) x1' x2' x3 + f (0,1,0) x1' x2 x3' +
f (0,1,1) x1' x 2 x3 + f (1,0,0) x1 x2' x3' + f (1,0,1) x1 x 2' x3 + f (1,1,0) x1 x 2 x3' +
f (1,1,1) x1 x 2 x3
Termenii produs utilizai, mintermii, sunt prezeni n formula canonic
disjunctiv a unei funciei oarecare dac funcia respectiv are valori
nenule n punctele corespunztoare.
Se remarc faptul c formula reflect valorile funciei n toate punctele
domeniului su de definiie. Particularizarea sau personalizarea formulei
canonice este exclusiv dependent de aceste valori.
12