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

Relevanta dokument
2.1 Disjunktiv och konjunktiv normalform

Definition av kombinatorisk logik Olika sätt att representera kombinatorisk logik Minimering av logiska uttryck

Quine McCluskys algoritm

BOOLESK ALGEBRA OCH BOOLESKA FUNKTIONER. ; samt

Digital- och datorteknik

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Digitalteknik F2. Digitalteknik F2 bild 1

Styrteknik: Binära tal, talsystem och koder D3:1

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

SMD033 Digitalteknik. Digitalteknik F1 bild 1

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers.

Diskret matematik: Övningstentamen 1

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

LMA033/LMA515. Fredrik Lindgren. 4 september 2013

Isometries of the plane

ÅBO AKADEMI LOGIKSTYRNING. Hannu Toivonen Jari Böling. Augusti Biskopsgatan 8 FIN Åbo Finland

Digitalteknik syntes Arne Linde 2012

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

Tentamen i Matematik 2: M0030M.

Styrteknik: Grundläggande logiska funktioner D2:1

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Tentamen MMG610 Diskret Matematik, GU

Föreläsningsanteckningar Linjär Algebra II Lärarlyftet

Övningshäfte 6: 2. Alla formler är inte oberoende av varandra. Försök att härleda ett par av de formler du fann ur några av de övriga.

IE1205 Digital Design: F4 : Karnaugh-diagrammet, två- och fler-nivå minimering

Föreläsningsanteckningar och övningar till logik mängdlära

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

12.6 Heat equation, Wave equation

Algoritmer och Komplexitet ht 08. Övning 6. NP-problem

LUNDS TEKNISKA HÖGSKOLA Inst. for Elektro- och Informationsteknik. SIGNALBEHANDLING I MULTIMEDIA, ETI265 Inlämningsuppgift 1 (av 2), Task 1 (out of 2)

Module 1: Functions, Limits, Continuity

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

EDA Digital och Datorteknik 2009/2010

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Några satser ur talteorin

Pre-Test 1: M0030M - Linear Algebra.

Digital Design IE1204

Kvalificeringstävling den 30 september 2008

Moment Viktiga exempel Övningsuppgifter

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element.

6. a) Visa att följande vektorer är egenvektorer till matrisen A = , och ange motsvarande

Flervariabel Analys för Civilingenjörsutbildning i datateknik

1. (3p) Bestäm den minsta positiva resten vid division av talet med talet 31.

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)

Solutions to exam in SF1811 Optimization, June 3, 2014

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Hemuppgifter till fredagen den 16 september Exercises to Friday, September 16

NP-fullständighetsbevis

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra

EDA Digital och Datorteknik 2010/2011

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

IE1204 Digital Design


MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Kap. 7 Logik och boolesk algebra

E: 9p D: 10p C: 14p B: 18p A: 22p

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 11 april, 2002

Mintermer. SP-form med tre mintermer. William Sandqvist

Tal och polynom. Johan Wild

Subtraktion. Räkneregler

Booleska variabler och översättning mellan programuttryck och booleska variabler

Block 1 - Mängder och tal

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Adding active and blended learning to an introductory mechanics course

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

This exam consists of four problems. The maximum sum of points is 20. The marks 3, 4 and 5 require a minimum

Abstrakt algebra för gymnasister

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

TATM79: Föreläsning 3 Komplexa tal

IE1205 Digital Design. F2 : Logiska Grindar och Kretsar, Boolesk Algebra. Fredrik Jonsson KTH/ICT/ES

DEL I. Matematiska Institutionen KTH

Algebra och kombinatorik 28/4 och 5/ Föreläsning 9 och 10

Maurice Karnaugh. Karnaugh-diagrammet gör det enkelt att minimera Boolska uttryck! William Sandqvist

Mängdlära. Kapitel Mängder

Switchnätsalgebra. Negation, ICKE NOT-grind (Inverterare) Konjunktion, OCH AND-grind. Disjunktion, ELLER OR-grind

Logik och kontrollstrukturer

Kurskod: TAMS28 MATEMATISK STATISTIK Provkod: TEN1 05 June 2017, 14:00-18:00. English Version

Discovering!!!!! Swedish ÅÄÖ. EPISODE 6 Norrlänningar and numbers Misi.se

BOENDEFORMENS BETYDELSE FÖR ASYLSÖKANDES INTEGRATION Lina Sandström

Konsten att lösa icke-linjära ekvationssystem

Tentamen i Matematik 3: M0031M.

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Matriser. En m n-matris A har följande form. Vi skriver också A = (a ij ) m n. m n kallas för A:s storlek. 0 1, 0 0. Exempel 1

Talmängder. Målet med första föreläsningen:

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Svar och arbeta vidare med Student 2008

Block 1 - Mängder och tal

Writing with context. Att skriva med sammanhang

E: 9p D: 10p C: 14p B: 18p A: 22p

DIGITALA TAL OCH BOOLESK ALGEBRA

14 september, Föreläsning 5. Tillämpad linjär algebra

SF1911: Statistik för bioteknik

Lösning av tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, tisdagen den 27 maj 2014, kl

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Föreläsning 9: NP-fullständighet

Transkript:

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 =x Komplementet p p S A A = U x+ x = som "invers" p p F A A = xx =0 Minst två element S < F U 6= 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, F S = U 0= S F U = =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+= 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 = xy =0 Involution p p A = A x = x de Morgan p q = p q A B = A B x + y = xȳ p q = p q A B = A B xy = x + y ¾ y = x 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 r q r p r q r ¾ p q ¾ p q A C = B C A C = B C A C = B C A C = B C ¾ A = B ¾ A = B x + z = y + z x + z = y + z xz = yz xz = yz ¾ x = y ¾ 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) (p q) (q r) (A B) B C (A C) =(A B) B C (x + y)(y + z)(x + z) =(x + y)(y + z)

George Boole (85-864) 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 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, 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å. add. mult. matrismult. neutralt element är 0 I eftersom x +0=x x =x AI = A invers till x, A är x /x A eftersom x +( x) =0 x /x = AA = 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 = = 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) OBS. att det är skillnad på xy resp. xȳ (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ȳ 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.) add. mult. matrismult. a + c = b + c a c = b c AC = BC a + c +( c) =b + c +( c) a c /c = b c /c ACC = BCC a +0=b +0 a =b 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/strykningpåföregåendesida.

