• No results found

Ofullst¨ andigt specificerade funktioner

2.2. F ¨ ORENKLING AV BOOLESKA UTTRYCK 29

Tabell 2.1: Stegvis f¨orenkling

(a) (b) (c)

j A B C D

0 0 0 0 0

2 0 0 1 0

3 0 0 1 1

5 0 1 0 1

7 0 1 1 1

8 1 0 0 0

10 1 0 1 0

12 1 1 0 0

13 1 1 0 1

14 1 1 1 0

{j} A B C D

0, 2 0 0 - 0

0, 8 - 0 0 0

2, 3 0 0 1 - p1

2, 10 - 0 1 0

3, 7 0 - 1 1 p2

5, 7 0 1 - 1 p3

5, 13 - 1 0 1 p4

8, 10 1 0 - 0

8, 12 1 - 0 0

10, 14 1 - 1 0

12, 13 1 1 0 - p5

12, 14 1 1 - 0

{j} A B C D

0, 2, 8, 10 - 0 - 0 p6

8, 10, 12, 14 1 - - 0 p7

4. V¨alj fr˚an de ˚aterst˚aende valbara primimplikatorerna (p1−p5) ett antal s˚a att de ˚aterst˚aende kryssen medtas. Ange raderna med dubbel asterisk ∗∗. Valet skall g¨oras s˚a att funktionsuttrycket blir minimalt, dvs.

• Antalet termer (primimplikatorer) ¨ar minimalt,

• Termerna (primimplikatorerna) ¨ar korta (av tv˚a primimplikatorer i tabellen ¨ar den vars rad inneh˚aller de flesta kryssen den kortare).

Tabell 2.2: Primimplikatortabell j

0 2 3 5 7 8 10 12 13 14

p1 (x) x

∗∗ p2 x x

p3 x x

∗∗ p4 x x

p5 (x) x

p6 x [x] [x] [x]

p7 [x] [x] [x] x

I Tabell 2.2 ¨ar de valbara primimplikatorerna p1− p5 alla lika l˚anga. Det optimala valet ¨ar p2 och p4, ty alla andra val skulle kr¨ava minst tre primimplikatorer. Enligt Tabell 2.2 ges det minimala funktions-uttrycket som en disjunktion av primimplikatorerna p2, p4, p6 och p7, av vilka p6 och p7 ¨ar v¨asentliga primimplikatorer. Uttrycket blir (jmf. Tab. 2.1)

B D + AD + ACD + BCD

I exemplet i Tabell 2.1 var funktionen fullst¨andigt specificerad. Proceduren kan emellertid enkelt an-passas f¨or ofullst¨andigt specificerade funktioner, med ”don’t care” funktionsv¨arden f¨or vissa variabel-kombinationer. H¨arvid inkluderar man de rader f¨or vilka funktionsv¨ardet ¨ar ospecificerat (”don’t care”) i funktionstabellen (Tab. 2.1), och bildar primimplikatorerna s˚asom ovan. Vid uppst¨allningen av primimpli-katortabellen (Tab. 2.1), l¨amnas emellertid motsvarande kolumner bort. (D˚a funktionens v¨arde f¨or dessa

30 KAPITEL 2. BOOLESKA FUNKTIONER

beaktas i det f¨orsta skedet d˚a primimplikatorerna bildas, ty de kan endast leda till kortare primimplika-torer, ej l¨angre.) Denna procedur leder till ett minimalt funktionsuttryck f¨or ofullst¨andigt specificerade funktioner.

Uppgift 2.4 F¨orenkla den logiska funktionen X med f¨oljande Karnoughdiagram (- motsvar don’t care tillst˚and):

AB 00 01 11 10

C 0

1

- 1

-1 1 1

Vi st¨aller upp en funktionstabell, d¨ar vi f¨orutom ettorna tar med don’t care tillst˚and:

j A B C

1 2 4 5 6 7

j A B C j A B C

Efter att ha best¨amt alla primimplikatorer, s¨atter vi dem i en Primimplikatortabell. Nu skall vi inte ta med don’t care mintermer, bara de som m˚aste bli 1 f¨or given insignalkombination:

1 5 6 7

Vi f˚ar denna g˚ang X genom att ta summan av v¨asentliga mintermer, dvs X = A + BC.

QMC-metoden kan enkelt programmeras. I Friedman Logical Design of Automation Systems (Prentice – Hall, 1990), ges ett Fortran-program primp, som f¨orenklar booleska uttryck. P˚a denna kurs hemsida s˚a finns ¨aven en Matlab-implementering av QMC-metoden tillg¨anglig.

Nedan visas en exempelk¨orning d¨ar programmet till¨ampats f¨or funktionen i Tabell 2.1 (a). Funktions-v¨ardena l¨ases in i ordningsf¨oljd, och programmet ger en f¨orteckning ¨over primimplikatorerna (observera att numreringen ej ¨overensst¨ammer med den i Tabellerna 2.1 och 2.2, primp sorterar primimplikatorer-na, s˚a de kommer i ordningen p6, p1, p2, p4, p3, p7, p5), samt anger vilka som ¨ar v¨asentliga och vilka som v¨aljs bland de valbara. I constraint table anges slutligen vilka mintermer de olika icke-v¨asentliga primimplikatorerna inkluderar (t¨acker).

Övningar

• Kontrollera att

i den enklaste Booleska algebran B = {0, 1} är x1+ x2+ ... + xn = max (x1, x2, ..., xn)

("Fundamental" = alla aktuella variabler, och inte bara en delmängd av dem, ingår i summan/produkten.) 1. Dualitetsprincipen:

