3.2: Forma Normal Disyuntiva
- Page ID
- 118435
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)A menudo se desea (por ejemplo, en programación informática o diseño de circuitos lógicos) revertir el proceso: comenzando con una tabla de verdad deseada, ¿podemos construir un polinomio booleano con las mismas salidas?
Determinar un polinomio booleano\(p(x,y)\) que tenga la tabla de verdad a continuación.
\(x\) | \(y\) | \(p(x,y)\) |
---|---|---|
\ (x\) ">\(1\) | \ (y\) ">\(1\) | \ (p (x, y)\) ">\(1\) |
\ (x\) ">\(1\) | \ (y\) ">\(0\) | \ (p (x, y)\) ">\(0\) |
\ (x\) ">\(0\) | \ (y\) ">\(1\) | \ (p (x, y)\) ">\(0\) |
\ (x\) ">\(0\) | \ (y\) ">\(0\) | \ (p (x, y)\) ">\(1\) |
Solución
Queremos una salida “verdadera” cuando las entradas coincidan con la primera o cuarta fila, y sólo entonces. Las entradas coinciden con la primera fila precisamente cuando ambas\(x\) y\(y\) son verdaderas (es decir, cuando la conjunción\(x \land y\) es verdadera), y coinciden con la cuarta fila precisamente cuando ambas\(x\) no son verdaderas y no son verdaderas (\(y\)es decir, cuando la conjunción\(x' \land y'\) es verdadera). Así que toma la disyunción de estas dos conjunciones:\(p(x,y) = (x \land y) \lor (x' \land y')\text{.}\)
En la solución al ejemplo trabajado anterior, podría parecer que deberíamos tomar una conjunción de las dos conjunciones en lugar de una disyunción, ya que vemos una salida de\(1\) en la primera fila y en la cuarta fila. No obstante, no podemos estar en el “estado” de entrada descrito por esas dos filas simultáneamente, ya que\(x\) ni ni\(y\) podemos estar ambas\(1\) y\(0\) simultáneamente. Entonces deberías pensarlo de esta manera en su lugar: si vemos un estado de salida de\(1\text{,}\) entonces sabemos que debemos estar en el estado de entrada de la primera fila o de la cuarta fila.
un polinomio booleano en variables\(x_1,x_2,\ldots,x_n\) que es la disyunción de términos distintos de la forma\(a_1 \land a_2 \land \cdots \land a_n\text{,}\) donde cada uno\(a_i\) es\(x_i\) o\(x_i'\text{.}\)
También se considera que el polinomio cero está en forma normal disyuntiva.
La forma normal disjuntiva no suele ser el polinomio booleano “más bonito” o “más simple” con una tabla de verdad deseada, pero existe un procedimiento relativamente sencillo para producirla.
Dada una tabla de verdad con salida distinta de cero, podemos obtener un polinomio booleano en forma normal disyuntiva con esa tabla de verdad de la siguiente manera.
- Identificar filas de la tabla en verdad para la cual es la salida deseada\(1\)
- Para cada una de esas filas, formar la conjunción de todas las variables, pero negar aquellas variables que tengan valor de entrada\(0\) para esa fila.
- Formar un polinomio tomando la disyunción de todas esas conjunciones.
Determinar un polinomio booleano\(p(x,y,z)\) que tenga la tabla de verdad a continuación.
\(x\) | \(y\) | \(z\) | \(p(x,y,z)\) |
\(1\) | \(1\) | \(1\) | \(0\) |
\(1\) | \(1\) | \(0\) | \(0\) |
\(1\) | \(0\) | \(1\) | \(0\) |
\(1\) | \(0\) | \(0\) | \(1\) |
\(0\) | \(1\) | \(1\) | \(1\) |
\(0\) | \(1\) | \(0\) | \(0\) |
\(0\) | \(0\) | \(1\) | \(1\) |
\(0\) | \(0\) | \(0\) | \(1\) |
Solución
Las filas cuarta, quinta, séptima y octava tienen resultado\(1\text{.}\) Las conjunciones correspondientes son
cuarta fila
\(x \land y' \land z'\text{;}\)
quinta fila
\(x' \land y \land z\text{;}\)
séptima fila
\(x' \land y' \land z\text{;}\)y
Eigésima fila
\(x' \land y' \land z'\text{.}\)
Por lo tanto, el polinomio booleano
está a la vez en forma normal disyuntiva y tendrá la tabla de verdad deseada.
Determinar un polinomio booleano\(q(x,y,z)\) que tenga la tabla de verdad a continuación.
\(x\) | \(y\) | \(z\) | \(q(x,y,z)\) |
\(1\) | \(1\) | \(1\) | \(1\) |
\(1\) | \(1\) | \(0\) | \(1\) |
\(1\) | \(0\) | \(1\) | \(0\) |
\(1\) | \(0\) | \(0\) | \(1\) |
\(0\) | \(1\) | \(1\) | \(1\) |
\(0\) | \(1\) | \(0\) | \(1\) |
\(0\) | \(0\) | \(1\) | \(1\) |
\(0\) | \(0\) | \(0\) | \(1\) |
Solución 1
Cada fila, excepto la tercera, tiene resultado\(1\text{,}\) por lo que debemos formar conjunciones para todas las filas excepto esa:
primera fila
\(x \land y \land z\text{;}\)
segunda fila
\(x \land y \land z'\text{;}\)
cuarta fila
\(x \land y' \land z'\text{;}\)
quinta fila
\(x' \land y \land z\text{;}\)
sexta fila
\(x' \land y \land z'\text{;}\)
séptima fila
\(x' \land y' \land z\text{;}\) y
Eigésima fila
\(x' \land y' \land z'\text{.}\)
Por lo tanto, el polinomio booleano
\ comenzar {alinear*} q (x, y, z) & = (x\ tierra y\ tierra z)\ lor (x\ tierra y\ tierra z')\ lor (x\ tierra y'\ tierra z')\ lor (x'\ tierra y\ tierra z)\\ &\ fantasma {=}\ lor (x'\ tierra y\ tierra z')\ lor (x'\ tierra y'\ tierra\ z)\ lor (x'\ tierra y'\ tierra z')\ final {alinear*}
está a la vez en forma normal disyuntiva y tendrá la tabla de verdad deseada.
Solución. 2 Solución alternativa
Podemos obtener una expresión mucho más simple para\(q(x,y,z)\) al no usar el procedimiento (aunque por supuesto el resultado no estará en forma normal disyuntiva).
Observe que queremos que la tercera fila tenga valor de salida\(0\text{.}\) En términos lógicos, queremos que esa combinación (y solo esa combinación) de valores de entrada dé como resultado una salida que “no es verdadera”. Así que el polinomio booleano
\ begin {ecuación*} q (x, y, z) = (x\ land y'\ land z) '= x'\ lor y\ lor z'\ end {ecuación*}
producirá la tabla de verdad deseada.
Los polinomios en las soluciones a los ejemplos precedentes están en forma normal disyuntiva, pero la solución alternativa al segundo ejemplo no lo es.
Desde Procedimiento\(\PageIndex{1}\), es fácil ver que cualquier polinomio booleano puede expresarse en forma normal disyuntiva.
Reescribir el polinomio booleano\(p(x,y,z) = (x \land z)' \lor (x'\land y)\) en forma normal disyuntiva.
Solución
Primero, producir la tabla de la verdad.
\(x\) | \(y\) | \(z\) | \(x\land z\) | \(x' \land y\) | \(p(x,y,z)\) |
1 | \(1\) | \(1\) | \(1\) | \(0\) | 0 |
1 | \(1\) | \(0\) | \(0\) | \(0\) | 1 |
1 | \(0\) | \(1\) | \(1\) | \(0\) | 0 |
1 | \(0\) | \(0\) | \(0\) | \(0\) | 1 |
0 | \(1\) | \(1\) | \(0\) | \(1\) | 1 |
0 | \(1\) | \(0\) | \(0\) | \(1\) | 1 |
0 | \(0\) | \(1\) | \(0\) | \(0\) | 1 |
0 | \(0\) | \(0\) | \(0\) | \(0\) | 1 |
A continuación, aplicar el procedimiento de forma normal disyuntiva para obtener
\ begin {align*} p (x, y, z) =& (x\ tierra y\ tierra z')\ lor (x\ tierra y'\ tierra z')\ lor (x'\ tierra y\ tierra z)\\ &\ lor (x'\ tierra y\ tierra z')\ lor (x'\ tierra y' tierra z)\ lor (x'\ tierra y'\ tierra z')\ text {.} \ end {alinear*}
Verifica tu comprensión
¿Qué crees que debería significar la forma normal conjuntiva? ¿Se puede llegar a un procedimiento que tome una tabla de verdad y determine un polinomio booleano en forma normal conjuntiva con la tabla de verdad deseada?
- Insinuación
-
Amplíe la idea de la solución alternativa para el Ejemplo Trabajado\(\PageIndex{3}\)