Sunteți pe pagina 1din 11

Seminar Circuite Integrate Digitale

Zoltan Hascsi

DIAGRAME VK I MINIMIZAREA FUNCIILOR LOGICE


1. Funcii produs Exemplul 1.1 (suprafeele funciilor produs sunt dreptunghiulare) Cum arat pe diagrama VK de 3 variabile o funcie produs de o variabil? S lum drept exemplu funcia produs p1 = a. Toate punctele n care aceasta are valoarea logic 1 ocup exact regiunea n care variabila a este 0. Mulimea acestor puncte, mulimea caracteristic a funciei, formeaz o suprafa dreptunghiular pe diagrama VK, indiferent de modul n care a fost desenat (partiionat) diagrama. Iat dou posibile diagrame ale acestei funcii:

b a 0 1 0 1 c 0 1 0 1

p1 c 0 0

a 0 0 b 1 1 1 1

p1

Pentru anumite partiionri ale diagramei, suprafaa produs este aparent mprit n dou:

c b 1 1 0 0 a 0 0 1 1

p1

Dac lum ns n considerare faptul c punctele opuse de pe diagram sunt de fapt vecine n spaiul booleean multidimensional, rezult c laturile din stnga i din dreapta ale diagramei sunt una i aceeai tietur. Prin urmare cele dou puncte de pe o latur sunt alipite celor dou puncte de pe latura opus, mpreun formnd o suprafa compact:

c b 1 1 0 0 a 0 0 1 1

p1 1 1

Acest lucru este evident dac alipim cele dou laturi n spaiu, diagrama transformndu-se ntr-o suprafa cilindric:

c b 1 0 1 0 a 1 0 1 0

p1

n afar de faptul c suprafaa ocupat de mulimea caracteristic a funciei produs este dreptunghiular, trebuie s remarcm c aceasta are fix 4 puncte, nu ntmpltor o putere a lui 2. Numrul de puncte al unei suprafee produs pe o diagram de n variabile este 2 la o putere egal cu n-m, unde m este numrul de variabile ale produsului. Cum n cazul nostru funcia produs p1 are o singur variabil (m = 1), suprafaa ei caracteristic pe o diagram de 3 variabile (n = 3) are 2 31 puncte.

Exemplul 1.2 (suprafeele funciilor produs au un numr de puncte egal cu o putere a lui 2)

Seminar Circuite Integrate Digitale

Zoltan Hascsi

S lum acum o funcie produs de 2 variabile, p2 = ab i s vedem cum arat suprafaa ei caracteristic pe o diagram de 2, 3, i 4 variabile. Pe o diagram de 2 variabile (m = 2) funcia produs de 2 variabile (n = 2) ocup o singur csu, mulimea ei caracteristic avnd un singur punct ( 2 2 2 = 2 0 = 1 ):

b a 0 0 0 1

p2

Aceeai funcie pe o diagram de 3 variabile (n = 3) va ocupa dou csue, cele din regiunea caracterizat de a = 0 i b = 0:

b a 0 0 0 0 c 0 1 0 1

p2

Mulimea caracteristic are 2 3 2 = 21 = 2 puncte. Acestea difer doar prin valoarea variabilei c, cea care nu apare n produs. Dac desenm mulimea caracteristic a acestei funcii produs de 2 variabile (m = 2) pe o diagram de 4 variabile (n = 4), ea va acoperi nu mai puin de 4 puncte ( 2 4 2 = 2 2 = 4 ). Cele patru puncte corespund celor patru combinaii posibile ntre valorile logice ale variabilelor c i d, variabilele care nu apar n produsul logic:

b a 0 0 0 0 0 0 0 0 d 0 0 1 1 0 0 1 1

p2

Aspectul acestor suprafee depinde de modul n care s-a fcut partiionarea diagramelor, funcia noastr putnd arta chiar i aa:

d c 1 0 0 1 0 0 0 0 b 0 0 0 0 1 0 0 1

p2

Dac ne imaginm c punctele de pe latura de sus sunt vecine cu cele situate pe latura de jos, i n acelai timp punctele de pe latura din stnga sunt vecine cu cele de pe coloana din dreapta, colurile diagramei formeaz o suprafa compact de 4 puncte.

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Exemplul 1.3 (cu ct produsul are mai puine variabile, cu att suprafaa lui e mai mare) Vom ilustra acest lucru pe o diagram de 4 variabile (n = 4). Funcia produs din primul 41 3 exemplu, p1 = a, acoper nu mai puin de 8 puncte ( 2 = 2 = 8 ):