Institutionen för matematik, KTH 5B8 Diskret matematik BOOLESK ALGEBRA OCH BOOLESKA FUNKTIONER ANDERS BJÖRNER OCH KIMMO ERIKSSON Boolesk algebra skapades vid 8-talets mitt av den engelske matematikern George Boole. Den ger en gemensam ram för mängdlära, satslogik och teori för vissa digitala kretsar. Vi skall här ge en introduktion till boolesk algebra i det ändliga fallet, som är av särskild betydelse i datalogin.. Boolesk algebra Grunden för boolesk räkning är följande två räknetabeller: + 0 0 0 ; 0 0 0 0 0 ; samt { = = 0 0 = 0 = De fungerar som vanlig addition och multiplikation sånär som på att alla icke-noll-värden representeras av. Värdena 0 och kan tolkas som falskt och sant, varvid + motsvarar eller (OR) och motsvarar och (AND). Komplement, x, motsvarar icke (NOT). Ytterligare en tolkning är i mängdtermer: motsvarar en fylld mängd X, 0 motsvarar tomma mängden, + motsvarar union, motsvarar snitt, och komplement är komplement med avseende på X, dvs x = X x. Objektet som vi studerat ovan är den endimensionella booleska algebran B. Den har alltså två element, {0, } eller {falskt, sant}, eller {, X}, hur vi nu vill se på den. Det här kan generaliseras till flera dimensioner: B n = {n-dimensionella {0, }-vektorer; +,, sker komponentvis} (Ex.: 0 + 0 = ; 0 = [B 5 ]) = {n-dim. {sant, falskt}-vektorer; OR, AND, NOT sker komponentvis} (Ex.: SFS AND FSS = FFS; NOT (SFS)=FSF [B 3 ]) = {alla delmängder till en n-mängd X, t.ex. {, 2,..., n};, och m.a.p. X} (Ex.: {3, 5} {, 5} = {, 3, 5}; {3, 5} = {, 2, 4} [B 5 ]) Tecknet = betyder isomorfi, dvs sånär som på olika namn på saker och ting så är det exakt samma objekt i de tre exemplen. Isomorfin mellan de första två är trivial: 0 F, S, osv. Isomorfin mellan första och tredje exemplet är nästan lika enkel: 0 {3, 5}, 0 {, 5}, dvs :orna anger vilka element av {,... 5} som är med i delmängden. För varje n finns alltså en unik boolesk algebra B n, med flera tänkbara tolkningar. B n har 2 n element, ty för var och en av de n positionerna i vektorn kan vi välja en 0:a eller en :a. För att renodla egenskaperna hos den booleska algebran kan man lämna de konkreta representationerna ovan och se B n som en abstrakt mängd med 2 n element och med tre

operationer:, och, som uppfyller samma egenskaper som, och. Vissa av dessa egenskaper, från vilka de övriga kan härledas, väljs ut och kallas axiomen för en boolesk algebra. Till att börja med har man en partialordning som motsvarar för mängder eller komponentvis för {0, }-vektorer. Det finns två särskilda element 0 och så att 0 x för alla x i B n. 0 och motsvarar respektive hela X = {, 2,..., n}. Några exempel på axiom är: x (y z) = (x y) (x z) x (y z) = (x y) (x z) x = x x y x y = x ȳ = x ȳ } } distributivitet de Morgans lagar Men, eftersom den booleska algebran är isomorf med tolkningarna ovan så finns det ingen anledning att lära sig dessa axiom utantill emedan de följer av räknereglerna för t.ex. mängder eller {0, }-vektorer. I fortsättningen betraktar vi B n just som {n-dim. {0, }-vektorer} och använder alltså operatorerna +, och. Men i livlig åtanke har vi alltid omtolkningen till räkning med sanningsvärden. 2. Booleska funktioner En boolesk funktion är en funktion f : B n B, dvs en funktion f(x, x 2,..., x n ) = y där alla x i och y är 0 eller. Man representerar enklast f med en sanningstabell, t.ex. x x 2 x 3 f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Men man kan också se f som en logisk krets x 3 x 2 x f f(x, x 2, x 3 ) som matar ut ett värde beroende på ingångsvärdena x, x 2, x 3. 2

