• Nenhum resultado encontrado

Mapa de Karnaugh. João Paulo Cerquinho Cajueiro 24 de agosto de 2009

N/A
N/A
Protected

Academic year: 2021

Share "Mapa de Karnaugh. João Paulo Cerquinho Cajueiro 24 de agosto de 2009"

Copied!
10
0
0

Texto

(1)

Mapa de Karnaugh

Jo˜

ao Paulo Cerquinho Cajueiro

24 de agosto de 2009

O chamado mapa de Karnaugh foi desenvolvido pelo matem´atico e f´ısico Maurice Karnaugh1 em 1953, enquanto trabalhava no grupo de pesquisas da empresa Bell. Este m´etodo ´e uma poderosa ferramenta para circuitos l´ogicos, pois permite simplificar equa¸c˜oes booleanas apenas agrupando ´areas comuns, o que nosso c´erebro consegue fazer bem mais rapidamente do que aplicando postulados e teoremas a equa¸c˜oes.

1

De diagramas de Venn a Mapas de Karnaugh

Utilizar os teoremas e postulados da ´algebra de Boole para simplificar equa¸c˜oes ´

e bastante tedioso, o que faz com que seja bem prov´avel que hajam erros no processo. Mas j´a vimos que as equa¸c˜oes da ´algebra de Boole podem ser visualizadas atrav´es de um diagrama de Venn. Isto ´e exemplificado na figura 1, que apresenta um diagrama de Venn de 3 vari´aveis com os respectivos mintermos associados a cada uma das regi˜oes.

a b

c

(a) Regi˜oes das vari´aveis

abc abc abc abc abc abc abc abc

(b) Sub-regi˜oes dos mintermos

Figura 1: Diagrama Venn com 3 vari´aveis.

Utilizando os diagramas, ´e f´acil obter a equa¸c˜ao simplificada da fun¸c˜ao. Por exemplo, considere-se a fun¸c˜ao f1 = abc + abc + abc. Desenhando esta fun¸c˜ao

num diagrama de Venn (figura 2), fica ´obvio que podemos simplific´a-la para f1= (a + c)b.

O problema aparece quando acrescentamos mais 1 vari´avel. Como fazer um diagrama definindo todas as 16 possibilidades? A solu¸c˜ao para isto ´e desenhar

1Aparentemente ele atualmente (entre outras coisas), escreve o blog unclej0.blogspot.com.

(2)

f1

Figura 2: Diagrama Venn definindo a regi˜ao dada por f1 = abc + abc + abc =

(a + c)b.

as regi˜oes como quadrados, e n˜ao como c´ırculos, assim como foi feito na figura 3. No lado direito desta figura temos at´e a representa¸c˜ao do lado de fora do diagrama propriamente dito de que regi˜oes correspondem a que vari´aveis.

abcd abcd abcd abcd

abcd abcd abcd abcd

abcd abcd abcd abcd

abcd abcd abcd abcd

a

b

c d

abcd abcd abcd abcd

abcd abcd abcd abcd

abcd abcd abcd abcd

abcd abcd abcd abcd

Figura 3: Diagrama Venn de 4 vari´aveis desenhado com regi˜oes quadradas. Este diagrama de Venn modificado j´a ´e o pr´oprio mapa de Karnaugh, onde no mapa as regi˜oes em que a fun¸c˜ao ´e verdadeira s˜ao marcadas com 1, e em que a fun¸c˜ao ´e falsa s˜ao marcadas com 0.

2

Mapas de Karnaugh

Cada regi˜ao (quadrado) em um mapa de Karnaugh corresponde a uma linha na tabela verdade. Ou seja, cada regi˜ao corresponde a um mintermo e a um maxtermo. A figura 4 mostra os mintermos correspondentes a cada uma das regi˜oes. Nela tamb´em est´a presente o n´umero correspondente a cada mintermo

(3)

ou maxtermo. a b c d 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10

abcd abcd abcd abcd

abcd abcd abcd abcd

abcd abcd abcd abcd abcd abcd abcd abcd

Figura 4: Regi˜oes correspondentes a mintermos de um mapa de Karnaugh Note na figura 4 que os vizinhos de cada casa em um mapa de Karnaugh s˜ao tais que apenas muda uma vari´avel de cada vez. Por exemplo, da casa 5 para a casa 1 (acima) s´o muda o b, da 5 para a 7 (direita) s´o muda o c, da 5 para a 4 (esquerda) s´o muda o d e da 5 para a 13 (abaixo) s´o muda o a. Isto ´e v´alido para todas as casas.

