Aprende › Tema 4
Mapas de Karnaugh de 2, 3 y 4 variables con condiciones X
Lectura de 7 min · Equipo bitGateLab
Simplificar con álgebra de Boole funciona, pero depende de que "veas" qué ley aplicar. El mapa de Karnaugh convierte esa búsqueda en un ejercicio visual: acomoda la tabla de verdad en una cuadrícula donde las celdas vecinas difieren en una sola variable, y simplificar se vuelve encerrar grupos de unos. Aquí vas a aprender a construir mapas de 2, 3 y 4 variables, a agrupar correctamente (incluidos los bordes que "dan la vuelta") y a aprovechar las condiciones "no importa".
La idea: celdas vecinas, una variable de diferencia
La ley de adyacencia dice que AB + AB = A: dos términos que difieren en una sola variable se fusionan y esa variable desaparece. El mapa de Karnaugh acomoda los minitérminos de manera que cualquier par de celdas que comparten un lado cumplan esa condición. Para lograrlo, los encabezados de filas y columnas no siguen el orden binario 00, 01, 10, 11, sino el código Gray: 00, 01, 11, 10. Entre dos valores consecutivos cambia solo un bit, y también entre el último y el primero (10 y 00). Por eso el mapa se comporta como si sus bordes opuestos estuvieran pegados.
Mapas de 2 y 3 variables
El mapa de dos variables tiene 4 celdas: A en las filas y B en las columnas. El de tres variables tiene 8 celdas: A en las filas y BC en las columnas, en orden Gray. El número dentro de cada celda indica el minitérmino que le corresponde:
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | m0 | m1 | m3 | m2 |
| 1 | m4 | m5 | m7 | m6 |
Fíjate que m3 y m2 quedan en ese orden: es el efecto del código Gray, y la causa de muchos errores al llenar el mapa a mano.
Reglas de agrupación
- Los grupos solo pueden contener unos (o X, como verás más adelante), nunca ceros.
- El tamaño de cada grupo debe ser una potencia de 2: 1, 2, 4, 8 o 16 celdas.
- Los grupos son rectángulos de celdas adyacentes, incluyendo la adyacencia a través de los bordes. Las diagonales no cuentan.
- Haz cada grupo lo más grande posible: un grupo de 2k celdas elimina k variables.
- Usa la menor cantidad de grupos que cubra todos los unos. Los grupos pueden traslaparse.
Para leer un grupo, revisa cada variable: si conserva el mismo valor en todas las celdas del grupo, aparece en el término (sin barra si vale 1, con barra si vale 0); si cambia, se elimina.
Ejemplo 1: tres variables. Simplifica F(A, B, C) = Σm(1, 3, 4, 5, 7).
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
- Las columnas 01 y 11 están completas: un grupo de 4 (m1, m3, m5, m7). En él A cambia, B cambia y C siempre vale 1. Término: C.
- Queda m4. Se agrupa con m5 (vecino a la derecha): A = 1, B = 0 en ambas, C cambia. Término: AB.
- F = C + AB.
Comprueba m6 (110): C = 0 y AB = 0, así que F = 0, igual que en el mapa.
Mapa de 4 variables y adyacencia en los bordes
Con cuatro variables el mapa tiene 16 celdas: AB en las filas y CD en las columnas, ambos en orden Gray.
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | m0 | m1 | m3 | m2 |
| 01 | m4 | m5 | m7 | m6 |
| 11 | m12 | m13 | m15 | m14 |
| 10 | m8 | m9 | m11 | m10 |
La columna izquierda es vecina de la derecha, y la fila superior es vecina de la inferior. En consecuencia, las cuatro esquinas (m0, m2, m8, m10) forman un grupo válido de 4 celdas: en todas B = 0 y D = 0, así que se leen como BD.
Ejemplo 2: grupos que cruzan los bordes. Simplifica F(A, B, C, D) = Σm(0, 1, 2, 5, 8, 9, 10).
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 1 | 1 | 0 | 1 |
| 01 | 0 | 1 | 0 | 0 |
| 11 | 0 | 0 | 0 | 0 |
| 10 | 1 | 1 | 0 | 1 |
- m0, m1, m8, m9: columnas 00 y 01 de las filas superior e inferior (vecinas por el borde). B = 0 y C = 0. Término: BC.
- m0, m2, m8, m10: las cuatro esquinas. Término: BD.
- Queda m5 (0101). Su mejor vecino con 1 es m1 (0001): A = 0, C = 0, D = 1 y B cambia. Término: ACD.
- F = BC + BD + ACD.
Pasaste de 7 minitérminos de 4 literales (28 literales) a 3 términos con 7 literales en total.
Condiciones "no importa" (X)
A veces ciertas combinaciones de entrada nunca ocurren, o su salida no tiene consecuencias. Por ejemplo, en un dígito BCD los códigos 1010 a 1111 no existen. En esos renglones se escribe una X (también llamada don't care) y se anota aparte como d(...). Al agrupar, cada X puede tomarse como 1 si te ayuda a formar un grupo más grande, o ignorarse si no. Nunca hace falta cubrir una X.
Ejemplo 3: con condiciones X. Simplifica F(A, B, C, D) = Σm(1, 3, 7, 11, 15) + d(0, 2, 5).
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | X | 1 | 1 | X |
| 01 | 0 | X | 1 | 0 |
| 11 | 0 | 0 | 1 | 0 |
| 10 | 0 | 0 | 1 | 0 |
- La columna CD = 11 está llena (m3, m7, m15, m11): término CD.
- Falta m1. Tomando las X de m0 y m2 como unos, la fila superior completa es un grupo de 4: término AB.
- F = CD + AB.
Hay otra solución igual de buena: tomar la X de m5 y agrupar m1, m3, m5, m7, que da AD. Entonces F = CD + AD. Las dos tienen 2 términos y 4 literales, y ambas coinciden en todos los renglones que sí importan. Que una función tenga más de una forma mínima es normal.
Errores comunes
- Ordenar los encabezados en binario (00, 01, 10, 11) en vez de Gray. El mapa deja de tener vecinos de una sola variable y los grupos salen mal.
- Formar grupos de 3 o 6 celdas. Solo valen potencias de 2.
- Olvidar la adyacencia de los bordes y de las cuatro esquinas, lo que deja grupos más pequeños de lo necesario.
- Agregar un grupo cuyas celdas ya están todas cubiertas por otros. Sobra y añade compuertas.
- Obligarte a cubrir las X. Solo se usan cuando agrandan un grupo.
Pruébalo en el simulador
El módulo de mapas de Karnaugh acomoda la función en orden Gray, marca los grupos y escribe la expresión mínima, así que puedes comparar tu agrupación con la que propone la herramienta.
- Crea una función de cuatro variables y captura los unos del ejemplo 2.
- Agrupa tú primero en papel y escribe tu resultado.
- Observa los grupos que marca el mapa y la expresión resultante; si difiere de la tuya, revisa qué grupo no era máximo.
- Captura el ejemplo 3 marcando como X las celdas 0, 2 y 5, y observa cómo cambia la simplificación al quitar esas X.
- Convierte el resultado a circuito y cambia las entradas para confirmar que coincide con la tabla.
Ejercicios
- Simplifica F(A, B, C) = Σm(0, 2, 4, 6).
Respuesta
Las columnas BC = 00 y BC = 10 son vecinas por el borde y están llenas. En las cuatro celdas C = 0: F = C.
- Simplifica F(A, B, C, D) = Σm(0, 2, 5, 7, 8, 10, 13, 15).
Respuesta
Esquinas: BD. Bloque central m5, m7, m13, m15: BD. F = BD + BD, que es la XNOR de B y D.
- Simplifica F(A, B, C, D) = Σm(4, 5, 6, 7, 12, 13, 14, 15).
Respuesta
Las filas AB = 01 y AB = 11 forman un grupo de 8; solo B se mantiene en 1. F = B.
- Un dígito BCD (A es el bit más significativo) debe encender una salida cuando vale 5 o más. Simplifica F = Σm(5, 6, 7, 8, 9) + d(10, 11, 12, 13, 14, 15).
Respuesta
Con las X, las filas AB = 11 y AB = 10 forman un grupo de 8: A. El bloque m5, m7, m13, m15 da BD y el bloque m6, m7, m14, m15 da BC. F = A + BD + BC = A + B(C + D).
Cuando hay más de cuatro o cinco variables el mapa se vuelve difícil de leer; para esos casos existe un procedimiento tabular, el método de Quine-McCluskey.