Den funktion f som ges av tabellen ovan kan också uttryckas som ett booleskt polynom, dvs ett uttryck med +, och samt variabler: f(x, x 2, x 3 ) = x x 2 x 3 + x x 2 x 3 + x x 2 x 3 + x x 2 x 3. Hur vet man det? Jo, varje term motsvarar en rad i tabellen där f ska vara. Att t.ex. f(0, 0, ) = motsvaras av x x 2 x 3, ty denna produkt blir omm alla faktorer är, dvs omm x = 0, x 2 = 0, x 3 =. På samma sätt är x x 2 x 3 = omm (x, x 2, x 3 ) = (0,, 0). Alltså kommer summan av dessa termer att vara precis när f ska vara. Detta sätt 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änhet många olika sätt att uttrycka samma booleska funktion. Vi har t.ex. { xy + xȳ = x xyz + xy z + xȳz + xȳ z = x Den disjunktiva normalformen är ofta den dummaste om man är ute efter ett enkelt uttryck. Varför är man ute efter ett enkelt uttryck för f? Jo, om man ska realisera f som logisk krets vill man bygga den så billigt som möjligt, dvs med så få grundkomponenter, s.k. grindar, som möjligt. Typiska grindar är: y x & xy y x x + y x x Till exempel kan ( x + y) z byggas: x y z x x + y & ( x + y)z På disjunktiv normalform är ( x + y) z = xyz + xyz + xȳz, och att bygga upp kretsen så är naturligtvis mycket dyrare. Hur gör man då för att finna enklast möjliga uttryck för f? För stora n är detta problem mycket svårt, man får i praktiken nöja sig med en halvbra lösning, stora datorer till trots. För n 6 kan man dock lösa problemet för hand, med hjälp av så kallade Karnaugh-diagram. Metoden illustreras för n = 2 i följande exempel. 3

x y f 0 0 0 0 0 (ȳ) y = x 0 ( x) 0 (x) (y) 0 = f(x, y) = x + ȳ Idén är alltså att översätta sanningstabellen (eller den disjunktiva normalformen) till en 2-dimensionell tabell, och där plocka ihop block av :or till enkla termer. Kolonnen under y = 0 motsvarar ju ȳ =, och att den kolonnen bara innehåller :or motsvarar termen ȳ i uttrycket för f. Observera att samma :a gärna får ingå i flera block (eftersom +=). För 3 och 4 variabler gäller det att utforma tabellen på ett listigt sätt, så att grannrutor får klumpas ihop. Enklast ser man på ett exempel: zw ( z) xy 0 0 ( x){ 0 0 0 0 0 (x){ 0 0 (w) ( w) (z) 0 0 0 } (y) (ȳ) = f = ȳ z w + zw + yz Man räknar alltså upp värdeparen i ordningen, 0,, 0. På det sättet kommer alltid två par i följd att ha en gemensam siffra; det sista paret är också granne med det första. I tabellrutan plockar man ihop block av ettor, där man alltså får utnyttja denna wraparound -effekt. T.ex., de två ettorna i första kolonnen finns i kolonn z w och i raderna ȳ, så de bidrar med termen ȳ z w. Metoden med Karnaugh-diagram blir mer otymplig för n = 5, 6. För n 7 bör datorer användas för att hitta minimala polynom, eller approximativt minimala polynom, till booleska funktioner. Vi går inte vidare in på detta ämne. I komplexitetsteori studeras hur svåra olika beräkningsproblem är. Svårighetsgrad mäts på olika sätt, t.ex. hur många elementära steg som en algoritm för problemet måste ta som funktion av indatas storlek. I det sammanhanget spelar booleska funktioner en stor roll. Man försöker uppskatta storleken på minimala booleska kretsar, ett allmännare begrepp än booleska polynom, för givna funktioner. En viktig roll i teoretisk datalogi spelar också det så kallade satisfierbarhetsproblemet (SAT): Givet ett booleskt polynom f(x, x 2,..., x n ) finns det värden a i {0, } så att f(a, a 2,..., a n ) =? Man vet inte om detta problem har en polynomiell lösning, dvs 4

Forts. (sid.5) av Björner&Erikssons stencil om det finns en algoritm, som använder högst n d steg, för något fixt heltal d. Satisfierbarhetsproblemet för Booleska polynom är det kanske viktigaste (och historiskt första) exemplet på ett NP-fullständigt problem. Frågan om det har en polynomiell lösning är ekvivalent med det berömda "Är P = NP?"-problemet. P? = NP-problemet Ett av 7 problem, för vilkas lösning Clay Mathematics Institute år 20 utlovade 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.4-5) n (n +)(2n +) 6 + n (n ) 2 flops ( flop = multiplikation och 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 960s 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 problem 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" NP = "easy to check" Cook also showed that among all NP problems thereweresomethatwerethehardestofthemall, in the sense that if you could solve any one of those in polynomial time, then it followed that all NP problems can be solved in polynomial time. These hardest problems in NP are known as NP-complete problems Det första problemet som visades NP-fullständigt var just SAT-problemet (Steve Cook & Leonid Levin oberoende av varandra 97; Cook s theorem) Sedan dess har många andra problem visats vara NP-fullständiga. Redan 979 kom det ut en bok med en förteckning på över 3 st. sådana. Bl.a. spelet Minesweeper, som lär ha ingått i Microsoft Windows omkring år 20, visades ställa spelaren inför ett NP-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 NP-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) Garey & Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness

Isomorfi Björner & Eriksson nämner begreppet isomorfi. En sats av Marshall Stone från 936 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. Förklaring av Example 29 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 2 x 3 x 2 5 x 3, (x,x 2,x 3 ) B 3 (m.a.o. alla x i = 0 eller ) För två tal 2 x 3 x2 5 x3 och 2 y 3 y2 5 y3 är (och detta gäller för alla icke-negativa x i,y i ) minsta gemensamma multipeln (MGM) =2 max(x,y ) 3 max(x 2,y 2 ) 5 max(x 3,y 3 ) största gemensamma delaren (SGD) =2 min(x,y) 3 min(x2,y2) 5 min(x3,y3) Det komplement som tilldelas delarna kan räknas ut så här 2 x 3 x 25 x 3 = 2 3 5 2 x 3 x2 5 x3 =2 x 3 x 2 5 x 3 Den, som visade världen att Boolesk algebra var högst användbar vid analys och konstruktion av elektriska kretsar: Obs. att x, y ½ max (x, y) =x + y {0, } = 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 B 3, 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 B 3 delarna bildar en Boolesk algebra isomorf med B 3. På samma sätt får man Booleska algebror av delarna till varje tal m somliksom30 är kvadratfritt, d.v.s. vars primtalsfaktorisering har formen Claude Shannon (96 2) i en magisteruppsats 937, publicerad i tidskrift 938. ("Historiens mest betydelsefulla magisteruppsats" brukar den kallas.) m = p p 2...p k, där p i :na är olika primtal Däremotfungerardetintepåtal, vars primtalsfaktoriering innehåller primtal i kvadrat eller högre, t.ex. 2 = 2 2 3.

Boolean Algebras and Boolean Operations 3 24 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)). 25 Example Let x < x 2 < < x n and y < y 2 < < y m be two strictly increasing sequences of integers. Write an algorithm to determine {x,x 2,...,x n } {y,y 2,...,y m }. Solution: Algorithm 3.2.: INTERSECTION(n, m, X,Y ) comment: X is an array of length n. comment: Y is an array of length m. n 0 m 0 common 0 while (n n) and (m m) if X[n+] < Y[m+] then n n+ else if X[n+] > Y[m+] do then m m+ n n+ else m m+ common common+ 3.3 Boolean Algebras and Boolean Operations 26 Definition A boolean algebra consists of a set X with at least two different elements 0 and, two binary operations + (addition) and (multiplication), and a unary operation (called complementation) satisfying the following axioms. (We use the juxtaposition to denote the product A B.). A+B = B+A (commutativity of addition) 2. = BA (commutativity of multiplication) 3. A+(B+C) = (A+B)+C (associativity of addition) 4. A(BC) = ()C (associativity of multiplication) 5. A(B +C) = + AC (distributive law) 6. A+(BC) = (A+B)(A+C) (distributive law) 7. A + 0 = A (0 is the additive identity) 8. A = A ( is the multiplicative identity) 9. A+A = 0. AA = 0 27 Example If we regard 0 = F, = T, + =, =, and =, then the logic operations over {F, T} constitute a boolean algebra. 28 Example If we regard 0 =, = U (the universal set), + =, =, and =, then the set operations over the subsets of U constitute a boolean algebra. 29 Example Let X = {, 2, 3, 5, 6, 0, 5, 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. The additive identity is and the multiplicative identity is 30. Under these A operations X becomes a boolean algebra. 3

32 Chapter 3 A B A A+B 0 0 0 0 0 0 0 0 0 0 Table 3.6: Evaluation Rules The operations of complementation, addition and multiplication act on 0 and as shewn in table 3.6. The following properties are immediate. 30 Theorem 0 = and = 0. Proof: Since 0 is the additive identity, 0 = 0+0. But by axiom 9, 0+0 = and thus 0 = 0+0 =. Similarly, since is the multiplicative identity, =. But by axiom 0, = 0 and thus = = 0. 3 Theorem (Idempotent Laws) A+A = A and AA = A Proof: We have A = A+0 = A+A A = (A+A)(A+A) = (A+A)() = A+A. Similarly A = A = A(A+A) = AA+A A = AA+0 = AA. 32 Theorem (Domination Laws) A+ = and A 0 = 0. Proof: We have A+ = A+(A+A) = (A+A)+A = A+A =. Also, A 0 = A(A A) = (AA)A = AA = 0. 33 Theorem (Uniqueness of the Complement) If = 0 and A+B = then B = A. Proof: Also, Thus We have B = B = B(A+A) = BA+BA = 0+BA = BA. A = A = A(A+B) = A A+ =. B = BA = = A. 34 Theorem (Involution Law) A = A Proof: By axioms 9 and 0, we have the identities By uniqueness of the complement we must have A = A. = A+A and A A = 0. 32

Sum of Products and Products of Sums 33 35 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+)(A+) =, 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 =. Taking complements once again we have A+B = = A+B =. 36 Theorem + = A. Proof: Factoring + = A(B+B) = A() = A. 37 Theorem A(A+B) = and A+ = A+B. Proof: Multiplying Using the distributive law, A(A+B) = AA+ = 0+ =. A+ = (A+A)(A+B) = (A+B) = A+B. 38 Theorem (Absorption Laws) A+ = A and A(A+B) = A. Proof: Factoring and using the domination laws: A+ = A(+B) = A = A. Expanding and using the identity just derived: A(A+B) = AA+ = A+ = 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. ➋ for each such row, write the variable if the variable input is 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, then add the variables forming a sum ➌ multiply all such sums. 33

