Formas canónicas (álgebra de Boole)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En Álgebra booleana, se conoce como término canónico de una función lógica a todo producto o suma en la cual aparecen todas las variables en su forma directa o inversa. Una Función lógica que está compuesta por operador lógico puede ser expresada en forma canónica usando los conceptos de minterm y maxterm. Todas las funciones lógicas son expresables en forma canónica, tanto como una "suma de minterms" como "producto de maxterms". Esto permite un mejor análisis para la simplificación de dichas funciones, lo que es de gran importancia para la minimización de circuitos digitales.

Una función booleana expresada como una disyunción lógica (OR) de minterms es usualmente conocida la "suma de productos", y su Dual de Morgan es el "producto de sumas", la cual es una función expresada como una conjunción lógica (AND) de maxterms.

Minitérminos[editar]

Para una función booleana de n variables {x_1,...x_n}, un producto booleano en el que cada una de las n variables aparece una sola vez (negada o sin negar) es llamado minitérmino. Es decir, un minitérmino es una expresión lógica de n variables consistente únicamente en el operador conjunción lógica (AND) y el operador complemento o negación (NOT).

Por ejemplo, abc, ab'c y abc' son ejemplos de minterms para una función booleana con las tres variables a, b y c.

Indexando minitérminos[editar]


   \begin{array}{|c|c l||c|c|c|}
      \hline
      n & m & & a & b & c \\
      \hline
      0 & m_0= & a'b'c'& 0 & 0 & 0 \\
      1 & m_1= & a'b'c & 0 & 0 & 1 \\
      2 & m_2= & a'b c'& 0 & 1 & 0 \\
      3 & m_3= & a'b c & 0 & 1 & 1 \\
      4 & m_4= & a b'c'& 1 & 0 & 0 \\
      5 & m_5= & a b'c & 1 & 0 & 1 \\
      6 & m_6= & a b c'& 1 & 1 & 0 \\
      7 & m_7= & a b c & 1 & 1 & 1 \\
      \hline
   \end{array}

En general, uno asigna a cada minterm (escribiendo las variables que lo componen en el mismo orden), un índice basado en el valor binario del minterm.

Un término negado, como  a' es considerado como el número binario 0 y el término no negado  a es considerado como un 1.

Por ejemplo, se asociaría el número 6 con  a b c' , y nombraríamos la expresión con el nombre  m_6 . Entonces  m_0 de tres variables es  a' b' c' y  m_7 debería ser  a b c al ser  111_{(2} .

Se puede observar que cada minterm solo devuelve verdadero, (1), con una sola entrada de las posibles.

Por ejemplo, el minitérmino 5,  a b' c es verdadero solo cuado a y c son ciertos y b es falso - la entrada a = 1, b = 0, c = 1 da resultado 1.


Función equivalente[editar]


   \begin{array}{|c||c|c||c|}
      \hline
      n & a & b & f(a,b) \\
      \hline
      0 & 0 & 0 & 1 \\
      1 & 0 & 1 & 0 \\
      2 & 1 & 0 & 0 \\
      3 & 1 & 1 & 1 \\
      \hline
   \end{array}

Si tenemos una tabla de verdad de una función lógica: f(a,b), es posible escribir la función como "suma de productos". Por ejemplo, dada la tabla de verdad.

Observamos que las filas con resultado '1 son la primera y la cuarta, entonces podremos escribir f como la suma de los minitérminos:  f(a,b)= m_0 + m_3 .

Si queremos verificar esto:

 f(a,b)= m_0 + m_3 = (a'b') + (ab)

tendremos que la tabla de verdad de la función, calculándola directamente, será la misma.

TE Conex 05.svg TE Interu 6a.svg TE Conex 12.svg TE Interu 6b.svg TE Conex 09.svg
TE Conex 14.svg TE Interu 08.svg TE Conex 12.svg TE Interu 08.svg TE Conex 14.svg

Esta expresión aplicada a interruptores seria el de la figura, se puede ver que hay dos ramas, en la superior dos interruptores inversos: a’ y b’ puestos en serie, lo que es equivalente a a’b’, en la inferiores directos: a y b también en serie que es equivalente a ab, estos dos circuitos puestos en paralelo resultan a’b’ + ab.


Maxitérminos[editar]

Un maxitérmino es una expresión lógica de n variables que consiste únicamente en la disyunción lógica y el operador complemento o negación. Los maxterms són una expresión dual de los minitérminos. En vez de usar operaciones AND utilizamos operaciones OR y procedemos de forma similar.

Por ejemplo, los siguientes términos canónicos son maxitérminos:

 a + b' + c
 a' + b + c

Dualización[editar]


   \begin{array}{|c|c l|c l||c|c|c|}
      \hline
      n & M & & m & & a & b & c \\
      \hline
      0 & M_0= & a + b + c & m_0= & a'b'c'& 0 & 0 & 0 \\
      1 & M_1= & a + b + c'& m_1= & a'b'c & 0 & 0 & 1 \\
      2 & M_2= & a + b'+ c & m_2= & a'b c'& 0 & 1 & 0 \\
      3 & M_3= & a + b'+ c'& m_3= & a'b c & 0 & 1 & 1 \\
      4 & M_4= & a'+ b + c & m_4= & a b'c'& 1 & 0 & 0 \\
      5 & M_5= & a'+ b + c'& m_5= & a b'c & 1 & 0 & 1 \\
      6 & M_6= & a'+ b'+ c & m_6= & a b c'& 1 & 1 & 0 \\
      7 & M_7= & a'+ b'+ c'& m_7= & a b c & 1 & 1 & 1 \\
      \hline
   \end{array}

El complemento de un minterm es su respectivo maxitérmino. Esto puede ser fácilmente verificado usando la Ley de De Morgan. Por ejemplo:

 m_1 ' = M_1
 (a'b)' = a + b'

Indexando maxitérminos[editar]

Para indexar maxitérminos lo haremos justo de la forma contraria a la que seguimos con los minterms. Se asigna a cada maxterm un índice basado en el complemento del número binario que representa (otra vez asegurándonos que las variables se escriben en el mismo orden, usualmente alfabético). Por ejemplo, para una función de tres variables f(a,b,c) podemos asignar  M_6 (Maxitérmino 6) al maxitérmino:  a' + b' + c . De forma similar  M_0 de tres variables debería ser  a + b + c y  M_7 es  a' + b' + c' .

Se puede ver fácilmente que un maxitérmino sólo da como resultado un cero para una única entrada de la función lógica. Por ejemplo, el maxitérmino 5,  a' + b + c' , es falso solo cuando a y c son ciertos y b es falso - la entrada a = 1, b = 0, c = 1 da como resultado un cero.

Función equivalente[editar]


   \begin{array}{|c||c|c||c|}
      \hline
      n & a & b & f(a,b) \\
      \hline
      0 & 0 & 0 & 1 \\
      1 & 0 & 1 & 0 \\
      2 & 1 & 0 & 0 \\
      3 & 1 & 1 & 1 \\
      \hline
   \end{array}

Si tenemos una tabla de verdad de una función lógica, f(a,b), es posible escribir la función como "producto de sumas". Por ejemplo, dada la tabla de verdad.

Observamos que las filas que tiene como salida un 0 son la segunda y la tercera, entonces podemos escribir f como un producto de maxitérminos  M_1 M_2 .

Si queremos verificar esto:

 f(a,b) = (a + b')(a' + b)

tendremos que la tabla de verdad de la función, calculándola directamente, será la misma.

TE Conex 05.svg TE Interu 5a.svg TE Conex 09.svg TE Conex 05.svg TE Interu 7a.svg TE Conex 09.svg
TE Conex 14.svg TE Interu 7b.svg TE Conex 14.svg TE Conex 14.svg TE Interu 5b.svg TE Conex 14.svg

La aplicación en un circuito de interruptores, es el del esquema, donde se puede ver los dos interruptores superiores a y a', y los inferiores b' y b.

En primer lugar tenemos puestos en paralelo a y b', lo que seria a+b', y a continuación, a' y b en paralelo que seria a'+b, estos dos circuitos parciales puestos en serie son equivalentes a (a+b')(a'+b), las distintas combinaciones de a y b, corresponden, como se puede ver a la tabla de verdad.

Este circuito está cerrado solo en dos de las cuatro combinaciones posibles: a b con los interruptores en esta posición se conecta la entrada con la salida y a’ b’ que también cierra circuito, para las otras combinaciones el circuito está abierto.


 Ent. \, TE Conex 13.svg TE Conex 12.svg TE Interu 6a.svg TE Conex 09.svg
 Sal. \, TE Conex 16.svg TE Conex 13.svg TE Interu 08.svg TE Conex 11.svg
TE Conex 03.svg TE Conex 03.svg TE Conex 00.svg TE Conex 03.svg
TE Conex 03.svg TE Conex 06.svg TE Interu 6b.svg TE Conex 11.svg
TE Conex 06.svg TE Conex 12.svg TE Interu 08.svg TE Conex 10.svg

Este circuito y el anterior son claramente diferentes, pero los dos corresponden a la misma tabla de verdad y por lo tanto equivalentes.

Aun partiendo de la misma expresión booleana, se pueden realizar distintas configuraciones equivalentes, así se puede ver en esta segunda figura.

Se puede demostrar la equivalencia, simplificando la función, partiendo de:

 f(a,b) = (a + b')(a' + b)

Realizando las multiplicaciones, tendremos:

 f(a,b) = aa' + ab + b'a' + b'b

Simplificando:

 f(a,b) = ab + b'a'

con lo que tenemos la función obtenida por minitérminos.

Véase también[editar]