För varje påstående p i en Boolesk algebra, låt p0 beteckna det s.k. duala påståendet — det påstående som fås ur p, när man byter alla + mot · och vice versa,

samt byter alla 1:or mot 0:or och vice versa.

Förklara varför det måste gälla att p är sant då och endast då p0 är sant.

2. Bevisa att följande är en identitet i Boolesk algebra:

xy + yz + zx = (x + y) (y + z) (z + x) (Vissa böcker använder ∨ och ∧ i st. f. + resp. · för Booleska algebra. Då ser likheten ut så här (x ∧ y)∨(y ∧ z)∨(z ∧ x) = (x ∨ y)∧(y ∨ z)∧(z ∨ x) Vilken notation känns enklare att jobba med?) 3. Förenkla

ab + a (¯a + c) 4. Förenkla

ab + ¯ac + a¯b

5. Santos, Boolean Algebras and Boolean Operations bevisar flera av de identiteter som återfinns under strecket i vår stora tabell på första sidan, men han antar även associativiteten som axiom. Vilka av hans bevis stödjer sig på associativitetsaxiomet ? 6. Bevisa domineringsegenskapen

utan att anta associativitet.

(Då har vi (Santos) också ett bevis för absorption som inte är beroende av associativiteten.)

• Även om det principiellt räcker att bevisa den ena av de två likheterna för en viss egenskap och sedan hänvisa till dualitetsprincipen, så kan du som extra

7. Bevisa kancelleringsegenskapen utan att anta associativitet.

8. Bevisa associativiteten m.h.a.

kancellerings- och absorptionsegenskaperna (och annat tidigare bevisat

utan antagande om associativitet)

9. Bevisa transitivitetsegenskapen (nederst i tabellen).

10. Bevisa modulariteten. Därav följer att detsamma gäller även när x1, x2, ..., xk är vektorer i Bn. Men kan du bevisa detta direkt från axiomen och satserna i tabellen på första sidan ? 12. Visa att ekvationen a + x = b

15. Hur uttrycks en implikation p → q i Boolesk algebra-språk ?

16. Kontrollera m.h.a. Boolesk algebra syllogismlagen (p → q) ∧ (q → r) ⇒ (p → r)

17. Hitta, m.h.a. Boolesk algebra,

samtliga lösningar till värdinneproblemet:

Vilka av personerna A, B, C, D, E kan bjudas in, om det är känt att

i) A kommer, bara om B är bjuden.

ii) B och C är som hund och katt.

iii) Någon av D och E måste bjudas.

iv) E kan inte gå någonstans, utan både A och D.

v) C och D är siamesiska tvillingar.

18. Three businessmen, Albert, Bill and Charley, lunch together every working day.

i) If Albert orders martini, so does Bill.

ii) Either Bill or Charley always orders a martini, but never both at the same lunch.

iii) Either Albert or Charley or both always orders a martini.

iv) If Charley orders a martini, so does Albert.

Who will order a martini,

if you lunch with these three men ?

19. Ett fältsjukhus har fyra luftkoditioneringar A, B, C och D, som förbrukar 4, 5, 7 resp. 8 kW.

En signallampa skall tändas

när totalförbrukningen överstiger 14 kW. Låt a, b, c, d =

½ 1, om resp. konditionering är på

0, annars

f (a, b, c, d) =

½ 1, om totalförbrukn. är > 14 kW

0, annars

Rita ett Karnaughdiagram och bestäm ett så enkelt uttryck som möjligt för den Booleska funktionen f.

20. Förenkla det Booleska polynomet

f (x, y, z, w) = ¯x¯y ¯z ¯w + x¯y ¯z ¯w + ¯xy ¯z ¯w a) algebraiskt,

b) m.h.a. Karnaugh-diagram.

21. (Forts.) Skriv f på konjunktiv form

(produkt av summor), så enkelt som möjligt.

22. Vid konstruktion av digitala kretsar kan det hända att man på förhand vet att vissa kombinationer av insignaler aldrig kommer att inträffa. Då spelar det ingen roll vilken utsignal kretsen konstrueras ge för de insignalkombinationerna.

En sådan krets motsvaras av ett Booleskt polynom med Karnaughdiagram, där det för vissa rutor är likgiltigt om det skall stå 1 eller 0. Här ett exempel där vi markerat dessa rutor med −.

zw z ¯w z ¯¯w zw¯

xy 1 1 0 1

x¯y 0 0 0 0

¯

x¯y − 0 1 0

¯

xy 1 − − 0

Välj om det skall stå 1 eller 0 i rutorna med −, så att det Booleska polynomet kan skrivas på disjunktiv form så enkelt som möjligt.

23. Definiera

x ⊕ y = xy + xy (a) Kontrollera att ⊕ motsvarar

"exklusivt eller" (XOR) i logiken, samt symmetrisk differens 4 i mängdläran:

A 4 B = {x : x ∈ A eller B, men inte båda}

samt visa att

(x ⊕ y) ⊕ z = x ⊕ (y ⊕ z)

d.v.s. att ⊕ är associativ, vilket medför att parenteser är onödiga — vi kan, utan risk för missförstånd, teckan båda uttrycken

x ⊕ y ⊕ z

(b) Skriv x ⊕ y ⊕ z på disjunktiv normalform.

24. Vi har sett att varje Boolesk funktion

kan uttryckas m.h.a. de tre operationerna {+, · , ¯} ; vi kallade sådana uttryck Booleska polynom.

Visa att följande par av operationer räcker a) {+, ¯}

Related documents