Está en la página 1de 8

S11: OPTIMIZACIÓN DE EXPRESIONES BOOLEANAS

Por optimización o simplificación de una función lógica se entiende la obtención de su


expresión mínima.

La obtención de la expresión más simplificada es muy útil al momento de realizar la


implementación física del circuito ya que reduce la complejidad y el costo del mismo.

Existen diversos métodos de simplificación, los más usuales son:

i) Método algebraico (visto anteriormente)


ii) Método gráfico de Karnaugh - Maurice Karnaugh físico americano nacido en
octubre de 1924 en la ciudad de Nueva York famoso por los mapas con su
nombre utilizados en algebra Booleana.
iii) Método numérico de Quine-McCluskey Willard Van Orman Quine filósofo
americano que estudió lógica, nacido en junio de 1908. Edward J. McCluskey
pionero de la ingeniería eléctrica nacido en octubre de 1929 en Nueva jersey.
(Método programable).

Espacio booleano

Antes de desarrollar los métodos de simplificación, y para su mayor comprensión


recordamos la representación cúbica de las funciones del álgebra de Boole.

Donde, el espacio booleano nace de la representación geométrica de los números


binarios en un espacio 𝑛-dimensional. La representación que realizamos mediante
cubos-𝑛, consideramos la representación para 𝑛 = 0,1,2,3 𝑦 4:
Todos los puntos adyacentes en los cubos- 𝑛 difieren en un solo bit, como se puede ver
por ejemplo en el cubo 3, tomando dos puntos adyacentes 000 y 010, se escriben los
valores para las variables X,Y y Z respectivamente, en suma de productos y se tiene:

𝐹 = 𝑤𝑥̅ 𝑦𝑧 + 𝑤𝑥𝑦𝑧 + 𝑤𝑥𝑦̅𝑧

La variable x cambia de valor mientras que w,y,z permanecen inalterables esto significa
que x puede ser eliminada de la expresión booleana (términos pintados de amarillo);
por otra parte el término pintado de celeste puede ser simplificado utilizando
nuevamente el segundo término pintado de amarillo, donde se factoriza las variables
wxz.

Aplicando las propiedades respectivas se obtiene:

𝐹 = 𝑤𝑦𝑧(𝑥̅ + 𝑥) + 𝑤𝑥𝑧(𝑦 + 𝑦̅)


𝐹 = 𝑤𝑦𝑧(1) + 𝑤𝑥𝑧(1) = 𝑤𝑦𝑧 + 𝑤𝑥𝑧

Este proceso se cumple para cualquier par de puntos adyacentes en los diferentes
cubos- 𝑛.

Los cubos-𝑛 son diagramas en un espacio discreto multidimensional, que son el


fundamento de los mapas de Karnaugh y también del método de Quine-McCluskey.

• Implicantes

Un implicante es un mintérmino que aparece en cualquier expresión de la función 𝑓.


Implicante Primo (IP), es cualquier cubo de una función que no esté totalmente
contenido en otro cubo mayor de la función f, en otras palabras, es un implicante que
no puede reducirse más. Implicante primo esencial (IPE) es un IP que debe aparecer
necesariamente en cualquier expresión de 𝑓 y que no es sub conjunto de otro implicante
primo. En el ejemplo anterior, el término: 𝑥̅ 𝑧̅, representa un implicante.

Método Algebraico

Para la simplificación de expresiones booleanas por el método algebraico, no sólo


bastará con conocer todas las propiedades y postulados del álgebra de Boole, también
es importante desarrollar una cierta habilidad lógico-matemática que se adquiere
básicamente con la práctica. Este método se ha estado manejando en los anteriores
puntos por lo que, a manera de recordar, se dará un ejemplo de simplificación.

Ejemplo 1

Simplificar la siguiente función:

𝑓 = 𝑎̅𝑐̅ + 𝑎𝑏𝑐 + 𝑏𝑐̅ + 𝑎̅𝑏̅ 𝑐 + 𝑎̅𝑏𝑐

Observando cada uno de los términos se puede ver que hay factores comunes: en el 2º
y 5º términos donde el producto de las variables b y c se repite, en los términos 4º y 5º
se repite a̅c lo que luego de aplicar la distributividad lleva a :

𝑓 = 𝑎̅𝑐̅ + 𝑏𝑐̅ + 𝑏𝑐(𝑎 + 𝑎̅) + 𝑎̅𝑐(𝑏 + 𝑏̅)

Es importante notar en el paso anterior que el término 5º se utiliza dos veces, esto se
justifica por la aplicación del postulado de idempotencia; ahora se utilizará el elemento
simétrico para obtener:

𝑓 = 𝑎̅𝑐̅ + 𝑏𝑐̅ + 𝑏𝑐 + 𝑎̅𝑐

Repitiendo nuevamente el proceso:

𝑓 = 𝑎̅(𝑐 + 𝑐̅) + 𝑏(𝑐 + 𝑐̅) = 𝑎̅ + 𝑏

Método Gráfico de Karnaugh

El método gráfico de Karnaugh consiste en formar diagramas, también llamados mapas


de Karnaugh o mapas K, cada diagrama o mapa tendrá 2n cuadros siendo n el número
de variables dispuestos en una estructura tipo matriz. Cada cuadro representa una de
las diferentes combinaciones posibles de las variables de la función y se disponen de tal
forma que se puede pasar de un cuadro a otro en las direcciones horizontal o vertical,
cambiando únicamente el valor de una variable, ya sea de su forma negada a la directa
o viceversa.

Se suele poner parte de las variables de la función en la cabecera de la matriz con sus
respectivas combinaciones y en la parte de más a la izquierda como una primera
columna con las combinaciones respectivas el resto de las variables, en ambos casos
siempre siguiendo la condición mencionada en el anterior párrafo; también es habitual
poner las combinaciones de los valores binarios que toman las diferentes variables y los
valores en decimal al que corresponde cada casilla de la matriz.
Con fines de una mayor explicación a continuación, se puede observarse los mapas, para
dos, tres y cuatro variables, con todas las combinaciones posibles de las variables, sus
valores en binario y el valor en decimal al que corresponde cada casilla.

La disposición de las variables en los mapas K, no son fijos se pueden poner en columnas
o filas, el único requisito es mantener la regla de adyacencia o distancia 1 y las variables
que van juntas deben corresponder a bits consecutivos: 1111 es abcd, no las puedo
separar indiscriminadamente o sea ac y bd sería una separación errónea.


𝑨 𝑨 ഥ𝑩
𝑨 ഥ 𝑨 ഥ
ഥ 𝑩 𝑨𝑩 𝑨𝑩 ഥ𝑩
𝑨 ഥ 𝑨 ഥ
ഥ 𝑩 𝑨𝑩 𝑨𝑩
0 1 00 01 11 10 00 01 11 10

𝑩 ഥ
𝑪 ഥ𝑫
𝑪 ഥ
0 0 2 0 0 2 6 4 00 0 4 12 8
𝑩 𝑪 ഥ𝑫
𝑪
1 1 3 1 1 3 7 5 01 1 5 13 9
𝑪𝑫
11 3 7 15 11
2 VARIABLES 3 VARIABLES 𝑪𝑫ഥ
10 2 6 14 10

4 VARIABLES

Es importante remarcar que la notación utilizada acá, puede ser modificada u omitir
alguna información que se considere redundante además la disposición de las variables
en las filas y columnas de los mapas es arbitraria, no siendo así la asignación de los
valores en los cuadros que dependerán estrictamente de la ubicación y combinación
exacta de las variables, tomando en cuenta que para realizar una buena asignación no
deben variar de un cuadro a otro en más de una variable; éste aspecto se justifica con la
representación del espacio booleano con hipercubos como se vio anteriormente.

También es frecuente numerar cada celda con el número decimal correspondiente al


término canónico que albergue, para facilitar el trabajo a la hora de obtener la función
simplificada.

Para simplificar una función lógica por el método de Karnaugh se seguirán los siguientes
pasos:

i) Se dibuja el mapa correspondiente al número de variables de la función a


simplificar.

ii) Se coloca un 1 en las casillas correspondientes a los min términos canónicos


que forman parte de la función, las demás son ceros que por razones prácticas
no será escribir. Para los Max términos, anotaremos 0 en las casillas
correspondientes
iii) Se agrupan mediante lazos los unos de casillas adyacentes siguiendo
estrictamente las siguientes reglas:

a) Dos casillas son adyacentes cuando se diferencian únicamente en el


cambio de estado de una sola variable.
b) Cada lazo de agrupación debe contener el mayor número de unos
posible, siempre que dicho número sea potencia de dos (1, 2, 4, 8, etc.)
c) Los lazos pueden quedar superpuestos y no importa que haya casillas
que sean utilizadas por dos o más lazos diferentes.
d) Se debe tratar de conseguir el menor número de lazos con la mayor
cantidad de unos posible.

iv) La función simplificada tendrá tantos términos como lazos posea el mapa.
Cada término se obtiene eliminando la o las variables que cambien de estado
en el mismo lazo, manteniendo por lo tanto sólo las variables que en cada
lazo no cambian de valor.

Este método se emplea fundamentalmente para simplificar funciones de hasta cuatro


variables ya que, para más, es susceptible de cometer errores. Para un número superior
utilizan otros métodos como el numérico.

Ejemplo 2

Realizando la simplificación de una misma función 𝑓 de tres variables, a partir de sus dos
formas canónicas:

𝑓(𝐴, 𝐵, 𝐶) = ∑ min(0,2,3,4,7) = ∏ 𝑀𝑎𝑥 (1,5,6)

De acuerdo con los pasos vistos anteriormente, el diagrama de cada función quedará
del siguiente modo:

𝑓(𝐴, 𝐵, 𝐶) = 𝛴 min(0,2,3,4,7) 𝑓(𝐴, 𝐵, 𝐶) = ∏ Max(1,5,6 )

ഥ𝑩
𝑨 ഥ 𝑨
ഥ 𝑩 𝑨𝑩 𝑨𝑩ഥ ഥ𝑩
𝑨 ഥ 𝑨 ഥ
ഥ 𝑩 𝑨𝑩 𝑨𝑩
00 01 11 10 00 01 11 10

𝑪 1 1 1 ഥ
𝑪 0
0 0 2 6 4 0 0 2 6 4
𝑪 1 1 𝑪 0 0
1 1 3 7 5 1 1 3 7 5

La función simplificada para el caso de la SdP tendrá tres términos y dos en el PdS.

Analizando en el mapa correspondiente a la suma de productos, se observa que en el


lazo 1 (valores en decimal 0 y 4) cambia la variable A en la celda 0 es negada y en la celda
4 es directa por lo que el término no contendrá a la variable A y será: 𝐵̅ 𝐶̅ , en el lazo 2
(valores en decimal 2 y 3) la variable que cambia es C el término es 𝐴̅𝐵 y en el lazo 3
(valores en decimal 3 y 7) vuelve a cambiar A, el término es 𝐵𝐶; por lo tanto, la ecuación
simplificada es:

𝑓 = 𝐵̅ 𝐶̅ + 𝐴̅𝐵 + 𝐵𝐶

Haciendo un procedimiento similar en el mapa de productos de sumas el lazo 1 (de la


casilla 6) como es una sola casilla se anotan todas las variables en forma de suma y el
lazo2 (casillas 1 y 5) cambia la variable A, quedará la expresión siguiente:

𝑓 = (𝐴̅ + 𝐵̅ + 𝐶)(𝐵 + 𝐶̅ )

Ejemplo 3

Sea la función: 𝑓 = ∑ 𝑚𝑖𝑛 (1,3,4,5,7,12,14,15), obtener la función simplificada en


minterminos:
ഥ𝑩
𝑨 ഥ ഥ𝑩
𝑨 𝑨𝑩 ഥ
𝑨𝑩
00 01 11 10
ഥ𝑫
𝑪 ഥ
1 1
00 0 4 12 8
ഥ𝑫
𝑪 1
1
01 1
5 13 9
𝑪𝑫 1 1 1
11 3 7 15 11

𝑪𝑫 1
10 2 6 14 10

ഥ𝐷
Leemos el mapa: 𝑓 = 𝐵𝐶 ഥ +𝐴
ഥ 𝐷 + 𝐴𝐵𝐶

Como se dijo anteriormente, debemos tratar de conseguir la menor cantidad de lazos


posible, podemos ver que las casillas 4 y 5 son adyacentes, también las casillas 7 y 15;
sin embargo, no pusimos lazos ahí pues cada casilla ya pertenece a por lo menos un
lazo, lo que hace que ya no sea necesario aumentar más lazos.

Funciones incompletamente especificadas

Se dice que una función está incompletamente especificada, cuando alguno(s) de sus
términos no tienen definida su salida, estas funciones pueden ser representadas en
cualquiera de sus dos formas canónicas de la manera siguiente:

− 𝑓(𝑥1, 𝑥2 , … , 𝑥𝑛 ) = ∑ min(𝑚1 , 𝑚2 , … 𝑚𝑘 ) + 𝑑(𝑚𝑗 , … 𝑚𝑙 ) SdP

− 𝑓(𝑥1, 𝑥2 , … , 𝑥𝑛 ) = ∏ 𝑀𝑎𝑥 (𝑀1 , 𝑀2 , … 𝑀𝑘 ) + 𝑑(𝑚𝑗 , … 𝑚𝑙 ) PdS

En el caso de una función incompletamente especificada, se pone una x en la función de


salida, en los términos no especificados, en el mapa K, se pone esa x, en los cuadros
correspondientes y se los utiliza si es necesario para lograr una mayor simplificación.
Ejemplo 4: Sea la función: 𝑓 = ∑ 𝑚𝑖𝑛 (1,3,4,5,7,12,14,15) + ∑ 𝑑(10,11), obtener la
función simplificada en min términos:

Estamos cambiando la función del ejemplo 3, a una función incompletamente especificada


añadiendo dos términos el 10 y el 11, pondremos x en estos dos términos y utilizaremos las x si
es necesario para simplificar más y mejor la expresión.

ഥ𝑩
𝑨 ഥ ഥ𝑩
𝑨 𝑨𝑩 ഥ
𝑨𝑩
00 01 11 10
ഥ𝑫
𝑪 ഥ
1 1
00 0 4 12 8
ഥ𝑫
𝑪 1
1
01 5
1 13 9
𝑪𝑫 1 1 ഥ𝐷ഥ +𝐴
ഥ 𝐷 + 𝐶𝐷 + 𝐴𝐶
7
1 x 𝑓 = 𝐵𝐶
11 3 15 11

𝑪𝑫 1 x
10 2 6 14 10

TAREA S11

1. Completar con los valores en decimal y binario de los mapas siguientes:

ഥ𝒛̅
𝒚 ഥ𝒛
𝒚 𝒚𝒛 𝒚𝒛̅ ഥ𝒛̅
𝒚 𝒚𝒛̅ 𝒚𝒛 ഥ𝒛
𝒚
00 01 11 10 00 10 11 01

ഥ ഥ𝒙
𝒘 ഥ ഥ𝒙
𝒘
00 00

ഥ𝒙
𝒘 ഥ
𝒘𝒙
01 10
𝒘𝒙 𝒘𝒙
11 11

𝒘𝒙 ഥ𝒙
𝒘
10 01

2. Sean las soluciones del ejemplo 2: por min términos y por Max términos. Verificar
que son la misma función.

𝑓(𝐴, 𝐵, 𝐶) = ∑ min(0,2,3,4,7) = ∏ 𝑀𝑎𝑥 (1,5,6)


i) Sea la forma simplificada en min términos:

𝑓 = 𝐵̅ 𝐶̅ + 𝐴̅𝐵 + 𝐵𝐶

ii) Sea la forma simplificada en Max términos:

𝑓 = (𝐴̅ + 𝐵̅ + 𝐶)(𝐵 + 𝐶̅ )

3. Sea la función del ejemplo 3, resolverla por simplificación en Max términos

𝑓 = ∑𝑚𝑖 𝑛 (1,3,4,5,7,12,14,15)

4. Sea la función 𝐺 = ∑ 𝑚𝑖𝑛 (4,8,10,11,12,15) + ∑ 𝑑 (9,14), encontrar su expresión


más simplificada expresada en Max términos.

5. Sea la función: 𝐺 = ∏(4,5,6,7,13,14,15) + ∑ 𝑑(12), encontrar su expresión más


simplificada en min términos.
ഥ𝐷
6. Sea la función: 𝑓 = 𝐵𝐶 ഥ + 𝐷(𝐴
ഥ + 𝐶) + 𝐴𝐶 + 𝐵𝐶𝐷, obtener su expresión más

pequeña utilizando los mapas k.

También podría gustarte