1 / 28

Kombinatoorsete süsteemide disain

Kombinatoorsete süsteemide disain. L8. Loogikafunktsioonide täpne minimeerimine L9. Loogikafunktsioonide heuristiline minimeerimine L10. Mitmevalentne loogika. Heuristiline minimeerimine. “Mõistliku” suurusega liiasuseta katted Kiirus ja rakendatav paljudes valdkondades

odelia
Download Presentation

Kombinatoorsete süsteemide disain

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kombinatoorsete süsteemide disain • L8. Loogikafunktsioonide täpne minimeerimine • L9. Loogikafunktsioonide heuristiline minimeerimine • L10. Mitmevalentne loogika I207 - Digitaalloogika ja -süsteemid - L9

  2. Heuristiline minimeerimine • “Mõistliku” suurusega liiasuseta katted • Kiirus ja rakendatav paljudes valdkondades • Väldib täpse minimeerimise kitsaskohti • lihtimplikantide genereerimine ja salvestamine • katte leidmine I207 - Digitaalloogika ja -süsteemid - L9

  3. d d c c 1 0 1 0 3 0 2 1 b b 4 0 1 5 0 7 6 0 C - D - - F 1 E a a 8 1 9 0 0 B 1 A Heuristiline minimeerimine • 4-muutuja funktsioon • y = ‘1’abcd (0,2,5,8,10,14), ‘-’abcd (12,13,15) • Karnaugh kaardi abil I207 - Digitaalloogika ja -süsteemid - L9

  4. Lihtimplikantide leidmine 1-de (0-de) katmine võimalikult suurte intervallidega alustada neist, millel on vähem naabreid vrdl. olulised lihtimplikandid d d c c bc’d 1 1 0 0 0 0 1 1 ad’ b’d’ b b 0 0 1 1 0 0 0 0 - - - - - - 1 1 ab a a 1 1 0 0 0 0 1 1 Heuristiline minimeerimine I207 - Digitaalloogika ja -süsteemid - L9

  5. Heuristiline minimeerimine • Vt. http://tams-www.informatik.uni-hamburg.de/applets/kvd/kvd.html • y(a,b,c,d) = (0,2,5,8,10,14)1, (12,13,15)* i3 ≡ a i2 ≡ b i1 ≡ c i0 ≡ d y=i2’i0’+i2i1’i0+i3i0’ y=b’d’+bc’d+ad’ y’=i2’i0+i1i0+i3’i2i0’ y’=b’d+cd+a’bd’ y=(b+d’)(c’+d’) (a+b’+d) I207 - Digitaalloogika ja -süsteemid - L9

  6. Heuristiline minimeerimine • Kolme- ja viiemuutuja funktsioonid y(i4,i3,i2,i1,i0)=(2,10,18,26,27,30,31)1, (6,14,16,20,21,22,24,25,28,29)* y = i1 i0’ + i4 i3 y(i2,i1,i0)=(2,3,5)1,(7)* y=i2’i1+i2i0 y=(i2+i1)(i2’+i0) I207 - Digitaalloogika ja -süsteemid - L9

  7. b’d’ B ad’ C 13 d c ab D 5 15 bc’d A 12 1 0 0 1 14 b 0 1 0 0 b d - - - 1 2 a c 0 a 1 0 0 1 8 10 Minimeerimine graafiülesandena • Lihtimplikantide leidmine • klasterdamine I207 - Digitaalloogika ja -süsteemid - L9

  8. b’d’ B ad’ C 13 d c ab D 5 15 bc’d A 12 1 0 0 1 14 b 0 1 0 0 ad’ C - - - 1 2 0 a 1 0 0 1 8 10 Minimeerimine graafiülesandena • Implikantkatte leidmine • klastri(serva/kliki)katte leidmine • servakatte leidmine, klikikatte leidmine I207 - Digitaalloogika ja -süsteemid - L9

  9. Heuristiline minimeerimine • Lokaalne miinimumkate • antud on esialgne kate • teisendus lihtkatteks • liiasuste eemaldamine • Iteratiivne parendamine • suurust parendatakse implikantide “modifitseerimise” teel I207 - Digitaalloogika ja -süsteemid - L9

  10. Heuristiline minimeerimine • Nõrgalt määratud funktsioonide minimeerimine • |FF| + |FR| << |FD| • Funktsiooni argumentide arv on suur • |FF| + |FR| on esitatud intervallidena, st. on olemas esialgne kate • FF-i kuuluvaid intervalle laiendatakse selliselt, et laiendus jääks FD sisse I207 - Digitaalloogika ja -süsteemid - L9

  11. Heuristiline minimeerimine • FF-i kuuluvaid intervalle laiendatakse selliselt, et laiendus jääks FD sisse • ükski 1-intervall ei tohi omada ühisosa ühegi 0-intervalliga (mittekattuvad) • ortogonaalsusfunktsioon - näitab, milliste argumentide järgi on intervallide paari teatud argumendi väärtus ühes intervallis 1, teises 0 • kaks intervalli on mittekattuvad, kui nad on ortogonaalsed vähemalt ühe argumendi järgi • ortogonaalsed mitme argumendi järgi -> osa argumente võib vabastada I207 - Digitaalloogika ja -süsteemid - L9

  12. a b c d e e e d c 1 1 1 - 1 - - - 0 1 0 - 0 0 0 0 0 0 1 0 0 - - 0 - - 0 0 0 b 0 0 0 1 - 0 0 - 1 - - 1 1 1 1 - - - 0 - 1 1 0 - - 1 1 a - 0 0 1 - 0 - - Heuristiline minimeerimine • Näide #1: 000- # 1011 -> 1010, seega võib esimese neist asendada kas 00-- või -00-’ga • eeldusel, säilib ortogonaalsus ka teiste 0-intervallidega • Näide #2: I207 - Digitaalloogika ja -süsteemid - L9

  13. a b c d e e e d c 1 1 1 - 1 - 1 0 - - 0 - 0 0 0 0 0 0 1 0 0 - - 0 - - 0 0 0 b 0 0 0 1 - 0 0 - 1 - - 1 1 1 1 - - - 0 - 1 1 0 - 1 1 - a - 0 0 1 - 0 - - Heuristiline minimeerimine 11-1- # 0--0- = 10010 11-1- # -00-1 = 01000 11-1- # -0-11 = 01000 11-1- # 0--11 = 10000 -1-1- # 0--0- = 00010 -1-1- # -00-1 = 01000 -1-1- # -0-11 = 01000 -1-1- # 0--11 = 00000 11--- # 0--0- = 10000 11--- # -00-1 = 01000 11--- # -0-11 = 01000 11--- # 0--11 = 10000 I207 - Digitaalloogika ja -süsteemid - L9

  14. a b c d e e e d c 1 1 1 - 1 - - - 0 1 0 - 0 0 0 0 0 0 1 0 0 - - 0 - - 0 0 0 b 0 0 0 1 - 0 0 - 1 - - 1 1 1 1 - - - 0 - 1 1 0 - - 1 1 a - 0 0 1 - 0 - - Heuristiline minimeerimine --010 # 0--0- = 00010 --010 # -00-1 = 00001 --010 # -0-11 = 00001 --010 # 0--11 = 00001 ---10 # 0--0- = 00010 ---10 # -00-1 = 00001 ---10 # -0-11 = 00001 ---10 # 0--11 = 00001 ?! I207 - Digitaalloogika ja -süsteemid - L9

  15. Heuristiline minimeerimine (II) • Laiendus (Expand) • implikantide teisendus lihtimplikantideks • kaetud implikantide eemaldamine • Kitsendus (Reduce) • implikantide suuruse vähendamine, hoides katte korrektse • Ümberkujundus (Reshape) • implikantide paaride muutmine suurendades üht ja vähendades teist • Liiasusetus (Irredundant) • liiasuse eemaldamine kattest I207 - Digitaalloogika ja -süsteemid - L9

  16. 20 21 0 - - 0 a 0 0 0 0 1 - 0 - 0 b 1 0 0 1 0 0 1 0 1 0 1 - - c 0 1 0 0 1 1 0 - - d 1 1 1 1 22 0 1 0 1 1 1 - 0 1 e 0 1 1 0 1 - 1 0 1 f 0 1 0 0 0 1 1 1 1 23 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 Näide {a,c,d,e} {b,c,d,e} I207 - Digitaalloogika ja -süsteemid - L9

  17. 0 - - 0 a 0 1 - - c 0 0 0 0 exp 0 - - 0 a 1 0 0 0 exp 0 1 0 1 exp 0 0 1 0 x 1 0 0 1 1 0 0 1 0 1 1 1 x 0 1 0 0 x 1 0 1 0 x 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 x 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 20 21 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 22 1 1 0 1 23 Näide - laiendus I207 - Digitaalloogika ja -süsteemid - L9

  18. 0 - - 0 a 0 0 - - - - 0 0 a a 0 1 - - c 0 0 1 1 - - - - c c - 0 - 0 b - - 0 0 - - 0 0 b b 1 0 0 1 1 0 0 1 exp 1 1 0 0 - - - - d d 1 0 1 1 x 1 1 1 - 0 0 1 1 exp e 1 1 1 1 1 1 0 1 0 1 0 0 20 21 1 1 1 1 22 23 Näide - laiendus {a,b,c,d,e} I207 - Digitaalloogika ja -süsteemid - L9

  19. 0 - - 0 xxxx 0 0 0 1 1 1 - - - - - - c c c 0 1 - - c 0 - 0 0 0 0 - - - 0 0 0 00-0 b1 b1 - 0 - 0 b 1 1 1 0 0 0 - - - - - - d d d 1 0 - - d 1 1 1 - - 1 0 0 0 1 1 1 e 1 0 0 e1 1101 1 1 - 0 1 e 1 1 1 1 0 1 0 0 1 1 1 1 Näide - kitsendus 20 21 22 {b1,c,d,e1} 23 I207 - Digitaalloogika ja -süsteemid - L9

  20. 0 0 1 1 - - - - c c 0 - 0 0 - - 0 0 -0-0 b 1 1 0 0 - - - 1 d1 10-1 1 1 1 1 0 0 1 1 1 0 0 e1 e1 1 1 1 1 1 0 1 0 0 20 21 1 1 1 1 22 23 Näide - ümberkujundus {b,c,d1,e1} I207 - Digitaalloogika ja -süsteemid - L9

  21. 0 0 0 1 1 1 - - - - - - c c c - - - 0 0 0 - - - 0 0 0 b b b 1 1 1 0 0 0 - - - - - 1 d exp d 1 1 1 - 1 1 0 0 0 1 1 1 1 0 0 e e1 exp 1 1 1 1 1 0 1 0 0 20 21 1 1 1 1 22 23 Näide - laiendus #2 {b,c,d,e} I207 - Digitaalloogika ja -süsteemid - L9

  22. MINI - lühikokkuvõte • Laiendus • kate - {a,b,c,d,e} • lihtkate, liiasusega (kuid ükski implikant ei sisaldu mõnes teises) • Kitsendus • a eemaldatakse • b [-0-0] -> b1 [00-0] • e [1-01] -> e1 [1101] • kate - (b1,c,d,e1) • Ümberkujundus • {b1,d} [00-0][10--] -> {b,d1} [-0-0][10-1] • Laiendus #2 • kate - {b,c,d,e} • lihtkate, liiasuseta I207 - Digitaalloogika ja -süsteemid - L9

  23. Järjekord, liiasused & kontroll • Järjekord • Laiendus – alustada nendest intervallidest, millede katmine teiste poolt on vähetõenäoline (“hõre naabruskond”) • Kitsendus – alustada nendest intervallidest, millede katmine teiste poolt on tõenäoline (“tihe naabruskond”) • Liiasuse eemaldamine • Oluliste intervallide kindlaks tegemine • Katte probleem lahendatakse heuristiliselt • Õigsuse kontroll • Espresso, MINI • kontrollitakse laiendatud implikandi ühisosa kõigi 0-implikantidega (FR) – täienduse leidmine vajalik • Presto • kontrollitakse laiendatud implikandi sisaldumist 1- ja *-implikantide ühendis (FFFD) – taandub nn. rekursiivsele tautoloogia kontrollile I207 - Digitaalloogika ja -süsteemid - L9

  24. Shannoni arendus • Muutuja(te)st sõltumatu osa eraldamine • ~~ muutuja ja selle eituse sulgude ette toomine • Ühe muutuja järgi – f = x fx=1 + x’ fx=0 • kaks jääkfunktsiooni (e. kaasfaktorit) • y = bc’d+b’d’+ab • y = b(c’d+a)+b’(d’) [ fb=1=c’d+a / fb=0=d’ ] • y = a(bc’d+b’d’+b)+a’(bc’d+b’d’) • Kahe muutuja järgi (neli jääkfunktsiooni) • y = a’b’(d’) + a’b(c’d) + ab’(d’) + ab(1) • Täielik arendus • rekursiivselt kõikide muutujate järgi I207 - Digitaalloogika ja -süsteemid - L9

  25. Täiendi leidmine • Põhineb Shannon’i arendusel • f = x fx=1 + x’ fx=0→ f ’ = x f ’x=1 + x’ f ’x=0 • rakendatakse rekursiivselt • y = a b c’  y’ = a (ya=1)’ + a’ (ya=0)’ • ya=1 = b c’ ; ya=0 = 0 ;  y’ = a (b c’)’ + a’ (0)’ • (b c’)’ = b [(b c’)b=1]’ + b’ [(b c’)b=0]’ • (b c’)’ = b (c’)’ + b’ (0)’ = b c + b’ • y’ = a ( b c + b’ ) + a’ = a b c + a b’ + a’ I207 - Digitaalloogika ja -süsteemid - L9

  26. x = a’b’c’+a’bc’+abc x = ‘1’a,b,c(0,2,7) x = ‘0’a,b,c(1,3,4,5,6) a b c x 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 c c b b 1 1 0 0 0 0 1 1 a a 0 0 0 0 1 1 0 0 x x Täiendi näited • x = abc+a’c’ • f’ = x f’x=1 + x’ f’x=0 • x’ = a x’a=1 + a’ x’a=0 • xa=1 = bc ; x’a=0 = c’ • x’ = a (bc)’ + a’ (c’)’ • x’ = a (b’ + c’) + a’c • x’ = ab’ + ac’ + a’c • x = (a’+b)(a’+c)(a+c’) [ x = (a+c’)(b+c’)(a’+c) ] I207 - Digitaalloogika ja -süsteemid - L9

  27. y = a’b’c’+a’b’c+ +a’bc+ab’c y = ‘1’a,b,c(0,1,3,5) y = ‘0’a,b,c(2,4,6,7) a b c y 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 c c b b 1 1 1 1 1 1 0 0 a a 0 0 1 1 0 0 0 0 y y Täiendi näited • y = a’b’+a’c+b’c • f’ = x f’x=1 + x’ f’x=0 • y’ = a y’a=1 + a’ y’a=0 • ya=1 = b’c ; y’a=0 = b’+c+b’c • y’ = a(b’c)’ + a’(b’+c)’ • y’ = a (b + c’) + a’bc’ • y’ = ab + ac’ + a’bc’ • y = (a’+b’)(a’+c)(a+b’+c) [ y = (b’+c)(a’+c)(a’+b’) ] I207 - Digitaalloogika ja -süsteemid - L9

  28. z = a’b’c’+a’b’c+ +a’bc’+abc z = ‘1’a,b,c(0,1,2,7) z = ‘0’a,b,c(3,4,5,6) a b c z 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 c c b b 1 1 1 1 0 0 1 1 a a 0 0 0 0 1 1 0 0 z z Täiendi näited • z = abc+a’b’+a’c’ • f’ = x f’x=1 + x’ f’x=0 • z’ = a z’a=1 + a’ z’a=0 • za=1 = bc ; z’a=0 = b’+c’ • z’ = a (bc)’ + a’ (b’+c’)’ • z’ = a (b’ + c’) + a’bc • z’ = ab’ + ac’ + a’bc • z = (a’+b)(a’+c)(a+b’+c’) [ z = (a+b’+c’)(a’+b)(a’+c) ] I207 - Digitaalloogika ja -süsteemid - L9

More Related