Sunteți pe pagina 1din 13

Proiectarea 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 ideea este, n principiu, aceeai.
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 de 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 o ntotdeauna preceden bine stabilit a operatorilor fundamentali. Operatorii fundamentali au particulariti care pot depinde de context, n limbajul natural. Astfel, se consider fraza Colegul meu este mbrcat cu o jachet roie sau cu un sacou verde, spre exemplu. Aceast fraz are dou dependene n raport cu care este adevrat. Este adevrat atunci cnd colegul poart o jachet roie sau cnd poart un sacou verde dar, ambele situaii nu pot fi simultan satisfcute, evident. Deosebirile dintre limbajul

Proiectarea Logic
natural i cel matematic fac din procesul de translatare al acestora, n proiectarea sistemelor i circuitelor digitale, o activitate solicitant.

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 relaia a = b ntre elementele a i b implic faptul c elementul a poate fi substituit prin elementul 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. Consistena revine la demonstrarea faptului 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

Proiectarea Logic 0 + 0 = 0 * 0 = 1 * 0 = 0 * 1 = 0. 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 atribuind 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 scopul acestei abordri. Pe de alt parte, nu este necesar abordarea algebrelor Booleene printr-un set independent de axiome. Exist multe abordri ale subiectului care includ ntre axiome anumite teoreme, din raiuni de simplificare a modului de prezentare. 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 iar fiecare postulat dintr-o pereche poate fi obinut din cellalt postulat prin interschimbarea simbolurilor 0 i 1, ca i a operatorilor + i *. Astfel se poate remarca: 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 prin dualul acestuia, producnd demonstraia teoremei duale.

Proiectarea Logic

Teoremele fundamentale ale algebrei Booleene


n continuare sunt enunate principalele teoreme, cele care permit o manipulare convenabil a algebrei Booleene. Unele dintre teoreme sun numite leme deoarece 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 numai o 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.

Proiectarea Logic Teorema 2 Pentru orice pereche de elemente u i v K, se verific relaiile: u + uv = u + v i u(u + v) = uv. Teorema 3 Urmtoarele dou relaii sunt adevrate oricare ar fi elementele u i v K: (u + v) = u * v i (u * v) = u + v. Exist i o definiie alternativ a algebrelor Booleene. Aceasta este utilizat, ntre altele, pentru construcii ale algebrelor Booleene definite ca latice complementate distributive. Acest mod de construcie leag algebrele Booleene mai strns de alte structuri matematice. Definiia alternativ este orientat spre o abordare prin teoria mulimilor (se va vedea, n continuare, motivaia). Dac S este o mulime de n elemente, atunci exist n2 perechi de elemente (u,v) S2 (produsul cartezian S x S se noteaz prin S2). Definiia 1 O relaie R definit peste S2 este o submulime din S2, iar scrierea (u,v) R S2 este echivalent scrierii u R v. Exist dou categorii de relaii care sunt de un interes particular n acest context: Relaiile de echivalen, i Relaiile de ordonare parial. Definiia 2 O relaie de echivalen este reflexiv, simetric i tranzitiv. Reflexivitatea: u R u; Simetria: daca u R v, atunci v R u. Tranzitivitatea: dac u R v i v R w, atunci u R w. Introducerea relaiei de ordine parial conduce la o latice. Definiia 3 O ordonare parial peste S este o relaie care satisface urmtoarele proprieti pentru oricare trei elemente u, v, w S: Reflexivitatea: u u; Antisimetria: dac u v i v u atunci u = v; Tranzitivitatea: dac u v i v w, atunci u w. Dac P este o submulime, a mulimii parial ordonate S, atunci elementul u din S este o margine superioar pentru P, dac i numai dac p u, oricare ar fi p din P. n mod similar elementul v din S este o margine inferioar pentru P, dac i numai dac v p, oricare ar fi p din P. Se noteaz prin U i V mulimea tuturor marginilor superioare, respectiv inferioare pentru P. Dac um din U este o margine superioar cu proprietatea um u, oricare ar fi u din U, atunci se spune c um este cea mai mic margine superioar (cmmms) pentru P i se noteaz prin

