Sunteți pe pagina 1din 5

Seminar Circuite Integrate Digitale

Zoltan Hascsi

TRANSFORMRI ALGEBRICE ALE EXPRESIILOR BOOLEENE


1. Evaluarea expresiilor booleene cu ajutorul tabelului de adevr. Fie urmtoarea expresie algebric: f = (ac) + (bc) Funcia depinde de trei variabile, prin urmare mulimea ei de definiie conine 8 puncte. Pentru cele 8 combinaii de valori logice ale variabilelor a, b i c trebuie s evalum expresia booleean ac + bc. Evaluarea se face ncepnd cu operaiile cele mai prioritare, respectiv cele din parantezele interne. Putem ilustra evaluarea expresiei booleene cu ajutorul unui graf al operaiilor logice:

c
INV

c
I I

ac
SAU

bc

(ac)+(bc )
ncepem aadar cu evaluarea expresiei c:

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

c 1 0 1 0 1 0 1 0

Continum cu expresia ac:

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

c ac 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Cu ajutorul coloanei lui c se poate evalua i expresia bc:

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

c ac 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1

bc 0 0 1 0 0 0 1 0

Odat ce avem valorile subexpresiilor ac i bc (ultimele dou coloane din tabelul anterior), un simplu SAU al acestora ne va da valoarea funciei f :

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

c ac 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1

bc (ac)+(bc) 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1

2. Echivalena expresiilor booleene Dou expresii algebrice sunt echivalente dac ele reprezint aceeai funcie. Echivalena se poate verifica cu ajutorul tabelelor de adevr, prin evaluarea fiecrei expresii pentru toate combinaiile de valori logice ale variabilelor. S considerm expresiile booleene de mai jos, presupuse a fi egale: (ac) + (bc) ? (a+c)(b+c) = Evaluarea expresiilor se face prin metoda descris n problema precedent. Odat ce am evaluat una dintre expresii (cea din stnga), pe acelai tabel de adevr putem continua cu evaluarea operaiilor logice din a doua expresie. n final vom avea dou coloane de valori logice, cte una pentru fiecare expresie logic evaluat. Simpla lor comparare, rnd cu rnd sau combinaie cu combinaie, ne va spune dac ele sunt echivalente sau nu:

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

c ac 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1

bc (ac)+(bc) a+c b+c (a+c)(b+c) 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Echivalena a dou expresii booleene poate fi verificat i algebric, dac prin aplicarea teoremelor algebrei booleene putem transforma o expresie logic n cealalt. S ncepem cu expresia logic din stnga: (ac) + (bc) Aplicnd distributivitatea sumei logice fa de produs, x + (yz) = (x + y)(x + z), se obine: (ac) + (bc) = [ (ac) + b ] [ (ac) + c ] Aplicm nc o dat distributivitatea n interiorul fiecrei paranteze ptrate: [ (ac) + b ] [ (ac) + c ] = [ (a + b) (c + b) ] [ (a + c) (c + c) ] Teorema terului exclus, x + x = 1, permite simplificarea ultimei paranteze: [ (a + b) (c + b) ] [ (a + c) (c + c) ] = [ (a + b) (c + b) ] [ (a + c) 1 ] Valoarea logic 1 este element neutru pentru produsul logic, x 1 = x, ca urmare: [ (a + b) (c + b) ] [ (a + c) 1 ] = [ (a + b) (c + b) ] [ (a + c) ] Tot o lege a elementului neutru, cel pentru suma logic, x + 0 = x, dar aplicat n sens invers, ne permite s introducem n expresie o valoare logic care ne va ajuta n transformrile care urmeaz: [ (a + b) (c + b) ] [ (a + c) ] = [ ((a + b) + 0) (c + b) ] [ (a + c) ] Urmeaz un truc ntlnit deseori n algebra booleean, care permite introducerea unei variabile ntr-o subexpresie n care variabila nu este prezent (subexpresie subliniat mai jos): [ ((a + b) + 0) (c + b) ] [ (a + c) ] = [ ((a + b) + (cc)) (c + b) ] [ (a + c) ] Ultima transformare a aplicat, n sens invers, legea noncontradiciei, x x = 0. Aceeai subexpresie subliniat este mai departe transformat prin aplicarea distributivitii sumei logice fa de produs: [ ((a + b) + (cc)) (c + b) ] [ (a + c) ] = [ (((a + b) + c) ((a + b) +c)) (c + b) ] [ (a + c) ] Suma logic fiind asociativ putem renuna la unele paranteze: [ (((a + b) + c) ((a + b) +c)) (c + b) ] [ (a + c) ] = [ ((a + b + c) (a + b +c)) (c + b) ] [ (a + c) ] Produsul logic (funcia I) este i el comutativ i asociativ. Putem inversa ordinea celor patru subexpresii care sunt termenii unui produs logic: [ ((a + b + c) (a + b +c)) (c + b) ] [ (a + c) ] = [ (a + b + c) (c + b) ] [ (a + b +c) (a + c) ] O rearanjare suplimentar, pentru pregtirea urmtorului pas, ine seama de asociativitatea i comutativitatea sumei logice (funcia SAU): [ (a + b + c) (c + b) ] [ (a + b +c) (a + c) ] = [ ((b + c) + a) (b + c) ] [ ((a +c) + b) (a + c) ] Una din variantele legii de absorbie este (x + y) x = x. Aceast lege de absorbie o vom aplica n interiorul fiecrei paranteze ptrate:

Seminar Circuite Integrate Digitale

Zoltan Hascsi

[((b + c) + a) (b + c) ] [((a +c) + b) (a + c) ] = [ (b + c) ] [ (a + c) ] n fine, considernd comutativitatea produsului logic din ultima expresie se obine expresia cutat, i odat cu aceasta echivalena din enunul problemei este demonstrat: [ (b + c) ] [ (a + c) ] = (a + c) + (b + c) 3. Deducerea formei normale disjunctive Prin cteva transformri algebrice simple orice expresie booleean poate fi transformat ntro form normal, fie disjunctiv, fie conjunctiv. Fie expresia funciei f : f = (ac) + (bc) Funcia are trei variabile, prin urmare expresia normal disjunctiv trebuie s conin produse n care apar toate cele trei variabile. Pentru a introduce variabilele lips n fiecare produs al expresiei de mai sus vom face uz de elementului neutru al produsului logic, x 1 = x, de teorema terului exclus, x + x = 1, i n final de legea distributivitii produsului fa de sum. n aceast ordine. Mai nti elementul neutru: f = (ac) 1 + (bc) 1 Apoi teorema terului exclus: f = (ac) (b + b) + (bc) (a + a) i n final legea distributivitii: f = (acb) + (acb) + (bca) + (bca) O ultim aranjare, mai degrab cosmetic, pentru a pune variabilele n aceeai ordine n fiecare termen, se bazeaz pe asociativitatea i comutativitatea produsului logic: f = (abc) + (abc) + (abc) + (abc) 3. Deducerea formei normale conjunctive Expresia normal conjunctiv este un produs de termeni sum, fiecare termen sum coninnd toate cele trei variabile ale funciei. Expresia de la nceput trebuie prelucrat pn la o form conjunctiv. S considerm acceeai expresie ca la problema anterioar: f = (ac) + (bc) Aplicnd distributivitatea sumei logice fa de produs, x + (yz) = (x + y)(x + z), se obine: f = [ (ac) + b ] [ (ac) + c ] Aplicm nc o dat distributivitatea n interiorul fiecrei paranteze ptrate: f = (a + b) (c + b) (a + c) (c + c) Ultimul termen se reduce la constanta 1 (teorema terului exclus), care apoi dispare fiind element neutru fa de produs: f = (a + b) (c + b) (a + c) 1 = (a + b) (c + b) (a + c) Ultima expresie este o form conjunctiv, dar termenii sum nu conin toate cele trei variabile. Pentru a introduce n fiecare termen variabila lips vom apela la elementul neutru fa de sum, x + 0 = x, aplicat n sens invers:

Seminar Circuite Integrate Digitale

Zoltan Hascsi

f = ((a + b) + 0) ((c + b) + 0) ((a + c) + 0) Teorema noncontradiciei, x x = 0, aplicat n sens invers, introduce printr-o substituie adecvat a lui x variabila lips n fiecare termen sum: f = ((a + b) + (cc)) ((c + b) + (aa)) ((a + c) + (bb)) Punem n joc nc o dat distributivitatea sumei fa de produs: f = (a + b + c) (a + b + c) (c + b + a) (c + b + a) (a + c + b) (a + c + b) Rearanjm n interiorul fiecrui termen variabilele aplicnd asociativitatea i comutativitatea sumei logice: f = (a + b + c) (a + b + c) (a + b + c) (a + b + c) (a + b +c) (a + b + c) Termenii duplicat vor fi eliminai (teorema idempotenei, x x = x): f = (a + b + c) (a + b + c) (a + b + c) (a + b + c) (a + b +c) (a + b + c) Ceea ce rmne este chiar forma normal conjunctiv a funciei: f = (a + b + c) (a + b + c) (a + b + c) (a + b + c)

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