Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Dodatak Predavanju 2: Veitchovi dijagrami (za zainteresirane studente) Quineov metod minimizacije je prilično nepraktičan za ručni rad. Stoga je E. W. Veitch predložio njegovu modifikaciju za slučaj manjeg broja promjenljivih, koja omogućava da pronalaženje minimalnog skupa što prostijih članova čija disjunkcija tvori traženi logički izraz bude gotovo očigledno. Veitchov metod je grafoanalitičkog tipa i zasniva se na primjeni specijalnih tablica nazvanih Veitchovi dijagrami. U gotovo isto vrijeme, M. Karnaugh je predložio skoro identičan metod, baziran na tablicama nazvanim Karnaughove mape. Zapravo, Veitchov i Karnaughov metod su praktično isti metodi, a Veitchovi dijagrami i Karnaughove mape razlikuju se samo po rasporedu pojedinih elemenata unutar tablica, dok je princip rada sa njima potpuno isti. Tablice koje ćemo mi koristiti su Veitchovi dijagrami, iako se one u literaturi također često pogrešno imenuju kao Karnaughove mape (pošto je Karnaughov rad bio mnogo bolje publikovan, često se njegovim imenom pogrešno naziva i metod koji je potekao od Veitcha). Mana pomenutih metoda je u tome što ih je veoma teško formalizirati tako da nisu pogodni za programiranje na računaru i što su praktično upotrebljivi samo za mali broj promjenljivih (recimo do šest, mada su u doba prije masovne upotrebe računara pojedinci ove metode uz pomoć raznih mehaničkih pomagala primjenjivali čak i za slučajeve 10 do 12 promjenljivih, što zaista graniči sa mazohizmom). Mi ćemo se ograničiti na slučaj primjene Veitchovog metoda za izraze sa dvije, tri i četiri promjenljive. Osnovna ideja Veitchovog metoda za izraze sa n promjenljivih sastoji se u tome da se njihova tablica istine reorganizira na takav način da članovi koji se mogu sažimati budu uočljivi na prvi pogled. Da bi se to postiglo, formira se tablica sa 2n polja, koja je organizirana tako da svakoj promjenljivoj odgovara tačno jedna polovina tablice, po mogućnosti sastavljena od međusobno susjednih polja, a njenoj negaciji preostala polovina. Pri tome, podjele za različite promjenljive trebaju da budu tako organizirane da svakom polju odgovara u presjeku različita minterma od n promjenljivih. Tako organizirane tablice nazivaju se Veitchovi dijagrami. Na primjer, Veitchov dijagram za dvije promjenljive organiziran je tako da jednoj promjenljivoj (recimo A) odgovara gornja polovina tablice, a njenoj negaciji donja polovina, dok drugoj promjenljivoj (recimo B) odgovara lijeva polovina, a njenoj negaciji desna polovina. Ovo je prikazano na sljedećoj slici, pri čemu crta sa strane i iznad označava zonu koju “pokrivaju” promjenljive A i B. Vidimo da svaka minterma formirana od promjenljivih A i B ima tačno određenu poziciju u dijagramu. B A
AB
AB
AB
AB
Sličnim rezonovanjem moguće je formirati Veitchove dijagrame za tri i četiri promjenljive. Ovi dijagrami prikazani su na sljedećoj slici: B B A
ABCD ABCD ABCD ABCD
A
ABC ABC A BC A B C
ABCD ABCD ABCD ABCD
D
ABC ABC A BC A B C
ABCD ABCD ABCD ABCD
C ABCD ABCD ABCD ABCD
C
1
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Principijelno je moguće formirati i Veitchove dijagrame sa više od 4 promjenljive, ali su oni jako nepregledni. Naime, u Veitchovim dijagramima sa 2, 3 i 4 promjenljive, zone koje pokriva svaka od promjenljivih sastoje se od međusobno susjednih polja. Pokazuje se da u dvije dimenzije to nije moguće učiniti za slučaj 5 ili više promjenljivih, tako da neka od promjenljivih (npr. E) mora pokrivati više manjih cjelina koje, mada čine polovicu tablice, nisu sastavljene od međusobno susjednih polja što, kao što ćemo kasnije vidjeti, znatno otežava primjenu metoda. Alternativno se Veitchovi dijagrami sa 5 i 6 promjenljivih mogu formirati kao prostorne strukture oblika kvadra, što je također nepregledno. Zbog toga, Veitchov metod nije prikladan za veći broj promjenljivih. Prvi korak u primjeni Veitchovog metoda sastoji se u tome da se izraz čiju minimalnu formu tražimo predstavi u formi Veitchovih dijagrama. To je najlakše uraditi za slučaj kada je izraz predstavljen svojom tablicom istine. Da bismo neki tabelarno zadani izraz predstavili Veitchovim dijagramom, dovoljno je sve vrijednosti koje izraz uzima u pojedinim redovima tabele upisati u Veitchov dijagram umjesto odgovarajućih mintermi koje odgovaraju pojedinim redovima (pri čemu minterme formiramo na isti način kao pri predstavljanju izraza savršenom disjunktivnom normalnom formom). Primjer: Predstaviti izraz sa sljedećom tablicom istine pomoću Veitchovog dijagrama. A ⊥ ⊥ ⊥ ⊥ T T T T
B ⊥ ⊥
C ⊥
I ⊥
T
T T T
T T
⊥
⊥ ⊥
⊥
T
⊥ ⊥
T
⊥
T T
T T
T
Ako numeriramo redove ove tablice redom od 0 do 7, tada vidimo da izraz uzima vrijednost “ T ” u redovima 1, 2, 3, 6 i 7, a vrijednost “⊥” u redovima 0, 4 i 5. Redovima od 0 do 7 odgovaraju redom minterme ABC, ABC, ABC, ABC, ABC, ABC, ABC i ABC, tako da lako možemo formirati traženi Veitchov dijagram: B A
T
T
⊥
⊥
T
T
T
⊥
C Ovaj primjer možemo lako uopćiti. Neka u k-tom redu tablice istine izraz I uzima vrijednost ik (pri čemu smo redove numerirali brojevima od 0 do 7). Tada će prikaz izraza Veitchovim dijagramom izgledati ovako: B A
i6
i7
i5
i4
i2
i3
i1
i0
C Ovaj raspored vrijedi zapamtiti, jer nam omogućava da brzo formiramo Veitchov dijagram za svaki izraz sa tri promjenljive koji je predstavljen tablicom istine. Primijetimo da se vrijednosti od i0 do i7 popunjavaju u karakterističnom poretku, od “uglova” ka “sredini” dijagrama. Analogno bismo za izraz sa četiri promjenljive dobili sljedeći raspored: 2
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
B i12
i14
i10
i8
i13
i15
i11
i9
i5
i7
i3
i1
i4
i6
i2
i0
A D
C Ovaj raspored također treba upamtiti. Primijetimo da se i ovdje popunjavanje vrši od “uglova” ka “sredini” dijagrama. Osnovna korist od predstavljanja izraza Veitchovim dijagramima je u tome što se iz njih može, uz malo vještine, neposredno očitati MDNF ili MKNF polaznog izraza. Da bismo objasnili taj postupak, moramo prethodno uvesti neke pojmove. Na prvom mjestu ćemo definirati par, kao skupinu od dva polja u Veitchovom dijagramu koja odgovaraju mintermama koje se razlikuju samo u stanju jedne promjenljive. Na primjer, na sljedećoj slici zaokružena su četiri tipična para u Veitchovom dijagramu za izraze sa četiri promjenljive (analogni zaključci vrijede i za dijagrame za izraze sa tri promjenljive): B i12
i14
i10
i8
i13
i15
i11
i9
i5
i7
i3
i1
i4
i6
i2
i0
A D
C Ako pažljivije proučimo Veitchove dijagrame za tri i četiri promjenljive, vidjećemo da par mogu sačinjavati dva polja koja su susjedna po horizontali ili po vertikali (ali ne i dijagonalno). Međutim, par mogu sačinjavati i dva polja koja se nalaze na krajnje suprotnim pozicijama bilo po horizontali (poput i0 i i4 na gornjoj slici), bilo po vertikali (poput i6 i i14 na gornjoj slici). Ova polja također možemo smatrati susjednim ukoliko zamislimo da se Veitchov dijagram periodički ponavlja u sva četiri smjera, što je naznačeno isprekidanim linijama na gornjoj slici. Alternativno, ova polja možemo također smatrati susjednim ukoliko smatramo da je dijagram namotan na torus, tako da su lijevi i desni kraj dijagrama međusobno spojeni, kao i gornji i donji kraj (zbog toga se kaže da Veitchovi dijagrami formiraju topologiju torusa). Ako rezimiramo ova razmatranja, možemo načiniti spisak svih mogućih parova koji se mogu javiti u Veitchovom dijagramu za izraze sa četiri promjenljive: • • • •
Parovi sačinjeni od susjeda po horizontali: (i12, i14), (i13, i15), (i5, i7), (i4, i6), (i10, i14), (i11, i15), (i3, i7), (i2, i6), (i8, i10), (i9, i11), (i1, i3) i (i0, i2); Parovi sačinjeni od susjeda po vertikali: (i12, i13), (i14, i15), (i10, i11), (i8, i9), (i5, i13), (i7, i15), (i3, i11), (i1, i9), (i4, i5), (i6, i7), (i2, i3) i (i0, i1); Parovi sačinjeni od polja na suprotnim krajevima dijagrama po horizontali: (i8, i12), (i9, i13), (i1, i5) i (i0, i4); Parovi sačinjeni od polja na suprotnim krajevima dijagrama po vertikali: (i4, i12), (i6, i14), (i2, i10) i (i0, i8).
Iz definicije para neposredno slijedi da par zapravo obrazuju polja koja odgovaraju mintermama koje se mogu međusobno sažimati. Zbog toga, možemo uzeti da svaki par predstavlja jednu elementarnu 3
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
konjunkciju koja se dobija sažimanjem odgovarajućih mintermi. Na primjer, par (i9, i11) sa prethodne slike predstavlja elementarnu konjunkciju ABD, jer polje i9 predstavlja mintermu ABCD, a polje i11 mintermu ABCD, čijim se sažimanjem dobija upravo ABD. Koju elementarnu konjunkciju predstavlja neki par možemo lako očitati direktno iz dijagrama. Na primjer, par (y9, y11) u potpunosti leži u zoni koju pokriva promjenljiva A, u potpunosti leži izvan zone koju pokriva promjenljiva B i u potpunosti leži u zoni koju pokriva promjenljiva D. Što se tiče promjenljive C, ovaj par napola leži u zoni koja je pokrivena promjenljivom C, a napola ne leži, zbog toga promjenljiva C ne ulazi u elementarnu konjunkciju koju predstavlja ovaj par (po njoj se, zapravo, vrši sažimanje). Na sličan način direktno očitavamo da parovima (i2, i3), (i6, i14) i (i0, i4) odgovaraju elementarne konjunkcije ABC, BCD i ACD respektivno. Dva para u Veitchovom dijagramu koji predstavljaju elementarne konjunkcije koje se razlikuju samo u stanju jedne promjenljive čine skupinu koja se naziva četvorka. Na primjer, na sljedećoj slici zaokružene su tri tipične četvorke u Veitchovom dijagramu za izraze sa četiri promjenljive. B i12
i14
i10
i8
i13
i15
i11
i9
i5
i7
i3
i1
i4
i6
i2
i0
A D
C Odavde vidimo da se četvorke mogu formirati od dva para koji su susjedni bilo po vertikali bilo po horizontali, čime nastaju karakteristične figure oblika kvadrata ili horizontalnog odnosno vertikalnog štapića. U Veitchovim dijagramima za izraze sa četiri promjenljive na ovaj način je moguće formirati sljedeće četvorke: • • •
Četvorke oblika horizontalnih štapića, koje nastaju spajanjem dva horizontalna para koji su susjedni po horizontali: (i8, i10, i12, i14), (i9, i11, i13, i15), (i1, i3, i5, i7) i (i0, i2, i4, i6); Četvorke oblika vertikalnih štapića, koje nastaju spajanjem dva vertikalna para koji su susjedni po vertikali: (i4, i5, i12, i13), (i6, i7, i14, i15), (i2, i3, i10, i11) i (i0, i1, i8, i9); Četvorke oblika kvadrata, koje nastaju spajanjem dva horizontalna para koji su susjedni po vertikali, ili dva vertikalna para koji su susjedni po horizontali: (i12, i13, i14, i15), (i10, i11, i14, i15), (i8, i9, i10, i11), (i5, i7, i13, i15), (i3, i7, i11, i15), (i1, i3, i9, i11), (i4, i5, i6, i7), (i2, i3, i6, i7) i (i0, i1, i2, i3).
Pored navedenih četvorki koje su očigledne, moguće je formirati i manje očigledne četvorke, koje su sastavljene od dva para koji se nalaze na krajnje suprotnim stranama dijagrama, a koji se nalaze unutar istog sloja dijagrama, bilo po horizontali, bilo po vertikali. Na sljedećoj slici su prikazane dvije takve četvorke: B i12
i14
i10
i8
i13
i15
i11
i9
i5
i7
i3
i1
i4
i6
i2
i0
A D
C Za ove četvorke možemo također smatrati da su sastavljene od susjednih parova, ukoliko zamislimo da se dijagram periodički produžuje na sve strane. Ovakve četvorke se ne javljaju u dijagramima za izraze 4
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
sa tri promjenljive, dok je u dijagramu za izraze sa četiri promjenljive moguće formirati sljedeće četvorke ovog tipa: • •
Četvorke sastavljene od parova na krajnje suprotnim stranama unutar istog sloja po horizontali: (i8, i9, i12, i13), (i1, i5, i9, i13) i (i0, i1, i4, i5); Četvorke sastavljene od parova na krajnje suprotnim stranama unutar istog sloja po vertikali: (i4, i6, i12, i14), (i2, i6, i10, i14) i (i0, i2, i8, i10).
U Veitchovom dijagramu za četiri promjenljive moguće je formirati još jednu četvorku (i0, i4, i8, i12), koja se sastoji od četiri rubna polja: B A
i12
i14
i10
i8
i13
i15
i11
i9
i5
i7
i3
i1
i4
i6
i2
i0
D
C Ovim smo ilustrirali sve četvorke koje se mogu javiti u dijagramima sa četiri promjenljive. Možemo primijetiti da ukoliko zamislimo da se dijagram periodično produžuje (ili da je namotan na torus), sve četvorke zapravo imaju oblik štapića ili oblik kvadrata. Analogno kao u slučaju parova, četvorke zapravo sačinjavaju parovi koji predstavljaju elementarne konjunkcije koje se mogu dalje sažimati u prostije elementarne konjunkcije. Zbog toga za svaku četvorku također možemo smatrati da predstavlja jednu elementarnu konjunkciju, dobijenu sažimanjem odgovarajućih elementarnih konjunkcija koje predstavljaju parove od kojih je četvorka sastavljena. Stoga se elementarna konjunkcija koju predstavlja četvorka sastoji od onih članova koji su zajednički za obje elementarne konjunkcije koje opisuju parove od kojih je četvorka sastavljena. Na primjer, četvorka (i4, i6, i12, i14) sa jedne od prethodnih slika predstavlja elementarnu konjunkciju BD, jer se sastoji od parova (i4, i6) i (i12, i14) koji predstavljaju elementarne konjunkcije ABD i ABD respektivno. Elementarnu konjunkciju koju predstavlja neka četvorka također možemo očitati direktno iz dijagrama, na analogan način kao u slučaju parova. Tako, na primjer, četvorka o kojoj je riječ u potpunosti leži u zoni koju pokriva promjenljiva B, i u potpunosti leži izvan zone koju pokriva promjenljiva D, dok za promjenljive A i C imamo polovično prekrivanje, stoga ove promjenljive ne ulaze u elementarnu konjunkciju koja predstavlja ovu četvorku. Dvije četvorke u Veitchovom dijagramu koje predstavljaju elementarne konjunkcije koje se razlikuju samo u stanju jedne promjenljive čine skupinu koja se naziva osmica. Za slučaj izraza sa tri promjenljive, postoji samo jedna osmica, koja prekriva čitav dijagram. U dijagramima za izraze sa četiri promjenljive, mogu se formirati osmice koje imaju jedan od četiri moguća oblika, koji su prikazani na sljedećim slikama: B B i12
i14
i10
i8
i13
i15
i11
i9
A
i12
i14
i10
i8
i13
i15
i11
i9
A D
D
i5
i7
i3
i1
i5
i7
i3
i1
i4
i6
i2
i0
i4
i6
i2
i0
C
C 5
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Preciznije, sve osmice koje se mogu formirati u dijagramu za izraze sa četiri promjenljive su: • Tri pravougaone osmice sa dužom horizontalnom stranom: (i8, i9, i10, i11, i12, i13, i14, i15), (i1, i3, i5, i7, i9, i11, i13, i15) i (i0, i1, i2, i3, i4, i5, i6, i7); • Tri pravougaone osmice sa dužom vertikalnom stranom: (i4, i5, i6, i7, i12, i13, i14, i15), (i2, i3, i6, i7, i10, i11, i14, i15) i (i0, i1, i2, i3, i8, i9, i10, i11); • Dvije rasječene osmice: (i0, i1, i4, i5, i8, i9, i12, i13) i (i0, i2, i4, i6, i8, i10, i12, i14). Elementarne konjunkcije koje odgovaraju osmicama definiraju se analogno kao za parove i četvorke. Za slučaj izraza sa četiri promjenljive sve osmice predstavljaju elementarne konjunkcije koje se svode samo na usamljenu promjenljivu ili njenu negaciju. Analogno se može definirati i šesnaestica, ali za slučaj dijagrama za izraze sa četiri promjenljive postoji samo jedna jedina šesnaestica, koja obuhvata sva polja dijagrama (i njoj odgovara konstanta “ T ”). Parove, četvorke, osmice itd. zajedničkim imenom nazivamo konture. Za slučaj Veitchovih dijagrama za izraze sa pet ili više promjenljivih, moguće je definirati i veće konture od šesnaestica. Međutim, Veitchovi dijagrami za izraze sa više od 4 promjenljive su veoma nepraktični, jer parove, četvorke itd. mogu tvoriti i polja koja uopće nisu susjedna u dijagramu, čak ni uz periodično produženje dijagrama ili namatanje na torus (što je još gore, polja koja jesu susjedna ne moraju činiti par), tako da je takve konture teško uočiti, a Veitchov metod određivanja MDNF i MKNF zasniva se upravo na prepoznavanju karakterističnih kontura unutar Veitchovih dijagrama. Nakon što smo definirali pojam kontura, sasvim je jednostavno objasniti suštinu Veitchovog metoda za određivanje MDNF. Naime, potrebno je prekriti sva polja u kojima se nalazi vrijednost “ T ” sa što je god moguće manjim brojem što je god moguće većih kontura (pri tome, isto polje smije biti prekriveno sa više kontura). Nije teško vidjeti da konture maksimalne veličine koje prekrivaju samo vrijednost “ T ” zapravo odgovaraju članovima koji se dobijaju po završetku prve etape Quineovog algoritma. Stoga, ovaj postupak odgovara traženju minimalnog skupa članova iz prve etape Quinovog algoritma čija disjunkcija formira dati izraz, što nije ništa drugo nego druga etapa Quineovog algoritma. Tražena MDNF se tada formira kao disjunkcija članova koje odgovaraju svakoj od upotrebljenih kontura. Odavde vidimo da je Veitchova metoda zaista samo prerušeni Quineov algoritam u kojem je mučno višestruko sažimanje svedeno na prepoznavanje karakterističnih kontura u dijagramu, što je postignuto veoma oštroumnim raspoređivanjem polja unutar dijagrama, tako da članovi koji se mogu sažimati odgovaraju međusobno susjednim poljima. Primjer: Odrediti MDNF izraza koji je predstavljen sljedećom tablicom istine: A ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥
B ⊥ ⊥ ⊥ ⊥
T T T T T T T T
C ⊥ ⊥
D ⊥
I ⊥
T
T T T T
T T
⊥
T T T T
⊥ ⊥
⊥
T T
⊥
⊥ ⊥ ⊥ ⊥
⊥ ⊥
⊥
T T
⊥
T T T T
⊥ ⊥
⊥
T T
6
T T T T T T
⊥ T
⊥ T T T T T T T
⊥ T T
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Prvi korak u određivanju MDNF je predstavljanje ovog izraza Veitchovim dijagramom, što je prema već opisanom postupku urađeno na sljedećoj slici: B T
T
T
T
⊥
T
T
T
A D ⊥
T
T
T
T
T
T
⊥
C
Sada je potrebno sve vrijednosti “ T ” u dijagramu prekriti na što bolji način (radi bolje preglednosti, samo ćemo prikazati vrijednosti “ T ” upisane, dok se za prazna polja podrazumijeva da sadrže vrijednost “⊥”). Lako možemo uočiti da optimalno prekrivanje možemo postići korištenjem jedne osmice i tri četvorke, kao što je prikazano na sljedećoj slici: B T
T
T
T
T
T
T
T
T
T
T
T
A D
T
C
Na kraju je potrebno utvrditi koje elementarne konjunkcije odgovaraju pojedinim konturama, što je posve lako izvesti posmatranjem zona u dijagramu koje prekrivaju pojedine promjenljive. Tražena MDNF glasi: C ∨ BD ∨ A D ∨ BD . Dobra strana Veitchovog metoda je što on uvijek daje ispravnu DNF izraza čak i ukoliko nismo izvršili optimalno prekrivanje, pod uvjetom da smo ispravno očitali elementarne konjunkcije koje odgovaraju upotrebljenim konturama. Međutim, u tom slučaju pronađena DNF (mada ispravna) neće biti optimalna, tj. neće biti MDNF. U slučaju da postoji nekoliko jednako dobrih pokrivanja, to znači da imamo više različitih MDNF, koje su u suštini podjednako dobre. Pri traženju optimalnog prekrivanja nije pametno poći od najvećih kontura (koje su obično najuočljivije), nego od onih kontura koje prekrivaju polja sa vrijednostima “ T ” koja se mogu grupirati na samo jedan način (tj. koje imaju samo jedno polje sa vrijednosti “ T ” u susjedstvu). Takve konture nazivamo esencijalne konture, a njima odgovaraju esencijalni članovi u Quineovoj metodi. Tipičnu grešku koja se može napraviti ukoliko se ne pridržavamo ovog pravila ilustrira sljedeći primjer.
7
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Primjer: Odrediti MDNF za izraz predstavljen sljedećim Veitchovim dijagramom: B T
A T
T
T
D T
T
T
T
C U ovom Veitchovom dijagramu se na prvi pogled uočava jedna četvorka. Ukoliko zaokružimo ovu četvorku, preostaju nepokrivena četiri polja sa vrijednostima “ T ” koja se mogu povezati u par sa susjednim poljima. Na taj način dobijamo sljedeće prekrivanje: B T
A T
T
T
T
T
D T
T
C Na osnovu ovakvog prekrivanja, mogli bismo očitati sljedeći izraz: BD ∨ ABC ∨ ABC ∨ ACD ∨ ACD
Međutim, ukoliko pažljivo razmotrimo dijagram, primijetićemo da je četvorka koju smo prvu ugledali zapravo suvišna, jer su sva polja sa vrijednostima “ T ” koja ona pokriva već prekrivena sa preostala četiri para. Stoga, očitana DNF nije nesvodljiva, jer se prva elementarna konjunkcija može odstraniti. Slijedi da traženi MDNF oblik glasi: ABC ∨ ABC ∨ AC D ∨ ACD
Da smo prilikom prekrivanja krenuli od polja sa vrijednostima “ T ” koja se mogu prekriti na jedinstven način, ovakvu grešku ne bismo napravili. Nakon što iscrpimo sve esencijalne konture, za optimalno prekrivanje preostalih polja sa vrijednostima “ T ” pomaže samo intuicija (upravo zbog toga Veitchov metod nema striktnu formu algoritma). Srećom, kako se Veitchov metod koristi samo za mali broj promjenljivih, optimalno prekrivanje se veoma brzo uoči, pogotovo kada se korisnik metoda malo izvježba. Dobra je strategija svakom novom konturom pokušati prekriti što je god moguće više do tada nepokrivenih polja sa vrijednostima “ T ”, kao što je ilustrirano u sljedećem primjeru.
8
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Primjer: Naći MDNF za logički izraz A B C ∨ A BC ∨ ABC ∨ A B C ∨ ABC ∨ ABC . Ovaj izraz možemo predstaviti Veitchovim dijagramom na sljedeći način: B T
A
T
T
T
T
T
C U ovom primjeru ne postoji niti jedna esencijalna kontura, jer se svako polje sa vrijednosti “ T ” može prekriti na više različitih načina. Postoji mnogo načina kako možemo prekriti sva polja sa vrijednostima “ T ” u ovom dijagramu. Nas zanimaju samo nesvodljiva prekrivanja, tj. prekrivanja u kojima niti jedna kontura nije suvišna u smislu da prekriva polja sa vrijednostima “ T ” koja su već prekrivena drugim konturama. Sljedeća slika prikazuje tri od ukupno pet mogućih nesvodljivih prekrivanja: B
B A
T
T
T
T
T
T
A
T
B T
T
T
T
A
T
C
C
T
T
T
T
T
T
C
Mada su sva tri prikazana prekrivanja očigledno nesvodljiva, prvo prekrivanje sadrži jednu konturu više nego drugo i treće prekrivanje, stoga ono nije optimalno. Primijetimo da se u prvom slučaju nismo držali pravila da svakom novom konturom pokrivamo što je god moguće više do tada nepokrivenih polja sa vrijednostima “ T ”, dok smo se u drugom i trećem slučaju tog pravila pridržavali. Također, primijetimo da smo u drugom i trećem slučaju svako od polja sa vrijednostima “ T ” prekrili samo jednom konturom. Ukoliko se to desi (što je rijetko moguće postići), to je siguran znak da je pronađeno rješenje optimalno. Stoga, možemo očitati dva MDNF oblika za zadani izraz: AB ∨ AC ∨ B C i
A C ∨ BC ∨ A B
Lako je provjeriti da su ovo ujedno i jedine dvije MDNF za zadani izraz. Mada Veitchov metod (kao i svi drugi metodi minimizacije) određuje MDNF za zadani logički izraz, to ne znači da se dobijeni izraz ne može dodatno skratiti ručno pomoću pravila iskazne algebre. Međutim, ono što eventualno dobijemo daljim skraćivanjem neće više biti disjunktivna normalna forma. Na primjer, razmotrimo sljedeći izraz sa 7 promjenljivih: ADF ∨ AEF ∨ BDF ∨ BEF ∨ CDF ∨ CEF ∨ G Nije teško pokazati da je ovaj izraz ima oblik MDNF. Ipak, on se relativno lako može dodatno pojednostaviti primjenom pravila logičke algebre: ADF ∨ AEF ∨ BDF ∨ BEF ∨ CDF ∨ CEF ∨ G = (AD ∨ AE ∨ BD ∨ BE ∨ CD ∨ CE) F ∨ G = = (A (D ∨ E) ∨ B (D ∨ E) ∨ C (D ∨ E)) F ∨ G = (A ∨ B ∨ C) (D ∨ E) F ∨ G Dobijeni izraz je znatno jednostavniji od polaznog, mada se očito ne radi o disjunktivnoj (niti o konjunktivnoj) normalnoj formi. Također, često se dodatna optimizacija može izvršiti ako dozvolimo upotrebu i drugih logičkih operacija osim konjunkcije, disjunkcije i negacije. Tako se, na primjer, ukoliko dozvolimo upotrebu ekskluzivne disjunkcije i ekvivalencije, izraz u obliku MDNF iz jednog od ranijih primjera može dodatno optimizirati na sljedeći način: 9
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
ABC ∨ ABC ∨ AC D ∨ ACD = B(AC ∨ A C) ∨ D (AC ∨ AC) = B(A ⇔ C) ∨ D(A ∨ C)
Veitchov metod može se koristiti i za određivanje MKNF. Pri određivanju MKNF, umjesto polja sa vrijednostima “ T ” prekrivamo polja sa vrijednostima “⊥” u dijagramu (na isti način kao kod određivanja MDNF). Svakoj konturi u izvršenom prekrivanju tada odgovara po jedna elementarna disjunkcija u MKNF, pri čemu su promjenljive koje formiraju svaku elementarnu disjunkciju negirane u odnosu na slučaj kada ista kontura predstavlja elementarnu konjunkciju. Na primjer, ukoliko neka kontura predstavlja elementarnu konjunkciju ABD, tada ta ista kontura predstavlja elementarnu disjunkciju A ∨ B ∨ D. Valjanost ovog postupka neposredno slijedi iz činjenice da je MKNF nekog izraza jednak negaciji MDNF negacije tog izraza. Primjer: Odrediti MKNF za logički izraz sa četiri promjenljive zadan tabelom istine za koji je u jednom od ranijih primjera nađena MDNF. Da bismo odredili MKNF za zadani izraz, možemo se poslužiti istim Veitchovim dijagramom koji smo već imali, ali ćemo ovaj put prekrivati polja sa vrijednostima “⊥” (radi preglednosti, samo ćemo takva polja i prikazivati, dok ćemo za ostala polja podrazumijevati da sadrže vrijednost “ T ”). Kako u čitavom dijagramu imaju samo tri polja sa vrijednošću “⊥”, lako je odrediti optimalno prekrivanje. Pri tome, polje u donjem desnom uglu ne možemo ni sa čim upariti, tako da ono samo za sebe predstavlja konturu: B
A ⊥ D ⊥ ⊥ C Par sa lijeve strane u potpunosti leži unutar zona koje prekrivaju promjenljive B i D, a izvan zone koju prekriva promjenljiva C. Usamljeno polje u donjem desnom uglu u potpunosti leži izvan zona koje prekriva svaka od četiri promjenljive A, B, C i D. Na osnovu ovoga, slijedi da tražena MKNF glasi: (B ∨ C ∨ D) (A ∨ B ∨ C ∨ D) Za ovaj izraz, nađena MKNF je potpuno iste dužine (tj. sadrži isti broj literala) kao i MDNF, što ne mora uvijek biti slučaj (nekada je MDNF kraća od MKNF za isti izraz, a nekada je obrnuto). Nije teško vidjeti da je broj logičkih izraza kod kojih je MDNF kraća od MKNF jednak broju logičkih izraza kod kojih je MKNF kraća u odnosu na MDNF. Naime, ukoliko je za neki izraz MDNF kraća (u odnosu na MKNF), međusobnom zamjenom simbola “ T ” i “⊥” u Veitchovom dijagramu dobijamo izraz kod kojeg je MKNF kraća!
Primjer: Odrediti MDNF i MKNF za logički izraz predstavljen sljedećim Veitchovim dijagramom. B ⊥
⊥
T
T
⊥
T
T
T
T
⊥
T
T
⊥
⊥
T
⊥
A D
C 10
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Za određivanje MDNF i MKNF izvršićemo optimalno prekrivanje polja sa vrijednostima “ T ” odnosno “⊥”, kao što je prikazano na sljedećoj slici: B
B T
⊥
T
⊥
A
A T
T
T
T
T
⊥ D
D T
⊥ ⊥
T
⊥
⊥ C
C
Optimalno prekrivanje u oba slučaja može se izvršiti na jedinstven način, odakle slijede jedinstveni oblici MDNF i MKNF: A B ∨ BC ∨ ACD ∨ A C D
/MDNF/
(A ∨ B ∨ C) (A ∨ B ∨ C) (A ∨ C ∨ D) (B ∨ D)
/MKNF/
Veitchovi dijagrami mogu poslužiti i za minimizaciju izraza koji su predstavljeni u obliku proizvoljne DNF ili KNF, bez potrebe da se prvo formira tablica istine pa da se iz nje formira Veitchov dijagram (što je još jedna velika prednost u odnosu na Quineov algoritam, koji uvijek polazi od SDNF). Za tu svrhu, prvo je potrebno u prazan Veitchov dijagram upisati konture koje odgovaraju elementarnim konjunkcijama zadane DNF ili elementarnim disjunkcijama zadane KNF. Nakon toga, popunimo upisane konture vrijednostima “ T ” (za slučaj DNF) ili “⊥” (za slučaj KNF), i, nakon toga, izvršimo prekrivanje tablice novim konturama na optimalan način.
Primjer: Pojednostaviti izraz ABC ∨ AC ∨ BD ∨ A C D ∨ C Kako se radi o izrazu koji ima oblik DNF, upisaćemo u Veitchov dijagram konture koje odgovaraju svim elementarnim konjunkcijama ovog izraza, a njihovu unutrašnjost ispunićemo vrijednostima “ T ”. Time dobijamo dijagram kao na sljedećoj slici: B T
T
T
T
T
T
T
T
T
T
T
T
A D
C Preostaje još samo da izvršimo optimalno prekrivanje, što je izvršeno na sljedećoj slici:
11
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
B T
T
T
T
T
T
T
T
T
T
T
T
A D
C
Odavde vidimo da MDNF zadanog izraza glasi: A D ∨ BD ∨ C Lako je provjeriti da MKNF za ovaj primjer glasi Y = ( B ∨ C ∨ D ) ( A ∨ C ∨ D)
tako da je, u ovom slučaju, MDNF kraća od MKNF (jedan literal manje). Uz malo prakse, izraze koji su zadani u proizvoljnom obliku DNF ili KNF moguće je lako upisati u Veitchov dijagram bez potrebe za crtanjem kontura koje odgovaraju pojedinim elementarnim konjunkcijama odnosno disjunkcijama. Ukoliko izraz koji želimo minimizirati nije zadan niti u konjunktivnoj niti u disjunktivnoj normalnoj formi, tada ga je neophodno prvo svesti na DNF ili na KNF (ne nužno na SDNF ili SKNF), nakon čega se može primijeniti Veitchov metod. Mada smo rekli da su Veitchovi dijagrami za izraze sa 5 promjenljivih nezgrapni i nepraktični za upotrebu, minimizacija izraza sa 5 promjenljivih može se, uz malo dosjetki, lako izvršiti pomoću dva Veitchova dijagrama za izraze sa 4 promjenljive. Kako se to može uraditi, najlakše je objasniti kroz konkretan primjer.
Logički izraz I = A CE ∨ ABDE ∨ ABCD E ∨ A B C E ∨ A B D E ∨ ACE ∨ ABCDE ∨ A BCD E svesti na oblik MDNF. Ovaj izraz zavisi od 5 promjenljivih. Izabraćemo jednu od promjenljivih, recimo E, i grupirati zajedno sve članove koje sadrže nju ili njenu negaciju: I = (AC ∨ ABD ∨ AB C ∨ AC) E ∨ (A BC D ∨ A B D ∨ ABCD ∨ A BCD) E Kako oba izraza koji se nalaze u zagradi zavise samo od po 4 promjenljive, možemo izvršiti njihovu minimizaciju pomoću Veitchovih dijagrama za izraze sa 4 promjenljive. Taj postupak je prikazan na sljedećoj slici (lijevi dijagram odgovara prvom izrazu u zagradi, a desni dijagram drugom izrazu): B
B T
T
T
T
T
T
T
T
T
T
T
A
T
A T
T
T
D
D T
C
C 12
Dr. Željko Jurić: Diskretna matematika Radna skripta za kurs “Diskretna matematika” na Elektrotehničkom fakultetu u Sarajevu Materijal izvađen iz udžbenika “Diskretna matematika za studente tehničkih nauka”
Neobavezni dodatak Predavanju 2. (akademska godina 2012/13)
Iz ovih dijagrama neposredno vidimo da oblici MDNF za izraze u zagradama glase respektivno AD ∨ AB ∨ C i ABD ∨ ABD ∨ ABCD. Stoga možemo pisati: I = (AD ∨ A B ∨ C) E ∨ (ABD ∨ A B D ∨ A B CD) E = = ADE ∨ A BE ∨ C E ∨ ABDE ∨ A B D E ∨ A B C D E Dobijeni izraz zaista ima oblik DNF i znatno je kraći od polaznog izraza (za 12 literala). Međutim, ovo nije MDNF zadanog izraza! Razloge za to nije teško otkriti. Naime, kako smo oba izraza koji se javljaju u zagradama optimizirali neovisno jedan od drugog, potpuno smo isključili svaku mogućnost sažimanja po preostaloj promjenljivoj E. S druge strane, pretpostavimo da smo Veitchov dijagram za prvi izraz u zagradi prekrili neoptimalno, na način prikazan na sljedećoj slici, u kojem je očigledno prisustvo “neoptimalne” konture ABD , kao i potpuno suvišnih kontura ABD i ABCD: B B T
T
T
T
T
T
T
T
T
T
T
A
T
A T
T
T
D
D T
C
C
Iz ovakvog prekrivanja možemo izvršiti sljedeće očitanje: I = (ABD ∨ A B ∨ C ∨ A B D ∨ A BCD) E ∨ (ABD ∨ A B D ∨ A BCD) E = = ABDE ∨ A BE ∨ CE ∨ A B D E ∨ A BCDE ∨ ABDE ∨ A B D E ∨ A BC D E = = ABD (E ∨ E ) ∨ A BE ∨ CE ∨ A B D (E ∨ E ) ∨ A BCD (E ∨ E ) = = ABD ∨ A BE ∨ CE ∨ A B D ∨ A BCD Vidimo da smo dobili DNF koja ima čak 6 literala manje nego prethodna DNF (i ona je, zapravo, MDNF traženog izraza). Nije teško utvrditi šta se zapravo desilo: neoptimalne i suvišne konture u lijevom dijagramu poklapaju se sa konturama u desnom dijagramu, tako da su odgovarajuće elementarne konjunkcije u obje zagrade identične, što omogućava sažimanje po preostaloj promjenljivoj E. Uz malo prakse, nije nikakav problem direktno očitati krajnji rezultat posmatrajući uporedo oba dijagrama, bez ručnog sažimanja po preostaloj promjenljivoj E. Ukoliko pažljivije razmotrimo opisani primjer, možemo izvesti sljedeće opće zaključke o minimizaciji izraza sa 5 promjenljivih pomoću dva spregnuta Veitchova dijagrama za izraze sa 4 promjenljive: • •
Isplati se zaokružiti konturu koja u jednom od spregnutih dijagrama nije optimalna, ukoliko identična kontura postoji u drugom dijagramu; Isplati se u jedan od spregnutih dijagrama uvesti suvišne konture, ukoliko identične konture postoje u drugom dijagramu.
Očigledno je da je potrebna nešto veća količina iskustva i domišljatosti za dobivanje minimalne forme izraza sa 5 promjenljivih korištenjem dva Veitchova dijagrama za izraze sa 4 promjenljive. Međutim, čak i ukoliko se ne dobije posve minimalna forma, uloženi trud se isplati, jer je bilo kakva optimizacija svakako bolja od nikakve. Postupak sličan izloženom postupku može se primijeniti i na minimizaciju izraza sa 6 promjenljivih, samo se u tom slučaju koriste 4 spregnuta dijagrama od po 4 promjenljive. Ovaj postupak možete lako izvesti sami, ukoliko ste dobro razumjeli gore izloženi postupak za izraze sa 5 promjenljivih.
13