Capítulo de Karnaugh(Nuevo)

Anuncio
Capítulo 9
Mapas de Karnaugh
En este capítulo usaremos un diagrama dónde se representan las conjunciones fundamentales de una función como unos con el n de obtener una nueva
representación de dicha función. El objetivo es que la nueva representación de
la función sea minimal en un sentido que aclararemos más adelante. En esta
representación se colocan las conjunciones adyacentes desde el punto de vista
lógicosi dieren en sólo uno de sus literalesadyacentes desde el punto de
vista físico para sacar ventaja de este hecho en el momento de agruparlas. Para
lograr que la función que se obtenga sea minimal empezaremos deniendo los
conceptos de cubos, cubos primos, cubos esenciales y otros.
9.1.
Mapas de Karnaugh
Empezaremos presentando el concepto de adyacencia lógica y adyacencia
física.
Denición 9.1 (Adyacencia Lógica) Dos conjunciones fundamentales se llaman adyacentes lógicas si y sólo si dieren sólo en uno de sus literales. Más aún
dos términos con igual número de literales son adyacentes desde el punto de vista
lógico si y sólo si dieren en solamente uno de sus literales.
Un resultado inmediato, pero muy útil de la denición de adyacencia lógica es
el siguiente: Si dos términos son ayacentes, entonces su suma se puede combinar
usando distributividad para producir un nuevo término con un literal menos
que es la variable en la que diferían. De igual manera si un conjunto de cuatro
términos son tales que cada uno es adyacente a los otros tres, entonces se pueden combinar para producir un nuevo término que es equivalente a los cuatro
originales, etc.
Cada uno de los mini-términosconjunciones fundamentalesdel álgebra de
boole de las funciones booleanas en n variables tiene n mini-términos adyacentes,
que son los que se obtienen a partir de él cambiándole exactamente un literal.
15
Capítulo 9. Mapas de Karnaugh
16
valores de wx
Por ejemplo, en el caso de n = 4, los ayacentes al mini-término wxyz son wxyz ,
wx yz , wxyz y wxy z
Un mapa de Karnaugh para una función booleana f de B n en B es un
conjunto de una o más tablas rectangulares en las que las celdas representan a
todos los posibles átomos del álgebra de boole ⟨Fn , ⊆⟩ ubicados de tal forma que
aparezcan adyacentes físicamente si lo son lógicamente. Note que el concepto
de adyacencia física debe interpretarse módulo el número de las o columnas
respectivamente, esto es, cada elemento de la primera la es física y lógicamente
adyacente a su correspondiente en la última la. Lo mismo ocurre para la primera y la última columna. A continuación se muestra como luce la tabla de un
mapa de Karnaugh para una función de B 4 en B en las variables w, x, y, z .
wx/yz
00
01
11
10
00
01
11
10
Cuadro 9.1: Tabla para un mapa de Karnaugh de una función con 4 variables
Observe que que tanto en las columnas como en las las el orden en que se
escriben los valores de las dos variables correspondientes no es el léxico-gráco
que correspondería a los binarios de los números 0, 1, 2, 3 sino que se invierten
las dos últimas para lograr que sean lógicamente adyacentes. (01 no es lógicamente adyacente a 10, pero si a 11dieren en sólo un dígito)
Un mapa de Karnaugh de una función booleana f de B n en B es una representación de los mini-términos o de los maxi-términos de la función en una
o más tablas rectangulares en las que las celdas representan a todos los posibles átomos del álgebra de boole ⟨Fn , ⊆⟩ ubicados de tal forma que aparezcan
adyacentes físicamente si lo son lógicamente en
wx/yz
00
01
11
10
00
1
1
01
1
1
11
1
1
10
1
1
Cuadro 9.2: Tabla para un mapa de Karnaugh de una función con 4 variables
9.1. Mapas de Karnaugh
17
V. Yriarte
Cómo dibujar el mapa de Karnaugh de una función
El procedimiento para dibujar el mapa de Karnaugh de una función depende
de la forma como tengamos expresada a la función. a continuación se hace una
enumeración incompleta de las formas en que podríamos tener representada a
la función.
Se dispone de una tabla para la función.
Se tiene a la función expresada en su forma canónica disyuntiva.
Se tiene a la función expresada en una forma normal disyuntiva.
No se tiene a la función en ninguna de estas formas, pero se tiene una
expresión de la misma.
A continuación ilustraremos estos caso con ejemplos.
Ejemplo 9.1 (Mapa a partir de la tabla de una función) Hallar el ma-
pa de Karnaugh de la siguiente función booleana f de B 3 en B denida por la
siguiente tabla:
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f (x, y, z)
1
0
1
1
1
0
1
0
Explicación:
Como tenemos la tabla de la función basta con colocar en la
tabla para el mapa de Karnaugh unos en las celdas correspondientes a los minitérminos donde la función toma el valor 1. Por ejemplo, la tabla de la función
indica que f (0, 0, 0) = 1, luego se coloca un 1 en la casilla correspondiente al
< 0, 0, 0 >, esto es, en primera casilla de la primera la. Haciendo el mismo
proceso con las restantes celdas de la tabla se obtiene:
x/yz
0
1
00
1
1
01
11
1
10
1
1
•
Ejemplo 9.2 (Mapa a partir de la forma canónica disyuntiva) Hallar el
mapa de Karnaugh de la función f (w, x, y, z) = w xyz + w xyz + wxyz + wxyz +
wxyz + wxyz + wxyz
Capítulo 9. Mapas de Karnaugh
18
Explicación:
Como la función está en su forma canónica disyuntiva cada
término genera un uno en el mapa de Karnaugh. Por ejemplo por el término
wxyz hay que colocar un 1 en la casilla 0011. Se obtiene el siguiente mapa:
wx/yz
00
01
11
10
00
01
1
1
11
1
1
10
1
1
1
•
Ejemplo 9.3 (Mapa a partir de una forma normal disyuntiva) Dibujar
el mapa de Karnaugh de la función f (w, x, y, z) = w + y z + w xy
Explicación:
Como tenemos la función escrita en una forma normal disyuntiva,
podemos ver que conjunto de unos genera cada término. Empezaremos por el
término con menos variables que introduce más unos. El termino w se satisface
cuando w vale 1 que es en las últimas dos la del mapaempiezan con 11 y 10
respectivamente. Esto agrega 8 unos al mapa. Luego el término y z se satisface
cuando tanto y como toman el valor ceroprimera columna del mapa, esto
agrega 4 nuevos unos al mapa (uno se sobre-escribe). Finalmente, el término
w xy se satisface cuando w y x son cero y y vale 1, esto introduce dos unos
en las últimas dos columnas de la primera la para dar el siguiente mapa de
Karnaugh
wx/yz
00
01
11
10
00
1
1
1
1
01
11
1
10
1
1
1
1
1
1
1
•
Nota bene: por supuesto que en el caso anterior se pudo haber obtenido la
forma canónica disyuntiva de la función y proceder como en el ejemplo anterior. Para ello se expande cada término multiplicándolo por xi + xi , para cada
variable xi que no aparezca en el término correspondiente.
Por último, si la función no aparece en ninguna de las formas anteriores, dependiendo de la destreza de cada quien se puede o bien transformar la función
hasta que corresponda con uno de los patrones anteriores o con un patrón dual.
Dada una función booleana cualquiera, sus conjunciones fundamentales se
pueden agrupar con otras lógicamente adyacentes para producir términos que
tienen menos factores. Estas agrupaciones se logran sólo si la función tiene
conjunciones fundamentales que sean lógicamente adyacente. En lo que sigue
9.1. Mapas de Karnaugh
V. Yriarte
19
mostraremos un procedimiento para lograr esto de una forma segura. Para ello
damos antes varios conceptos que nos ayudaran.
Denición 9.2 (Cubo de orden k) Un cubo de orden k (o k-cubo) es un sub-
conjunto de conjunciones fundamentales (o de disyunciones fundamentales) de
tamaño 2k en el que cada conjunción del sub-conjunto es adyacente a exactamente k conjunciones del subconjunto.
Nota: cuando en el mapa de Karnaugh lo construimos usando los unos tiene
sentido hablar de las conjunciones fundamentales, pero cuando lo construimos
usando los ceros entonces los cubos están formados por disyunciones fundamentales.
Denición 9.3 (Implicación) Dadas dos funciones f, g ∈ Fn , diremos que f
implica a g y lo denotaremos por f ⇒ g si y sólo si para todo x ∈ B n se tiene
que si f (x) = 1, entonces g(x) = 1 si y sólo si f −1 ({1}) ⊆ g −1 ({1}).
Note que si f ⇒ g y g ⇒ f , entonces f = g , y viceversa.
Cuando se tiene un k -cubo de una función f de Fn , la disyunción de sus
conjunciones fundamentales son equivalente a una conjunción con n−k literales,
y puesto que dicha conjunción implica a la función f se le llama implicante de f .
Cada uno de los mini-términos de un k -cubo implican a la conjunción formada
al simplicar la disyunción formada por los términos del k -cubo.
Denición 9.4 (Implicante) Un implicante de una función f , es una conjunción que implica a la función f .
Denición 9.5 (Cubo Primo) Un cubo primo (o implicante primo) es un
cubo que no está incluido dentro de ningún otro cubo.
Denición 9.6 (Cubo Primo Esencial) Un cubo primo se dice que es esencial para la representación de una función si y sólo dicho cubo cubre alguna
conjunción fundamental que que no cubre ningún otro cubo primo.
Denición 9.7 (Implicante Primo) Un implicante primo de una función f ,
es un implicante de la función f que proviene de un cubo primo de la función
f.
Denición 9.8 (Implicante Esencial) Un implicante esencial de una función f , es un implicante de la función f que proviene de un cubo primo esencial
de la función f .
Ejercicio 9.1 (Cubos e Implicantes) De la función f representada por el
siguiente mapa de Karnaugh halle los cubos primos y los cubos primos esenciales de la función f . Además halle los implicantes primos y los implicantes
primos esenciales de la función f .
Capítulo 9. Mapas de Karnaugh
20
wx/yz
00
01
11
10
00
1
01
1
1
11
1
1
1
10
1
1
Ejemplo 9.4 Dibuje el mapa de Karnaugh de la siguiente función f (w, x, y, z) =
(w + x)z + yx e indique cuales son los cubos primos y los cubos primos esen-
ciales.
Explicación:
Para evitar la manipulación algebraica consideremos la función g(w, x, y, z) =
(w + x)z + yx que es el complemento de f . Hallaremos el mapa de Karnaugh
de g y luego hallaremos el de f a partir del de g cambiando los ceros por unos
y los unos por ceros. El término wz toma el valor 1 cuando tanto la w como
la z toman el valor 1, esto ocurre en la intersección de las dos últimas las con
las dos columnas centrales; ver el primer mapa, Además, puesto que xz toma el
valor 1 ssi x toma el valor 0 y z toma el valor 1 lo cual ocurre en la intersección
de la primera y última la del mapa con las dos columnas centrales, esto introduce cuatro nuevos 1's al mapa dos de los cuales sobre-escriben a dos de los ya
presentes. Finalmente, puesto que que yx es 1 ssi tanto x como y toman el valor
1, esto ocurre en la intersección de las dos las centrales con las últimas dos
columnas, se agregan cuatro nuevos unos al mapa, uno de los cuales coincide
con uno ya agregado. Nos queda el segundo tablero.
wx/yz
00
01
11
10
00
01
11
1
1
1
1
10
wx/yz
00
01
11
10
00
01
1
1
1
11
1
1
1
1
10
1
1
Y nalmente el mapa de Karnaugh de f es
wx/yz
00
01
11
10
00
1
1
1
1
01
1
11
10
1
1
Los cubos primos son los conjuntos:
Las cuatro esquinas que forman un 2-cubo, ( en amarillo en mapa ) {wxyz, wxyz, wxyz, wxyz}
y se puede compactar a: xz .
La primera columna que forman un 2-cubo, {wxyz, wxyz, wxyz, wxyz} y se
puede compactar a: yz .
Las dos primeras columnas de la la que forman un 1-cubo, ( en azul en mapa )
{wxyz, wxyz, } y se puede compactar a: wxy .
9.2. Suma minimal de productos
21
V. Yriarte
Los cubos esenciales: en este caso todos los cubos primos son esenciales. El
primero por ser el único cubo primo que cubre a wxyz y a wxyz ; el segundo por
ser el único que cubre a wxyz y el tercero por ser el único que cubre a wxyz .
wx/yz
00
01
11
10
00
1
1
1
1
01
1
11
10
1
1
•
9.2.
Suma minimal de productos
Nuestro próximo objetivo es hallar una expresión de una función en forma
normal disyuntiva que sea minimal.
Denición 9.9 (Suma minimal de productos) Diremos que una forma normal de una función es una suma minimal de productos cuando ella satisface las
siguientes dos condiciones:
1. no existe otra expresión equivalente que incluya menos términos.
2. no existe otra expresión equivalente con el mismo número de términos y
con menos literales.
¾Cómo hallar una suma minimal de productos?
El mapa de Karnaugh de una función se puede usar para obtener diversas
formas de expresar a dicha función como suma de productos. En particular se
puede usar para obtener la o las expresiones de la función como suma minimal
de productos si seguimos el procedimiento que se describe a continuación.
1. Hallar los cubos primos de la función.
2. Seleccionar de entre los cubos primos los cubos esenciales, si los hay. Ellos
deben aparecer en cualquier suma minimal.
3. Se pueden presentar dos situaciones, a saber:
a ) Los cubos esenciales cubren todos los 1 de la función. Entonces, en
dicho caso, la suma que usa sólo a los esenciales es minimal.
b ) Existe un conjunto de
unos que no son cubiertos por los esenciales.
Entonces hay que seleccionar de entre los cubos primos no esenciales
un conjunto minimal que cubra los unos no cubiertos por los esenciales y sumar los términos seleccionados con los correspondientes a
los esenciales.
Capítulo 9. Mapas de Karnaugh
22
Ejemplo 9.5
Explicación:
•
Ejercicio 9.2
9.3.
xy
00
01
10
11
Funciones de Conmutación
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
1
0
0
f4
1
0
0
0
f5
0
1
1
1
f6
1
0
1
1
f7
1
1
0
1
f8
1
1
1
0
f9
0
1
1
0
f10
1
0
0
1
f11
0
0
1
1
f12
0
1
0
1
f13
0
0
1
1
1. f0 : f0 (x, y) = 0. Función constante 0.
2. f1 : f1 (x, y) = xy . Es la función AND.
3. f2 : f2 (x, y) = xy
4. f3 : f3 (x, y) = xy
5. f4 : f4 (x, y) = x y = x + y (NOR)
6. f5 : f5 (xy) = x + y . Es la función OR. (Dual de AND)
7. f6 : f6 (x, y) = x + y
8. f7 : f7 (x, y) = x + y .
9. f8 : f8 (x, y) = x + y = xy . (NAND)
10. f9 : f9 (x, y) = xy + xy . (EXOR)
11. f10 : f10 (x, y) = xy + x y . (NEXOR)
12. f11 : f11 (x, y) = x. Transferencia de x.
13. f12 : f12 (x, y) = y . Transferencia de y .
14. f13 : f13 (x, y) = x. Negado de x.
15. f14 : f14 (x, y) = y . Negado de y .
16. f15 : f15 (x, y) = 1. Función constante 1 (Dual y complemento de f0 .)
Ejercicio 9.3 Liste cada una de las funciones booleanas de la tabla anterior
con su complemento.
f14
1
0
1
0
f15
1
1
1
1
9.4. Circuitos digitales
23
V. Yriarte
Denición 9.10 Dada una función booleana f (x1 , . . . , xn ) en Fn , se dene su
dual como
fD (x1 , . . . , xn ) = f (x1 , . . . , xn )
Ejercicio 9.4 Muestre que el dual del dual de una función es la función origi-
nal.
Ejercicio 9.5 Liste cada una de las funciones booleanas de la tabla anterior con
su dual. ¾Cuáles duales coinciden con la función original? En otras palabras,
¾cuáles son auto- duales?
9.4.
Circuitos digitales
Para representar un circuito digital se usan generalmente los siguientes circuitos básicos.
Nombre
Fórmula
OR
x+y
.
AND
xy
.
Circuito
NOT
x
.
Por ejemplo la representación de la función f (x, y, z) = xy + xz es:
y
x
xy + xz
z
.
x
Ejercicio 9.6 Construya circuitos para las funciones NOR, NAND, EXOR,
NEXOR, usando los circuitos básicos dados en la tabla anterior.
9.5.
Funciones Parciales
Todas las funciones que hemos representado y minimizado hasta los momentos han sido funciones totales, esto es, funciones booleanas en las que a todos los
elementos de B n la función le asigna un valor de B . Sin embargo hay casos en los
que la función booleana que usamos para modelar a la función que necesitamos
representar no es total, esto es no le asigna valor a todos los elementos de B n .
En dichos casos podemos aprovecharnos de ello para obtener una expresión más
compacta de la misma. Por ejemplo, si el número de elementos del conjunto de
partida de la función que queremos modelar no en 2n para algún n, la función
booleana no podrá ser total.
Diremos que la función que estamos especicando tiene ciertas condiciones de
indiferencia (don't care), esto es, como en la función original (lo que representa
Capítulo 9. Mapas de Karnaugh
24
la función original) nunca se necesitará evaluar la función en ciertos valores, no
importa si para dichos valores le asignamos en una nueva función extendida los
0 ó 1 dependiendo de nuestra conveniencia.
9.6.
Aplicaciones
9.7. Ejercicios
9.7.
V. Yriarte
25
Ejercicios
1. Use sólo transformaciones algebraicas para hallar la forma canónica conjuntiva de la función f (x, y, z) = x + yz . Repita el ejercicio con la función
g(w, x, y.z) = yz + xz .
2. Supongamos que x, y.z son tres variables booleanas que representan los
votos de tres personas X, Y, Z respectivamente que toman el valor 1 si la
persona correspondiente votó a favor de cierta propuesta y cero en caso
contrario. Denimos a f : B 3 → B como la función que toma el valor 1 si
la mayoría votó a favor y 0 en caso contrario.
a ) Construya la tabla (de verdad) de la función f .
b ) Halle la forma canónica disyuntiva de la función f .
c ) Halle directamente a partir de la tabla la forma canónica conjuntiva
de f .
d ) Manipule algebráicamente el resultado de 3) para obtener el de 2).
e ) Halle una expresión de f como suma minimal de productos.
3. Dada una función booleana f (x1 , . . . , xn ) en Fn , se dene su dual como
fD (x1 , . . . , xn ) = f (x1 , . . . , xn )
Obtenga las funciones duales de las siguientes funciones:
a ) f (x, y, z) = (x + z)(xy + xyz)
b ) g(x, y, z) = x(y + z)x(yz + yz)
4. Dibujar el circuito dado por la siguiente función:
f (v, w, x, y, z) = ((v + x)(w + y) + xz)(w + z)
5. Una función se dice que es autodual si y sólo si coincide con su dual.
Mostrar una función booleana de tres variables que sea autodual.
6. Una máquina para clasicar la fuerza de un individuo tiene como entrada
cuatro variables booleanas w, x, y, z . La primera de las variables toma el
valor 0 si y sólo si el usuario es femenino y 1 si es masculino. Las siguientes
tres variables representan el valor de la fuerza f que está entre 0 y 7 ambos
incluidos, si el usuario es fémina o entre 1 y 7 ambos incluidos, en caso
contrario. En el caso de ser mujer, una fuerza menor que 3 es baja, mayor
o igual que 3 pero menor que 6 es normal y mayor que 5 es alta. De no
ser mujer, la fuerza es baja si es menor que 4, normal si mayor que 3 pero
menor que 7 y alta si es 7.
a ) Escriba las tablas de las funciones baja: B , normal: N y alta: A.
Capítulo 9. Mapas de Karnaugh
26
b ) Para la función N , escriba un mapa de Karnaugh que use los mini-
términos de la función y halle una suma-minimal-de-productos. Debe
indicar cuáles son los cubos primos y los cubos esenciales.
c ) Repita el ejercicio anterior con los maxi-términos para hallar un
producto-producto-de-sumas.
d ) ¾Cuál de las dos representaciones es mejor?
7. Use mapas de Karnaugh para hallar:
a ) la forma normal disyuntiva optima y
b ) la forma normal conjuntiva optima
de la función f (w, x, y, z) =
∑
m
(1, 6, 11, 12, 13, 15)+d(5, 7). En cada caso:
a ) indique cuáles son los cubos primos y los esenciales.
b ) indique cuál es el número de operaciones (not, or y and).
c ) dibuje los circuitos.
Por último compare los dos casos.
8. Consideremos el conjunto Fn de las funciones booleanas en las variables
x, y, z . Si denotamos por X, Y, Z a los sub-conjuntos de {0, 1}3 donde
x, y, z toman los valores 1 respectivamente y a B 3 como el universo del
discurso, se puede representar en un diagrama de Venn los sub-conjuntos
X, Y, Z y cualquier función en Fn .
a ) Dibuje un cuadrado que represente a {0, 1}3 y en su interior dibuje
óvalos que representen a X, Y, Z y los elementos en cada región.
b ) ¾Qué puede decir de las adyacencias físicas con respecto a las adyacencias lógica?
9. Dibuje un diagrama de Venn de las siguientes funciones:
a ) f (x, y, z) = xyz + xyz + xyz
b ) y + yz
10. Halle el mapa de Karnaugh de la función booleana f (x, y, z) = z+wz+wxy
directamente, esto es, sin pasar por la forma canónica disyuntiva. Luego
exprésela como suma minimal de productos. Indique cuáles son los cubos
primos y los esenciales.
11. Obtener los implicantes primos y los primos esenciales de las siguientes
funciones:
∑
a ) f (w, x, y, z) = m (0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15)
∑
b ) g(v, w, x, y, z) = m (0, 1, 2, 5, 10, 11, 14, 15, 16, 17, 18, 21, 26)
c ) h(w, x, y, z) = ΠM (0, 2, 6, 7, 8, 10, 11, 15)
9.7. Ejercicios
V. Yriarte
27
d ) i(v, w, x, y, z) = ΠM (0, 2, 3, 4, 5, 7, 11, 13, 15, 18, 19, 21, 23, 27, 29, 31)
12. Obtener los implicantes primos y los primos esenciales de las siguientes
funciones:
∑
a ) f (w, x, y, z) = m (2, 6, 8, 9, 10) + d(0, 1, 3, 11)
∑
b ) g(v, w, x, y, z) = m (4, 7, 9, 12, 17, 18, 19) + d(0, 3, 11)
c ) h(w, x, y, z) = ΠM (0, 3, 7, 11, 13)d(2, 4, 6, 12)
d ) i(v, w, x, y, z) = ΠM (2, 8, 11, 12, 24, 25, 29)d(0, 6, 30)
13.
1. Escriba una función booleana que reciba como entrada un número entero
n tal que 0 ≤ n ≤ 15 anotado en notación binaria como una palabra wxyz
y de como salida un 1 si n es múltiplo de 4 y 0 en caso contrario. Halle
una expresión de la función como una suma minimal de conjunciones y
dibuje el circuito lógico que implementa dicha función.
Descargar