BOOLESK ALGEBRA OCH BOOLESKA FUNKTIONER. ; samt



Relevanta dokument
Träning i bevisföring

a n = A2 n + B4 n. { 2 = A + B 6 = 2A + 4B, S(5, 2) = S(4, 1) + 2S(4, 2) = 1 + 2(S(3, 1) + 2S(3, 2)) = 3 + 4(S(2, 1) + 2S(2, 2)) = = 15.

Lathund, procent med bråk, åk 8

912 Läsförståelse och matematik behöver man lära sig läsa matematik?

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

Något om permutationer

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

L(9/G)MA10 Kombinatorik och geometri Gruppövning 1

Föreläsning 8: Räkning. Duvhålsprincipen. Kombinatorik

729G04 - Hemuppgift, Diskret matematik

7, Diskreta strukturer

De grundläggande logiska grindarna

Idag. Hur vet vi att vår databas är tillräckligt bra?

Övningshäfte i matematik för. Kemistuderande BL 05

Vi skall skriva uppsats

4-6 Trianglar Namn:..

x 2 + px = ( x + p 2 x 2 2x = ( x + 2

Snabbslumpade uppgifter från flera moment.

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

SF1625 Envariabelanalys

Volymer av n dimensionella klot

F5 Introduktion till digitalteknik

Ha det kul med att förmedla och utveckla ett knepigt område!

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Hävarmen. Peter Kock

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Exempel på tentamensuppgifter i LMA100, del 1

Konsten att multiplicera (stora) heltal

OM KOMPLEXA TAL. 1 Om a är ett positivt reellt tal så betecknar a det positiva reella tal vars kvadrat är a men det är

Repetition av cosinus och sinus

Facit med lösningsförslag kommer att anslås på vår hemsida Du kan dessutom få dem via e-post, se nedan.

SEPARABLA DIFFERENTIALEKVATIONER

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

PRÖVNINGSANVISNINGAR

Möbiustransformationer.

Ekvationssystem, Matriser och Eliminationsmetoden

Boll-lek om normer. Nyckelord: likabehandling, hbt, normer/stereotyper, skolmiljö. Innehåll

EDA Digital och Datorteknik 2009/2010

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Digital- och datorteknik

Idag: Dataabstraktion

Funktionsbegreppet. Kapitel Introduktion till funktioner. Definition av funktion

Tentamen i Linjär algebra (TATA31/TEN1) ,

Det är ni som läser detta.

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Övningshäfte Algebra, ekvationssystem och geometri

Individuellt Mjukvaruutvecklingsprojekt

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

Uppdrag: Huset. Fundera på: Vilka delar i ditt hus samverkar för att elen ska fungera?

Modul 6: Integraler och tillämpningar

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Laborativ matematik som bedömningsform. Per Berggren och Maria Lindroth

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

SF1620 Matematik och modeller

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

NATIONELLA MATEMATIKTÄVLING

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Snapphanalegen. Firekángabogena. Spelregler. (4 spelare)

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Datorövning 2 Statistik med Excel (Office 2007, svenska)

EDA Digital och Datorteknik 2010/2011

1. Frekvensfunktionen nedan är given. (3p)

Kontrollskrivning i Linjär algebra ,

Riktlinjer - Rekryteringsprocesser inom Föreningen Ekonomerna skall vara genomtänkta och välplanerade i syfte att säkerhetsställa professionalism.

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

Hemsida Arbetsrum. Skapa arbetsrumslista

Index vid lastbilstransporter

Kvinnor som driver företag pensionssparar mindre än män

HT 2011 FK2004 Tenta Lärare delen 4 problem 6 poäng / problem

Tränarguide del 1. Mattelek.

Det är bra om även distriktsstyrelsen gör en presentation av sig själva på samma sätt som de andra.

Utdrag ur protokoll vid sammanträde Ändrad deklarationstidpunkt för mervärdesskatt. Förslaget föranleder följande yttrande av Lagrådet:

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

Tankar om elevtankar. HÖJMA-projektet

Skriva B gammalt nationellt prov

Gemensam problemlösning. Per Berggren och Maria Lindroth

Omvandla Vinklar. 1 Mattematiskt Tankesätt

Översikt. Rapport från skolverket. Förändring av matematikprestationerna Grundtankar bakom Pixel

Sveriges Trafikskolors Riksförbund Film om körkort för nysvenskar Speakertext - Svensk

Serieliknande bilder som visar olika påståenden om ett begrepp eller en situation i en vardaglig kontext.

LPP laboration. Förmågor: Centralt innehåll: Kunskapskrav:

Abstrakt algebra för gymnasister

Examensarbete är det en kurs? Inst. för Samhällsbyggnad 2009

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

Denna talesmannapolicy gäller tillsammans med AcadeMedias kommunikationspolicy. I kommuniaktionspolicyn finns följande formulering:

Utveckla arbetsmiljö och verksamhet genom samverkan

Diskussionsfrågor till version 1 och 2

Du ska nu skapa ett litet program som skriver ut Hello World.

Tentamen i Programmering grundkurs och Programmering C

Tentamen i matematisk statistik (9MA241/9MA341/LIMAB6, STN2) kl 08-13

3.1 Linjens ekvation med riktningskoefficient. y = kx + l.

Koll på cashen - agera ekonomicoach!

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Från min. klass INGER BJÖRNELOO

Samtals- och dokumentationsunderlag Språk och erfarenheter

Lathund till Annonsportalen

Projektet har liksom Wången många år på nacken. Redan på 1950-talet bedrevs här forskning på brukshästarnas hovar.

CAEBBK01 Drag och tryckarmering

Matematik för sjöingenjörsprogrammet

Transkript:

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 betdelse i datalogin.. Boolesk algebra Grunden för boolesk räkning är följande två räknetabeller: + ; ; samt { = = = = De fungerar som vanlig addition och multiplikation sånär som på att alla icke-noll-värden representeras av. Värdena och kan tolkas som falskt och sant, varvid + motsvarar eller (OR) och motsvarar och (AND). Komplement,, motsvarar icke (NOT). Ytterligare en tolkning är i mängdtermer: motsvarar en flld mängd X, motsvarar tomma mängden, + motsvarar union, motsvarar snitt, och komplement är komplement med avseende på X, dvs = X. Objektet som vi studerat ovan är den endimensionella booleska algebran B. Den har alltså två element, {, } eller {falskt, sant}, eller {, X}, hur vi nu vill se på den. Det här kan generaliseras till flera dimensioner: B n = {n-dimensionella {, }-vektorer; +,, sker komponentvis} (E.: + = ; = [B 5 ]) = {n-dim. {sant, falskt}-vektorer; OR, AND, NOT sker komponentvis} (E.: SFS AND FSS = FFS; NOT (SFS)=FSF [B 3 ]) = {alla delmängder till en n-mängd X, t.e. {, 2,..., n};, och m.a.p. X} (E.: {3, 5} {, 5} = {, 3, 5}; {3, 5} = {, 2, 4} [B 5 ]) Tecknet = betder isomorfi, dvs sånär som på olika namn på saker och ting så är det eakt samma objekt i de tre eemplen. Isomorfin mellan de första två är trivial: F, S, osv. Isomorfin mellan första och tredje eemplet är nästan lika enkel: {3, 5}, {, 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, t för var och en av de n positionerna i vektorn kan vi välja en :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 uppfller samma egenskaper som, och. Vissa av dessa egenskaper, från vilka de övriga kan härledas, väljs ut och kallas aiomen för en boolesk algebra. Till att börja med har man en partialordning som motsvarar för mängder eller komponentvis för {, }-vektorer. Det finns två särskilda element och så att för alla i B n. och motsvarar respektive hela X = {, 2,..., n}. Några eempel på aiom är: ( z) = ( ) ( z) ( z) = ( ) ( z) = = ȳ = ȳ } } distributivitet de Morgans lagar Men, eftersom den booleska algebran är isomorf med tolkningarna ovan så finns det ingen anledning att lära sig dessa aiom utantill emedan de följer av räknereglerna för t.e. mängder eller {, }-vektorer. I fortsättningen betraktar vi B n just som {n-dim. {, }-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(, 2,..., n ) = där alla i och är eller. Man representerar enklast f med en sanningstabell, t.e. 2 3 f Men man kan också se f som en logisk krets 3 2 f f(, 2, 3 ) som matar ut ett värde beroende på ingångsvärdena, 2, 3. 2

Den funktion f som ges av tabellen ovan kan också uttrckas som ett booleskt polnom, dvs ett uttrck med +, och samt variabler: f(, 2, 3 ) = 2 3 + 2 3 + 2 3 + 2 3. Hur vet man det? Jo, varje term motsvarar en rad i tabellen där f ska vara. Att t.e. f(,, ) = motsvaras av 2 3, t denna produkt blir omm alla faktorer är, dvs omm =, 2 =, 3 =. På samma sätt är 2 3 = omm (, 2, 3 ) = (,, ). Alltså kommer summan av dessa termer att vara precis när f ska vara. Detta sätt att uttrcka f kallas disjunktiv normalform. Vi kan ur detta dra slutsatsen att varje boolesk funktion kan skrivas som ett booleskt polnom. Men det finns i allmänhet många olika sätt att uttrcka samma booleska funktion. Vi har t.e. { + ȳ = z + z + ȳz + ȳ z = Den disjunktiva normalformen är ofta den dummaste om man är ute efter ett enkelt uttrck. Varför är man ute efter ett enkelt uttrck för f? Jo, om man ska realisera f som logisk krets vill man bgga den så billigt som möjligt, dvs med så få grundkomponenter, s.k. grindar, som möjligt. Tpiska grindar är: & + Till eempel kan ( + ) z bggas: z + & ( + )z På disjunktiv normalform är ( + ) z = z + z + ȳz, och att bgga upp kretsen så är naturligtvis mcket drare. Hur gör man då för att finna enklast möjliga uttrck för f? För stora n är detta problem mcket 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 eempel. 3

f (ȳ) = ( ) () () = f(, ) = + ȳ 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 = motsvarar ju ȳ =, och att den kolonnen bara innehåller :or motsvarar termen ȳ i uttrcket 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 eempel: zw ( z) ( ){ (){ (w) ( w) (z) } () (ȳ) = f = ȳ z w + zw + z Man räknar alltså upp värdeparen i ordningen,,,. 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 utnttja denna wraparound -effekt. T.e., 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 otmplig för n = 5, 6. För n 7 bör datorer användas för att hitta minimala polnom, eller approimativt minimala polnom, till booleska funktioner. Vi går inte vidare in på detta ämne. I kompleitetsteori studeras hur svåra olika beräkningsproblem är. Svårighetsgrad mäts på olika sätt, t.e. 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 polnom, för givna funktioner. En viktig roll i teoretisk datalogi spelar också det så kallade satisfierbarhetsproblemet (SAT): Givet ett booleskt polnom f(, 2,..., n ) finns det värden a i {, } så att f(a, a 2,..., a n ) =? Man vet inte om detta problem har en polnomiell lösning, dvs 4

om det finns en algoritm som använder högst n d steg, för något fit heltal d. Satisfierbarhetsproblemet för booleska polnom är det kanske viktigaste (och historiskt första, Cook 97) eemplet på ett NP-fullständigt problem. Frågan om det har en polnomiell lösning är ekvivalent med det berömda P=NP? problemet. Vi hänvisar till referenserna, eller kurser i algoritm- och kompleitetsteori, för mer om booleska funktioners roll i teoretisk datalogi. Referenser [] M.R. Gare and D.S. Johnson, Computers and intractabilit: A guide to the theor of NPcompleteness, W.H. Freeman, San Fransisco, 979 [2] I. Wegener, The compleit of Boolean functions, Wile-Teubner, Stuttgart, 987 5

3. övningar:. Utöver de aiom för boolesk algebra som nämndes i teten (distributivitet, dubbel negation och de Morgans lagar), så finns följande aiom i det vanligaste aiomsstemet: (a) =, = (idempotens) (b) =, = (kommutativitet) (c) ( z) = ( ) z, ( z) = ( ) z (associativitet) (d) ( ) =, ( ) = (absorption) (e) [ ( z)] = ( ) ( z) [ ( z)] = ( ) ( z) (f) =, = =, = (modularitet) (g) =, = (komplementlagar) Verifiera att dessa aiom gäller för sstemet av delmängder till en n-mängd där, och betder union, skärning och komplement. 2. Visa följande dualitetsprincip för boolesk algebra: Om P är ett sant påstående om boolesk algebra och om P erhålls genom att bta alla -tecken mot -tecken och vice versa, så är också P ett sant påstående. 3. Bevisa följande booleska identitet: ( ) ( z) (z ) = ( ) ( z) (z ). 4. Låt = +ȳ. Detta motsvarar den logiska funktionen eklusivt eller (XOR). (a) Skriv upp en sanningsvärdestabell för. (b) Visa att ( ) z = ( z). (c) Skriv z på disjunktiv normalform. 5. Vi har sett att varje boolesk funktion kan uttrckas med hjälp av de tre elementära operationerna {+,, }; vi kallade sådana uttrck booleska polnom. Visa att följande par av elementära operationer räcker för att uttrcka alla booleska funktioner: (a) {+, } (b) {, } (c) {, } (d) Kan uttrckas enbart med {+, }? n (e) Har dessa resultat någon betdelse för konstruktionen e av logiska kretsar? 6. En boolesk funktion f() kallas monoton om = f() f() för alla, B n. Visa följande: 6

(a) Om f() kan uttrckas med enbart operationerna {+, } så är funktionen monoton, (b) Om f() är monoton så kan den uttrckas enbart med operationerna {+, }. 7. Hitta enklast möjliga uttrck för följande booleska funktioner, och rita motsvarande logiska krets: (a) + ȳ + (b) ȳz + z + z + ȳz + z (c) ȳ zw + ȳz w + z w + zw + z w + z w + zw. 8. Ett cirkulärt arrangemang av elementen i B n så att två element i följd skiljer sig i eakt en position kallas en Gra-kod. Vid konstruktionen av Karnaugh-diagrammet för n = 4 använde vi Gra-koden,,,. (a) Konstruera en Gra-kod för B 3. (b) Visa att en Gra-kod eisterar för alla B n, n. 7