Sunteți pe pagina 1din 12

PROIECTARE LOGIC

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

Tabelul 1. Blocurile funcionale I, SAU (de dou varaibile) i NU.

Cu toate c, aa cum se va vedea n continuare, algebra comutatorilor este doar un caz


particular al algebrei lui Boole se obinuiete s se utilizeze termenul algebr
boolean pentru ntreg aparatul matematic utilizat n sistemele i circuitele digitale.
Faptul c tehnologic, blocurile funcionale ale algebrei comutatorilor, sunt
construibile fizic constituie raiunea utilizrii acestui aparat matematic.
Exemplul 1. Se consider urmtoarea descriere verbal a unui bloc simplu
de comand al uii unei sli:
- ua este deschis atta timp ct exist n imediata sa proximitate
(aproximativ 50 cm de-o parte i de alta a uii) o persoan i rmne
deschis pentru un interval, relativ scurt, de timp t chiar i dup plecarea
oricrei persoane din zona de proximitate.
Se dorete o scriere concis exact, n termenii algebrei comutatorilor, a
acestei descrieri (fcut n termenii limbajului natural) a funcionrii uii.
Fiecare element relevant din descrierea n limbaj natural va fi notat printr-o
variabil care poate lua doar dou valori 0 i 1.
Ua este deschis. Se noteaz prin variabila U. Ct vreme ua este
deschis, U = 1, iar cnd ua este nchis U = 0. nchiderea i deschiderea
uii are loc n urma unei acionri, printr-un motor electric spre exemplu.
Exist o persoan n zona de proximitate. Determinarea unei persoane n
zona de proximitate se poate realiza printr-un senzor cu traductor inductiv,
fotoelectric etc. Prezena unei persoane n zona de proximitate se noteaz
prin variabila P. Ori de cte ori este o persoana n apropierea uii P = 1, altfel
P = 0.
Temporizatorul este activ pentru durata prestabilit t. Se noteaz prin T.
Atunci cnd temporizatorul este activ T = 1, altfel T = 0. Temporizatorul este
activat de ndat ce este sesizat o persoan n zona de proximitate.
Activarea temporizatorului se mai numete i startarea acestuia.
Prezena unei persoane n zona de proximitate face ca ua s se deschid,
pe de-o parte i activeaz temporizatorul, pe de-alt parte. Apariia unei
persoane, n zona de proximitate, pe durata temporizrii are ca efect numai
reactivarea temporizrii, ua fiind deja deschis.
Se poate deduce uor c translatarea descrierii iniiale poate fi fcut succint
astfel:
U = SAU(P,T).
Sintetic funcionarea uii poate fi exprimat, utiliznd expresia anterioar cu
blocul funcional SAU. Astfel, ua este deschis dac este sesizat, n
apropiere, o persoan sau este activ temporizatorul.
Limbajul natural are, spre deosebire de cel matematic, un anumit grad de
ambiguitate. Enumerri de forma Marcajul poate fi alb i rou sau galben,
nu au ntotdeauna o preceden bine stabilit a operatorilor fundamentali.
Operatorii fundamentali au particulariti care pot depinde de context, n
limbajul natural. Astfel, dac se consider fraza Colegul meu este imbrcat
cu o jachet roie sau cu un sacou verde, spre exemplu, aceasta are dou
dependene n raport cu care este adevrat. Este adevrat atunci cand
colegul poart o jachet roie sau cnd poart un sacou verde dar, ambele
situaii nu pot fi simultan satisfcute. Deosebirile dintre limbajul natural i cel

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.

Teoremele fundamentale ale algebrei booleene


n continuare sunt enunate principalele teoreme, cele care permit o manipulare
convenabil a algebrei booleene. Unele dintre teoreme sunt numite leme deoarece

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.

Proprietile algebrelor booleene


Spre deosebire de postulate, proprietile sunt, n fapt, teoreme i de aceea sunt
demonstrabile. Metoda general de demonstrare a acestor proprieti se bazeaz pe
postulatele algebrelor booleene utilizndu-se mult inducia matematic.
(I) Asociativitatea:
a + (b + c) = (a + b) + c = a + b + c,
a * (b* c) = (a * b) * c = a * b * c.
(II) Idempotena:
a + a = a,
a * a = a.
(III)
a + 1 = 1,
a * a = a.
(IV) Absorbia:
a + (a * b) = a,
a * (a + b) = a.
(V) Involuia:
(a) = a
(VI) Legile De Morgan:
(a + b) = a * b,
(a * b) = a + b.
(VII)
a + a * b = a + b,
a * (a + b) = a * b.
(VIII) Consensus:
a * b + a * c + b * c = a * b + a * c ,
(a + b) * (a + c) * (b + c) = (a + b) * (a + c) .
Exceptnd proprietatea (V) Involuia, se poate remarca o dubl reprezentare a fiecrei
proprieti (identiti, n fapt) ale algebrelor booleene. Aceast remarc se
concretizeaz n Principiul Dualitii, aa cum este acesta formulat n definiia
urmtoare.
Principiul Dualitii
Orice identitate dintr-o algebr boolean se transform ntr-o alt identitate dac au
loc urmtoarele inter-schimbri:
Operatorii + i *,
Elementele 0 i 1.

PROIECTARE LOGIC
Exemplul 2:
Identitatea a + 1 = 1, se transform, prin aplicarea principiului
dualitii, n identitatea: a * 0 = 0.

O algebr boolean se identific, tradiional, prin numele mulimii suport, B. Exist,


n acest sens, urmtoarele exemple clasice:
Algebra comutatorilor,
Algebra submulimilor unei mulimi (numit i algebra claselor),
Algebra boolean aritmetic,
Algebra boolean a funciilor booleene.
Algebra comutatorilor este un sistem algebric care const din mulimea {0,1}, doi
operatori binari, notai I (*), respectiv SAU (+), i un operator unar, notat NU (),
unde:
0 + 0 = 0,
0 * 0 = 0,
0 + 1 = 1,
0 * 1 = 0,
0 = 1,
1 + 0 = 1,
1 * 0 = 0,
1 = 0,
1 + 1 = 1,
1 * 1 = 1.
Se remarc faptul c, n conformitate cu definiia dat, algebra comutatorilor poate fi
enunat astfel: ({0,1}, +, *, 0,1).
Se poate verifica uor validitatea postulatelor pentru aceast algebr boolean.
De reinut c exist o proprietate exclusiv a acestei algebre:
a + b = 1 dac i numai dac a = 1 ori b = 1,
a * b = 0 dac i numai dac a = 0 ori b = 0.
Algebra submulimilor este un sistem algebric construit peste o mulime nevid S
(S ) numit mulimea univers, pentru care se consider toate submulimile distincte
posibile ale acesteia. Dac notm prin |S| cardinalitatea mulimii S, atunci mulimea
tuturor submulimilor mulimii S are 2|S| elemente.
Aceast algebr are drept operator aditiv (+) reuniunea (), iar intersecia () este
operatorul multiplicativ (*).
Cu alte cuvinte, se poate scrie: (K, +, *, 0, 1) = (2|S|, , , , S), unde s-a notat
mulimea tuturor submulimilor distincte ale mulimii S prin 2|S| (notaie tradiional).
Dac S={a,b} atunci K ={,{a},{b},{a,b}}. Verificarea postulatelor este, de
asemenea, simpl. Relativ la aceast algebr este de reinut teorema Stone de
reprezentare:
Teorema de izomorfism (Stone)
Orice algebr boolean finit este izomorf algebrei booleene a
submulimilor unei anumite mulimi finite S.
Algebra boolean aritmetic se construiete peste numerele naturale.
Astfel se consider n numere prime distincte i fie p produsul acestora. Se noteaz
prin Dn mulimea tuturor divizorilor acestui produs (p). Se folosesc notaiile aritmetice
consacrate, cmmdc i cmmmc pentru cel mai mare divizor comun i, respectiv, cel mai
mic multiplu comun.
Se noteaz prin 1, numrul ntreg 1 i va fi distinct de elementul 1 boolean evideniat
n definiia algebrelor booleene.
Atunci se poate scrie: (B, +, *, 0, 1) = (Dn, cmmmc, cmmdc, 1, p).
Dac, spre exemplu, p = 2 x 3 x 5 = 30, atunci Dn = {1,2,3,5,6,10,15,30}.

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.

Reprezentri ale funciilor booleene


Sunt posibile mai multe modaliti de descriere ale unei funcii booleene. O
caracteristic comun a acestor funcii, care se va reflecta n toate aceste modaliti de
descriere, este faptul c funciile discrete de variabil discret au domeniul de
definiie finit i implicit, astfel de funcii sunt reprezentabile prin enumerri finite.
Adeseori, ns volumul enumerrii acestor funcii poate fi considerabil sau chiar
prohibitiv. Modalitile de reprezentare pot fi clasificate ca fiind formele tabelare,
expresiile sau formulele booleene i diagramele de decizii binare.
Formele tabelare, cronologic fiind primele utilizate, pot fi privite ca fiind alctuite din
enumerri ordonate de perechi de valori constituite din punctul domeniului de
definiie i valoarea funciei n respectivul punct. Ca mod de implementare au suport
evident n alctuirea memoriilor. Punctele sunt vectori binari, la fel i valorile funciei
fiind binare scalare sau vectoriale. Au fost utilizate n aplicaiile de asisten automat
a proiectrii calculatoarelor n primele tentative de acest fel. Odat cu creterea
suportului funciilor reprezentarea devine incomod iar metodele dezvoltate pentru
acest mod de reprezentare nu s-au dovedit a fi printre cele mai performante.
Formulele booleene, pe scurt formulele sau expresiile, au avantajul unei dezvoltri
analitice de referin. ntreg aparatul teoretic utilizeaz aceast form de reprezentare.
Exist numeroase aplicaii care, sub o form sau alta, sunt dezvoltate avnd la baz
9

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, .

Teorema de descompunere a unei funcii booleene (Claude Shannon).


Fie f: Bn B o funcie boolean, atunci are loc identitatea:
(x1, x2, , xn) Bn,
f(x1, x2, , xn) = x1 f(0, x2, , xn) + x1 f(1, x2, , xn),

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

n identitatea de mai nainte s-au utilizat notaiile :


X = (x1, x2, , xn), A = (a1, a2, , an) {0,1}n, iar
a a
X A = x1 1 x 2 2 " x nan .

Prin expresia xiai se nelege xi' dac ai = 0 , i xi dac ai = 1 . Termenii


produs XA astfel construii se numesc mintermi i sunt fiecare n parte unic
asociai unui anumit punct din domeniul de definiie al funciei. Prezena
lor n forma canonic disjunctiv este validat de valorile (nenule)
corespunztoare ale funciei.
Demonstraia acestei teoreme decurge simplu, utiliznd sistematic teorema
Shannon.
Exemplul 3
Se consider o funcie de trei variabile (cazul n = 3). Aplicnd teorema de
reprezentare se obine urmtoarea formul canonic:

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