´

E poss´ıvel aplicar isto inclusive para as casas nas bordas e nas quinas, pois podemos considerar que o mapa d´a a volta em si mesmo. Deste modo considera-se a casa 6 como vizinha da 4 e s´o muda a vari´avel c, e a casa 10 vizinha da 2 e s´o muda a vari´avel a.

Isto nos permite agrupar termos visualmente. Por exemplo, considere a fun¸c˜ao f2=Pm(3, 7, 12, 13) e seu respectivo mapa de karnaugh na figura 5.

f2=Pm(3, 7, 12, 13) a b c d 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 abc acd

Figura 5: Fun¸c˜ao f2 e simplifica¸c˜ao por agrupamento de casas vizinhas.

Analisando a fun¸c˜ao f2por ´algebra de Boole, vemos que podemos simplific´

a-la aplicando o teorema T6. E observando no mapa de Karnaugh, os termos que s˜ao unidos e simplificados s˜ao justamente os vizinhos.

f2= abcd + abcd | {z } T 6 + abcd + abcd | {z } T 6 f2= acd + abc

(4)

Ou seja, o agrupamento de 2 casas vizinhas corresponde `a simplifica¸c˜ao de uma vari´avel atrav´es da aplica¸c˜ao to teorema T6. Basta ver no pr´oprio mapa quais s˜ao as vari´aveis que n˜ao mudam dentro do agrupamento.

Para simplificar 2 ou mais vari´aveis basta aplicar o teorema repetidas vezes. Simplifiquemos a fun¸c˜ao f3 (vide figura 6), por exemplo. Basta agruparmos a

fun¸c˜ao de duas em duas casas e 2 grupos vizinhos de duas casas viram um ´unico grupo de 4 casas, retirando mais uma vari´avel da fun¸c˜ao.

f3= abcd + abcd | {z } + abcd + abcd | {z } = abc + abc | {z } f3= ac f3 a b c d 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0

f3 a b c d 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0

Figura 6: Agrupamento das casas da fun¸c˜ao f3.

Este mesmo procedimento pode ser mostrado para agrupamentos de 8 casas (simplificando ent˜ao 3 vari´aveis) ou 16 casas (simplificando 4 vari´aveis. A figura 7 mostra algumas possibilidades de agrupamentos de 2, 4 e 8 casas2, junto com

o produto respectivo. Claro que num mapa de Karnaugh de 4 vari´aveis um agrupamento de 16 casas seria todo o mapa e corresponderia a fun¸c˜ao 1.

2Exemplos utilizados tamb´em no artigo original de Karnaugh: “The map method for

(5)

bcd a b c d 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 abd a b c d 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 abd a b c d 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 bcd a b c d 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

(a) agrupamentos de 2 casas

cd a b c d 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 ab a b c d 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 a d a b c d 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 b d a b c d 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 (b) Agrupamentos de 4 casas b a b c d 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d a b c d 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 c a b c d 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 b a b c d 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 (c) Agrupamentos de 8 casas

Figura 7: Exemplos de mapas de karnaugh com os correspondentes produtos alg´ebricos.

(6)

2.1

Mapas de n vari´

aveis

Claro que um mapa de Karnaugh pode ser feito com um n´umero menor de vari´aveis. Para tanto basta simplesmente sair dividindo o mapa. Tem-se apenas que lembrar que uma casa deve ter n vizinhas, j´a que a simplifica¸c˜ao de uma vari´avel corresponde a unir uma casa com a vizinha. Isto ´e mostrado na figura 8 para mapas de 2, 3 e 4 vari´aveis.

a b 0 1 2 3 (a) Mapa de 2 vari´aveis a b c 0 1 3 2 4 5 7 6

(b) Mapa de 3 vari´aveis

a b c d 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10

(c) Mapa de 4 vari´aveis

Figura 8: Mapas de Karnaugh de 2, 3 e 4 vari´aveis, mostrando que cada casa tem n vizinhas.

Mas como aplicar este princ´ıpio para fun¸c˜oes com mais de 4 vari´aveis? ´

E imposs´ıvel fazer um mapa no plano onde cada uma das regi˜oes tem 5 (ou mais) vizinhos. Uma maneira (n˜ao muito pr´atica) ´e trabalhar com um mapa tridimensional como exemplifica a figura 9 que mostra um mapa de Karnaugh de 6 vari´aveis, note que cada casa tem 6 vizinhos: 4 no plano (como no mapa de 4 vari´aveis) e 2 verticais.

Na pr´atica, um mapa de 5 vari´aveis ´e desenhado como 2 de 4 vari´aveis, sendo um com uma vari´avel (em geral a mais significativa) sendo 0 e o outro com a mesma vari´avel sendo 1. Usa-se este mesmo princ´ıpio para mapas de 6 vari´aveis ou mais vari´aveis, como pode ser visto na figura 10.

(7)

c d e f 32 33 35 34 36 37 39 38 44 45 47 46 40 41 43 42 c d e f 48 49 51 50 52 53 55 54 60 61 63 62 56 57 59 58 c d e f 16 17 19 18 20 21 23 22 28 29 31 30 24 25 27 26 c d e f 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 a b

Figura 9: Mapa de Karnaugh tridimensional de 6 vari´aveis.

b c d e 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 b c d e 16 17 19 18 20 21 23 22 28 29 31 30 24 25 27 26 a

(a) 5 vari´aveis

c d e f 32 33 35 34 36 37 39 38 44 45 47 46 40 41 43 42 c d e f 48 49 51 50 52 53 55 54 60 61 63 62 56 57 59 58 c d e f 16 17 19 18 20 21 23 22 28 29 31 30 24 25 27 26 c d e f 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 a b (b) 6 vari´aveis

(8)

3

Soma de produtos e produto de somas

At´e o momento trabalhamos com o mapa de Karnaugh agrupando os 1’s para gerar fun¸c˜oes na forma soma de produtos, mas podemos agrupar os zeros tam-b´em, gerando equa¸c˜oes na forma produto de somas, como mostra a figura 11 para a fun¸c˜aof4= ac + a(b + cd).

f4(a, b, c, d) a b c d 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 0 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 a + c b + c + d a + b + c

Figura 11: Mapa de Karnaugh com agrupamento de 0’s.

Da mesma forma que na tabela verdade, um 0 no mapa de Karnaugh cor-responde a um maxtermo. Logo o agrupamento de 2 casas com 0 corcor-responde a uma soma com n − 1 termos (onde n ´e o n´umero de vari´aveis da fun¸c˜ao), o agrupamento de 4 casas equivale a uma soma de n − 2 vari´aveis e assim por diante.

No caso de agrupamento de zeros, deve-se tomar cuidado com a rela¸c˜ao entre uma regi˜ao marcada e como a vari´avel aparece na equa¸c˜ao. Por exemplo, na figura 11 a regi˜ao a + c ocorre onde est´a marcado a no mapa, e n˜ao onde est´a marcado a. A explica¸c˜ao para este fenˆomeno ´e a mesma dos maxtermos na tabela verdade terem as vari´aveis barradas em rela¸c˜ao aos mintermos corres-pondentes. Isto torna a an´alise do mapa por agrupamento de 0’s bem menos intuitiva. f5 a b c d 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1

Figura 12: Exemplo de equa¸c˜ao minimizada por agrupamento de 1’s e de 0’s. A partir do mapa de Karnaugh, podemos obter a equa¸c˜ao na forma produto de somas, juntando os zeros; ou na forma soma de produtos, juntando os uns.

(9)

As duas formas obtidas da fun¸c˜ao f5da figura 12 s˜ao mostradas abaixo e apesar

de aparentarem ser diferentes, elas s˜ao, de fato, equivalentes.

f5= (a + b + c) a + b + d a + c + d a + b + c + d (1)

f5= a b + a c + b d + c d + a b c (2)

Come¸cando da equa¸c˜ao na forma produto de somas, multiplicamos os dois primeiros parˆenteses e os dois ´ultimos e obtemos:

f5= a + a b + a d + b + b d + b c + a d + c d ·

· a b + a c + a d + a c + b c + c d + a d + b d + c d + d (3) Retirando os v´arios termos redundantes, chega-se a:

f5= a + b + c d a b + a c + d + a c + b c (4)

Multiplicando novamente, obtˆem-se:

f5= a b + a c + a d + a b c + a b c + b d + a b c + a b c d + c d + a c d + b c d (5)

Onde novamente temos v´arios termos redundantes que simplificam em: f5= a b + a c + a d + b d + a b c + c d (6)

Note que podemos usar o teorema do consenso nos segundo, terceiro e ´ultimo termo, retirando ent˜ao o terceiro termo. Com isso, obt´em-se a equa¸c˜ao (2) obtida por soma de produtos.

Mostra-se ent˜ao que a equa¸c˜ao (1) ´e equivalente `a (2), q.e.d..

