Articulo de referencia

Teorema de expansión de Boole

El teorema de expansión de Boole , a menudo denominado expansión de Shannon o descomposición de Shannon , es la identidad F = incógnita ⋅ F incógnita + incógnita ′ ⋅ F incógnita...

El teorema de expansión de Boole , a menudo denominado expansión de Shannon o descomposición de Shannon , es la identidadF=incógnitaFincógnita+incógnitaFincógnita{\displaystyle F=x\cdot F_{x}+x'\cdot F_{x'}}, dóndeF{\displaystyle F}es cualquier función booleana ,incógnita{\displaystyle x}es una variable,incógnita{\displaystyle x'}es el complemento deincógnita{\displaystyle x}, yFincógnita{\displaystyle F_{x}}yFincógnita{\displaystyle F_{x'}}sonF{\displaystyle F}con el argumentoincógnita{\displaystyle x}establecer igual a1{\displaystyle 1}y a0{\displaystyle 0}respectivamente.

Los términosFincógnita{\displaystyle F_{x}}yFincógnita{\displaystyle F_{x'}}a veces se les llama cofactores de Shannon positivo y negativo , respectivamente, deF{\displaystyle F}con respecto aincógnita{\displaystyle x}Estas son funciones, calculadas por elrestringir{\displaystyle \operatorname {restrict} }operador,restringir(F,incógnita,0){\displaystyle \operatorname {restrict} (F,x,0)}yrestringir(F,incógnita,1){\displaystyle \operatorname {restrict} (F,x,1)}.

El teorema ha sido denominado el "teorema fundamental del álgebra booleana". [ 1 ] Además de su importancia teórica, allanó el camino para los diagramas de decisión binarios (BDD), los solucionadores de satisfacibilidad y muchas otras técnicas relevantes para la ingeniería informática y la verificación formal de circuitos digitales. En tales contextos, particularmente en los BDD, la expansión se interpreta como un if-then-else , con la variableincógnita{\displaystyle x}siendo la condición y los cofactores las ramas (Fincógnita{\displaystyle F_{x}}cuandoincógnita{\displaystyle x}es cierto y respectivamenteFincógnita{\displaystyle F_{x'}}cuandoincógnita{\displaystyle x}es falso). [ 2 ]

Enunciado del teorema

Una forma más explícita de enunciar el teorema es:

F(incógnita1,incógnita2,,incógnitanorte)=incógnita1F(1,incógnita2,,incógnitanorte)+incógnita1F(0,incógnita2,,incógnitanorte){\displaystyle f(X_{1},X_{2},\dots ,X_{n})=X_{1}\cdot f(1,X_{2},\dots ,X_{n})+X_{1}'\cdot f(0,X_{2},\dots ,X_{n})}

Variaciones e implicaciones

Forma XOR
La afirmación también se cumple cuando la disyunción "+" se reemplaza por el operador XOR :
F(incógnita1,incógnita2,,incógnitanorte)=incógnita1F(1,incógnita2,,incógnitanorte)incógnita1F(0,incógnita2,,incógnitanorte){\displaystyle f(X_{1},X_{2},\dots ,X_{n})=X_{1}\cdot f(1,X_{2},\dots ,X_{n})\oplus X_{1}'\cdot f(0,X_{2},\dots ,X_{n})}
Forma dual
Existe una forma dual de la expansión de Shannon (que no tiene una forma XOR relacionada):
F(incógnita1,incógnita2,,incógnitanorte)=(incógnita1+F(0,incógnita2,,incógnitanorte))(incógnita1+F(1,incógnita2,,incógnitanorte)){\displaystyle f(X_{1},X_{2},\dots ,X_{n})=(X_{1}+f(0,X_{2},\dots ,X_{n}))\cdot (X_{1}'+f(1,X_{2},\dots ,X_{n}))}

La aplicación repetida para cada argumento conduce a la forma canónica de suma de productos (SoP) de la función booleana.F{\displaystyle f}Por ejemplo, paranorte=2{\displaystyle n=2}eso sería

F(incógnita1,incógnita2)=incógnita1F(1,incógnita2)+incógnita1F(0,incógnita2)=incógnita1incógnita2F(1,1)+incógnita1incógnita2F(1,0)+incógnita1incógnita2F(0,1)+incógnita1incógnita2F(0,0){\displaystyle {\begin{aligned}f(X_{1},X_{2})&=X_{1}\cdot f(1,X_{2})+X_{1}'\cdot f(0,X_{2})\\&=X_{1}X_{2}\cdot f(1,1)+X_{1}X_{2}'\cdot f(1,0)+X_{1}'X_{2}\cdot f(0,1)+X_{1}'X_{2}'\cdot f(0,0)\end{aligned}}}

Asimismo, la aplicación de la forma dual conduce a la forma canónica Producto de Sumas (PoS) (utilizando la ley de distributividad de+{\displaystyle +}encima{\displaystyle \cdot }):

F(incógnita1,incógnita2)=(incógnita1+F(0,incógnita2))(incógnita1+F(1,incógnita2))=(incógnita1+incógnita2+F(0,0))(incógnita1+incógnita2+F(0,1))(incógnita1+incógnita2+F(1,0))(incógnita1+incógnita2+F(1,1)){\displaystyle {\begin{aligned}f(X_{1},X_{2})&=(X_{1}+f(0,X_{2}))\cdot (X_{1}'+f(1,X_{2}))\\&=(X_{1}+X_{2}+f(0,0))\cdot (X_{1}+X_{2}'+f(0,1))\cdot (X_{1}'+X_{2}+f(1,0))\cdot (X_{1}'+X_{2}'+f(1,1))\end{aligned}}}

Propiedades de los cofactores

Propiedades lineales de los cofactores:
Para una función booleana F compuesta por dos funciones booleanas G y H, se cumplen las siguientes condiciones:
SiF=H{\displaystyle F=H'}entoncesFincógnita=Hincógnita{\displaystyle F_{x}=H'_{x}}
SiF=GRAMOH{\displaystyle F=G\cdot H}entoncesFincógnita=GRAMOincógnitaHincógnita{\displaystyle F_{x}=G_{x}\cdot H_{x}}
SiF=GRAMO+H{\displaystyle F=G+H}entoncesFincógnita=GRAMOincógnita+Hincógnita{\displaystyle F_{x}=G_{x}+H_{x}}
SiF=GRAMOH{\displaystyle F=G\oplus H}entoncesFincógnita=GRAMOincógnitaHincógnita{\displaystyle F_{x}=G_{x}\oplus H_{x}}
Características de las funciones no saturadas:
Si F es una función no neutra y...
Si F es positivo entoncesF=incógnitaFincógnita+Fincógnita{\displaystyle F=x\cdot F_{x}+F_{x'}}
Si F es negativo entoncesF=Fincógnita+incógnitaFincógnita{\displaystyle F=F_{x}+x'\cdot F_{x'}}

Operaciones con cofactores

Diferencia booleana:
La diferencia booleana o derivada booleana de la función F con respecto al literal x se define como:
Fincógnita=FincógnitaFincógnita{\displaystyle {\frac {\partial F}{\partial x}}=F_{x}\oplus F_{x'}}
Cuantificación universal:
La cuantificación universal de F se define como:
incógnitaF=FincógnitaFincógnita{\displaystyle \forall xF=F_{x}\cdot F_{x'}}
Cuantificación existencial:
La cuantificación existencial de F se define como:
incógnitaF=Fincógnita+Fincógnita{\displaystyle \exists xF=F_{x}+F_{x'}}

Historia

George Boole presentó esta expansión como su Proposición II, "Expandir o desarrollar una función que involucre cualquier número de símbolos lógicos", en sus Leyes del Pensamiento (1854), [ 3 ] y fue "ampliamente aplicada por Boole y otros lógicos del siglo XIX". [ 4 ]

Claude Shannon mencionó esta expansión, entre otras identidades booleanas, en un artículo de 1949, [ 5 ] y mostró las interpretaciones de la identidad en el contexto de las redes de conmutación. En la literatura sobre diseño de computadoras y teoría de la conmutación, la identidad se atribuye a menudo erróneamente a Shannon. [ 6 ] [ 4 ]

Aplicación a circuitos de conmutación

  1. Los diagramas de decisión binaria se derivan del uso sistemático de este teorema.
  2. Cualquier función booleana puede implementarse directamente en un circuito de conmutación utilizando una jerarquía de multiplexores básicos mediante la aplicación repetida de este teorema.

Referencias

  1. Rosenbloom, Paul Charles (1950). Los elementos de la lógica matemática . pág.  5.
  2. GD Hachtel y F. Somenzi (1996), Algoritmos de síntesis y verificación lógica , pág. 234
  3. Boole, George (1854). Una investigación de las leyes del pensamiento: en las que se fundamentan las teorías matemáticas de la lógica y las probabilidades . pág. 72. 
  4. 1 2 Brown, Frank Markham (2012) [2003, 1990]. Boolean Reasoning - The Logic of Boolean Equations (reedición de la 2.ª ed.). Mineola, Nueva York: Dover Publications, Inc. p. 42. ISBN   978-0-486-42785-0.
  5. Shannon, Claude (enero de 1949). "La síntesis de circuitos de conmutación de dos terminales" (PDF) . Bell System Technical Journal . 28 : 59–98 [62]. doi : 10.1002/j.1538-7305.1949.tb03624.x . ISSN 0005-8580 . 
  6. Perkowski, Marek A.; Grygiel, Stanislaw (20 de noviembre de 1995), "6. Panorama histórico de la investigación sobre descomposición", Un estudio de la literatura sobre descomposición de funciones , Versión IV, Grupo de Descomposición Funcional, Departamento de Ingeniería Eléctrica, Universidad de Portland, Portland, Oregón, EE. UU., pág. 21, CiteSeerX 10.1.1.64.1129  (188 páginas)

Véase también

  • Ejemplo de descomposición de Shannon con multiplexores.
  • Optimización de ciclos secuenciales mediante descomposición de Shannon y reajuste de tiempos (PDF). Documento sobre la aplicación.