• No results found

Satslogik Mängdlära Boolesk algebra (S = sant, F = falskt) (U = grundmängden) Kommutativitet p q q p A B = B A x+ y = y + x p q q p A B = B A xy = yx

N/A
N/A
Protected

Academic year: 2022

Share "Satslogik Mängdlära Boolesk algebra (S = sant, F = falskt) (U = grundmängden) Kommutativitet p q q p A B = B A x+ y = y + x p q q p A B = B A xy = yx"

Copied!
32
0
0

Loading.... (view fulltext now)

Full text

(1)

BOOLESK ALGEBRA

Satslogik Mängdlära Boolesk algebra

(S = sant, F = falskt) (U = grundmängden)

Kommutativitet p ∨ q ⇔ q ∨ p A ∪ B = B ∪ A x + y = y + x

p ∧ q ⇔ q ∧ p A ∩ B = B ∩ A xy = yx

Distributivitet (p ∨ q) ∧ r

⇔ (p ∧ r) ∨ (q ∧ r)

(A ∪ B) ∩ C

= (A ∩ C) ∪ (B ∩ C) (x + y) z = xz + yz (p ∧ q) ∨ r

⇔ (p ∨ r) ∧ (q ∨ r)

(A ∩ B) ∪ C

= (A ∪ C) ∩ (B ∪ C) xy + z = (x + z) (y + z)

Existens av identiteter p ∨ F ⇔ p A ∪ ∅ = A x + 0 = x

(neutrala element) p ∧ S ⇔ p A ∩ U = A x · 1 = x

Komplementet p ∨ p ⇔ S A ∪ A = U x + x = 1

som "invers" p ∧ p ⇔ F A ∩ A = ∅ xx = 0

Minst två element S < F U 6= ∅ 1 6= 0

Associativitet (p ∨ q) ∨ r ⇐⇒ p ∨ (q ∨ r) (A ∪ B) ∪ C = A ∪ (B ∪ C) (x + y) + z = x + (y + z) (p ∧ q) ∧ r ⇐⇒ p ∧ (q ∧ r) (A ∩ B) ∩ C = A ∩ (B ∩ C) (xy) z = x (yz)

Komplement av 0, 1 F ⇔ S ∅ = U 0 = 1

S ⇔ F U = ∅ 1 = 0

Idempotens p ∨ p ⇔ p A ∪ A = A x + x = x

p ∧ p ⇔ p A ∩ A = A xx = x

Dominering p ∨ S ⇔ S A ∪ U = U x + 1 = 1

p ∧ F ⇔ F A ∩ ∅ = ∅ x · 0 = 0

Komplementets entydighet

p ∨ q = S p ∧ q = F

¾

⇒ q ↔ p A ∪ B = U

A ∩ B = ∅

¾

⇒ B = A x + y = 1

xy = 0

¾

⇒ y = x

Involution p ⇔ p A = A x = x

de Morgan p ∨ q = p ∧ q A ∪ B = A ∩ B x + y = ¯x¯y

p ∧ q = p ∨ q A ∩ B = A ∪ B xy = x + y

Absorption p ∧ (p ∨ q) ⇔ p A ∩ (A ∪ B) = A x (x + y) = x

p ∨ (p ∧ q) ⇔ p A ∪ (A ∩ B) = A x + xy = x

Kancellering (strykning)

p ∨ r ↔ q ∨ r p ∨ r ↔ q ∨ r

¾

⇒ p ↔ q A ∪ C = B ∪ C A ∪ C = B ∪ C

¾

⇒ A = B x + z = y + z x + z = y + z

¾

⇒ x = y p ∧ r ↔ q ∧ r

p ∧ r ↔ q ∧ r

¾

⇒ p ↔ q A ∩ C = B ∩ C A ∩ C = B ∩ C

¾

⇒ A = B xz = yz

xz = yz

¾

⇒ x = y

Modularitet p ∨ (q ∧ (p ∨ r))

⇔ (p ∨ q) ∧ (p ∨ r)

A ∪ (B ∩ (A ∪ C))

= (A ∪ B) ∩ (A ∪ C) x + y (x + z) = (x + y) (x + z) p ∧ (q ∨ (p ∧ r))

⇔ (p ∧ q) ∨ (p ∧ r)

A ∩ (B ∪ (A ∩ C))

= (A ∩ B) ∪ (A ∩ C) x (y + xz) = xy + xz Transitivitet

(konsensus)

(p ∧ q) ∨ (q ∧ r) ∨ (p ∧ r)

⇔ (p ∧ q) ∨ (q ∧ r)

(A ∩ B) ∪¡ B ∩ C¢

∪ (A ∩ C)

= (A ∩ B) ∪¡

B ∩ C¢ xy + yz + xz = xy + yz (p ∨ q) ∧ (q ∨ r) ∧ (p ∨ r) (A ∪ B) ∩¡

B ∪ C¢

∩ (A ∪ C)

¡ ¢ (x + y) (y + z) (x + z)

(2)

• George Boole (1815-1864) ville ha en kalkyl för logik och mängdlära, som

så nära som möjligt anknöt till "vanlig skolalgebra".

Där finns ett skäl att använda + och · även om många böcker föredrar ∨ resp. ∧ Stanley Burris, The Laws of Boole’s Thought : What is not well known is just how far removed Boole’s work was from modern Boolean algebra, both in substance and in spirit.

Contrary to popular belief

Boole did not work with a two-element Boolean algebra, nor with the Boolean algebra of subsets of a given set.

Boole was simply not doing Boolean algebra, nor Boolean rings. As a matter of fact, for more than a century no one really knew why Boole’s algebra of logic worked.

Varför"invers" med cit.tecken på föreg. sida ?

• För vanlig addition /multiplikation samt matrismultiplikation har vi

add. mult. matrismult.

neutralt element är 0 1 I

eftersom x + 0 = x x · 1 = x AI= A

invers till x, A är −x 1/x A−1

eftersom x + (−x) = 0 x · 1/x = 1 AA−1= I Alltså: Begreppet invers till x definieras av att, när

en viss binär operation utförs på x och dess invers, skall resultatet bli det neutrala elementet för just den operationen. I fallet av Boolesk algebra har vi emellertid "förväxling" av de neutrala elementen:

x + x = 1 = neutralt element för ·, ej + x · x = 0 = neutralt element för +, ej ·

• Att Booleska algebror saknar inverser i vanlig mening har den viktiga konsekvensen att följande räkningar (kallas ibland strykningslagarna — kontentan är ju att vi kan "stryka bort" det gemensamma c:et)

add. mult. matrismult.

a + c = b + c a · c = b · c AC= BC

a + c + (−c) = b + c + (−c) a · c · 1/c = b · c · 1/c ACC−1= BCC−1

a + 0 = b + 0 a · 1 = b · 1 AI= BI

a = b a = b A= B

inte går att göra i Boolesk algebra!

Det krävs mer info för att kunna "stryka" — se under kancellering / strykning på föregående sida.

• Vid likheter mellan olika områden, som mellan satslogik och mängdlära,

försöker matematiker abstrahera det gemensamma.

Boolesk algebra kallar vi en mängd

med minst två element, betecknade 0 och 1, och med tre operationer definierade:

— "addition",

— "multiplikation" och

— "komplementering", som uppfyller vissa axiom.

Det visar sig tillräckligt att som axiom anta de fem första egenskaperna (ner till strecket) — resten följer ur dessa — se

Boolean Algebras and Boolean Operations av David A. Santos längre fram.

Alla algebraiska strukturer

(algebraisk struktur = mängd + operationer) som uppfyller de fem första axiomparen måste alltså ha resterande egenskaper också.

• OBS. att det är skillnad på xy resp. x¯¯y

(Samma skillnad som mellan{ (A ∩ B) och {A∩{B) xy säger att man först skall beräkna xy

och sedan ta komplementet av produkten.

¯

x¯y säger att man först beräknar komplementen av x och y var för sig och sedan multiplicerar dessa komplement.

(Tyvärr kan det någonstans på mina sidor här finnas två streck intill varandra som ser ut som ett enda.)

(3)

Institutionen f¨or matematik, KTH 5B1118 Diskret matematik 1

BOOLESK ALGEBRA OCH BOOLESKA FUNKTIONER

ANDERS BJ ¨ORNER OCH KIMMO ERIKSSON

Boolesk algebra skapades vid 1800-talets mitt av den engelske matematikern George Boole. Den ger en gemensam ram f¨ or m¨ angdl¨ ara, satslogik och teori f¨ or vissa digitala kretsar. Vi skall h¨ ar ge en introduktion till boolesk algebra i det ¨ andliga fallet, som ¨ ar av s¨ arskild betydelse i datalogin.

1. Boolesk algebra Grunden f¨ or boolesk r¨ akning ¨ ar f¨ oljande tv˚ a r¨ aknetabeller:

+ 0 1 0 0 1 1 1 1

;

· 0 1 0 0 0 1 0 1

; samt (¯1 = 1 − 1 = 0

¯ 0 = 1 − 0 = 1

De fungerar som vanlig addition och multiplikation s˚ an¨ ar som p˚ a att alla icke-noll-v¨ arden representeras av 1. V¨ ardena 0 och 1 kan tolkas som “falskt” och “sant”, varvid + motsvarar

“eller” (OR) och · motsvarar “och” (AND). Komplement, ¯ x, motsvarar “icke” (NOT).

Ytterligare en tolkning ¨ ar i m¨ angdtermer: 1 motsvarar en fylld m¨ angd X, 0 motsva- rar tomma m¨ angden ∅, + motsvarar union ∪, · motsvarar snitt ∩, och komplement ¨ar komplement med avseende p˚ a X, dvs ¯ x = X − x.

Objektet som vi studerat ovan ¨ ar den endimensionella booleska algebran B

1

. Den har allts˚ a tv˚ a element, {0, 1} eller {falskt, sant}, eller {∅, X}, hur vi nu vill se p˚ a den. Det h¨ ar kan generaliseras till flera dimensioner:

B

n

∼ = {n-dimensionella {0, 1}-vektorer; +, ·, ¯ sker komponentvis}

(Ex.: 00101 + 10001 = 10101; 00101 = 11010 [B

5

])

∼ = {n-dim. {sant, falskt}-vektorer; OR, AND, NOT sker komponentvis}

(Ex.: SFS AND FSS = FFS; NOT (SFS)=FSF [B

3

])

∼ = {alla delm¨angder till en n-m¨angd X, t.ex. {1, 2, . . . , n}; ∪, ∩ och ¯ m.a.p. X}

(Ex.: {3, 5} ∪ {1, 5} = {1, 3, 5}; {3, 5} = {1, 2, 4} [B

5

])

Tecknet ∼ = betyder isomorfi, dvs s˚ an¨ ar som p˚ a olika namn p˚ a saker och ting s˚ a ¨ ar det exakt samma objekt i de tre exemplen. Isomorfin mellan de f¨ orsta tv˚ a ¨ ar trivial: 0 ↔ F, 1 ↔ S, osv. Isomorfin mellan f¨ orsta och tredje exemplet ¨ ar n¨ astan lika enkel: 00101 ↔ {3, 5}, 10001 ↔ {1, 5}, dvs 1:orna anger vilka element av {1, . . . 5} som ¨ar med i delm¨angden.

F¨ or varje n finns allts˚ a en unik boolesk algebra B

n

, med flera t¨ ankbara tolkningar. B

n

har 2

n

element, ty f¨ or var och en av de n positionerna i vektorn kan vi v¨ alja en 0:a eller en 1:a.

F¨ or att renodla egenskaperna hos den booleska algebran kan man l¨ amna de konkreta

representationerna ovan och se B

n

som en abstrakt m¨ angd med 2

n

element och med tre

(4)

operationer: ∧, ∨ och ¯, som uppfyller samma egenskaper som ∩, ∪ och ¯. Vissa av dessa egenskaper, fr˚ an vilka de ¨ ovriga kan h¨ arledas, v¨ aljs ut och kallas axiomen f¨ or en boolesk algebra. Till att b¨ orja med har man en partialordning ≤ som motsvarar ⊆ f¨or m¨angder eller komponentvis ≤ f¨or {0, 1}-vektorer. Det finns tv˚ a s¨ arskilda element 0 0 0 och 1 1 1 s˚ a att 0 0 0 ≤ x ≤ 111 f¨or alla x i B

n

. 0 0 0 och 1 1 1 motsvarar ∅ respektive hela X = {1, 2, . . . , n}. N˚ agra exempel p˚ a axiom ¨ ar:

x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z) x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z)



distributivitet

¯ ¯ x = x

x ∧ y = ¯ x ∨ ¯ y x ∨ y = ¯ x ∧ ¯ y



de Morgans lagar

Men, eftersom den booleska algebran ¨ ar isomorf med tolkningarna ovan s˚ a finns det ingen anledning att l¨ ara sig dessa axiom utantill emedan de f¨ oljer av r¨ aknereglerna f¨ or t.ex. m¨ angder eller {0, 1}-vektorer.

I forts¨ attningen betraktar vi B

n

just som {n-dim. {0, 1}-vektorer} och anv¨ander allts˚ a operatorerna +, · och ¯. Men i livlig ˚ atanke har vi alltid omtolkningen till r¨ akning med sanningsv¨ arden.

2. Booleska funktioner

En boolesk funktion ¨ ar en funktion f : B

n

→ B

1

, dvs en funktion f (x

1

, x

2

, . . . , x

n

) = y d¨ ar alla x

i

och y ¨ ar 0 eller 1. Man representerar enklast f med en “sanningstabell”, t.ex.

x

1

x

2

x

3

f

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

Men man kan ocks˚ a se f som en “logisk krets”

f

- - -

x

1

x

2

x

3

-

f (x

1

, x

2

, x

3

)

som matar ut ett v¨ arde beroende p˚ a ing˚ angsv¨ ardena x

1

, x

2

, x

3

.

2

(5)

Den funktion f som ges av tabellen ovan kan ocks˚ a uttryckas som ett “booleskt poly- nom”, dvs ett uttryck med +, · och ¯ samt variabler:

f (x

1

, x

2

, x

3

) = ¯ x

1

x ¯

2

x

3

+ ¯ x

1

x

2

x ¯

3

+ x

1

x ¯

2

x ¯

3

+ x

1

x

2

x

3

.

Hur vet man det? Jo, varje term motsvarar en rad i tabellen d¨ ar f ska vara 1. Att t.ex.

f (0, 0, 1) = 1 motsvaras av ¯ x

1

x ¯

2

x

3

, ty denna produkt blir 1 omm alla faktorer ¨ ar 1, dvs omm x

1

= 0, x

2

= 0, x

3

= 1. P˚ a samma s¨ att ¨ ar ¯ x

1

x

2

x ¯

3

= 1 omm (x

1

, x

2

, x

3

) = (0, 1, 0).

Allts˚ a kommer summan av dessa termer att vara 1 precis n¨ ar f ska vara 1. Detta s¨ att att uttrycka f kallas “disjunktiv normalform”.

Vi kan ur detta dra slutsatsen att varje boolesk funktion kan skrivas som ett booleskt polynom.

Men det finns i allm¨ anhet m˚ anga olika s¨ att att uttrycka samma booleska funktion. Vi har t.ex.

( xy + x¯ y = x

xyz + xy ¯ z + x¯ yz + x¯ y ¯ z = x

Den disjunktiva normalformen ¨ ar ofta den dummaste om man ¨ ar ute efter ett enkelt uttryck.

Varf¨ or ¨ ar man ute efter ett enkelt uttryck f¨ or f ? Jo, om man ska realisera f som logisk krets vill man bygga den s˚ a billigt som m¨ ojligt, dvs med s˚ a f˚ a grundkomponenter, s.k.

grindar, som m¨ ojligt. Typiska grindar ¨ ar:

&

- -

x

-

y

xy ≥ 1

- -

x

-

y

x + y

1

- e -

x x ¯

Till exempel kan (¯ x + y) · z byggas:

1

- e -

x x ¯

≥ 1

-

y

-

¯ x + y

&

- -

-

z

(¯ x + y)z

P˚ a disjunktiv normalform ¨ ar (¯ x + y) · z = xyz + ¯ xyz + ¯ x¯ yz, och att bygga upp kretsen

s˚ a ¨ ar naturligtvis mycket dyrare. Hur g¨ or man d˚ a f¨ or att finna enklast m¨ ojliga uttryck f¨ or

f ? F¨ or stora n ¨ ar detta problem mycket sv˚ art, man f˚ ar i praktiken n¨ oja sig med en halvbra

l¨ osning, stora datorer till trots. F¨ or n ≤ 6 kan man dock l¨osa problemet f¨or hand, med

hj¨ alp av s˚ a kallade Karnaugh-diagram. Metoden illustreras f¨ or n = 2 i f¨ oljande exempel.

(6)

1 1 0 0

1 0 1 0

1 1 0 1 x y f

= ⇒

@@

1 0

1 1 0

1 0 x 1

y

(x) x)

(y) y)

= ⇒ f (x, y) = x + ¯ y

Id´ en ¨ ar allts˚ a att ¨ overs¨ atta sanningstabellen (eller den disjunktiva normalformen) till en 2-dimensionell tabell, och d¨ ar plocka ihop block av 1:or till enkla termer. Kolonnen under y = 0 motsvarar ju ¯ y = 1, och att den kolonnen bara inneh˚ aller 1:or motsvarar termen ¯ y i uttrycket f¨ or f . Observera att samma 1:a g¨ arna f˚ ar ing˚ a i flera block (eftersom 1+1=1).

F¨ or 3 och 4 variabler g¨ aller det att utforma tabellen p˚ a ett listigt s¨ att, s˚ a att grannrutor f˚ ar klumpas ihop. Enklast ser man p˚ a ett exempel:

@

@

@

10 11 01 00

1 0 0 1 00

0 0 0 0 01

1 1 1 1 11

0 1 1 0 xy 10

zw

(x)

{

x)

{

}

(y) y) z) (z)

( ¯w) (w)

= ⇒ f = ¯ y ¯ z ¯ w + zw + yz

Man r¨ aknar allts˚ a upp v¨ ardeparen i ordningen 00, 01, 11, 10. P˚ a det s¨ attet kommer alltid tv˚ a par i f¨ oljd att ha en gemensam siffra; det sista paret ¨ ar ocks˚ a granne med det f¨ orsta.

I tabellrutan plockar man ihop block av ettor, d¨ ar man allts˚ a f˚ ar utnyttja denna “wrap- around”-effekt. T.ex., de tv˚ a ettorna i f¨ orsta kolonnen finns i kolonn ¯ z ¯ w och i raderna ¯ y, s˚ a de bidrar med termen ¯ y ¯ z ¯ w.

Metoden med Karnaugh-diagram blir mer otymplig f¨ or n = 5, 6. F¨ or n ≥ 7 b¨or dato- rer anv¨ andas f¨ or att hitta minimala polynom, eller approximativt minimala polynom, till booleska funktioner. Vi g˚ ar inte vidare in p˚ a detta ¨ amne.

I komplexitetsteori studeras hur “sv˚ ara” olika ber¨ akningsproblem ¨ ar. Sv˚ arighetsgrad m¨ ats p˚ a olika s¨ att, t.ex. hur m˚ anga element¨ ara steg som en algoritm f¨ or problemet m˚ aste ta som funktion av indatas storlek. I det sammanhanget spelar booleska funktioner en stor roll. Man f¨ ors¨ oker uppskatta storleken p˚ a minimala “booleska kretsar”, ett allm¨ annare begrepp ¨ an booleska polynom, f¨ or givna funktioner.

En viktig roll i teoretisk datalogi spelar ocks˚ a det s˚ a kallade “satisfierbarhetsproblemet”

(SAT): Givet ett booleskt polynom f (x

1

, x

2

, . . . , x

n

) finns det v¨ arden a

i

∈ {0, 1} s˚ a att f (a

1

, a

2

, . . . , a

n

) = 1? Man vet inte om detta problem har en polynomiell l¨ osning, dvs

4

(7)

Forts. (sid.5) av Björner&Erikssons stencil om det finns en algoritm, som använder högst ndsteg, för något fixt heltal d. Satisfierbarhetsproblemet för Booleska polynom är det kanske viktigaste (och historiskt första) exemplet på ett N P -fullständigt problem. Frågan om det har en polynomiell lösning är ekvivalent med det berömda

"Är P = N P ?"-problemet.

P = N P -problemet

?

Ett av 7 problem, för vilkas lösning Clay Mathematics Institute år 2000 utlovade 1 miljon dollar var.

• Kort handlar frågan om en klass av problem, för vilka ingen "snabb" lösningsalgoritm är känd, men för vilka det går att snabbt kontrollera om ett lösningsförslag är riktigt, och för vilka existens av snabb algoritm inte är utesluten.

Kan det vara så att det för dessa problem finns "snabba" algoritmer som vi inte känner ?

• Med P betecknar man klassen av problem, för vilka vi har en lösningsalgoritm, sådan att antalet steg /räkneoperationer den kräver är ≤ p (n) för något fixt polynom p,

varvid n är ett mått på problemindatas storlek.

Ex. Lösning av ett linjärt n × n-system

m.h.a. successiv elimination behöver inte fler än (se Sparr, Linjär algebra, sid.14-15)

n (n + 1) (2n + 1)

6 +n (n − 1) 2 flops (1 flop = 1 multiplikation och 1 addition) Alltså är detta ett problem av klassen P.

Det är problem av klassen P, som vi avser, när vi säger har en "snabb" lösningsalgoritm / can be solved in polynomial time.

• By the late 1960s it had become clear that there were some seemingly simple problems that resisted polynomial time algorithmic solutions. Attempting to classify this family of problems, Steve Cook came up with a clever observation: For a problem to be solved in polynomial time, one should be able — at the very least — to verify a given correct solution in polynomial time. This is called certifying a solution in polynomial time. Because, if we can solve a prob- lem in polynomial time and somebody comes up with a proposed solution S, we can always run the program, obtain the correct solution C and compare the two, all in polynomial time. (Alex Lopez-Ortiz)

• Med NP betecknar man klassen av problem, för vilka vi än så länge inte känner till någon "polynomiell" lösningsalgoritm,

men för vilka det finns polynomiella algoritmer att kontrollera lösningsförslag.

Exempel :

— Att faktorisera i primtal ett givet heltal n.

— SAT-problemet (se Björner & Eriksson)

— Avgöra, om det bland n givna heltal finns en delmängd med summa 0.

• Förenklat:

P = "easy to find"

N P = "easy to check"

• Cook also showed that among all NP problems there were some that were the hardest of them all, in the sense that if you could solve any one of those in polynomial time, then it followed that

all N P problems can be solved in polynomial time.

These ”hardest” problems in N P are known as N P -complete problems

Det första problemet som visades N P -fullständigt var just SAT-problemet (Steve Cook & Leonid Levin oberoende av varandra 1971; Cook’s theorem)

• Sedan dess har många andra problem visats vara N P -fullständiga. Redan 1979 kom det ut en bok1 med en förteckning på över 300 st. sådana.

Bl.a. spelet Minesweeper, som lär ha ingått i Microsoft Windows omkring år 2000, visades ställa spelaren inför ett N P -fullständigt problem:

www.claymath.org/Popular_Lectures/Minesweeper Who Cares?

• The P = NP question has a practical application of huge importance: cryptography.

Much of modern cryptography is based on N P -complete problems like factoring.

If you could factor big numbers quickly, a lot of the modern cryptographic systems used by banks, governments, military forces, large corporations, and even secure Web sites would become worthless overnight.

(www.vb-helper.com/tut8.htm)

1

(8)

Isomorfi

Björner & Eriksson nämner begreppet isomorfi.

En sats av Marshall Stone från 1936 säger att varje Boolesk algebra B är isomorf med

en algebra av delmängder M (mängd av delmängder, sådan att de tre operationerna union, snitt och komplementering inte leder utanför M )

till en viss mängd U, vilket betyder att det finns en bijektiv funktion f : B → M, sådan att för alla x, y, z ∈ B

x + y = z =⇒ f (x) ∪ f (y) = f (z) xy = z =⇒ f (x) ∩ f (y) = f (z)

y = x =⇒ f (y) = {f (x)

• En praktisk konsekvens av detta är att man alltid kan (i alla fall) försöka förenkla Booleska uttryck med hjälp av Venndiagram.

• Den, som visade världen

att Boolesk algebra var högst användbar

vid analys och konstruktion av elektriska kretsar:

Claude Shannon (1916 − 2001)

i en magisteruppsats 1937, publicerad i tidskrift 1938.

("Historiens mest betydelsefulla magisteruppsats"

brukar den kallas.)

Förklaring av Example 129 i

Boolean Algebras and Boolean Operations (Bygger på aritmetikens fundamentalsats i talteorin och får med fördel anstå till dess —

ej nödvändig för förståelsen av resten.)

• Primtalsfaktorisering 30 = 2 · 3 · 5 ger att

delarna till 30 kan identifieras med talen av formen 2x13x25x3, (x1, x2, x3) ∈ B3

(m.a.o. alla xi = 0 eller 1) För två tal 2x13x25x3 och 2y13y25y3 är (och detta gäller för alla icke-negativa xi, yi) minsta gemensamma multipeln (MGM)

= 2max(x1,y1)3max(x2,y2)5max(x3,y3) största gemensamma delaren (SGD)

= 2min(x1,y1)3min(x2,y2)5min(x3,y3) Det komplement som tilldelas delarna kan räknas ut så här

2x13x25x3= 213151

2x13x25x3 = 21−x131−x251−x3 Obs. att

x, y ∈ {0, 1} =⇒

½ max (x, y) = x + y min (x, y) = xy med add./mult. i Boolesk mening Alltså MGM, SGD och komplement till delarna kan fås genom att

— representera dem med tripplar i B3,

— på tripplarna utföra Boolesk addition, multiplikation alt. komplementering, och

— omvandla den resulterande trippeln till den delare den motsvarar.

M.a.o. operationerna på delarna uppför sig som de Booleska operationerna i den Booleska algebran B3

— delarna bildar en Boolesk algebra isomorf med B3.

• På samma sätt får man Booleska algebror av delarna till varje tal m som liksom 30 är kvadratfritt, d.v.s. vars primtalsfaktorisering har formen

m = p1p2...pk, där pi:na är olika primtal Däremot fungerar det inte på tal,

vars primtalsfaktoriering innehåller

primtal i kvadrat eller högre, t.ex. 12 = 22· 3.

(9)

Boolean Algebras and Boolean Operations 31

124 Example Shew how to write the union A∪ B ∪C as a disjoint union of sets.

Solution: The sets A, B \ A,C \ (A ∪ B) are clearly disjoint and

A∪ B ∪C = A ∪ (B \ A) ∪ (C \ (A ∪ B)).

125 Example Let x1< x2< ··· < xnand y1< y2< ··· < ymbe two strictly increasing sequences of integers. Write an algorithm to determine {x1, x2, . . . , xn} ∩ {y1, y2, . . . , ym}.

Solution:





Algorithm 3.2.1: INTERSECTION(n, m, X,Y )

comment: X is an array of length n.

comment: Y is an array of length m.

n1← 0 m1← 0 common← 0

while(n1 6= n) and (m1 6= m)

do

8

>

>

>

>

<

>

>

>

>

:

if X[n1 + 1] < Y [m1 + 1]

then n1← n1 + 1

else if X[n1 + 1] > Y [m1 + 1]

then m1← m1 + 1 else

(

n1← n1 + 1 m1← m1 + 1

common← common + 1

3.3 Boolean Algebras and Boolean Operations

126 Definition A boolean algebra consists of a set X with at least two different elements 0 and 1, two binary operations+ (addition) and · (multiplication), and a unary operation (called complementation) satisfying the following axioms. (We use the juxtaposition AB to denote the product A· B.)

1. A+ B = B + A (commutativity of addition) 2. AB= BA (commutativity of multiplication)

3. A+ (B +C) = (A + B) +C (associativity of addition) 4. A(BC) = (AB)C (associativity of multiplication) 5. A(B +C) = AB + AC (distributive law)

6. A+ (BC) = (A + B)(A +C) (distributive law) 7. A+ 0 = A (0 is the additive identity) 8. A1= A (1 is the multiplicative identity) 9. A+ A = 1

10. AA= 0

127 Example If we regard 0= F, 1 = T , + = ∨, · = ∧, and = ¬, then the logic operations over {F,T} constitute a boolean algebra.

128 Example If we regard 0= ∅, 1 = U (the universal set), + = ∪, · = ∩, and = ∁, then the set operations over the subsets of U constitute a boolean algebra.

129 Example Let X= {1,2,3,5,6,10,15,30}, the set of positive divisors of 30. We define + as the least common multiple of two elements,

· as the greatest common divisor of two elements, and A =30

A. The additive identity is 1 and the multiplicative identity is 30. Under these operations X becomes a boolean algebra.

(10)

32 Chapter 3

A B A A+ B AB

0 0 1 0 0

0 1 1 1 0

1 0 0 1 0

1 1 0 1 1

Table 3.6: Evaluation Rules

The operations of complementation, addition and multiplication act on 0 and 1 as shewn in table3.6.

The following properties are immediate.

130 Theorem 0= 1 and 1 = 0.

Proof: Since 0 is the additive identity, 0= 0 + 0. But by axiom9, 0+ 0 = 1 and thus 0 = 0 + 0 = 1.

Similarly, since 1 is the multiplicative identity, 1= 1 · 1. But by axiom10, 1· 1 = 0 and thus 1 = 1 · 1 = 0. ❑ 131 Theorem (Idempotent Laws) A+ A = A and AA = A

Proof: We have

A= A + 0 = A + A · A = (A + A)(A + A) = (A + A)(1) = A + A.

Similarly

A= A1 = A(A + A) = AA + A · A = AA + 0 = AA.

132 Theorem (Domination Laws) A+ 1 = 1 and A · 0 = 0.

Proof: We have

A+ 1 = A + (A + A) = (A + A) + A = A + A = 1.

Also,

A· 0 = A(A · A) = (AA)A = AA = 0.

133 Theorem (Uniqueness of the Complement) If AB= 0 and A + B = 1 then B = A.

Proof: We have

B= B1 = B(A + A) = BA + BA = 0 + BA = BA.

Also,

A= A1 = A(A + B) = A · A + AB = AB.

Thus

B= BA = AB = A.

134 Theorem (Involution Law) A= A

Proof: By axioms9and10, we have the identities

1= A + A and A · A = 0.

By uniqueness of the complement we must have A= A. ❑ 32

(11)

Sum of Products and Products of Sums 33

135 Theorem (De Morgan’s Laws) A+ B = A · B and A · B = A + B.

Proof: Observe that

(A + B) + A · B = (A + B + A)(A + B + B) = (B + 1)(A + 1) = 1, and

(A + B)A · B = AA · B + BA · B = 0 + 0 = 0.

Thus A· B is the complement of A + B and so we must have A · B = A + B.

To obtain the other De Morgan Law put A instead of A and B instead of B in the law just derived and use the involution law:

A+ B = A · B = AB.

Taking complements once again we have

A+ B = AB =⇒ A + B = AB.

136 Theorem AB+ AB = A.

Proof: Factoring

AB+ AB = A(B + B) = A(1) = A.

137 Theorem A(A + B) = AB and A + AB = A + B.

Proof: Multiplying

A(A + B) = AA + AB = 0 + AB = AB.

Using the distributive law,

A+ AB = (A + A)(A + B) = 1(A + B) = A + B.

138 Theorem (Absorption Laws) A+ AB = A and A(A + B) = A.

Proof: Factoring and using the domination laws:

A+ AB = A(1 + B) = A1 = A.

Expanding and using the identity just derived:

A(A + B) = AA + AB = A + AB = A.

3.4 Sum of Products and Products of Sums

Given a truth table in some boolean variables, we would like to find a function whose output is that of the table. This can be done by either finding a sum of products (SOP) or a product of sums (POS) for the table. To find a sum of products from a truth table:

➊ identify the rows having output 1.

➋ for each such row, write the variable if the variable input is 1 or write the complement of the variable if the variable input is 0, then multiply the variables forming a term.

➌ add all such terms.

To find a product of sums from a truth table:

➊ identify the rows having output 0.

➋ for each such row, write the variable if the variable input is 0 or write the complement of the variable if the variable input is 1, then add the variables forming a sum

➌ multiply all such sums.

(12)

34 Chapter 3

139 Example Find a SOP and a POS for Z.

A B C Z

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 1

1 1 1 1

Solution: The output (Z) 1’s occur on the rows (i) A= 0, B = 0,C = 0, so we form the term (A)(B)(C), (ii) A = 0, B = 1,C = 0, so we form the term ABC, (iii) A= 1, B = 1,C = 0, so we form the term ABC, and (iv) A = B = C = 1, giving the term ABC. The required SOP is

Z= (A)(B)(C) + ABC + ABC + ABC.

The output (Z) 0’s occur on the rows (i) A= 0, B = 0,C = 1, so we form the term A + B +C, (ii) A = 0, B = 1,C = 1, so we form the term A+ B +C, (iii) A = 1, B = 0,C = 0, so we form the term A + B +C, and (iv) A = 1, B = 0,C = 1, giving the term A + B +C. The required POS is

Z= (A + B +C)(A + B +C)(A + B +C)(A + B +C).

Using the axioms of a boolean algebra and the aforementioned theorems we may simplify a given boolean expression, or transform a SOP into a POS or viceversa.

140 Example Convert the following POS to a SOP:

(A + BC)(A + BD).

Solution:

(A + BC)(A + BD) = AA+ ABD + ABC + BCBD

= A+ ABD + ABC + BCD

= A+ BCD.

141 Example Convert the following SOP to a POS:

AB+CD.

Solution:

AB+CD = (AB +C)(AB + D)

= (A +C)(B +C)(A + D)(B + D).

142 Example Write W XY+W XZ +Y + Z as a sum of two products.

Solution: We have

W XY+W XZ +Y + Z = W X(Y + Z) +Y + Z

= W X+Y + Z

= W X+Y · Z, where we have used the fact that AB+ B = A + B and the De Morgan laws.

3.5 Logic Puzzles

The boolean algebra identities from the preceding section may help to solve some logic puzzles.

143 Example Brown, Johns and Landau are charged with bank robbery. The thieves escaped in a car that was waiting for them. At the inquest Brown stated that the criminals had escaped in a blue Buick; Johns stated that it had been a black Chevrolet, and Landau said that it had been a Ford Granada and by no means blue. It turned out that wishing to confuse the Court, each one of them only indicated correctly either the make of the car or only its colour. What colour was the car and of what make?

Solution: Consider the sentences

34

(13)

Logic Puzzles 35

A = the car is blue B = the car is a Buick C = the car is black D = the car is a Chevrolet E = the car is a Ford Granada

Since each of the criminals gave one correct answer, it follows that Brown’s declaration A+ B is true. Similarly, Johns’s declaration C + D is true, and Landau’s declaration A+ E is true. It now follows that

(A + B) · (C + D) · (A + E) is true. Upon multiplying this out, we obtain

(A ·C · A) + (A ·C · E) + (A · D · A) + (A · D · E) + (B ·C · A) + (B ·C · E) + (B · D · A) + (B · D · E).

From the hypothesis that each of the criminals gave one correct answer, it follows that each of the summands, except the fifth, is false. Thus B·C · A is true, and so the criminals escaped in a black Buick.

144 Example Margie, Mimi, April, and Rachel ran a race. Asked how they made out, they replied:

Margie: “April won; Mimi was second.”

Mimi: “April was second and Rachel was third.”

April: “Rachel was last; Margie was second.”

If each of the girls made one and only one true statement, who won the race?

Solution: Consider the sentences

A = April was first B = April was second C = Mimi was second D = Margie was second E = Rachel was third F = Rachel was last Since each of the girls gave one true statement we have that

(A +C)(B + E)(F + D) = 1.

Multiplying this out

ABF+ ABD + AEF + AED +CBF +CBD +CEF +CED = 1.

Now, AB= EF = BC = CD = 0 so the only surviving term is AED and so April was first, Margie was second, Rachel was third, and Mimi was last.

145 Example Having returned home, Maigret rang his office on quai des Orf`evres.

“Maigret here . Any news?”

“Yes Chief. The inspectors have reported. Torrence thinks that if Franc¸ois was drunk, then either Etienne is the murderer or Franc¸ois is lying. Justin is of the opinion that either Etienne is the murderer or Franc¸ois was not drunk and the murder occurred after midnight. Inspector Lucas asked me to tell you that if the murder had occurred after midnight, then either Etienne is the murderer or Franc¸ois is lying. Then there was a ring from . . . .”

“That’s all, thanks. That’s enough!” The commissar replaced the receiver. He knew that when Franc¸ois was sober he never lied. Now everything was clear to him. Find, with proof, the murderer.

Solution: Represent the following sentences as:

A = Franc¸ois was drunk, B = Etienne is the murderer, C = Franc¸ois is telling a lie,

D = the murder took place after midnight.

(14)

36 Chapter 3

We then have

A =⇒ (B +C), B + AD, D =⇒ (B +C).

Using the identity

X =⇒ Y = X +Y, we see that the output of the product of the following sentences must be 1:

(A + B +C)(B + AD)(D + B +C).

After multiplying the above product and simplifying, we obtain

B+CAD.

So, either Etienne is the murderer, or the following events occurred simultaneously: Franc¸ois lied, Franc¸ois was not drunk and the murder took place after midnight. But Maigret knows that AC= 0, thus it follows that E = 1, i.e., Etienne is the murderer.

Homework

146 Problem Construct the truth table for(p =⇒ q) ∧ q.

147 Problem By means of a truth table, decide whether(p∧q)∨(¬p) = p∨(¬p). That is, you want to compare the outputs of (p∧q)∨(¬p) and p∨ (¬p).

148 Problem Explain whether the following assertion is true and negate it without using the negation symbol¬:

∀n ∈ N ∃m ∈ N n > 3 =⇒ (n + 7)2> 49 + m



149 Problem Explain whether the following assertion is true and negate it without using the negation symbol¬:

∀n ∈ N ∃m ∈ N n2> 4n =⇒ 2n> 2m+ 10



150 Problem Prove by means of set inclusion that(A ∪ B) ∩C = (A ∩C) ∪ (B ∩C).

151 Problem Obtain a sum of products for the truth table

A B C Z

0 0 0 1

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 0

152 Problem Use the Inclusion-Exclusion Principle to determine how many integers in the set{1,2,... ,200} are neither divisible by 3 nor 7 but are divisible by 11.

Answers

146

p q p =⇒ q (p =⇒ q) ∧ q

F F T F

F T T T

T F F F

T T T T

36

(15)

Answers 37

147 The desired truth table is

p q p∧ q ¬p p∨ ¬p (p ∧ q) ∨ (¬p)

F F F T T T

F T F T T T

T F F F T F

T T T F T T

148 The assertion is true. We have

(n + 7)2> 49 + m ⇐⇒ n2+ 14n > m.

Hence, taking m= n2+ 14n − 1 for instance (or any smaller number), will make the assertion true.

150 We have,

x∈ (A ∪ B) ∩C ⇐⇒ x∈ (A ∪ B) ∧ x ∈ C

⇐⇒ (x ∈ A ∨ x ∈ B) ∧ x ∈ C

⇐⇒ (x ∈ A ∧ x ∈ C) ∨ (x ∈ B ∧ x ∈ C)

⇐⇒ (x ∈ A ∩C) ∨ (x ∈ B ∩C)

⇐⇒ x∈ (A ∩C) ∪ (B ∩C), which establishes the equality.

151

A· B ·C + A · B ·C + A · B ·C + A · B ·C 152 10

(16)

22 KAPITEL 2. BOOLESKA FUNKTIONER

2.2.1 Karnaugh-diagram

En standard procedur f¨or f¨orenkling av booleska funktioner baserar sig egenskaperna hos s.k. Karnaugh- diagram. I dessa anges funktionsv¨ardena i rutor i ett diagram. Varje ruta motsvarar en kombination av variabelv¨arden. Nedan ges exempel p˚a Karnaugh-diagram (utan insatta funktionsv¨arden) f¨or tv˚a, tre, fyra och fem variabler.

Tv˚a variabler: Tre variabler:

A 0 1

B 0

1

AB 00 01 11 10

C 0

1

Fyra variabler: Fem variabler:

AB 00 01 11 10

CD 00 01 11 10

ABC

000 001 011 010 100 101 111 110

DE 00 01 11 10

Karnaugh-diagrammen ¨ar s˚a konstruerade, att variabelv¨ardena f¨or tv˚a avgr¨ansande (n¨arbel¨agna, adja- centa) rutor skiljer sig i en och endast en variabel. Omv¨ant skall tv˚a variabelkombinationer som skiljer sig i exakt en variabel finnas i n¨arbel¨agna rutor. H¨arvid uppfattas radernas och kolumnernas ¨andrutor som angr¨ansande. Diagrammet f¨or fem variabler kan uppfattas som tredimensionell, s˚a att den h¨ogra delen av diagrammet ligger bakom den v¨anstra.

F¨orenklingen av booleska funktioner med hj¨alp av Karnaugh-diagram baserar sig p˚a ovann¨amnda egen- skaper hos n¨arbel¨agna rutor, vilket illustreras av f¨oljande exempel.

Exempel 2.2 Karnaugh-diagram Betrakta den booleska funktionen

X = A BC + ABC + ABC + ABC

fr˚an exempel 2.1. Karnaugh-diagrammet f˚ar f¨oljande utseende (med endast ettorna insatta):

AB 00 01 11 10

C 0

1 1 1

1

1 X = AB + BC

Tack vare diagrammets konstruktion kan f¨orenklingarna ABC + ABC = AB

(17)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 23

A BC + ABC = BC

uppt¨ackas direkt fr˚an diagrammet. Man ser ytterligare att f¨orenklingen ABC + ABC = AC

kan g¨oras men detta leder ej till ett lika enkelt uttryck f¨or X.

AB 00 01 11 10

C 0

1 1 1

1

1 X = A BC + ABC + AC

Man kan formulera fem regler f¨or f¨orenklingsproceduren:

1. Varje ruta som ineh˚aller en etta m˚aste t¨ackas av minst en cell (en ruta f˚ar t¨ackas av flera celler).

2. Endast rutor med ettor f˚ar t¨ackas av celler.

3. Varje cell m˚aste t¨acka en potens av 2 (1, 2, 4, 8, ...) antal rutor.

4. Antalet celler b¨or vara s˚a litet som m¨ojligt 5. Varje cell b¨or vara s˚a stor som m¨ojligt

Av dessa ¨ar reglerna 1-3 ovillkorliga medan 4-5 str¨avar till att hitta den enklaste realisationen.

Det faktum att man f˚ar t¨acka ettor med flera olika celler inneb¨ar i ovanst˚aende exempel att anv¨andande av alla tre m¨ojliga celler som t¨acker tv˚a rutor ger X = AB + BC + AC. Detta kan i sin tur f¨orenklas till AB + BC, m.h.a. transivitetslagen (R18). Om vi f¨oljer regel 4 s˚a kommer man direkt till detta uttryck F¨orenkling av booleska uttryck med hj¨alp av Karnaugh-diagram grundar sig s˚aledes p˚a att mintermer som kan kombineras till enklare termer upptar n¨arbel¨agna rutor i diagrammet. F¨orenklingarna kan d¨armed ses direkt fr˚an diagrammet.

F¨or fyra variabler har vi fyra typer av termer:

1. Mintermer med alla fyra variabler, som t¨acker en ruta, och som ej kan kombineras med andra termer:

AB 00 01 11 10

CD 00 01 11 10

1 ABCD

(18)

24 KAPITEL 2. BOOLESKA FUNKTIONER

2. Termer med tre variabler, som t¨acker tv˚a rutor (tv˚a skilda exempel):

AB 00 01 11 10

CD 00 01 11 10

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

BCD B CD

3. Termer med tv˚a variabler, som t¨acker fyra rutor (tre skilda exempel):

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

1 1

AB 00 01 11 10

CD 00 01 11 10

1 1

1 1

CD AD B D

4. Termer med en variabel, som t¨acker ˚atta rutor (tv˚a skilda exempel):

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1

1 1 1 1

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1

1 1 1 1

D D

Karnaugh-diagrammen l¨ampar sig b¨ast f¨or funktioner med h¨ogst fyra variabler. Det g˚ar emellertid att anv¨anda metoden ¨aven f¨or funktioner med upp till ˚atta variabler.

(19)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 25

Exempel 2.3 Fem variabler

ABC

DE 00 01 11 10

000 001 011 010 100 101 111 110 1 1

1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

C + D

Exempel 2.4 Sex variabler

AB

CD

EF 00

01 11 10

00 01 11 10 00 01 11 10 00 01 11 10 00 01 11 10

00 01 11 10

1 1 1

1 1

1 1

1 1 1 1

1 1 1 1

1 1

1 1 1

1 1

AB + BCDE F + A BCDE F + AC D EF + AC DEF + ACDE

Primimplikatorer

En funktion f (x1, x2, . . . , xn) s¨ages inkludera en annan funktion g(x1, x2, . . . , xn) om de v¨arden f¨or vari- ablerna x1, x2, . . . , xnf¨or vilka g = 1, ocks˚a ger f = 1. S˚aledes inkluderar f t.ex. termerna i ett disjunktivt uttryck f¨or f.

En primimplikator π f¨or en funktion f(x1, x2, . . . , xn) definieras som en term i ett disjunktivt uttryck f¨or f som har den egenskapen, att om n˚agon av de i termen ing˚aende variablerna avl¨agsnas, s˚a inkluderar f inte den ˚aterst˚aende produkten.

Exempel 2.5

f (x1, x2, x3, x4) = x1x2x4+ x2x3x4+ x1x3x4

har primimplikatorerna

π1= x1x2x4 , π2= x2x3x4 , π3= x1x3

(20)

26 KAPITEL 2. BOOLESKA FUNKTIONER

x1x2

00 01 11 10

x3x4

00 01 11 10

1

1 1

1 1 1

Vid f¨orenkling av en boolesk funktion ¨ar man i f¨orsta hand intresserad av att uttrycka funktionen som en summa av primimplikatorer, ty man kan visa att detta resulterar i det i en viss mening enklaste uttrycket.

I praktiken s˚a skall man just f¨olja reglerna 4 och 5 givna ovan, d.v.s. vi b¨or f¨ors¨oka t¨acka ettorna med m¨ojligast f˚a och m¨ojligast stora celler. Och man b¨or komma ih˚ag att antalet ¨ar viktigare ¨an storleken.

Utvecklingen av en funktion i primimplikatorer beh¨over inte vara entydig. En v¨asentlig (essential) pri- mimplikator ¨ar en primimplikator som alltid b¨or ing˚a i varje minimalform. En v¨asentlig primimplikator k¨annetecknas i ett Karnaugh-diagram av att den inkluderar ˚atminstone en ruta som ej kan ing˚a i n˚agon annan primimplikator. Det ¨ar viktigt att man b¨orjar med att ringa alla v¨asentliga primimplikatorer f¨or att det minimala uttrycket skall erh˚allas.

Exempel 2.6 ∗ anger rutor som definierar en v¨asentlig primimplikator.

ABC + ACD + ABC + ACD

AB 00 01 11 10

CD 00 01 11 10

1

1 1 1

1 1 1

1

Notera att vi enbart introducerar en term till (BD) om vi introducerar den st¨orsta m¨ojliga cellen i det h¨ar fallet.

Uppgift 2.3 Best¨am de v¨asentliga primimplikatorerna och den minimala formen f¨or funktionen i dia- grammet nedan.

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1

1 1 1 1

1 1 1

Sedan de v¨asentliga primimplikatorerna uttagits, kan de ˚aterst˚aende oinringade rutorna med ettor inklu- deras av primimplikatorer p˚a ett antal alternativa s¨att. Dessa skall v¨aljas s˚a att m¨ojligast enkla termer f˚as.

(21)

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 27

Exempel 2.7 Flera minimala uttryck

AB 00 01 11 10

CD 00 01 11 10

1 1 1 1 1 1

1

V¨asentliga primimplikatorer:

BD , A B D

Termen ABC D kan inkluderas antingen i A C D eller i ABC (icke-v¨asentliga primimplikatorer). Detta ger tv˚a alternativa minimala uttryck:

BD + A B D + A C D eller BD + A B D + ABC

Ofullst¨ andigt specificerade funktioner

De booleska funktioner som upptr¨ader i praktiska logikstyrningsproblem ¨ar ofta ofullst¨andigt specificera- de, dvs. funktionens v¨arde f¨or vissa kombinationer av variabelv¨arden ¨ar likgiltig. Vissa kombinationer av variabelv¨arden kan t.ex. vara fysikaliskt om¨ojliga (jmf. Ex. 1.1), s˚a att de aldrig f¨orekommer. Funktions- v¨ardet f¨or dessa om¨ojliga variabelkombinationer ¨ar d˚a likgiltigt.

adana likgiltiga funktionsv¨arden kallas ”don’t care” tillst˚and. I ett Karnaugh-diagram anges de med ett streck, ”–”, och anger s˚aledes att funktionsv¨ardet kan vara 0 eller 1. Detta kan utnyttjas f¨or att konstruera ett m¨ojligast enkelt funktionsuttryck.

Exempel 2.8 ”Don’t care” tillst˚anden kan utnyttjas s˚a att funktionen kan uttryckas i den minimala formen

BD + AD + ABD

AB 00 01 11 10

CD 00 01 11 10

1

1 1 1

- - - -

- -

2.2.2 QMC-metoden

Den grafiska metoden med Karnaugh-diagram blir givetvis oanv¨andbar d˚a antalet variabler ¨okar. F¨or st¨orre problem fordras algoritmer som kan programmeras. Den vanligaste algoritmen f¨or f¨orenkling av

(22)

28 KAPITEL 2. BOOLESKA FUNKTIONER

Vi b¨orjar med att numrera funktionstabellens rader i enlighet med det bin¨ara talsystemet. F¨or tre vari- abler identifierar vi s˚aledes de olika variabelkombinationerna enligt f¨oljande tabell.

j A B C

0 0 0 0

1 0 0 1

2 0 1 0

3 0 1 1

4 1 0 0

5 1 0 1

6 1 1 0

7 1 1 1

(22 21 20)

Proceduren ¨ar sedan f¨oljande. F¨orst uppst¨alls en funktionstabell med endast de rader f¨or vilka funktionen antar v¨ardet 1 insatta. En funktion med Karnaugh-diagrammet nedan f˚ar s˚aledes funktionstabellen i Tab.

2.1.

AB 00 01 11 10

CD 00 01 11 10

1 1 1

1 1 1 1

1 1 1

N¨asta steg ¨ar att unders¨oka vilka rader i tabellen som kan kombineras till en enklare term. Detta ¨ar m¨ojligt d˚a tv˚a rader ¨overensst¨ammer s˚a n¨ar som i en variabel. Raderna 0 och 2 i Tab. 2.1(a) kombineras t.ex. till den nya raden

0 0 − 0

(Detta motsvarar kombination av termer enligt A B C D + A BCD = A B D)

De p˚a detta s¨att konstruerade nya raderna samlas till en ny tabell, Tab. 2.1(b). Proceduren upprepas tills ytterligare kombinationer inte mera kan g¨oras i Tab. 2.1(c). De termer som i denna procedur inte mera kan f¨orenklas ¨ar primimplikatorer. Dessa har i Tabell 2.1 betecknats p1, p2, . . . , p7.

S˚asom vi tidigare sett, ger en disjunktion av primimplikatorerna i allm¨anhet ej ett minimalt funktionsut- tryck, eftersom alla primimplikatorer inte beh¨over medtas. F¨or att finna vilka primimplikatorer som b¨or medtas uppg¨ors en primimplikatortabell, Tabell 2.2. I denna anger kolumnerna den ursprungliga funk- tionstabellens termer (Tab. 2.1 (a)), och raderna anger primimplikatorer. De termer som inkluderas av en primimplikator anges med ”x”. Proceduren ¨ar sedan f¨oljande.

1. De kryss som f¨orekommer ensamma i en kolumn omringas ( x ). Motsvarande primimplikator ¨ar en v¨asentlig primimplikator och b¨or medtas i funktionsuttrycket. De v¨asentliga primimplikatorerna anges med asterisk ∗.

2. Alla kryss som f¨orekommer i en rad med omringat x anges med klammer, [x].

3. Ange alla de kryss som f¨orekommer i en kolumn med [x] med parentes, (x). Detta anger att mot- svarande term redan ing˚ar i de primimplikatorer som medtagits och inte beh¨over beaktas i forts¨att- ningen.

(23)

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

(24)

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).

(25)

Övningar

• Kontrollera att

i den enklaste Booleska algebran B = {0, 1} är x1+ x2+ ... + xn = max (x1, x2, ..., xn) x1x2...xn = min (x1, x2, ..., xn) Följaktligen, för x1, x2, ..., xn∈ B1,

kallas summor av typ x1+ x2+ ... + xn

(fundamental)disjunktioner alt. maxtermer, medan produkter av typ x1x2...xn kallas (fundamental)konjunktioner alt. mintermer.

("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.

11. Om man antar att x1, x2, ..., xk∈ B = {0, 1}

är det lätt att se att

x1+ x2+ ... + xk = 0 ⇐⇒

⎧⎪

⎪⎨

⎪⎪

⎩ x1= 0 x2= 0

...

xk = 0

x1x2...xk= 1 ⇐⇒

⎧⎪

⎪⎨

⎪⎪

x1= 1 x2= 1

...

xk= 1 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

inte har några lösningar, ifall ¯a + b = 0.

13. Lös ekvationen

a + ax = a (a + x) 14. Lös följande ekv.system i B = {0, 1}

⎧⎨

x + ¯xy = 0

¯ xy = ¯xz xy + ¯x¯z + ¯zw = ¯zw Vad blir lösningen,

om x, y, z, w står för vektorer i Bn ?

References