4

Equa¸

oes e circuitos n˜

ao-completamente

espe-cificados.

´

E bastante comum a situa¸c˜ao de que determinadas entradas de um circuito l´ogico nunca ocorram. Como exemplo imagine-se uma esteira carregando uma caixa de um lado para o outro, com sensores de fim de curso em ambas extremidades: se do lado esquerdo e sd do lado direito. No funcionamento normal do sistema

estes dois sinais nunca ser˜ao acionados ao mesmo tempo; nesta situa¸c˜ao n˜ao importa qual ´e o resultado do circuito para se = sd = 1, j´a que esta situa¸c˜ao

nunca vai existir, portanto n˜ao ´e necess´ario especificar um valor de sa´ıda para esta situa¸c˜ao. Diz-se ent˜ao que este circuito ´e n˜ao-completamente especificado. A tabela 1 mostra o exemplo de um sinal imagin´ario z determinado em fun¸c˜ao de a, se e sd. Neste exemplo, sempre que se= sd = 1 a sa´ıda z ´e n˜

ao-especificada, ou seja, z n˜ao-importa nestas situa¸c˜oes. Neste texto utilizaremos a nota¸c˜ao ×3 para identificar as situa¸oes que um sinal n˜ao importa.

Pode-se descrever uma fun¸c˜ao l´ogica n˜ao-completamente especificada na forma soma de mintermos ou produto de maxtermos utilizando a nota¸c˜ao d(· · · ), que vem do inglˆes don’t care. Desta forma o sinal z pode ser descrito por:

