2.2 F¨ orenkling av booleska uttryck

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

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

Tack vare diagrammets konstruktion kan f¨orenklingarna ABC + ABC = AB 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.

20 KAPITEL 2. BOOLESKA FUNKTIONER

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. Cellerna m˚aste vara rektangul¨ara, och 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

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

AB

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

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 21

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

AB

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.

Exempel 2.3 Fem variabler

000 001 011 010 100 101 111 110 1 1

22 KAPITEL 2. BOOLESKA FUNKTIONER 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

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 typiskt s˚a ¨ar antalet viktigare ¨an storleken vid minimiering av uttryck.

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

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

2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 23 Uppgift 2.3 Best¨am de v¨asentliga primimplikatorerna och den minimala formen f¨or funktionen i dia-grammet nedan. Till˚atet att l¨osa denna uppgift i kompendiet.

AB

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.

Exempel 2.7 Flera minimala uttryck

AB

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.

S˚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

-24 KAPITEL 2. BOOLESKA FUNKTIONER

I dokument ÅBO AKADEMI LOGIKSTYRNING. Hannu Toivonen Jari Böling. Augusti Biskopsgatan 8 FIN Åbo Finland (sidor 19-24)