b a 0 0 1 1 0 0 1 1 d 0 0 1 1 0 0 1 1

p1

Funcia produs din exemplul 1.2, p2 = ab, are o variabil n plus (m = 2), dar acoper o suprafa de dou ori mai mic ( 2 4 2 = 2 2 = 4 ), mai precis jumtatea din suprafaa lui p1 care se afl n regiunea b = 0:

b a 0 0 0 0 0 0 0 0 d 0 0 1 1 0 0 1 1

p2

Dac lum o funcie produs de 3 variabile (m = 3), s zicem p3 = abc, aceasta are o suprafa de numai 2 puncte ( 2 43 = 21 = 2 ):

b a 0 0 0 0 0 0 0 0 d
(2
44

p3 0 0 1 1 0 0 0 0 c

n fine, o funcie produs de 4 variabile (m = 4) are o suprafa redus la un singur punct = 2 0 = 1 ). Pe o diagram de 4 variabile funcia p4 = abcd arat astfel:

b a 0 0 0 0 0 0 0 0 d 0 0 1 0 0 0 0 0

p4

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Tabelul urmtor sintetizeaz observaiile precedente: numrul variabilelor funciei produs (m) numul de puncte ale mulimii caracteristice pe o diagram de 4 variabile (n = 4) 0 16 1 8 2 4 3 2 4 1

Cazul limit m = 0 corespunde funciei produs p0 = 1, care are valoarea logic 1 n toate punctele mulimii de definiie i prin urmare acoper ntreaga diagram.

2. Identificarea funciilor produs Funciile produs se identific rapid pe diagramele VK pe baza urmtoarelor dou caracteristici ale mulimilor caracteristice: au o form dreptunghiular (vezi exemplul 1.1); acoper un numr de puncte egal cu o putere a lui 2 (vezi exemplul 1.2); Odat reperat o asemenea suprafa rmne s explicitm expresia algebric a funciei, adic produsul logic propriu-zis. Exemplul 2.1 Fie suprafaa din diagrama de mai jos:

b a 0 0 0 0 0 0 1 0 c 0 0 1 0 0 0 0 0

ntruct suprafaa are doar 2 puncte ne ateptm ca produsul logic corespunztor s aib 3 variabile (vezi exemplul 1.3). Produsul l vom scrie variabil cu variabil eliminndu-le pe cele a cror tietur taie suprafaa, i urmrind pentru celelalte variabile n care regiune se afl suprafaa pentru a determina care din ele apar negate n produsul caracteristic. ncepem aadar cu variabila a:

b 0 a 0 0 0 0 1 0 c 0 1 0 0 0 0 0 0 0

Suprafaa se afl n ntregime n regiunea a = 0, aadar produsul conine variabila a, dar negat: p = a... Mergem mai departe i abordm variabila b.

Seminar Circuite Integrate Digitale

Zoltan Hascsi

b a 0 0 0 0 0 0 1 0 c 0 0 1 0 0 0 0 0

Tietura corespunztoare variabilei b mparte suprafaa n dou, un punct aflndu-se n regiunea b = 1, cellalt n regiunea complementar. Aadar variabila b nu apare n produs. Trecem la variabila c:

b a 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0

c
Suprafaa se afl n ntregime n regiunea c = 1, ca urmare variabila c este prezent n funcia produs: p = ac... ncheiem analiza noastr cu cea de a patra variabil, d:

b a 0 0 0 0 0 0 1 0 c 0 0 1 0 0 0

d
0 0

Suprafaa se afl n ntregime n regiunea d = 1, ca urmare i variabila d este prezent n funcia produs, a crui expresie o putem acuma scrie n ntregime: p = acd. Observaie: Produsul logic (funcia I) este echivalent interseciei de mulimi. Funcia produs p = acd poate fi privit i ca intersecia regiunilor corespunztoare variabilelor care apar n expresia produsului (a = 0, c = 1, d = 1):

b 0 0 0 1 0 0 0 1 0 0 0

a
0 0 0

d
0 0

c
3. Minimizarea funciilor logice

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Exemplul 3.1 (suprafeele produs ale acoperirii trebuie s fie maxime)

b a 0 1 1 1 c 0 0 1 0

Funcia f are numai patru puncte n care ia valoarea 1, iar pe diagram se vede imediat c acestea nu pot fi grupate mpreun ntr-o suprafa dreptunghiular. Vom cuta suprafee produs de numai 2 puncte. S ncepem cu suprafaa care acoper cele 2 puncte de jos:

b a 0 1 S1 1 1 c 0 0 1 0

Termenul care caracterizeaz aceast suprafa este P1 = ab. Din cele 4 puncte n care funcia f ia valoarea 1 au mai rmas neacoperite doar 2. Punctul (111) poate fi acoperit de o suprafa produs mai mare dac se grupeaz cu vecinul lui de jos, punctul (011) deja acoperit de suprafaa S2:

b a 0 1 S1 1 1 c

S2 0 0 1 0

Termenul care caracterizeaz aceast suprafa este P2 = bc. Singurul punct rmas neacoperit este izolat de celelalte puncte n care funcia ia valoarea 1, prin urmare nu poate fi alipit de vreunul din ele pentru a forma o suprafa produs de 2 puncte. Acesta va forma de unul singur o suprafa produs:

b a 0 1 S1 1 1 c

S2 0 0 1 0

f S3

Termenul care caracterizeaz aceast suprafa este P3 = abc (este chiar mintermenul caracteristic acestui punct). Mulimea S care acoper toate punctele n care funcia ia valoarea 1 se obine prin reuniunea mulimilor S1, S2 i S3: S = S1 U S2 U S3 Reuniunea de mulimi n spaiul booleean multidimensional este echivalent sumei logice (SAU) a funciilor caracteristice mulimilor, prin urmare expresia logic a funciei f se poate obine prin suma logic (disjuncie) a produselor gsite anterior: f = P1 + P2 + P3 = ab + bc + abc

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Observaie: Dac nu se caut suprafeele produs cele mai mari pentru acoperire, termenii produs vor avea mai multe variabile, i prin urmare mai muli operatori logici dect este nevoie. Dac S2 nu ar fi coninut dect punctul (111) s-ar fi obinut totui o acoperire valid, cu numr minim de suprafee, dar expresia logic n-ar mai fi fost minim:

b a 0 1 S1 1 1 c

S2 0 0 1 0

f S3

f = P1 + P2 + P3 = ab + abc + abc Expresia obinut are n plus fa de expresia minim variabila a n al doilea termen i un produs logic (I) ntre aceasta i restul produsului (P2 = aP2) Exemplul 3.2 (acoperirea trebuie s aib un numr minim de suprafee produs) Funcia g are urmtoarea reprezentare pe diagram:

b a 0 1 0 0 0 1 1 1 c 1 1 1 0 0 0 1 0

Punctele de 1 care au un singur vecin nu vor avea dect o singur variant de acoperire. Evident suprafaa maxim care acoper un asemenea punct este de dou puncte, nglobnd punctul respectiv i singurul vecin care este n 1. S lum de exemplu punctul din stnga, punctul (1101):

b a 0 1 0 0 0 1 1 1 c 1 1 1 0 0 0 1 0

Din cei patru vecini (colorai cu albastru), numai cel din dreapta are valoarea 1. mpreun cu acesta se poate forma o suprafa produs, cea mai mare care poate acoperi punctul din stnga:

Seminar Circuite Integrate Digitale

Zoltan Hascsi

abd a 0 1 0 0

b 0 1 1 1 c 1 1 1 0 0 0 1 0

Celelalte puncte de 1 care au un singur vecin cu valoarea 1 vor fi i ele acoperite cu suprafee de 2 puncte:

abd a 0 1 0 abc 0

b 0 1 1 1 c 1 1 1 0 0 0 1 0

g abc d

abd

g = abd + abc + abc + abd Observaie: Cele patru puncte din mijloc n care funcia are valoarea 1 pot fi acoperite de o singur suprafa de 4 puncte. Suprafaa este ns superflu deoarece acestea sunt acoperite de suprafeele mai mici de 2 puncte, care sunt absolut necesare pentru acoperirea celorlaltor patru puncte. Dac minimizarea ar fi nceput cu aceast mare suprafa (colorat cu albastru pe diagrama de mai jos), ea ar fi continuat cu cele 4 suprafee mai mici necesare i n final am fi obinut 5 termeni n loc de patru:

abd a
cd

b 0 1 0 0 0 1 1 1 c 1 1 1 0 0 0 1 0

g abc d

abc

abd

g = cd + abd + abc + abc + abd Dac pe parcursul minimizrii se obine o suprafa care este acoperit integral de alte suprafee, i dac acestea din urm sunt absolut necesare, suprafaa redundant se elimin din acoperire.

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Exemplul 3.3 (unele funcii admit mai multe expresii disjunctive minime) Funcia h are urmtoarea reprezentare pe diagram:

b a 0 1 1 1 c 1 0 1 1

Punctele n care funcia h are valoarea 1 se pot grupa dou cte dou pentru a forma suprafee produs, iar o acoperire minim se poate realiza cu trei asemenea suprafee:

ac b a 0 1 ab 1 1 c 1 0 1 1 bc h

Funcia h admite ns i o a doua posibilitate de acoperire minim, cele trei suprafee produs a cte dou puncte repartizndu-se astfel:

ab bc a 0 1 b 1 1 c
n primul caz expresia minim disjunctiv a funciei h este: h = ab + ac + bc iar n al doilea caz, expresia minim disjunctiv a funciei h este: h = ab + ac + bc Cele dou expresii algebrice au acelai numr de operatori logici (trei operatori de negare, doi operatori SAU i trei operatori I), prin urmare amndou sunt expresii minime disjunctive.

h 1 0 1 1 ac

4. Minimizarea funciilor logice incomplet definite O funcie logic incomplet definit are unul sau mai multe puncte n care valoarea logic este indiferent (dont care) sau neprecizat. Aceste puncte sunt marcate cu X pe diagrama VK, cum este cazul i n exemplul care urmeaz. ntruct valoarea logic a funciei n punctele respective este indiferent, la minimizare acestea sunt acoperite doar n msura n care contribuie la mrirea suprafeelor ce acoper puncte n care funcia are valoarea logic 1. Algoritmul de minimizare este acelai ca pentru funciile complet definite, cu amendamentul c atunci cnd se caut supafeele cele mai mari care acoper un numr ct mai mare de puncte de 1 neacoperite, se pot folosi i punctele n care funcia este nedefinit. Atenie! Nu este obligatoriu s acoperim toate X-urile din diagram,

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Exemplul 4.1

b a 1 0 1 1 0 0 1 0 c X 1 X 0 1 1 0 X

ncepem minimizarea cutnd o suprafa care acoper un numr ct mai mare de puncte de 1. Se pot identifica dou suprafee de 4 csue care acoper 3 puncte de 1. Una din ele este cea din dreapta:

b a 1 0 1 1 0 0 1 0 c X 1 X 0 1 1 0 X

F ab d

Din punctele rmase neacoperite nu putem acoperi mai mult de dou cu o singur suprafa. Vom ncepe cu punctul (0111), din coloana a doua din dreapta, pentru c are un singur vecin n 1, cel din stnga lui, i prin urmare o singur variant de acoperire pentru minimizare:

b a 1 0 1 1 abd 0 0 1 0 c X 1 X 0 1 1 0 X

F ab d

Au mai rmas doar dou puncte neacoperite, cele din colurile din stnga. Acestea sunt vecine i n plus pot fi alipite colurilor din dreapta pentru a obine o suprafa produs mai mare, i deci un termen produs mai scurt:

b a 1 0 1 1 abd 0 0 1 0 c X 1 X 0 1 1 0 X

F ab d

cd

A rmas un punct n care funcia are valoare nedefinit i nu este acoperit de nici o suprafa. Funcia minimizat va lua aici valoarea 0. Forma disjunctiv minim este:

Seminar Circuite Integrate Digitale

Zoltan Hascsi

F = ab + abd + cd Observaie: Chiar dac X-urile din diagram par tentante n a gsi suprafee ct mai mari, nu trebuie s ne lsm sedui de acestea. Scopul principal n fiecare pas de minimizare este acoperirea unui numr ct mai mare de puncte de 1 printr-o suprafa ct mai mare. Dac nu respectm acest lucru putem rata soluia optim, ca n cazul acoperirii de mai jos pentru aceeai funcie:

b a acd 1 0 1 1 abc
F = ab + abc + acd + cd

F 0 0 1 0 c X 1 X 0 1 1 0 X cd ab d