z = X

m(2, 4, 6) + d(3, 7) =

Y

M(0, 1, 5) + d(3, 7) (7)

(10)

a se sd z 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 × 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 ×

Tabela 1: Exemplo de uma fun¸c˜ao n˜ao completamente especificada. As sa´ıdas n˜ao especificadas s˜ao identificadas por ×. Outras nota¸c˜oes comumente usadas s˜ao *, - ou d.

Um × na sa´ıda pode ser implementado como um 1 ou um 0, e n˜ao se sabe a princ´ıpio qual destes dois valores gerar´a uma solu¸c˜ao mais minimizada, logo para obter o menor circuito poss´ıvel o engenheiro deveria obter as equa¸c˜oes considerando que cada × pode ser 1 ou 0 e checar qual ´e o menor circuito final. Obviamente para problemas com muitos ×’s isto se torna impratic´avel, pois seria necess´ario implementar 2k circuitos, onde k ´e o n´umero de ×’s presentes.

Felizmente o mapa de Karnaugh facilita bastante a implementa¸c˜ao de circui-tos n˜ao-completamente especificados, pois podemos considerar se determinado × ´e 1 ou 0 visualmente, na hora da implementa¸c˜ao.

z a se sd 0 1 3 2 4 5 7 6 1 0 × 1 0 0 × 1

Figura 13: Mapa de Karnaugh da fun¸c˜ao z.

Ao minizarmos a fun¸c˜ao z pelo mapa de Karnaugh (figura 13) obtemos 2 fun¸c˜oes:

z0 = se+ sda (pelos 1’s) (8)

z00= sd(se+ a) (pelos 0’s) (9)

Note que, neste caso, estas duas equa¸c˜oes n˜ao s˜ao equivalentes; ou seja, n˜ao ´e poss´ıvel sair de uma delas e chegar na outra por ´algebra de Boole, como j´a foi feito na se¸c˜ao 3 para f5. Isto porque na minimiza¸c˜ao por soma de produtos foi

considerado que os ×’s eram 1, enquanto que em produto de somas eles foram considerados como sendo 0.

Esta situa¸c˜ao ´e bastante comum ao minimizar fun¸c˜oes n˜ao completamente especificadas, por´em, apesar de estranho, n˜ao causa nenhum problema, j´a que as diferen¸cas nas sa´ıdas ocorrem justamente quando n˜ao importa o valor da sa´ıda, seja por que aquela entrada nunca ocorre ou por outra raz˜ao qualquer.

Referências

Documentos relacionados

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Incidirei, em particular, sobre a noção de cuidado, estruturando o texto em duas partes: a primeira será uma breve explicitação da noção de cuidado em Martin Heidegger (o cuidado

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

Durante as nictemerais, os valores do fósforo total e do fosfato total nos dois viveiros apresentaram também valores acima do recomendado pela GAA, exceto para o fosfato total na

Distribuição espectral dos sistemas de iluminação LED e do controle Observa-se na Figura 12A, a análise de componentes principais, relacionado à biometria das mudas pré-brotadas

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas