Mapas de Karnaugh Professor Gilvan Maiochi Introduo Minimizar ou Simplificar uma funo booleana a operao mediante a qual se reduz ao mnimo o nmero de termos, resultando em economia do circuito a ela correspondente. Os mtodos de aplicao mais frequentes na minimizao de uma funo ou expresso booleana so: 1. Mtodo Algbrico 2. Mtodo do Mapa de Karnaugh 3. Mtodo de Quine-Mckluskey Nosso objetivo na aula de hoje aprender a utilizar o mtodo do Mapa de karnaugh para a simplificao de circuitos. O mtodo algbrico j foi estudado como aplicao dos teoremas da lgebra de Boole; Citarei apenas um exemplo, como lembrete, para possibilitar comparaes futuras com o Mapa de Karnaugh. Introduo Seja minimizar a funo y = a((b + c') (b' + c)) + ab + (a' + b') (b + c') Soluo: y = a((b + c') (b' + c)) + ab + (a' + b') (b + c') = a(bb' + bc + b'c' + cc') + ab + (a' b + a'c' + b'b + b'c') = abc + ab'c' + ab + a'b + a'c' + b'c = ab + b'c' + a'b + a'c' = (a + a') b + b'c' + a'c' = b + b'c' + a'c' = b + c' + a'c' = b + c' (1 + a') = b + c'
Veremos que podemos transformar sentenas abertas (assunto da aula anterior) em proposies, usando expresses como para todo, qualquer que seja, existe um, etc. Exemplos Consideremos a sentena aberta P(x) = x + 1 = 1, podemos, a partir dela, formar as seguintes proposies: Existe x pertencente a Z, de tal forma que x + 1 = 1 Para todo x pertencente a Z, x + 1 = 1 Existe x N tal que Z Para todo x Q, R Qualquer que seja o nmero natural ele inteiro Existe um nmero primo par Mtodo do Mapa de Karnaugh O mapa de Karnaugh uma forma modificada de tabela-verdade que nos permite representar graficamente uma funo booleana e, se for o caso, simplific-la. Mapa a uma Varivel No caso de uma varivel, o mapa formado por duas clulas que correspondem a cada um dos valores 0 e 1 que podem ser atribudos varivel.
Esta tabela pode ser lida de uma das seguintes maneiras:
ou onde atribui-se o valor 1 varivel no complementada (a) e o valor 0 varivel complementada (a'). 0 1 a 0 1 a 0 1 0 1 a a' a Mapa a duas variveis formado por quatro clulas que correspondem s combinaes binrias que podem ocorrer com estas variveis. Os termos da funo a ser representada devem ser escritos em ordem alfabtica e, em todos os mapas de Karnaugh, a ordem em que entraro as variveis deve vir claramente anotada na parte superior esquerda.
a b 0 1 0 00 10 Representao Binria 1 01 11 a b 0 1 0 a'b' ab' Representao Literal 1 a'b ab a b 0 1 0 0 2 Representao Decimal 1 1 3 Mtodo do Mapa de Karnaugh a bc 0 1 00 000 100 01 001 101 11 011 111 10 010 110 a bc 0 1 00 a'b'c' ab'c' 01 a'b'c ab'c 11 a'bc abc 10 a'bc' abc' a bc 0 1 00 0 1 01 2 3 11 6 7 10 4 5 Mapa a trs variveis Mtodo do Mapa de Karnaugh ab cd 00 01 11 10 00 0000 0100 1100 1000 01 0001 0101 1101 1001 11 0011 0111 1111 1011 10 0010 0110 1110 1010 ab cd 00 01 11 10 00 a'b'c'd' a'bc'd' abc'd' ab'c'd' 01 a'b'c'd a'bc'd abc'd ab'c'd 11 a'b'cd a'bcd abcd ab'cd 10 a'b'cd' a'bcd' abcd' ab'cd' ab cd 00 01 11 10 00 0 4 12 8 01 1 5 13 9 11 3 7 15 11 10 2 6 14 10 Mapa a quatro variveis Mtodo do Mapa de Karnaugh Representao de uma Funo Via Mapa de Karnaugh Representemos, mediante o mapa de Karnaugh, a seguinte funo na forma normal disjuntiva: y = abc' + ab'c' + abc + a'b'c Trata-se de uma funo a trs variveis e o mapa a ser utilizado :
Para representar a funo atravs do mapa, colocamos o valor 1 nas clulas correspondentes a cada termo da funo deixando as demais vazias. Assim: a bc 0 1 00 01 11 10 Representao de uma Funo Via Mapa de Karnaugh
y = abc' + ab'c' + abc + a'b'c
a bc 0 1 00 1 01 1 11 1 10 1 Representao de uma Funo Via Mapa de Karnaugh Representar a funo y = a'b'cd + ab'd + abc' + ac'd' a quatro variveis que, em trs de seus termos, falta uma varivel (no est na forma normal disjuntiva). Relembremos um teorema til ao Mapa de Karnaugh ab + ab' = a conforme aplicao das propriedades da lgebra booleana: F = A . B + A . B' propriedade distributiva (evidenciando o elemento comum) F = A . (B + B') propriedade dos complementos F = A . 1 propriedade da identidade (ou elemento neutro) F = A Representao de uma Funo Via Mapa de Karnaugh De acordo com o teorema ab + ab' = a, temos: y = a'b'cd + ab'd + abc' + ac'd' y = a'b'cd + ab'cd + ab'c'd + abc'd + abc'd' + abc'd' + ab'c'd' y = a'b'cd + ab'cd + ab'c'd + abc'd + abc'd' + ab'c'd' E, construindo o mapa correspondente, vem:
ab cd 00 01 11 10 00 a'b'c'd' a'bc'd' abc'd' ab'c'd' 01 a'b'c'd a'bc'd abc'd ab'c'd 11 a'b'cd a'bcd abcd ab'cd 10 a'b'cd' a'bcd' abcd' ab'cd' ab cd 00 01 11 10 00 1 1 01 1 1 11 1 1 10 Representao de uma Funo Via Mapa de Karnaugh Note-se que no caso de funes como y = a'bcd' + ab deve-se considerar todas as possibilidades de aplicao do teorema ab + ab' = a, ficando o mapa correspondente como se v a seguir: y = a'bcd' + ab y = a'bcd' + abcd + abcd' + abc'd + abc'd'
ab cd 00 01 11 10 00 a'b'c'd' a'bc'd' abc'd' ab'c'd' 01 a'b'c'd a'bc'd abc'd ab'c'd 11 a'b'cd a'bcd abcd ab'cd 10 a'b'cd' a'bcd' abcd' ab'cd' ab cd 00 01 11 10 00 1 01 1 11 1 10 1 1 Representao de uma Funo Via Mapa de Karnaugh Na representao de uma funo mediante o mapa de Karnaugh, deve-se buscar a forma mais simples de representao, considerando-se que uma funo a duas variveis pode ser representada em mapas para maior nmero de variveis. Assim, a funo y = ab tem as seguintes representaes: a b 0 1 0 1 1 a bc 0 1 00 01 11 1 10 1 ab cd 00 01 11 10 00 1 01 1 11 1 10 1 Representao de uma Funo Via Mapa de Karnaugh Duas clulas que diferem em apenas uma varivel so ditas adjacentes e podem ser combinadas pelo teorema ab + ab' = a. Num mapa de Karnaugh podemos ter clulas adjacentes, sem que tenham lados comuns. Exemplos: a b 0 1 0 1 1 1 a b 0 1 0 1 a'b ab a bc 0 1 00 1 01 1 11 10 a bc 0 1 00 ab'c' 01 ab'c 11 10 Representao de uma Funo Via Mapa de Karnaugh Exemplos: a bc 0 1 00 1 01 11 10 1 a bc 0 1 00 ab'c' 01 11 10 abc' ab cd 00 01 11 10 00 01 ab'c'd 11 ab'cd 10 ab cd 00 01 11 10 00 01 1 11 1 10 Representao de uma Funo Via Mapa de Karnaugh Exemplos: ab cd 00 01 11 10 00 01 a'b'c'd ab'c'd 11 10 ab cd 00 01 11 10 00 01 1 1 11 10 ab cd 00 01 11 10 00 01 11 10 a'b'cd' ab'cd' ab cd 00 01 11 10 00 01 11 10 1 1 Simplificao de Funes Via Mapa de Karnaugh Dada uma funo representada em um mapa de Karnaugh, se encontrarmos termos em clulas adjacentes, podemos fazer uma simplificao. No mapa que representa a funo: y = a'bc'd' + abc'd + a'b'cd + a'bcd + ab'cd'
ab cd 00 01 11 10 00 a'bc'd' 01 abc'd 11 a'b'cd a'bcd 10 ab'cd' ab cd 00 01 11 10 00 1 01 1 11 1 1 10 1 a'cd Podemos efetuar a simplificao, substituindo a'b'cd + a'bcd por a'cd. A operao indicada agrupando-se os dois termos conforme mostra o mapa apresentado. Simplificao de Funes Via Mapa de Karnaugh Quando os termos a simplificar encontram-se em clulas nos extremos do mapa, indicamos conforme segue:
ab cd 00 01 11 10 00 1 01 1 1 11 10 1 a'bd' b'c'd Simplificao de Funes Via Mapa de Karnaugh No mapa da funo: y = a'bc'd' + a'bc'd + a'bcd + abc'd temos:
ab cd 00 01 11 10 00 1 01 1 1 11 1 10 Simplificao de Funes Via Mapa de Karnaugh Lembrando que a funo no simplificada y = a'bc'd' + a'bc'd + a'bcd + abc'd, onde: ab ab cd 00 01 11 10 cd 00 01 11 10 00 1 00 1 01 1 1 01 1 1 11 1 11 1 10 10 y = a'bc' + abc'd + a'bcd y = bc'd + a'bc'd' + a'bcd ab cd 00 01 11 10 00 1 01 1 1 11 1 10 y = a'bd + a'bc'd' + abc'd a'bc' bc'd a'bd Simplificao de Funes Via Mapa de Karnaugh Transportando as representaes anteriores para um nico mapa, obtemos:
que a funo simplificada. Para simplificar ao mximo uma funo torna-se necessrio incluir o mesmo termo em diversos agrupamentos. ab cd 00 01 11 10 00 1 01 1 1 11 1 10 y = a'bc' + bc'd + a'bd a'bc' bc'd a'bd Simplificao de Funes Via Mapa de Karnaugh Vejamos agora o caso em que as clulas so adjacentes duas a duas. Simplifique a funo y = a'b'c + a'bc + ab'c + abc O mapa correspondente :
a bc 0 1 00 01 1 1 11 1 1 10 Simplificao de Funes Via Mapa de Karnaugh e, temos duas maneiras diferentes para simplificar a mesma funo, ou seja:
Considerando que as celas adjacentes no caso de ac e ac' diferem na varivel a e no caso de bc e b'c diferem na varivel b, podemos agrup-las da maneira mostrada a seguir, ou seja:
a a bc 0 1 bc 0 1 00 00 01 1 1 01 1 1 11 1 1 11 1 1 10 10 a'c bc b'c ac a a bc 0 1 bc 0 1 00 00 01 1 1 01 1 1 11 1 1 11 1 1 10 10 c c Simplificao de Funes Via Mapa de Karnaugh Outros casos de simplificao: ab ab cd 00 01 11 10 cd 00 01 11 10 00 1 1 1 00 1 1 01 1 01 1 1 1 1 11 1 11 1 1 10 1 1 1 10 1 1 y = ab' + a'd' y = bd + b'd' + c'd a'd' c'd ab' bd b'd' Simplificao de Funes Via Mapa de Karnaugh Vejamos agora em que as clulas so adjacentes quatro a quatro: Seja o mapa de Karnaugh que representa a funo y = a'b'c'd + a'b'cd + a'bc'd + a'bcd + abc'd + abcd + ab'c'd + ab'cd ab cd 00 01 11 10 00 01 1 1 1 1 11 1 1 1 1 10 ab cd 00 01 11 10 00 01 1 1 1 1 11 1 1 1 1 10 ab cd 00 01 11 10 00 01 1 1 1 1 11 1 1 1 1 10 y = cd + c'd = d c'd cd a'd ad y = ad + a'd = d