34 Chapter 3 39 Example Find a SOP and a POS for Z. A B C Z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Solution: The output (Z) s occur on the rows (i) A = 0,B = 0,C = 0, so we form the term (A)(B)(C), (ii) A = 0,B =,C = 0, so we form the term C, (iii) A =,B =,C = 0, so we form the term C, and (iv) A = B = C =, giving the term C. The required SOP is Z = (A)(B)(C)+C+ C+ C. The output (Z) 0 s occur on the rows (i) A = 0,B = 0,C =, so we form the term A+B+C, (ii) A = 0,B =,C =, so we form the term A+B+C, (iii) A =,B = 0,C = 0, so we form the term A+ B+C, and (iv) A =,B = 0,C =, 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. 40 Example Convert the following POS to a SOP: (A+BC)(A+BD). Solution: (A+BC)(A+BD) = AA+D+C+ BCBD = A+D+C+ BCD = A+BCD. 4 Example Convert the following SOP to a POS: +CD. Solution: +CD = (+C)(+D) = (A+C)(B+C)(A+D)(B+ D). 42 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 +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. 43 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

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 is true. Upon multiplying this out, we obtain (A+B) (C + D) (A+ E) (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. 44 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 Since each of the girls gave one true statement we have that Multiplying this out A = April was first B = April was second C = Mimi was second D = Margie was second E = Rachel was third F = Rachel was last (A+C)(B+E)(F + D) =. F + D+AEF + AED+CBF +CBD+CEF +CED =. Now, = 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. 45 Example Having returned home, Maigret rang his office on quai des Orfèvres. Maigret here. Any news? Yes Chief. The inspectors have reported. Torrence thinks that if François was drunk, then either Etienne is the murderer or François is lying. Justin is of the opinion that either Etienne is the murderer or Franç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 Franç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 François was sober he never lied. Now everything was clear to him. Find, with proof, the murderer. Solution: Represent the following sentences as: A = François was drunk, B = Etienne is the murderer, C = François is telling a lie, D = the murder took place after midnight. 35

36 Chapter 3 We then have Using the identity A = (B+C), B+AD, D = (B+C). X = Y = X +Y, we see that the output of the product of the following sentences must be : After multiplying the above product and simplifying, we obtain (A+B+C)(B+AD)(D+B+C). B+CAD. So, either Etienne is the murderer, or the following events occurred simultaneously: François lied, François was not drunk and the murder took place after midnight. But Maigret knows that AC = 0, thus it follows that E =, i.e., Etienne is the murderer. Homework 46 Problem Construct the truth table for (p = q) q. 47 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). 48 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 49 Problem Explain whether the following assertion is true and negate it without using the negation symbol : n N m N n 2 > 4n = 2 n > 2 m + 0 50 Problem Prove by means of set inclusion that (A B) C = (A C) (B C). 5 Problem Obtain a sum of products for the truth table A B C Z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52 Problem Use the Inclusion-Exclusion Principle to determine how many integers in the set {, 2,..., 2} are neither divisible by 3 nor 7 but are divisible by. Answers 46 p q p = q (p = q) q F F T F F T T T T F F F T T T T 36

Answers 37 47 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 48 The assertion is true. We have (n+7) 2 > 49+m n 2 + 4n > m. Hence, taking m = n 2 + 4n for instance (or any smaller number), will make the assertion true. 50 We have, which establishes the equality. 5 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), A B C+ A B C+ A B C + A B C 52 0 37

22 KAPITEL 2. BOOLESKA FUNKTIONER 2.2. Karnaugh-diagram En standard procedur för förenkling av booleska funktioner baserar sig egenskaperna hos s.k. Karnaughdiagram. I dessa anges funktionsvärdena i rutor i ett diagram. Varje ruta motsvarar en kombination av variabelvärden. Nedan ges exempel på Karnaugh-diagram (utan insatta funktionsvärden) för två, tre, fyra och fem variabler. Två variabler: Tre variabler: A 0 0 0 B 0 C 0 Fyra variabler: Fem variabler: C 0 0 0 0 0 0 CD 0 DE 0 0 0 Karnaugh-diagrammen är så konstruerade, att variabelvärdena för två avgränsande (närbelägna, adjacenta) rutor skiljer sig i en och endast en variabel. Omvänt skall två variabelkombinationer som skiljer sig i exakt en variabel finnas i närbelägna rutor. Härvid uppfattas radernas och kolumnernas ändrutor som angränsande. Diagrammet för fem variabler kan uppfattas som tredimensionell, så att den högra delen av diagrammet ligger bakom den vänstra. Förenklingen av booleska funktioner med hjälp av Karnaugh-diagram baserar sig på ovannämnda egenskaper hos närbelägna rutor, vilket illustreras av följande exempel. Exempel 2.2 Karnaugh-diagram Betrakta den booleska funktionen X = A BC + C + C + C från exempel 2.. Karnaugh-diagrammet får följande utseende (med endast ettorna insatta): 0 0 C 0 X = + BC Tack vare diagrammets konstruktion kan förenklingarna C + C =

2.2. FÖRENKLING AV BOOLESKA UTTRYCK 23 A BC + C = BC upptäckas direkt från diagrammet. Man ser ytterligare att förenklingen C + C = AC kan göras men detta leder ej till ett lika enkelt uttryck för X. 0 0 C 0 X = A BC + C + AC Man kan formulera fem regler för förenklingsproceduren:. Varje ruta som inehåller en etta måste täckas av minst en cell (en ruta får täckas av flera celler). 2. Endast rutor med ettor får täckas av celler. 3. Varje cell måste täcka en potens av 2 (, 2, 4, 8,...) antal rutor. 4. Antalet celler bör vara så litet som möjligt 5. Varje cell bör vara så stor som möjligt Av dessa är reglerna -3 ovillkorliga medan 4-5 strävar till att hitta den enklaste realisationen. Det faktum att man får täcka ettor med flera olika celler innebär i ovanstående exempel att användande av alla tre möjliga celler som täcker två rutor ger X = + BC + AC. Detta kan i sin tur förenklas till + BC, m.h.a. transivitetslagen (R8). Om vi följer regel 4 så kommer man direkt till detta uttryck Förenkling av booleska uttryck med hjälp av Karnaugh-diagram grundar sig således på att mintermer som kan kombineras till enklare termer upptar närbelägna rutor i diagrammet. Förenklingarna kan därmed ses direkt från diagrammet. För fyra variabler har vi fyra typer av termer:. Mintermer med alla fyra variabler, som täcker en ruta, och som ej kan kombineras med andra termer: 0 0 CD 0 CD 0

24 KAPITEL 2. BOOLESKA FUNKTIONER 2. Termer med tre variabler, som täcker två rutor (två skilda exempel): 0 0 0 0 CD 0 CD 0 0 0 BCD B CD 3. Termer med två variabler, som täcker fyra rutor (tre skilda exempel): 0 0 0 0 0 0 CD 0 CD 0 CD 0 0 0 0 CD AD B D 4. Termer med en variabel, som täcker åtta rutor (två skilda exempel): 0 0 0 0 CD 0 CD 0 0 0 D D Karnaugh-diagrammen lämpar sig bäst för funktioner med högst fyra variabler. Det går emellertid att använda metoden även för funktioner med upp till åtta variabler.

2.2. FÖRENKLING AV BOOLESKA UTTRYCK 25 Exempel 2.3 Fem variabler C 0 0 0 0 DE 0 C + D 0 Exempel 2.4 Sex variabler CD 0 0 0 0 0 0 0 0 0 0 0 0 EF + BCDE F + A BCDE F + AC D EF + AC DEF + ACDE Primimplikatorer En funktion f(x, x 2,..., x n ) säges inkludera en annan funktion g(x, x 2,..., x n ) om de värden för variablerna x, x 2,..., x n för vilka g =, också ger f =. Således inkluderar f t.ex. termerna i ett disjunktivt uttryck för f. En primimplikator π för en funktion f(x, x 2,..., x n ) definieras som en term i ett disjunktivt uttryck för f som har den egenskapen, att om någon av de i termen ingående variablerna avlägsnas, så inkluderar f inte den återstående produkten. Exempel 2.5 har primimplikatorerna f(x, x 2, x 3, x 4 ) = x x 2 x 4 + x 2 x 3 x 4 + x x 3 x 4 π = x x 2 x 4, π 2 = x 2 x 3 x 4, π 3 = x x 3 Obs. att x x 3 x 4 är inte en primimplikator.

26 KAPITEL 2. BOOLESKA FUNKTIONER 0 x 3 x 4 0 x x 2 0 0 Vid förenkling av en boolesk funktion är man i första 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å skall man just följa reglerna 4 och 5 givna ovan, d.v.s. vi bör försöka täcka ettorna med möjligast få och möjligast stora celler. Och man bör komma ihåg att antalet är viktigare än storleken. Utvecklingen av en funktion i primimplikatorer behöver inte vara entydig. En väsentlig (essential) primimplikator är en primimplikator som alltid bör ingå i varje minimalform. En väsentlig primimplikator kännetecknas i ett Karnaugh-diagram av att den inkluderar åtminstone en ruta som ej kan ingå i någon annan primimplikator. Det är viktigt att man börjar med att ringa alla väsentliga primimplikatorer för att det minimala uttrycket skall erhållas. Exempel 2.6 anger rutor som definierar en väsentlig primimplikator. C + ACD + C + ACD CD 0 0 0 0 Notera att vi enbart introducerar en term till (BD) om vi introducerar den största möjliga cellen i det här fallet. Uppgift 2.3 Bestäm de väsentliga primimplikatorerna och den minimala formen för funktionen i diagrammet nedan. CD 0 0 0 0 Sedan de väsentliga primimplikatorerna uttagits, kan de återstående oinringade rutorna med ettor inkluderas av primimplikatorer på ett antal alternativa sätt. Dessa skall väljas så att möjligast enkla termer fås.

2.2. FÖRENKLING AV BOOLESKA UTTRYCK 27 Exempel 2.7 Flera minimala uttryck CD 0 0 0 0 Väsentliga primimplikatorer: BD, A B D Termen C D kan inkluderas antingen i A C D eller i C (icke-väsentliga primimplikatorer). Detta ger två alternativa minimala uttryck: eller BD + A B D + A C D BD + A B D + C Ofullständigt specificerade funktioner De booleska funktioner som uppträder i praktiska logikstyrningsproblem är ofta ofullständigt specificerade, dvs. funktionens värde för vissa kombinationer av variabelvärden är likgiltig. Vissa kombinationer av variabelvärden kan t.ex. vara fysikaliskt omöjliga (jmf. Ex..), så att de aldrig förekommer. Funktionsvärdet för dessa omöjliga variabelkombinationer är då likgiltigt. Sådana likgiltiga funktionsvärden kallas don t care tillstånd. I ett Karnaugh-diagram anges de med ett streck,, och anger således att funktionsvärdet kan vara 0 eller. Detta kan utnyttjas för att konstruera ett möjligast enkelt funktionsuttryck. Exempel 2.8 Don t care tillstånden kan utnyttjas så att funktionen kan uttryckas i den minimala formen BD + AD + D CD 0 0 0 0 - - - - - - 2.2.2 QMC-metoden Den grafiska metoden med Karnaugh-diagram blir givetvis oanvändbar då antalet variabler ökar. För större problem fordras algoritmer som kan programmeras. Den vanligaste algoritmen för förenkling av booleska funktioner är en metod enligt Quine och McClusky (QMC-metoden), som skall beskrivas nedan.

28 KAPITEL 2. BOOLESKA FUNKTIONER Vi börjar med att numrera funktionstabellens rader i enlighet med det binära talsystemet. För tre variabler identifierar vi således de olika variabelkombinationerna enligt följande tabell. j A B C 0 0 0 0 0 0 2 0 0 3 0 4 0 0 5 0 6 0 7 (2 2 2 2 0 ) Proceduren är sedan följande. Först uppställs en funktionstabell med endast de rader för vilka funktionen antar värdet insatta. En funktion med Karnaugh-diagrammet nedan får således funktionstabellen i Tab. 2.. CD 0 0 0 0 Nästa steg är att undersöka vilka rader i tabellen som kan kombineras till en enklare term. Detta är möjligt då två rader överensstämmer så när som i en variabel. Raderna 0 och 2 i Tab. 2.(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å detta sätt konstruerade nya raderna samlas till en ny tabell, Tab. 2.(b). Proceduren upprepas tills ytterligare kombinationer inte mera kan göras i Tab. 2.(c). De termer som i denna procedur inte mera kan förenklas är primimplikatorer. Dessa har i Tabell 2. betecknats p, p 2,..., p 7. Såsom vi tidigare sett, ger en disjunktion av primimplikatorerna i allmänhet ej ett minimalt funktionsuttryck, eftersom alla primimplikatorer inte behöver medtas. För att finna vilka primimplikatorer som bör medtas uppgörs en primimplikatortabell, Tabell 2.2. I denna anger kolumnerna den ursprungliga funktionstabellens termer (Tab. 2. (a)), och raderna anger primimplikatorer. De termer som inkluderas av en primimplikator anges med x. Proceduren är sedan följande.. De kryss som förekommer ensamma i en kolumn omringas ( x ). Motsvarande primimplikator är en väsentlig primimplikator och bör medtas i funktionsuttrycket. De väsentliga primimplikatorerna anges med asterisk. 2. Alla kryss som förekommer i en rad med omringat x anges med klammer, [x]. 3. Ange alla de kryss som förekommer i en kolumn med [x] med parentes, (x). Detta anger att motsvarande term redan ingår i de primimplikatorer som medtagits och inte behöver beaktas i fortsättningen.

2.2. FÖRENKLING AV BOOLESKA UTTRYCK 29 Tabell 2.: Stegvis förenkling (a) (b) (c) {j} A B C D 0, 2 0 0-0 0, 8-0 0 0 2, 3 0 0 - p 2, 0-0 0 3, 7 0 - p 2 5, 7 0 - p 3 5, 3-0 p 4 8, 0 0-0 8, 2-0 0 0, 4-0 2, 3 0 - p 5 2, 4-0 j A B C D 0 0 0 0 0 2 0 0 0 3 0 0 5 0 0 7 0 8 0 0 0 0 0 0 2 0 0 3 0 4 0 {j} A B C D 0, 2, 8, 0-0 - 0 p 6 8, 0, 2, 4 - - 0 p 7 4. Välj från de återstående valbara primimplikatorerna (p p 5 ) ett antal så att de återstående kryssen medtas. Ange raderna med dubbel asterisk. Valet skall göras så att funktionsuttrycket blir minimalt, dvs. Antalet termer (primimplikatorer) är minimalt, Termerna (primimplikatorerna) är korta (av två primimplikatorer i tabellen är den vars rad innehåller de flesta kryssen den kortare). Tabell 2.2: Primimplikatortabell j 0 2 3 5 7 8 0 2 3 4 p (x) x p 2 x x p 3 x x p 4 x x p 5 (x) x p 6 x [x] [x] [x] p 7 [x] [x] [x] x I Tabell 2.2 är de valbara primimplikatorerna p p 5 alla lika långa. Det optimala valet är p 2 och p 4, ty alla andra val skulle kräva minst tre primimplikatorer. Enligt Tabell 2.2 ges det minimala funktionsuttrycket som en disjunktion av primimplikatorerna p 2, p 4, p 6 och p 7, av vilka p 6 och p 7 är väsentliga primimplikatorer. Uttrycket blir (jmf. Tab. 2.) B D + AD + ACD + BCD I exemplet i Tabell 2. var funktionen fullständigt specificerad. Proceduren kan emellertid enkelt anpassas för ofullständigt specificerade funktioner, med don t care funktionsvärden för vissa variabelkombinationer. Härvid inkluderar man de rader för vilka funktionsvärdet är ospecificerat ( don t care ) i funktionstabellen (Tab. 2.), och bildar primimplikatorerna såsom ovan. Vid uppställningen av primimplikatortabellen (Tab. 2.), lämnas emellertid motsvarande kolumner bort. (Då funktionens värde för dessa tillstånd inte spelar någon roll, behöver de ju ej beaktas då primimplikatorerna väljs ut. Däremot bör de

30 KAPITEL 2. BOOLESKA FUNKTIONER beaktas i det första skedet då primimplikatorerna bildas, ty de kan endast leda till kortare primimplikatorer, ej längre.) Denna procedur leder till ett minimalt funktionsuttryck för ofullständigt specificerade funktioner. Uppgift 2.4 Förenkla den logiska funktionen X med följande Karnoughdiagram (- motsvar don t care tillstånd): C 0 0 0 - - Vi ställer upp en funktionstabell, där vi förutom ettorna tar med don t care tillstånd: j A B C 2 4 5 6 7 j A B C j A B C Efter att ha bestämt alla primimplikatorer, sätter vi dem i en Primimplikatortabell. Nu skall vi inte ta med don t care mintermer, bara de som måste bli för given insignalkombination: 5 6 7 Vi får denna gång X genom att ta summan av väsentliga mintermer, dvs X = A + BC. QMC-metoden kan enkelt programmeras. I Friedman Logical Design of Automation Systems (Prentice Hall, 990), ges ett Fortran-program primp, som förenklar booleska uttryck. På denna kurs hemsida så finns även en Matlab-implementering av QMC-metoden tillgänglig. Nedan visas en exempelkörning där programmet tillämpats för funktionen i Tabell 2. (a). Funktionsvärdena läses in i ordningsföljd, och programmet ger en förteckning över primimplikatorerna (observera att numreringen ej överensstämmer med den i Tabellerna 2. och 2.2, primp sorterar primimplikatorerna, så de kommer i ordningen p 6, p, p 2, p 4, p 3, p 7, p 5 ), samt anger vilka som är väsentliga och vilka som väljs bland de valbara. I constraint table anges slutligen vilka mintermer de olika icke-väsentliga primimplikatorerna inkluderar (täcker).

Övningar Kontrollera att i den enklaste Booleska algebran B = {0, } är x + x 2 +... + x n = max(x,x 2,...,x n ) x x 2...x n = min(x,x 2,..., x n ) Följaktligen, för x,x 2,..., x n B, kallas summor av typ x + x 2 +... + x n (fundamental)disjunktioner alt. maxtermer, medan produkter av typ x x 2...x n kallas (fundamental)konjunktioner alt. mintermer. ("Fundamental" = alla aktuella variabler, ochintebaraendelmängdavdem, ingår i summan/produkten.). Dualitetsprincipen: För varje påstående p i en Boolesk algebra, låt p 0 beteckna det s.k. duala påståendet det påstående som fås ur p, närman byter alla + mot och vice versa, samt byter alla :or mot 0:or och vice versa. Förklara varför det måste gälla att p är sant då och endast då p 0 ä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 ist.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 4. Förenkla ab + a (ā + c) ab +āc + 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? 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). 0. Bevisa modulariteten.. Om man antar att x,x 2,..., x k B = {0, } är det lätt att se att x =0 x x + x 2 +... + x k =0 2 =0... x k =0 x = x x x 2...x k = 2 =... x k = Därav följer att detsamma gäller även när x,x 2,..., x k är vektorer i B n. Men kan du bevisa detta direkt från axiomen och satserna i tabellen på första sidan? 2. Visa att ekvationen a + x = b inte har några lösningar, ifall ā + b =0. 3. Lös ekvationen a + ax = a (a + x) 4. Lös följande ekv.system i B = {0, } x + xy =0 xy = xz xy + x z + zw = zw Vad blir lösningen, om x, y, z, w stårförvektorerib n? 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 övning skriva ut detaljerna för båda.

5. Hur uttrycks en implikation p q i Boolesk algebra-språk? 6. Kontrollera m.h.a. Boolesk algebra syllogismlagen (p q) (q r) (p r) 7. 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. 8. 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? 9. 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 4 kw. Låt ½, om resp. konditionering är på a, b, c, d = 0, annars f (a, b, c, d) = ½, om totalförbrukn. är > 4 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ȳ z w + xȳ z w + xy z w a) algebraiskt, b) m.h.a. Karnaugh-diagram. 2. (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å eller 0. Här ett exempel där vi markerat dessa rutor med. zw z w z w zw xy 0 xȳ 0 0 0 0 xȳ 0 0 xy 0 Välj om det skall stå 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) {+, } b) {, } c) {, } 25. Kan uttryckas med + och enbart? 26. En Boolesk funktion f : B n B kallas monoton, om för alla x, y B n varvid Visa att x y = f (x) f (y) x y x y x 2 y 2. x n y n (a) Om f kan uttryckas med enbart + och, så är den monoton. (b) Om f är monoton, så kan den uttryckas med enbart + och. Boolesk algebra: lösningar. Alla axiom (som bestämmer vad som är sant resp. falskt) kommer i par, där det ena fås ur det andra genom just sådana utbyten. 2. Vi har nog mer glädje av våra skolalgebrafärdigheter, om vi utgår från högerledet: (x + y)(y + z) = idempotens: y 2 = y = xy + y + xz + yz 3. 4. (xy + y + xz + yz)(z + x) = xyz + yz + xz + yz + xy + xy + xz + xyz [idempotens: xy + xy = xy,...] = xyz + xy + yz + zx absorption: x + xy = x Här: xy + xyz = xy = xy + yz + zx = ab + aā + ac = ab +0+ac = ab + ac = a (b + c) = a b + b +āc = a +āc =(a +ā)(a + c) =a + c 5. Domineringsegenskapen samt De Morgans lagar där kommer associativiteten in direkt i räkningarna. Sedan har vi beviset för absorption som utnyttjar domineringsegenskapen ochdärmedindirektassociativiteten. 6. x 0=x 0+0 = x 0+x x = x (0 + x) =x x =0 x + = (x +) =(x +) (x + x) =[distr.] = = x + x = x + x = 7. Anta ½ x + z = y + z x + z = y + z Då har vi x = x +0=x + zz =(x + z)(x + z) = = (y + z)(y + z) =y + zz = y +0=y På samma sätt, om ½ xz = yz xz = yz så x = x =x (z + z) =xz + xz = = yz + yz = y (z + z) =y =y

8. (x + y)+z = x +(y + z) skulle följa (enl. kancelleringsegenskapen) om vi kan visa att ½ ((x + y)+z) z =(x +(y + z)) z ((x + y)+z) z =(x +(y + z)) z Vi omformar leden var för sig : 9. Rita Venndiagram, så syns varför A C är "överflödig": A C = ((A C) B) (A C) B (A C) B A B (A C) B A B ((x + y)+z) z = (x + y) z + z 2 = = (x + y) z + z =[absorption] = z (x +(y + z)) z = xz + yz + z 2 = = xz +(yz + z) =[absorption] = xz + z =[absorption] = z ((x + y)+z) z = (x + y) z + zz = = (x + y) z +0= = xz + yz (x +(y + z)) z = xz +(yz + zz) = = xz +(yz +0)= = xz + yz (xy) z = x (yz) skulle följa, om vi kan visa att ½ (xy) z + z = x (yz)+z (xy) z + z = x (yz)+z Leden omformas var för sig: (xy) z + z =[absorption] =z 0. xy + yz + xz = xy + yz + xz (y + y) = = (xy + xyz)+(yz + xyz) =[absorption] = xy + yz Duala varianten: (x + y)(y + z)(x + z) = (x + y)(y + z)((x + z)+yy) = = (x + y)(y + z)(x + z + y)(x + z + y) = = ((x + y)(x + y + z)) ((y + z)(y + z + x)) = = [absorption] =(x + y)(y + z) x + y (x + z) = [distr.] =x +(yx + yz) = = [assoc.] =(x + yx)+yz = = [absorption] = x + yz (x + y)(x + z) =[distr.] =x + yz x (y + xz) =xy + xz = x (y + z) x (yz)+z = [distr.] =(x + z)((yz + z)) = = (x + z) z = xz + z 2 = = xz + z =[absorption] = z (xy) z + z = [distr.] =(xy + z)(z + z) = = (xy + z) =xy + z x (yz)+z = (x + z)(yz + z) = = (x + z)((y + z)(z + z)) = = (x + z)((y + z) ) = = (x + z)(y + z) = = xy + z

. Implikationerna åt vänster är triviala: följer genom upprepad användning av 0+0=0 och = Det intressanta är implikationerna åt höger: Anta att x + x 2 +... + x k =0. Multiplicera båda leden med x : (x ) 2 + x x 2 +... + x x n = x 0=0 Vänsterledet kan nu omformas m.h.a. idempotensen och absorptionsegenskapen: x 2 = x x + x x 2 = x x + x x 3 = x... x + x x n = x Eller så omformar vi vänsterledet på en gång med hänvisning till absorption : x (x + x 2 +... + x k ) = x (x +(x 2 +... + x k )) = x Får att x =0. På samma sätt, om vi multiplicerar båda leden med x 2, får vi att x 2 =0, o.s.v. Duala varianten: Anta x x 2...x k =. Addera x j till båda leden: Absorption ger x x 2...x k + x j = x j. Dominering ger +x j =. Så för varje j, j k. 4. Första ekv. medför successivt x =0,y =0. Den andra ekvationen reduceras då till och den tredje till y = z alltså även z = 0 0++w = w w = Om vi har vektorer x, y, z, w i stället, så har vi ett ekvationssystem av samma form för varje koordinat, i och med att operationerna definieras komponentvis. Så lösningen blir 5. p q p q, så svar 6. x = y = z = 0 =(0, 0,...,0) w = =(,,..., ) p + q ( p + q)( q + r)+( p + r) = p + q + q + r + p + r = = p q + q r + p + r = = p q + p + q r + r = = (p + p) q +(q + r)( r + r) = = q + q + r =+r = 2. Addera ā till ekvationens båda led : ā + a + x = ā + b +x = 0 = 0 3. Ekvationen är en identitet alla x är lösningar eftersom högerledet = a 2 + ax = a + ax för alla x.

7. Låt ½, om resp. person bjuds, a, b, c, d, e = 0, annars Vi söker en uppsättning (a, b, c, d, e) B 5 så att i) a + b ii) bc = b + c iii) d + e iv) e + ad v) cd + cd allihop får värdet Alltså skall deras produkt ha värdet. Skriv produkten på disjunktiv normalform, så skall de sökta uppsättningarna kunna avläsas: (ā + b) b + c (d + e)(ē + ad) cd + c d Mult. ihop parenteser och2samt3och4 b b =0,eē =0,add= ad ad + ade = ad = ā b +ā c + bc (de + ad) cd + cd = Mult. ihop de två sista. d d =0 = ā b +ā c + b c (cdē + acd) =[Bryt ut cd] = ā b +ā c + b c (ē + a) cd = = ā bē +ā cē + b cē + ab c cd =[ cc =0] = ā bēcd +0+0+0=ā bēcd Det enda som skulle fungera är alltså att bjuda in endast C och D. 8. Låt ½, om resp. person beställer martini, a, b, c = 0, annars = (ā + b)(b + c) bc (a + c)( c + a) = = (b +āc) b + c (a + c c) = = ā bc + b c a = = ab c Alltså: Albert och Bill beställer, men inte Charley. 9. abâcd 0 0 0 0 Iställetför, 0,, 0 skulle man kunna skriva ā b, āb, ab, a b, så slipper man "översätta" från siffror och bokstäver sedan: c d cd cd c d ā b āb ab a b f (a, b, c, d) =cd + abc + abd 20. a) xȳ z w = xȳ z w + xȳ z w xȳ z w + xȳ z w =( x + x)ȳ z w = ȳ z w =ȳ z w xȳ z w + xy z w = x (ȳ + y) z w = x z w Alltså svar x z w +ȳ z w mendetkanvarasvårtatt komma på att "fördubbla" xȳ z w. b) Enklare: zw z w z w zw xy xȳ xȳ xy 2. Försök att täcka nollorna i Karnaughdiagrammet med så få block som möjligt : zw z w z w zw xy 0 0 0 0 xȳ 0 0 0 xȳ 0 0 0 xy 0 0 0 De två första kolumnerna : z = z =0. Första raden : xy = x +ȳ =0. Fjärde och första kolumnen : w = w =0. En produkt av summor är 0 någon av summorna är 0. Alltså f på konjunktiv form : f (x, y, z, w) = z ( x +ȳ) w