Proiectarea Logic sup(P). Similar se introduce cea mai mare margine inferioar (cmmmi) care se noteaz prin inf(P). Definiia 4 O mulime parial ordonat n care fiecare element are att o cea mai mare margine inferioar ct i o cea mai mic margine superioar este o latice. Prin inducie complet se poate arta c n orice latice S exist un cel mai mic element notat prin 0, astfel nct 0 s pentru orice element s din S. n mod asemntor se arat existena unui cel mai mare element n S notat prin 1, cu proprietatea s 1, oricare ar fi elementul s din laticea S. Dac elementele p i q sunt din laticea S atunci, se noteaz, pentru uurina scrierii, prin p + q = sup(p, q), iar prin p * q = inf(p, q). Teorema 4 O latice complementat distributiv (o latice care satisface postulatele V i VI ale lui Huntington) este o algebr Boolean.
Demonstraie: Operatorii postulatului II au fost introdui prin inf i respectiv sup. Deoarece 0 este cel mai mic element atunci, sup(u, 0) = u + 0 = u, iar dac 1 este cel mai mare element atunci, inf(u, 1) = u * 1 = u ceea ce demonstreaz satisfacerea postulatului III. Cel mai mic element p * q = inf(p, q), i respectiv cel mai mare element p + q = sup(p, q), nu depind de ordinea elementelor astfel nct sunt satisfcute i legile postulatului IV. Deoarece postulatele V i VI au fost incluse n ipotez, rezult c laticea este o algebr Boolean.

Astfel, se poate arta c a, b B, z B astfel nct z = inf(a,b) = ab (se spune c z este marginea inferioar), i a, b B, t B astfel nct t = sup(a,b) = ab (se spune c t este marginea superioar). Privitor la operatorii i se poate arta c amndoi distribuie unul n raport cu cellalt i se poate, de asemenea, arta c: x B, x B astfel nct x x = 1, unde 1 este elementul maxim, iar x x = 0, unde 0 este elementul minim.

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:

Proiectarea Logic 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.
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. 7

Proiectarea Logic

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| (notaia tradiional). Dac S = {a, b} atunci K ={, {a}, {b}, {a, b}}. Verificarea postulatelor n acest caz este, de asemenea, simpl. Remarcabil 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}. 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, comparativ, celei realizate 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

Proiectarea Logic 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: (i) Fn(B) este mulimea funciilor Booleene de n variabile definite peste Bn, cu valori n B, n 1. (ii) + reprezint adunarea acestor funcii, (iii) * reprezint multiplicarea acestor funcii, (iv) 0 este funcia identic nul, iar (v) 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 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.

Proiectarea Logic 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 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.

10

Proiectarea Logic

Formulele Booleene
Exist numeroase situaii n care anumite proprieti ale unor dispozitive, reale sau simulate, virtuale, sunt exprimate prin formule construite peste algebrele Booleene. Exist o legtur de mare importan ntre formulele Booleene, pe de-o parte, i funciile Booleene, pe de-alt parte. 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 dup cum urmeaz. Definiia 2: Se consider 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 (g) + (h), (g) * (h) i (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.

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 Boolean, de asemenea, corect definit. Se consider F, o formul Boolean coninnd 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 o funcie proiecie 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.

11

Proiectarea Logic

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: f(x1, x2, , xn) = x1 f(0, x2, , xn) + x1 f(1, x2, , xn), (x1, x2, , xn) Bn,

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 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 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 :

12

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

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 x2 x3 + f (0,0,1) x1 x2 x3 + f (0,1,0) x1 x2 x3 + ' ' ' ' ' f (0,1,1) x1 x2 x3 + f (1,0,0) x1 x2 x3 + f (1,0,1) x1 x2 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.

13

Evaluare