2_Predavanje_2

15
Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka” 1 Predavanje 2 Standardni oblici logičkih izraza Interesantno je da se svaki logički izraz primjenom zakona iskazne algebre moţe svesti na neke karakteristične oblike, koji imaju vrlo jednostavnu i pravilnu strukturu. Da bismo to pokazali, moramo prvo uvesti nekoliko pojmova. Na prvom mjestu ćemo uvesti pojmove literala, elementarne konjunkcije i elementarne disjunkcije. Pod literalom podrazumijevamo bilo koju logičku promjenljivu ili njenu negaciju. Izraz koji je ili literal, ili predstavlja konjunkciju više literala u kojoj se niti jedna promjenljiva ne pojavljuje više od jedanput (npr. ACD) naziva se elementarna kojnunkcija. Slično, izraz koji je ili literal, ili predstavlja disjunkciju više literala u kojoj se niti jedna promjenljiva ne javlja više od jedanput (npr. A B D) naziva se elementarna disjunkcija ili klauza. Pored toga, logička konstanta “ T ” tretira se kao elementarna konjunkcija sa 0 literala, a logička konstanta “” kao elementarna disjunkcija sa 0 literala. Izraz koji ima oblik disjunkcije više prostijih izraza (npr. B AC) naziva se disjunktivna forma. Ukoliko je svaki od tih izraza elementarna konjunkcija (npr. A BC BC) tada govorimo o disjunktivnoj normalnoj formi (DNF). Slično, izraz koji ima oblik konjunkcije više prostijih izraza (npr. ABC(B C)) naziva se konjunktivna forma, a ukoliko je svaki od tih izraza elementarna disjunkcija (npr. A(B C)(B C)), u pitanju je konjunktivna normalna forma (KNF). Pri tome, individualne elementarne konjunkcije smatraju se specijalnim slučajem disjunktivnih normalnih formi, a individualne elementarne disjunkcije smatraju se specijalnim slučajem konjunktivnih normalnih formi. UvoĎenje ovakvih “degenerisanih” specijalnih slučajeva bitno pojednostavljuje formulaciju nekih tvrĎenja koja slijede. Svaki logički izraz uvijek je moguće svesti bilo na disjunktivnu, bilo na konjunktivnu normalnu formu. Da bismo neki logički izraz sveli na disjunktivnu normalnu formu, prvo se trebamo osloboditi eventualng prisustva ekskluzivnih disjunkcija, implikacija i ekvivalencija, uz pomoć pravila X Y = XY XY, X Y = X Y i X Y = XY XY. Dalje je potrebno osloboditi se svih negacija složenih podizraza (uključujući i višestruke negacije) pomoću De Morganovih pravila (redoslijed kojim se vrši ovo oslobaĎanje ne mora biti jednoznačan), a zatim obaviti sve moguće konjunkcije koje se mogu obaviti prema pravilu distributivnosti konjunkcije prema disjunkciji. Na kraju se, pomoću trivijalnih pravila (poput zakona idempotentnosti ili konzistentnosti) oslobodimo eventualnog suvišnog pojavljivanja istih promjenljivih ili čitavih podizraza. Postupak svoĎenja na DNF ilustriraćemo na jednom primjeru. Primjer : Svesti logički izraz BC AC C) B (A AB na disjunktivnu normalnu formu. SvoĎenje ćemo provesti postupno, u skladu sa gore opisanim postupkom: BC AC C) B (A AB = BC AC C) B (A AB = BC AC C) B (A AB = = BC AC )) C B A ( AB ( = ) C B ( ) C A ( ) C B A B A ( = = ) C B ( ) C A ( )) C (B A B A ( = ) C C B C A B A ( ) C A B A B A ( = = C A C A C A B A C A B C A A B A C A B A B A B A B B A A C C A C B A C B C A C B C A C B B A C B B C B A = = C A C B A C B A C A C B A B A B A C A C B A C B C A C B A C B C B A = = C B A C B C A C B A B A = C B C A B A U ovom primjeru, već pretposljednji izraz predstavlja disjunktivnu normalnu formu. MeĎutim, mi smo izvršili dodatno skraćenje ove forme dvostrukom primjenom pravila apsorpcije za disjunkciju: C B A B A = B A , C B A C A = C A

Transcript of 2_Predavanje_2

Page 1: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

1

Predavanje 2

Standardni oblici logičkih izraza Interesantno je da se svaki logički izraz primjenom zakona iskazne algebre moţe svesti na neke

karakteristične oblike, koji imaju vrlo jednostavnu i pravilnu strukturu. Da bismo to pokazali, moramo prvo uvesti nekoliko pojmova.

Na prvom mjestu ćemo uvesti pojmove literala, elementarne konjunkcije i elementarne disjunkcije. Pod literalom podrazumijevamo bilo koju logičku promjenljivu ili njenu negaciju. Izraz koji je ili literal, ili predstavlja konjunkciju više literala u kojoj se niti jedna promjenljiva ne pojavljuje više od jedanput (npr. ACD) naziva se elementarna kojnunkcija. Slično, izraz koji je ili literal, ili predstavlja disjunkciju

više literala u kojoj se niti jedna promjenljiva ne javlja više od jedanput (npr. A

B

D) naziva se

elementarna disjunkcija ili klauza. Pored toga, logička konstanta “ T ” tretira se kao elementarna

konjunkcija sa 0 literala, a logička konstanta “” kao elementarna disjunkcija sa 0 literala.

Izraz koji ima oblik disjunkcije više prostijih izraza (npr. B

AC ) naziva se disjunktivna forma.

Ukoliko je svaki od tih izraza elementarna konjunkcija (npr. A

BC

BC) tada govorimo o disjunktivnoj

normalnoj formi (DNF). Slično, izraz koji ima oblik konjunkcije više prostijih izraza (npr. ABC(B

C))

naziva se konjunktivna forma, a ukoliko je svaki od tih izraza elementarna disjunkcija (npr.

A(B

C)(B

C)), u pitanju je konjunktivna normalna forma (KNF). Pri tome, individualne elementarne

konjunkcije smatraju se specijalnim slučajem disjunktivnih normalnih formi, a individualne elementarne disjunkcije smatraju se specijalnim slučajem konjunktivnih normalnih formi. UvoĎenje ovakvih “degenerisanih” specijalnih slučajeva bitno pojednostavljuje formulaciju nekih tvrĎenja koja slijede.

Svaki logički izraz uvijek je moguće svesti bilo na disjunktivnu, bilo na konjunktivnu normalnu

formu. Da bismo neki logički izraz sveli na disjunktivnu normalnu formu, prvo se trebamo osloboditi eventualng prisustva ekskluzivnih disjunkcija, implikacija i ekvivalencija, uz pomoć pravila

X

Y = XY

XY, X

Y = X

Y i X

Y = XY

XY. Dalje je potrebno osloboditi se svih negacija

složenih podizraza (uključujući i višestruke negacije) pomoću De Morganovih pravila (redoslijed kojim se vrši ovo oslobaĎanje ne mora biti jednoznačan), a zatim obaviti sve moguće konjunkcije koje se mogu obaviti prema pravilu distributivnosti konjunkcije prema disjunkciji. Na kraju se, pomoću trivijalnih pravila (poput zakona idempotentnosti ili konzistentnosti) oslobodimo eventualnog suvišnog pojavljivanja istih promjenljivih ili čitavih podizraza. Postupak svoĎenja na DNF ilustriraćemo na jednom primjeru.

Primjer : Svesti logički izraz

BCACC)B(AAB na disjunktivnu normalnu formu.

SvoĎenje ćemo provesti postupno, u skladu sa gore opisanim postupkom:

BCACC)B(AAB =

BCACC)B(AAB

=

BCACC)B(AAB

=

=

BCAC))CBA(AB( =

)CB()CA()CBABA(

=

=

)CB()CA())C(BABA( =

)CCBCABA()CABABA(

=

=

CACACABACABCAABACABABABABBAA

CCACBACBCACBCACBBACBBCBA =

=

CACBACBACACBABABA

CACBACBCACBACBCBA =

=

CBACBCACBABA =

CBCABA

U ovom primjeru, već pretposljednji izraz predstavlja disjunktivnu normalnu formu. MeĎutim, mi smo izvršili dodatno skraćenje ove forme dvostrukom primjenom pravila apsorpcije za disjunkciju:

CBABA =

BA , CBACA

=

CA

Page 2: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

2

Usput, iz izloţenog vidimo da neki izraz moţe imati više različitih, meĎusobno ekvivalentnih DNF (isto vrijedi i za KNF). Prilikom nalaţenja DNF, postupak se moţe osjetno skratiti ukoliko u toku postupka vršimo primjenu pravila saţimanja i apsorpcije kada se god za to ukaţe mogućnost. Tako smo, na primjer, u prethodnom primjeru već u drugom redu mogli uočiti da na osnovu zakona apsorpcije slijedi da je

CBAA = A

i na taj način bitno skratiti postupak. SvoĎenje logičkog izraza na konjunktivnu normalnu formu moguće je obaviti sličnim postupkom kao i svoĎenje na DNF, jedino je umjesto pravila distributivnosti konjunkcije prema disjunkciji potrebno koristiti pravilo distributivnosti disjunkcije prema konjunkciji. MeĎutim, za razliku od prvog pravila koje

glasi X (Y

Z) = XY

XZ i koje se primjenjuje rutinski zbog činjenice da podsjeća na slično pravilo

X (Y

+

Z) = XY

+

XZ iz elementarne matematike, primjena drugog pravila X

YZ = (X

Y)

(X

Z)

zahtijeva povećanu koncentraciju, jer slično pravilo ne postoji u elementarnoj matematici. Stoga je, pri primjeni ovog pravila, veća vjerovatnoća da ćemo nešto previdjeti ili napraviti neku drugu grešku. Da bi se uklonile ove poteškoće, svoĎenje proizvoljnog logičkog izraza na KNF najčešće se obavlja indirektnim putem, odnosno postupkom dvostruke negacije. Tako, da bi se neki izraz sveo na KNF, najpraktičnije je prvo formirati njegovu negaciju, zatim tu negaciju svesti na DNF i na kraju negirati dobijeni rezultat korištenjem De Morganovih pravila. Suština postupka oslanja se na činjenicu da De Morganova pravila prevode disjunktivne normalne forme u konjunktivne normalne forme i obrnuto.

Primjer : Svesti logički izraz )D(CB)DCB(A na konjunktivnu normalnu formu, prvo

direktno, a zatim postupkom dvojne negacije.

Direktno svoĎenje ovog izraza na KNF moţemo obaviti višestrukom primjenom pravila

distributivnosti X

Y

Z = (X

Y)

(X

Z):

)D(CB)DCB(A =

)D(CB)DB()CB(A

=

=

)DC)DB()CB((AB))DB()CB((A =

=

)DDCB()DCCB()DC(A)DB(B)CB(BB)(A =

= )DC(AB)(A

Postupkom dvostruke negacije prvo ćemo naći DNF negacije traţenog izraza:

)D(CB)DCB(A =

)D(CB)DCB(A =

)DCB()DCBA(

=

= )DCB()DCBA( =

)DCB())DC(BA(

=

)DCB()DBBCA(

=

=

DDCBDCBCDCADBBCBBBA =

DCABA

Traţenu KNF sada dobijamo negacijom dobijenog izraza:

)D(CB)DCB(A =

DCABA

=

DCABA

=

)DCA()BA(

Disjunktivna normalna forma u kojoj svaka elementarna konjunkcija sadrţi iste promjenjive (npr. CBACABCBAABC ) naziva se savršena disjunktivna normalna forma (SDNF), dok se

konjunktivna normalna forma u kojoj svaka elementarna disjunkcija sadrţi iste promjenljive (npr. )CBA)(CBA( ) naziva se savršena konjunktivna normalna forma (SKNF). Elementarne

konjunkcije koje čine SDNF nazivaju se minterme, dok se elementarne disjunkcije koje čine SKNF nazivaju maksterme.

U slučaju kada govorimo o savršenoj disjunktivnoj odnosno konjunktivnoj normalnoj formi nekog

zadanog polaznog izraza, prećutno podrazumijevamo da pri tome sve minterme odnosno maksterme trebaju sadrţavati one i samo one promjenljive koje su se javljale u polaznom izrazu. Recimo, neka

Page 3: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

3

imamo izraz AB AB AC. Mada je lako provjeriti da je ovaj izraz ekvivalentan izrazu AC

AC

AC,

on nije SDNF polaznog izraza, bez obzira što sve njegove elementarne konjunkcije sadrţe iste promjenljive A i C. Naime, ovaj izraz ne sadrţi promjenljivu B koja se javljala u polaznom izrazu

(ispravna SDNF ovog izraza glasi ABC

ABC

ABC

ABC

ABC

ABC).

Svaka DNF moţe se lako svesti na SDNF tako da u svakom članu u kojem nedostaje neka od

promjenljivih uvedemo nedostajuću promjenljivu pomoću razvoja X = X (Y

Y) = XY

XY. Ukoliko u

nekom članu nedostaje više od jedne promjenljive, ovaj razvoj po potrebi primjenjujemo više puta sve dok ne uvedemo sve nedostajuće promjenljive. Postupak ponavljamo dok se svi članovi ne dovedu u oblik koji sadrţi sve promjenljive. Na kraju se oslobodimo eventualnog suvišnog pojavljivanja istih članova koji mogu nastati kao posljedica provedene ekspanzije.

Primjer : Svesti izraz

CACBBA u DNF obliku na SDNF oblik.

Da bi ovaj izraz dobio oblik SDNF, u prvi član treba uvesti promjenljivu C, u drugi član promjenljvu A, a u treći član promjenljivu B, tako da imamo:

CACBBA =

CACBCBACBA

=

CACBACBACBACBA =

=

CBACBACBACBACBACBA =

CBACBACBACBA

Slično, svaka KNF se lako moţe svesti na SKNF primjenom razvoja X = X

YY = (X

Y)(X

Y).

Alternativno, i ovdje se moţe primijeniti postupak dvojne negacije.

Primjer : Svesti izraz

)DCA()BA( u KNF obliku na SKNF oblik.

U ovom slučaju, u prvom faktoru nedostaju promjenljive C i D, a u drugom faktoru promjenljiva B. Radi bolje preglednosti, promjenljive ćemo uvoditi postupno, jednu po jednu:

)DCA()BA( = )DCA()CBA()CBA(

=

= )DCBA()DCBA()CBA()CBA( =

= )DCBA()DCBA()CBA()DCBA()DCBA( =

= )DCBA()CBA()DCBA()DCBA( =

= )DCBA()DCBA()DCBA()DCBA()DCBA(

Ovim smo formirali i traţenu SKNF. Alternativno, moţemo formirati negaciju ovog izraza, svesti je na SDNF, i negirati dobijeni izraz da dobijemo traţenu SKNF:

)DCA()BA( =

DCABA

= DCABA

=

DCBADCBACBACBA

=

=

DCBADCBADCBADCBADCBADCBA =

=

DCBADCBADCBADCBADCBA

)DCA()BA( = DCBADCBADCBADCBADCBA

=

=

DCBADCBADCBADCBADCBA =

= )DCBA()DCBA()DCBA()DCBA()DCBA(

Kao što vidimo, dobili smo rezultat koji se od prethodnog rezultata razlikuje samo u poretku članova. Ovo nije slučajnost, jer se moţe dokazati da su SDNF i SKNF svakog logičkog izraza jedinstvene, u smislu da se dvije različite SDNF (ili SKNF) istog logičkog izraza mogu eventualno razlikovati samo u poretku članova. Odavde slijedi jedan sistematičan metod za ispitivanje da li su dva logička izraza ekvivalentna ili ne (bez korištenja tablica istine). Naime, oba izraza treba svesti na oblik SDNF ili SKNF. Tada, ukoliko su posmatrani izrazi ekvivalentni (i samo tada), dobijene SDNF odnosno SKNF mogu se eventualno razlikovati samo u poretku pojedinih članova. Naţalost, duţina postupka

Page 4: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

4

svoĎenja nekog izraza na oblik SDNF ili SKNF u općem slučaju eksponencijalno raste sa porastom broja varijabli, tako da je efiksanost takvog metoda tipično loša.

Formiranje logičkog izraza na osnovu poznate tablice istine

Oblici SDNF i SKNF nekog logičkog izraza naročito su pogodni ukoliko je potrebno na osnovu zadane tablice istine konstruisati logički izraz čija je tablica istine jednaka zadanoj. Ako uočimo da svaka minterma dobija vrijednost “ T ” samo za jednu kombinaciju promjenljivih (dakle, u samo jednom

redu tablice istine), dok svaka maksterma dobija vrijednost “” samo za jednu kombinaciju promjenljivih, veoma je lako dokazati sljedeća pravila (ona su, zapravo, gotovo očigledna):

Da bismo formirali izraz u obliku SDNF koji odgovara zadanoj tablici istine, za svaki red tablice u kojem izraz uzima vrijednost “ T ” formiramo mintermu u kojoj one promjenljive koje u tom redu

tablice imaju vrijednost “” ulaze sa negacijom, a one koje imaju vrijednost “ T ” ulaze bez negacije. Traţena SDNF je disjunkcija svih takvih mintermi.

Da bismo formirali izraz u obliku SKNF koji odgovara zadanoj tablici istine, za svaki red tablice u

kojem izraz

uzima vrijednost

“”

formiramo

makstermu u kojoj one promjenljive koje u tom redu

tablice imaju vrijednost “” ulaze bez negacije, a one koje imaju vrijednost “ T ” ulaze sa negacijom. Traţena SKNF je konjunkcija svih takvih makstermi.

Opisani postupak je najlakše ilustrirati kroz konkretan primjer.

Primjer : Odrediti nepoznati izraz I u obliku SDNF i SKNF, kojem odgovara sljedeća tablica istine:

A B C I

T

T T

T

T T T

T T

T T

T T T T T T

Primjenom opisanih pravila neposredno nalazimo:

I = CBACBACBACBACBA / SDNF /

I = )CBA()CBA()CBA( / SKNF /

Odavde slijedi da je za svaku tablicu istine uvijek moguće naći logički izraz koji generira tu tablicu istine, i to koristeći samo operacije negacije, konjunkcije i disjunkcije. MeĎutim, vrijedi napomenuti da ovaj postupak gotovo nikad ne daje najkraći izraz koji generira traţenu tablicu istine. Na primjer, tablicu

istine iz prethodnog primjera generiraju i izrazi BC

BC

AC, (B

C)(A

B

C), BC

B(A

C) i

(BC)

AC, od kojih je prvi u DNF formi, drugi u KNF formi, a treći i četvrti izraz predstavljaju

disjunktivne forme koje nisu normalne. Svi ovi izrazi znatno su kraći od pronaĎenih izraza u SDNF odnosno SKNF formi.

Činjenica da neki izraz moţe imati više suštinski različitih DNF odnosno KNF dovodi do sljedećih definicija. Za neki logički izraz kaţe se da je u minimalnoj disjunktivnoj normalnoj formi (MDNF) ukoliko ne postoji drugi ekvivalentni DNF oblik istog izraza koji sadrţi manje literala od posmatranog izraza. Analogno se definira i minimalna konjunktivna normalna forma.

Page 5: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

5

Quineov postupak nalaženja MDNF i MKNF Odmah na početku, treba napomenuti da do danas nije pronaĎen sistematičan postupak koji omogućava da se izvrši potpuna minimizacija nekog logičkog izraza, odnosno da se pronaĎe apsolutno najjednostavniji logički izraz koji je ekvivalentan zadanom logičkom izrazu. S druge strane, W. V. Quine je otkrio sistematičan postupak za pronalaţenje MDNF odnosno MKNF oblika proizvoljnog logičkog izraza. Ovaj postupak poznat je pod nazivom Quineov algoritam minimizacije logičkih izraza. Mada MDNF i MKNF oblici nisu nuţno i najkraći oblici logičkih izraza, oni su tipično dosta blizu optimumu i često se za neke praktične aspekte digitalne tehnike smatraju pogodnijim od potpuno minimiziranog izraza (na primjer, digitalni sklopovi zasnovani na oblicima MDNF i MKNF optimalni su po pitanju brzine rada). Stoga se, u tom smislu, smatra da je problem minimizacije logičkih izraza u priličnoj mjeri danas riješen. U slučaju potrebe, često je moguće ručno izvršiti dodatnu optimizaciju dobijenih izraza u MDNF ili MKNF obliku (naravno, dobijeni izrazi više neće imati DNF odnosno KNF oblik), i tako ostvariti još neke uštede.

Quineov algoritam odvija se u dvije etape. U prvoj etapi, traţeni izraz se prvo prikazuje u SDNF

formi. Zatim treba uočiti sve parove mintermi koje se mogu saţimati primjenom pravila XY

XY = X.

Polazni izraz jednak je disjunkciji svih rezultata takvih saţimanja, i onih mintermi koje nisu učestvovale niti u jednom saţimanju (ovu činjenicu je lako dokazati). Na novodobijeni izraz ponovo primjenjujemo isti postupak, i ponavljamo ga sve dok se ne moţe izvršiti niti jedno novo saţimanje. Ovim je prva etapa Quineovog algoritma završena. Ilustrirajmo ovo na primjeru logičkog izraza

ABCDDCBADCBACDBADCBADCBADCBA

Prvi član u ovom izrazu moţe se saţimati samo sa trećim članom (po promjenljivoj B) i kao rezultat tog saţimanja dobija se član ACD. Drugi član ne moţe se saţimati ni sa čim. Treći član moţe se saţimati (osim sa prvim članom, što je već obavljeno) sa petim (po promjenljivoj C) i šestim (po promjenljivoj D) članom, čime se kao rezultat saţimanja dobijaju članovi ABD i ABC. Četvrti član se, takoĎer, moţe saţimati sa petim i šestim članom, čime se dobijaju članovi ABC i ABD, ali se moţe saţimati i sa sedmim članom, čime se dobija član ACD. Ovim smo iscrpili sva saţimanja koja se mogu obaviti. Slijedi da je polazni izraz ekvivalentan sljedećem izrazu (drugi član koji se nije mogao saţimati ni sa čim je prosto prepisan):

ACDDBACBACBADBADCBADCA

U novodobivenom izrazu je ponovo moguće izvršiti neka saţimanja. Prvi i drugi član ne mogu se saţimati ni sa čim, ali se zato treći član moţe saţimati sa šestim, čime se dobija član AB. Isti rezultat dobija se i nakon saţimanja četvrtog i petog člana, čime su iscrpljena sva moguća saţimanja u ovom izrazu. Slijedi da se polazni izraz moţe predstaviti i u sljedećem obliku:

ACDBADCBADCA

Ovim su iscrpljene sve mogućnosti saţimanja, čime je završena prva etapa Quineovog algoritma. Ova etapa je u potpunosti šablonizirana i nedvosmislena, tako da ne stvara nikakve principijelne poteškoće, osim što sam postupak moţe biti dugotrajan. Ipak, pri ručnom radu veoma je lako previdjeti neki par članova koji se mogu saţimati. Pokaţimo stoga na primjeru istog polaznog izraza kako je moguće obaviti prvu etapu Quineovog algoritma na znatno sistematičniji način, pomoću kojeg se smanjuje mogućnost da napravimo grešku. Na početku, prvo razvrstamo sve članove u polaznoj SDNF u klase po broju negacija: 0 negacija:

ABCD

1 negacija: CDBA

2 negacije: DCAB , DCBA , DCBA , DCBA

3 negacije: DCBA

4 negacije: nema

Razumije se da se mogu saţimati samo članovi iz klasa čiji se broj negacija razlikuje za 1, recimo iz klase sa i negacija i klase sa i+1 negacija, a kao rezultat se dobija član koji sadrţi i negacija. TakoĎer,

Page 6: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

6

bilo koji član iz i-te klase moţe se saţimati samo sa onim članovima iz i+1-ve klase koji sadrţe iste one negacije kao i razmatrani član iz i-te klase, što se lako uočava. Rezultate saţimanja moţemo odmah sortirati po klasama onako kako ih nalazimo (pri tome ćemo imati jednu klasu manje): 0 negacija: ACD

1 negacija: CBA , DBA

2 negacije: DCA , DBA , CBA

3 negacije: nema U sljedećem koraku se ponovo mogu saţimati samo parovi iz istih klasa, pod istim uvjetima kao i u prethodnom slučaju, uz dodatni uvjet da se mogu saţimati samo članovi koji se sastoje od istih promjenljivih. Rezultate saţimanja ponovo razvrstavamo po klasama: 0 negacija: nema

1 negacija: BA

2 negacije: nema Jasno je da dalja saţimanja nisu moguća. Polazni izraz sada je ekvivalentan disjunkciji svih članova koji nisu učestvovali u daljim saţimanjima. Da bismo lakše uvidjeli koji su članovi učestvovali u saţimanjima a koji ne, potrebno je nakon svakog obavljenog saţimanja na neki način označiti učesnike u saţimanju, recimo podcrtavanjem učesnika u saţimanju nakon svakog obavljenog saţimanja. Kao rezultat prve etape Quineovog algoritma dobija se disjunktivna normalna forma koja ima osobinu da se niti iz jedne elementarne konjunkcije od kojih se ona sastoji ne moţe odstraniti niti jedan literal, a da se vrijednost izraza ne promijeni. Takva disjunktivna normalna forma naziva se skraćena disjunktivna normalna forma (ovo ime nije baš najsretnije odabrano, s obzirom da postoje situacije u kojima skraćena disjunktivna normalna forma sadrţi više literala čak i od savršene disjunktivne normalne forme). Skraćena DNF je tijesno povezana sa pojmom implikante (umjesto izraza implikanta susreće se i naziv preduvjet). Pod implikantom (preduvjetom) nekog izraza F podrazumijeva se svaki izraz za koji vrijedi ╞

F, odnosno svaki izraz za koji vrijedi da je izraz F njegova logička posljedica, tako da je

implikacija

F tautologija (lako se pokazuje da je ovaj uvjet ekvivalentan sa uvjetom F

= F). U

načelu, izraz je implikanta izraza F ukoliko dobija vrijednost “” za sve vrijednosti promjenljivih za koje i izraz F dobija vrijednost “”. Alternativno, je implikanta izraza F ukoliko za sve vrijednosti promjenljivih za koje uzima vrijednost “ T ”, izraz F takoĎer uzima vrijednost “ T ”. Iz definicije neposredno slijedi da je svaka elementarna konjunkcija neke DNF ujedno i njena implikanta. MeĎutim, neka DNF moţe imati i kraćih implikanti nego što su njene elementarne konjunkcije. Recimo, često se dešava da je neki dio neke elementarne konjunkcije i sam implikanta.

Stoga se za neku implikantu nekog izraza F kaţe da je prosta implikanta ukoliko niti jedan njen dio nije i sam implikanta izraza F. Veoma je lako pokazati da sve elementarne konjunkcije koje čine neku

MDNF moraju biti proste implikante. Naime, kada neka elementarna konjunkcija nekog izraza F u obliku MDNF ne bi bila prosta implikanta, tada bi se ona mogla apsorbovati u neku drugu kraću

implikantu 1, pa bi, ukoliko primijenimo jednakost F = F

1, nakon apsorpcije

1 = dobili novi

izraz koji je ekvivalentan izrazu F, a kraći je od njega, što je u protivriječnosti sa pretpostavkom da izraz F ima oblik MDNF. TakoĎer je lako pokazati da je disjunkcija svih prostih implikanti nekog izraza F ekvivalentna polaznom izrazu. Naime, svaka prosta implikanta je ili minterma ili neki njen dio, tako da će razvoj disjunkcije svih prostih implikanti u savršenu disjunktivnu formu dati upravo SDNF polaznog izraza. Quineova teorema tvrdi da skraćena DNF nekog izraza nije ništa drugo nego disjunkcija svih njegovih prostih implikanti. Drugim riječima, sve elementarne konjunkcije od kojih se sastoji skraćena DNF nekog izraza F su njegove proste implikante, a pored toga, izraz F nema drugih prostih implikanti osim elementarnih konjunkcija od kojih se sastoji njegova skraćena DNF. Bitno je naglasiti da skraćena DNF, koja se dobija kao rezultat nakon prve etape Quineovog algoritma, ne mora biti MDNF. Naime, mada sve elementarne konjunkcije od kojih se sastoji MDNF moraju biti proste implikante, MDNF se ne mora sastojati od svih prostih implikanti (a skraćena DNF je

Page 7: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

7

disjunkcija svih prostih implikanti). Stoga se moţe desiti da u skraćenoj DNF nekog izraza postoje članovi koji se mogu potpuno izbaciti, a da se vrijednost izraza ne promijeni. Na primjer, primijenimo li

prvu etapu Quineovog algoritma na izraz ABC

ABC

ABC

ABC, dolazimo do izraza

AB

BC

AC. MeĎutim, ovaj izraz ekvivalentan je izrazu AB

AC, odnosno član BC je suvišan.

Stoga, za neku DNF nekog izraza sastavljenu od njegovih prostih implikanti kaţemo da je nesvodljiva ukoliko se iz nje ne moţe izbaciti niti jedan član a da se vrijednost izraza ne promijeni. Jasno je da MDNF mora biti nesvodljiva, jer u suprotnom ne bi bila minimalna. S druge strane, proizvoljna nesvodljiva DNF ne mora nuţno biti minimalna, ali je jasno da najkraća od svih mogućih nesvodljivih DNF nekog izraza (kojih ima konačno mnogo) mora biti upravo njegova MDNF. Druga etapa Quineovog algoritma namijenjena je upravo nalaţenju nesvodljivih DNF nekog izraza, meĎu kojima se nalazi i traţena MDNF. Ovaj korak je mnogo delikatniji i nije ga lako u potpunosti formalizirati. U ovom koraku potrebno je izabrati što manji skup što kraćih članova iz dobijene skraćene DNF čija je disjunkcija ekvivalentna traţenom izrazu. Najpregledniji način da se to uradi je formiranje tzv. tablice pokrivanja, čiji redovi odgovaraju naĎenim članovima skraćene DNF nakon obavljene prve etape, a kolone mintermama polazne SDNF. U presjeku i-tog reda i j-te kolone upisuje se znak “+” ukoliko i-ti član predstavlja dio j-te minterme. Na primjer, sljedeća tablica predstavlja tablicu pokrivanja za prethodno naĎeni izraz:

DCAB DCBA DCBA CDBA DCBA DCBA ABCD

DCA + +

DCBA +

BA + + + +

ACD + +

Tablica pokrivanja omogućava da relativno lako odredimo koji se članovi mogu izbaciti. Naime, mi moramo izabrati članove čija disjunkcija daje izraz ekvivalentan polaznom, tj. koji je ekvivalentan disjunkciji svih mintermi. To ćemo uraditi tako da ćemo odabrati takav skup članova kod kojeg će u svakoj koloni tablice pokrivanja biti barem jedan znak “+”. U slučaju kada je broj članova veliki, ne postoji generalna sugestija kako odabrati najmanji takav skup, pa u takvim slučajevima pomaţe samo intuicija ili metod isprobavanja različitih varijanti i izbor najbolje varijante. Ipak, u svakom slučaju, postupak treba započeti posmatranjem kolona u kojima se nalazi samo jedan znak “+”, kao što su prva, druga, peta, šesta i sedma kolona u navedenom primjeru. Odgovarajući članovi nazivaju se esencijalni članovi i njih svakako moramo zadrţati. Tek kada razmotrimo sve esencijalne članove, prelazimo na razmatranje ostalih (neesencijalnih) članova i od njih biramo minimalan skup članova koji pokriva znacima “+” preostale kolone tablice pokrivanja. Ukoliko je ovo moguće uraditi na više različitih načina, to znači da postoji više različitih nesvodljivih DNF, a najkraća meĎu njima predstavlja traţenu MDNF. Ovu činjenicu nije teško dokazati, u šta se ovdje nećemo upuštati.

U razmotrenom primjeru lako uviĎamo da su svi naĎeni članovi esencijalni. Naime, prvi član moramo zadrţati, jer jedino on unosi znak “+” u prvu kolonu. Iz istog razloga moramo zadrţati drugi, treći i četvrti član, jer jedino oni unose znakove “+” u drugu, petu, šestu i sedmu kolonu. Kao zaključak slijedi da se niti jedan član ne moţe izbaciti, odnosno da naĎena skraćena DNF ujedno predstavlja i traţenu MDNF.

Quineov algoritam moţe se iskoristiti i za nalaţenje minimalne konjunktivne normalne forme zadanog logičkog izraza. Za tu svrhu, prvo je potrebno u savršenoj disjunktivnoj normalnoj formi predstaviti negaciju zadanog logičkog izraza. To nije teško učiniti, s obzirom da se SDNF negacije nekog logičkog izraza sastoji od onih i samo onih mintermi koje se ne nalaze u SDNF samog izraza. Nakon toga se na tako formiranu SDNF primjenjuje Quineov algoritam, čime dobijamo MDNF negacije logičkog izraza. Na kraju, negacijom dobijene MDNF dobijamo MKNF polaznog izraza. Primijetimo da Quineov algoritam traţi prethodno svoĎenje izraza na oblik SDNF. Ovo je naročito pogodno ukoliko je izraz čiju MDNF traţimo zadan tablicom istine (u suprotnom je potrebno razmatrani izraz ručno svesti na SDNF). Quineov algoritam ćemo detaljno ilustrirati na još jednom primjeru.

Minterme

Page 8: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

8

Primjer : Quineovim algoritmom naći izraze u obliku MDNF i MKNF, a koji odgovaraju sljedećoj

tablici istine:

A B C D I

T

T T

T T

T T

T T

T T

T T T T

T T

T T T

T T

T T T T

T T T

T T T

T T T T

T T T T T

Početni korak je formiranje SDNF za dati izraz, što nije teško uraditi:

ABCDDABCDCABCDBADCBADCBABCDADCBADCBA

Radi lakšeg pronalaţenja članova koji se mogu saţimati, sve članove ćemo razvrstati u klase prema broju negacija, slično kao u prethodnom primjeru: 0 negacija:

ABCD

1 negacija: BCDA , CDBA , DABC

2 negacije: DCBA , DCAB

3 negacije: DCBA , DCBA , DCBA

4 negacije: nema

Rezultate saţimanja ćemo ponovo razvrstavati u klase, tako da nakon prvog ciklusa saţimanja imamo sljedeću situaciju, pri čemu minterma ABCD nije učestvovala u saţimanju:

0 negacija: BCD

, ACD

, ABC

1 negacija: DBA , DAB

2 negacije: CBA , DCB , DCA

3 negacije: nema

U ovom trenutku, dalja saţimanja nisu moguća, tako da je prva etapa Quineovog algoritma okončana. Skraćenu DNF obrazuju svi članovi dobijeni nakon drugog ciklusa saţimanja, kao i minterma ABCD koja nije učestvovala u prvom ciklusu saţimanja:

DCADCBCBADABDBAABCACDBCDDCBA

Sada prelazimo na drugu etapu Quineovog algoritma, odnosno na formiranje tablice pokrivanja. U načelu, nema nikakve potrebe da eksplicitno ispisujemo skraćenu DNF, nego moţemo odmah formirati tablicu prekrivanja na osnovu implikanti naĎenih u toku prve etape Quineovog algoritma. NaĎene proste implikante smo u tablici označili oznakama od I1 do I9 radi lakšeg snalaţenja:

Page 9: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

9

DCBA DCBA BCDA DCBA DCBA CDBA DCAB DBCA ABCD

I1 = DCBA +

I2 = BCD + +

I3 = ACD + +

I4 = ABC + +

I5 = DBA + +

I6 = DAB + +

I7 = CBA + +

I8 = DCB + +

I9 = DCA + +

Prvo je potrebno naći esencijalne članove, ako takvi postoje. Odmah vidimo da su članovi I1, I2 i I8 esencijalni tako da ih svakako moramo zadrţati, jer bi njihovim izbacivanjem prva, druga odnosno treća kolona tablice pokrivanja ostale nepokrivene.

Nakon nalaţenja esencijalnih članova, potrebno je od preostalih članova (koji nisu esencijalni) izabrati što manji skup članova tako da budu pokrivene i preostale kolone tabele. Ovaj postupak nije uvijek jednostavan i često traţi izvjesnu dozu domišljatosti. Pri ručnom radu (bez pomoći računara), najbolje je redove koji odgovaraju esencijalnim članovima, kao i kolone koje su već pokrivene esencijalnim članovima (kolone 1, 2, 3, 7 i 9) precrtati da nam ne odvlače nepotrebno paţnju. Tako dobijamo sljedeću tablicu:

DCBA DCBA CDBA DABC

I3 = ACD +

I4 = ABC +

I5 = DBA + +

I6 = DAB +

I7 = CBA + +

I9 = DCA +

Da bismo dobili nesvodljivu formu, nikada ne smijemo uzeti član koji pokriva kolone koje su već pokrivene drugim članovima. Postoji jedan jednostavan postupak koji uvijek garantira da ćemo pronaći nesvodljivu formu. Naime, moţemo analizirati redom jedan po jedan član i eliminirati ga iz razmatranja ukoliko ustanovimo da on prekriva one redove koji su već pokriveni ostalim članovima. Na primjer, krenemo li od člana I3, vidimo da ga moţemo eliminirati iz razmatranja, jer on ne pokriva niti jednu kolonu koja nije pokrivena ostalim članovima (konkretno, članom I5). Slično, moţemo eliminirati član I4, s obzirom da jedinu kolonu koju on pokriva takoĎer pokriva i član I6. Nakon ovih eliminacija, član I5 ne smijemo izbaciti, jer bi u suprotnom treća kolona ostala nepokrivena. TakoĎer, ne smijemo izbaciti ni član I6, jer u suprotnom četvrta kolona ostaje nepokrivena. Sada, član I7 moţemo izbaciti, jer on ne pokriva niti jednu kolonu koja nije pokrivena preostalim članovima I5, I6 i I9. MeĎutim, nakon njegovog izbacivanja, član I9 moramo zadrţati, da pokrijemo prvu kolonu. Tako smo dobili nesvodljivu formu koju čine upravo članovi I5, I6 i I9.

Izbacivanje članova smo mogli izvršiti i drugim poretkom, čime bismo mogli dobiti i druge nesvodljive forme. Za izraz iz ovog primjera moguće je pronaći čak šest nesvodljivih pokrivanja, koja su sva iste duţine (tri člana, svaki sa po tri promjenljive). To su, redom, pokrivanja sastavljena od trojki članova (I3,

I4,

I7), (I3,

I6,

I7), (I4,

I5,

I7), (I4,

I5,

I9), (I5,

I6,

I7) i (I5,

I6,

I9). Slijedi da su sve odgovarajuće

nesvodljive forme ujedno i minimalne, tako da traţeni izraz ima čak 6 različitih ekvivalentnih MDNF. Na primjer, uzmemo li članove I3, I4 i I7, dobijamo sljedeću MDNF (ne smijemo zaboraviti uključiti i esencijalne članove I1, I2 i I8):

CBAABCACDDCBBCDDCBA

Page 10: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

10

Interesantno je napomenuti da postoji i jedan čisto algebarski (mada najčešće izuzetno glomazan) postupak za nalaţenje svih nesvodljivih pokrivanja, poznat pod nazivom Petrickov metod. Za tu svrhu, posmatramo sve članove dobijene nakon prve etape Quineovog algoritma kao neovisne promjenljive, i

formiramo pomoćni izraz u vidu konjunktivne forme, u kojoj je svaka elementarna disjunkcija formirana od članova koji pokrivaju po jedan red tablice pokrivanja. Konkretno, za prethodnu tablicu,

izraz glasi ovako:

= (I7 I9)

(I5

I7)

(I3

I5)

(I4

I6)

Zatim, izraz treba prevesti u DNF oblik, primjenom pravila distribucije i apsorbovanja. U konkretnom primjeru, nakon nešto duţeg računa, dobija se

= I3 I4 I7 I3 I6 I7 I4 I5 I7 I4 I5 I9 I5 I6 I7 I5 I6 I9

Svaka elementarna konjunkcija u dobijenoj DNF odgovara jednom nesvodljivom pokrivanju, u šta se moţemo lako uvjeriti. Valjanost ovog postupka nije teško dokazati.

Da bismo našli MKNF traţenog izraza, prvo treba naći SDNF negacije ovog izraza, što je lako

uraditi direktno iz tablice istine, zamjenom uloge simbola “ T ” i “” u koloni koja predstavlja vrijednosti izraza (primijetimo da se u SDNF negacije izraza nalaze one i samo one minterme koje se ne nalaze u SDNF polaznog izraza):

DCABDCBADBCADCBACDBADCBADCBA

Razvrstajmo sve minterme u klase prema broju negacija:

0 negacija: nema

1 negacija: DCAB

2 negacije: CDBA , DCBA , DBCA , DCBA

3 negacije: DCBA

4 negacije: DCBA

Nakon prvog ciklusa saţimanja dobijamo sljedeću situaciju, pri čemu se minterme ABCD i ABCD nisu saţimale ni sa čim:

0 negacija: nema

1 negacija: DCB

2 negacije: DBA , DCA

3 negacije: CBA

Ovim su iscrpljene sve mogućnosti saţimanja, tako da nakon prve etape dolazimo do sljedećeg prikaza (ovo je prikaz negacije traženog izraza):

CBADCADBADCBDCBADBCA

Sada prelazimo na formiranje tablice prekrivanja:

DCBA DCBA CDBA DCBA DBCA DCBA DCAB

I1 = DBCA +

I2 = DCBA +

I3 = DCB + +

I4 = DBA + +

I5 = DCA + +

I6 = CBA + +

Minterme

Page 11: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

11

Na osnovu tablice prekrivanja odmah vidimo da su članovi I1, I2, I3, I4 i I6 esencijalni. MeĎutim, ovih 5 članova ujedno prekrivaju sve kolone tablice prekrivanja, tako da član I5 moţemo izbaciti. Na taj način dolazimo do jedinstvene nesvodljive disjunktivne normalne forme negacije traţenog logičkog izraza, koja je, prema tome, ujedno i njegova MDNF:

CBADBADCBDCBADBCA

Konačno, MKNF traţenog izraza dobijamo negacijom dobijenog izraza:

)CBA()DBA()DCB()DCBA()DCBA(

Bitno je napomenuti da ne postoji nikakva sugestija koja apriori ukazuje kojim redoslijedom treba eliminirati suvišne članove da bi se dobila minimalna forma. Situacija moţe bitno ovisiti od poretka u kojem eliminiramo članove, a samim tim i od načina kako su članovi sortirani. Na primjer, uzmimo da smo dobili sljedeću tablicu prekrivanja prilikom minimizacije nekog logičkog izraza:

CBA CBA BCA CBA CBA ABC

I1 = CA + +

I2 = CB + +

I3 = BA + +

I4 = BC + +

I5 = BA + +

I6 = AC + +

Eliminiramo li na početku član I1, vidimo da moramo zadrţati članove I2 i I3. Ukoliko sada eliminiramo član I4, vidjećemo da moţemo eliminirati član I5, a zadrţati član I6, čime dobijamo nesvodljivu formu sastavljenu od članova I2, I3 i I6 (koja je, zapravo, i minimalna). MeĎutim, ukoliko nakon eliminacije člana I1 odmah eliminiramo član I6 (jer ni on ne pokriva ništa što nije pokriveno ostalim članovima), došli bismo do zaključka da moramo sačuvati sve preostale članove I2, I3, I4 i I5, čime bismo dobili nesvodljivu formu koja nije minimalna!

Jedina garancija za dobijanje zaista minimalne forme je formiranje svih mogućih nesvodljivih pokrivanja i izbor najkraćeg od njih. Sva moguća nesvodljiva pokrivanja moguće je odrediti recimo pomoću maločas opisane algebarske metode. Na primjer, za prethodni primjer imamo:

= (I1 I2)

(I1

I3)

(I3

I4)

(I2

I5)

(I5

I6)

(I4

I6) = ... =

= I1 I3 I5 I6 I1 I2 I4

I6 I2 I3 I4

I5 I1 I4 I5 I2 I3 I6

Odavde vidimo da postoji ukupno 5 nesvodljivih pokrivanja, od kojih nije teško odabrati najmanja pokrivanja – u ovom slučaju to su pokrivanja (I1,

I4,

I5) ili (I2,

I3,

I6). MeĎutim, kako u općem slučaju

takvih pokrivanja moţe biti zaista veoma mnogo (pogotovo kada izraz zavisi od mnogo promjenljivih), koriste se izvjesni intuitivni postupci. Na primjer, dobra je ideja uvijek birati članove koje ćemo zadrţati takvim redoslijedom tako da svaki novi član pokriva što je god moguće više do tada nepokrivenih kolona. Recimo, u gornjem primjeru, izaberemo li prvo član I1, sljedeći član koji bi trebalo uzeti je I4, jer on prekriva dvije nove kolone, dok članovi I2 i I3 pokrivaju samo jednu kolonu koja već nije prekrivena članom I1. Nakon izbora članova I1 i I4, izbor člana I5 koji pokriva preostale dvije kolone je očigledan, čime smo dobili minimalnu nesvodljivu formu, koju čine članovi I1, I4 i I5. Ipak, ni takva strategija ne mora uvijek garantirati optimalnost.

Ovim je završen opis Quineovog algoritma za minimizaciju logičkih izraza. Ovaj algoritam je posve jasno formuliran i stoga je pogodan za programiranje na računaru. E. J. McCluskey je predloţio modifikaciju ovog algoritma, poznatu pod nazivom Quine–McCluskeyjev algoritam, u kojem se u prvom koraku članovi koji se saţimaju na pogodan način numeriraju binarnim brojevima, čime se znatno dobija na preglednosti i olakšava implementacija algoritma prilikom programiranja na računaru (drugi korak, tj. traţenje optimalnog pokrivanja, isti je kao kod običnog Quineovog algoritma). S obzirom da ovaj algoritam u suštini ne donosi ništa novo u odnosu na izvorni Quineov algoritam, osim olakšanog

Page 12: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

12

predstavljanja članova u računarskom programu i nešto većoj preglednosti pri ručnom računanju (u smislu da se lakše uočavaju članovi koji se mogu saţimati), njegov opis nećemo navoditi.

Quineov odnosno Quine–McCluskyjev algoritam je, pored tzv. Rothovog algoritma, jedan od najpodesnijih algoritama za minimizaciju logičkih izraza za programiranje na računaru. MeĎutim, svi spomenuti algoritmi su prilično glomazni i stoga nepodesni za ručni rad, tako da je već za npr. šest promjenljivih gotovo nemoguće ručno provesti cijeli postupak, a da se pri tome nigdje ne napravi greška. Pored toga, duţina postupka koji treba provesti eksponencijalno raste sa porastom broja promjenljivih (dodavanje svake nove promjenljive moţe produţiti postupak i do 4 puta). Naime, izraz koji zavisi od n promjenljivih očigledno moţe imati do 2

n mintermi u savršenoj disjunktivnoj normalnoj formi, dok se

moţe pokazati da broj prostih implikanti moţe ići do oko 3n/n. Slijedi da za izraz koji zavisi od 10

promjenljivih tabela pokrivanja moţe biti i formata recimo 5000

1000, što je prilično mnogo i za

računar (o ručnom radu nema ni govora). Za slučaj izraza sa više od 15–20 promjenljivih, čak ni upotreba računara ne dolazi u obzir.

Da bi se omogućila minimizacija izraza sa još većim brojem promjenljivih, razvijeni su i razni heuristički algoritmi, kao što je npr. Espresso algoritam (koji ovdje nećemo opisivati), koji moţe uspješno raditi i sa većim brojem promjenljivih, ali ne garantira pronalaţenje optimalnog rješenja, već samo rješenja koje je “dovoljno dobro” (tj. koje nije “previše loše”). S druge strane, kako se u praktičnim situacijama uglavnom susreće potreba za minimizacijom izraza koje ovise od malog broja promjenljivih (recimo do 6), razvijene su i metode koje su znatno prilagoĎenije za ručni rad i koje znatno brţe vode rješenju nego Quineov algoritam (mada se, u suštini, radi samo o prerušenim verzijama Quineovog algoritma). To su grafo-analitičke metode, zasnovane na predstavljanju logičkih izraza pomoću specijalnih tablica nazvanih Karnaughove mape ili Veitchovi dijagrami. Kako se radi o vaţnim inţinjerskim metodama, bitnim za logičko projektiranje digitalnih sistema, a koje izlaze izvan okvira ovog kursa, zainteresiranima su ove metode ponuĎene u prilogu koji se nalazi uz ova predavanja (nije obavezno čitati).

Shefferova i Pierceova operacija U primjenama logike iskaza u digitalnoj tehnici od velikog su značaja dvije dodatne logičke operacije, koje se označavaju simbolima “ ” i “”, a koje se respektivno nazivaju Shefferova operacija i Pierceova operacija (ili operacija Lukasiewitza). Ove operacije su respektivno definirane kao negacija konjunkcije i negacija disjunkcije, odnosno

X

Y XY

def

, X

Y YX

def

Napomenimo da se u literaturi Shefferova operacija često označava i simbolom “ | ”, tako da se

umjesto X

Y često piše samo X

| Y. MeĎutim, ovdje nećemo koristiti tu simboliku, s obzirom da se

simbol “ | ” često koristi i za druge svrhe, tako da postoji opasnost od zabune. Na primjer, u elementarnoj

teoriji brojeva (koja je takoĎer grana diskretne matematike) simbol “ | ” označava relaciju “biti djelilac

od”, dok se isti simbol u nekim programskim jezicima koristi za operaciju disjunkcije. Pored toga,

simboli “ ” i “” posjeduju i vizualnu sličnost sa simbolima “” i “ ”, tako da je lako zapamtiti da su u pitanju operacije izvedene iz konjunkcije i disjunkcije. Već smo rekli da se svaki logički izraz moţe izraziti preko operacija konjunkcije, disjunkcije i negacije. U suštini su dovoljne samo negacija i konjunkcija, jer se disjunkcija moţe izraziti preko ove dvije operacije korištenjem formule

YXYX

Na sličan način zaključujemo da su dovoljne samo negacija i disjunkcija, jer vrijedi formula

YXYX

Štaviše, svaki logički izraz moţe se zapravo izraziti pomoću jedne jedine operacije, i to bilo pomoću upravo definirane Shefferove operacije, bilo pomoću Pierceove operacije. Stoga se ove operacije

Page 13: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

13

nazivaju univerzalne logičke operacije. Da bi dokazali ovu tvrdnju, dovoljno je pokazati da se konjunkcija, disjunkcija i negacija mogu izraziti preko Shefferove ili Pierceove operacije. I zaista, vrijede sljedeća pravila (zagrade su neophodne, s obzirom da ove operacije nisu asocijativne):

X =

XX

= X

X

X

Y =

YX

=

X Y

= (X

X)(Y

Y)

X Y =

YX

= YX

= (X

Y)(X

Y)

X =

XX

= X

X

X

Y =

YX

=

YX

= (X

Y)

(X

Y)

X Y =

YX

= X Y

= (X

X)

(Y

Y)

Ova činjenica ima naročit značaj u digitalnoj tehnici, jer omogućava da se svaki logički digitalni sklop moţe realizirati uz pomoć samo jednog tipa elementarnog logičkog sklopa (tzv. logičkog kola). Naime, pri proizvodnji integriranih kola (čipova), tehnološki je povoljnije imati veći broj logičkih sklopova istog tipa nego manji broj logičkih sklopova različitog tipa. SvoĎenje proizvoljnog izraza na oblik u kojem se javljaju samo Shefferova ili Pierceova operacija u načelu se moţe obaviti direktnom primjenom gore prikazanih formula, ali na taj način se dobijaju mnogo glomazniji izrazi nego što bi mogli biti. Stoga se za tu svrhu koriste prikladniji postupci. Da bismo neki izraz izrazili samo pomoću Shefferove operacije, najbolje je krenuti od njegove MDNF i izvršiti njenu dvostruku negaciju. Na unutrašnju negaciju tada treba primijeniti De Morganova pravila, nakon čega se traţena realizacija pomoću Shefferove operacije jednostavno očitava. Da bismo izrazili isti izraz samo pomoću Pierceove operacije, postupamo analogno, samo polazimo od MKNF umjesto od MDNF. Postupak je najbolje ilustrirati na konkretnom primjeru.

Primjer : Predstaviti logički izraz CDCABDCACAB samo pomoću Shefferove operacije,

i samo pomoću Piercove operacije.

Za izraţavanje preko Shefferove operacije, najpogodnije je poći od MDNF datog izraza. MDNF ovog izraza moţemo naći, recimo pomoću Quineovog algoritma (uradite to sami) i on glasi:

CBDDA

Primjenom dvostruke negacije i elementarnih transformacija dobijamo:

CBDDA =

CBDDA =

CBDDA =

(A

(D

D))

(B

D)

(C

C)

Za izraţavanje preko Pierceove operacije, prvo nam je potrebna MKNF ovog izraza, koja glasi (provjerite):

)DCA()DCB(

Primjenom dvostruke negacije i elementarnih transformacija dobijamo:

)DCA()DCB( =

)DCA()DCB( =

DCADCB

=

= (B

C

(D

D))

(A

C

D)

Ponekad se dešava da je MDNF mnogo kraća od MKNF za isti izraz, ili obratno. Zbog toga su

razvijeni postupci da se iz MDNF dobije realizacija pomoću Pierceove operacije, odnosno iz MKNF realizacija pomoću Shefferove operacije. Ideja postupka je da prvo negiramo izraz, zatim da realiziramo njegovu negaciju i na kraju da negiramo rezultat.

Page 14: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

14

Primjer : Predstaviti logički izraz CBDDA pomoću Pierceove operacije, bez njegovog

prethodnog svoĎenja na MKNF.

Ukoliko negiramo ovaj izraz, a zatim na dobijenu negaciju primijenimo elementarne transformacije, moţemo pisati:

CBDDA = CBDDA

=

C)DB(D)A(

= C)DB(D)A(

=

=

CDBDA = ((A

A)

D)

((B

B)

(D

D))

C

Da bismo dobili realizaciju polaznog izraza preko Pierceove operacije, dovoljno je iskoristiti relaciju

X = X X, čime dobijamo izraz

(((A A)

D)

((B

B)

(D

D))

C)

(((A

A)

D)

((B

B)

(D

D))

C)

Dobijeni izraz, doduše, jeste veoma glomazan, ali postoje brojne primjene u digitalnoj tehnici u kojima se upravo ovakva forma izraza pokazuje kao veoma pogodna. Naime, iako primjena posljednjeg koraka

ovog postupka u kojem se negacija izraza X izraţava kao X X praktično udvostručuje duţinu izraza X,

ovaj korak se pri praktičnoj realizaciji logičkih izraza u digitalnoj tehnici realizira upotrebom samo jednog logičkog kola.

Baze iskazne algebre

Vidjeli smo da se svaki izraz logike iskaza moţe predstaviti koristeći samo operacije negacije, konjunkcije i disjunkcije, a da se po volji jedna od operacija konjunkcije ili disjunkcije (ali ne obje) moţe izostaviti, a da se zadrţi mogućnost predstavljanja proizvoljnog izraza logike iskaza. Skupovi operacija, takvi da se pomoću njih moţe formirati proizvoljan izraz logike iskaza, nazivaju se baze

iskazne algebre. Na primjer, jedna od baza iskazne algebre je skup {, ,

}. Baza iskazne algebre

naziva se elementarna baza (ili prosta baza) ukoliko se niti jedna od operacija iz baze ne moţe izostaviti a da se zadrţi mogućnost predstavljanja proizvoljnog izraza logike iskaza (ponegdje se u literaturi pod

pojmom baze smatraju isključivo elementarne baze). Tako smo, na primjer, utvrdili da su skupovi {, }

i {, } dvije moguće elementarne baze iskazne algebre. Dalje, kako smo vidjeli da se samo pomoću

Shefferove ili samo pomoću Piercove operacije takoĎer moţe predstaviti svaki izraz logike iskaza, to su i jednočlani skupovi {} i {} takoĎer elementarne baze iskazne algebre.

Postoji veliki broj elementarnih baza iskazne algebre, a ovdje ćemo navesti neke najinteresantnije. Operacije konjunkcije i ekskluzivne disjunkcije dovoljne su (bez negacije) za predstavljanje proizvoljnog izraza logike iskaza, ukoliko dozvolimo i upotrebu konstante “ T ” (koju moţemo posmatrati i kao operaciju sa nula argumenata). Zaista, imamo

X = X

T , X

Y = X

Y

XY

Odavde slijedi da skup {,

, T

} takoĎer čini jednu elementarnu bazu iskazne algebre, koja se naziva

Žegalkinova baza. Na ovoj bazi zasniva se tzv. Žegalkinova algebra, sa kojom ćemo se informativno upoznati nešto kasnije.

Interesantna je činjenica da je sama operacija implikacije dovoljna za predstavljanje proizvoljnog

logičkog izraza, ukoliko dozvolimo i upotrebu konstante “”, odnosno skup {, } čini još jednu

elementarnu bazu iskazne algebre. Zaista, imamo

X = X

XY = (X

(Y

))

X

Y = (X

)

Y

Odavde slijedi zanimljiva posljedica da je svaki izraz logike iskaza moguće zapisati u obliku u kojem se od operacija javlja samo implikacija (po cijenu da se dobije glomazan i posve nerazumljiv izraz). Na

primjer, za izraz AB

BC dobijamo

(((A

(B

))

)

)

(((B

)

(C

))

)

Page 15: 2_Predavanje_2

Dr. Ţeljko Jurić: Diskretna matematika Predavanje 2. Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu (akademska godina 2013/14) Materijal izvaĎen iz udţbenika “Diskretna matematika za studente tehničkih nauka”

15

Ovakva interpretacija logičkih izraza je interesantna sa aspekta proučavanja logike iskaza kao formalne teorije, s obzirom da postoje stanovišta da se cijela logika iskaza u osnovi zasniva na operaciji implikacije (koja formalizira proces donošenja zaključaka). S druge strane, posmatrano sa praktičnog aspekta, moţemo primijetiti da je praktično nemoguće utvrditi kakvu logičku činjenicu iskazuje dobijeni izraz predstavljen samo pomoću operacije implikacije.

Još jednu elementarnu bazu logike iskaza čini skup {, }, odnosno operacije implikacija i

negacija. Ova baza se dosta koristi pri zasnivanju logike iskaza kao formalne teorije. Za vjeţbu sami pronaĎite kako se u ovoj bazi izraţavaju operacije konjunkcije i disjunkcije (dobijaju se izrazi koji su

znatno prostiji nego u bazi {, }).

Postoji opći rezultat koji iskazuje potrebne i dovoljne uvjete da bi izabrani skup operacija predstavljao bazu iskazne algebre, poznat kao Postova teorema o funkcionalnoj kompletnosti logičkih funkcija. Za izlaganje ovog rezultata, potrebno je uvesti nekoliko novih pojmova. Svakoj operaciji iskazne algebre moţemo pridruţiti njenu karakterističnu funkciju, čiji su argumenti i vrijednosti iz

skupa {T, }. Takve funkcije nazivaju se logičke funkcije (zapravo se svakom izrazu iskazne algebre

moţe pridruţiti odgovarajuća logička funkcija). Na primjer, negaciji moţemo pridruţiti funkciju f jednog

argumenta datu pravilima f ()

= T i f

(T) = . Konjunkciji moţemo pridruţiti funkciju f dva argumenta

datu pravilima f (,

) = f

(,

T ) = f

( T ,

)

=

i f

( T , T )

=

T , itd. Sada, za neku logičku operaciju, čija je

karakteristična funkcija f (x1,

x2,

...,

xn), kaţemo:

da zadržava neistinu ukoliko vrijedi f (,

,

... )

=

;

da zadržava istinu ukoliko vrijedi f (

T,

T,

...

T)

=

T ;

da je linearna ukoliko se moţe napisati u obliku f (x1,

x2,

...xn) =

a0

a1x1

...

anxn gdje su a0, a1, ...

an

neke konstante iz skupa {, T };

da je samodualna ukoliko vrijedi f (x1,

x2,

...xn) = f

(x1,

x2,

...xn);

da je neopadajuća (ili monotona) ukoliko iz xi’ xi” slijedi f

(x1,

...xi’,

...xn) f

(x1,

...xi”,

...xn) za sve

indekse i od 1 do n (pri čemu se smatra da vrijedi <

T

).

Nakon izlaganja ovih uvodnih pojmova, Postovu teoremu o funkcionalnoj kompletnosti logičkih

funkcija moţemo iskazati na sljedeći način: Da bi neki skup logičkih operacija predstavljao bazu iskazne

algebre, potrebno je i dovoljno da se meĎu njima nalazi barem jedna operacija koja ne zadržava neistinu, barem jedna operacija koja ne zadržava istinu, barem jedna operacija koja nije linearna, barem jedna operacija koja nije samodualna i barem jedna operacija koja nije neopadajuća.

Na primjer, za slučaj klasičnog skupa logičkih operacija {, ,

}, konjunkcija zadrţava neistinu i

istinu i neopadajuća je, ali nije linearna i nije samodualna, dok je negacija linearna i samodualna, ali ne zadržava niti neistinu niti istinu i nije neopadajuća. Stoga su po Postovoj teoremi, konjunkcija i negacija dovoljne za predstavljanje proizvoljnog logičkog izraza. U slučaju Žegalkinove baze imamo konjunkciju (koja nije linearna niti samodualna, ali je neopadajuća i zadrţava neistinu i istinu), kao i ekskluzivnu disjunkciju koja zadrţava neistinu i linearna je, ali ne zadržava istinu, nije samodualna i nije neopadajuća. Očigledno nam za ispunjenje uvjeta Postove teoreme nedostaje operacija koja ne zadržava neistinu. Takva je očigledno “operacija” konstanta “ T ” (operacija sa nula argumenata), koja očigledno ne zadrţava neistinu (mada je linearna, samodualna, neopadajuća i zadrţava istinu). U slučaju Shefferove odnosno Pierceove operacije, svaka od njih ne zadrţava niti neistinu niti istinu, nije linearna, nije samodualna i nije neopadajuća, tako da je po Postovoj teoremi svaka od njih sama za sebe dovoljna za prikaz proizvoljnog logičkog izraza. Što se tiče implikacije, ona ne zadrţava neistinu, nije linearna, niti samodualna, niti neopadajuća, ali zadrţava istinu, tako da nam je potrebna još neka operacija koja ne zadržava istinu. Za takvu operaciju moţemo upotrijebiti recimo negaciju, ili trivijalnu operaciju izraţenu konstantom “”.