Algoritmos de minimización

Documentos relacionados
Análisis y síntesis de sistemas digitales combinacionales

Álgebra de Boole. Valparaíso, 1 er Semestre Prof. Rodrigo Araya E.

CIRCUITOS LÓGICOS. Lógica FCE 1. ALGEBRA DE BOOLE

Diseño de circuitos combinacionales

Método de simplificación de funciones lógicas utilizando el método de Quine McCluskey

Algebra de Boole. » a + a = 1» a a = 0

Álgebra Booleana y Simplificación Lógica

OPERACIONES CON POLINOMIOS

ÁLGEBRA DE BOOLE. 1.- Postulados de HUNTINGTON

Algebra de Boole y simplificación de funciones lógicas. Capítulo 4

Tema 3. 2 Sistemas Combinacionales

TEMA 3 ÁLGEBRA DE CONMUTACIÓN

Estudiemos el siguiente problema, propuesto por Wirth y desarrollado por Dijkstra: Una lista de las primeras secuencias que cumplen es:

Tema 2.- Formas Cuadráticas.

ESTRUCTURA Y TECNOLOGÍA DE LOS COMPUTADORES I. TEMA 4 Algebra booleana y puertas lógicas

Descomposición en forma canónica de Jordan (Segunda versión)

Operaciones Booleanas y Compuertas Básicas

5 centenas + 2 decenas + 8 unidades, es decir: = 528

MATE IV Serie Álgebra 2015/01/26 NOMENCLATURA ALGEBRAICA

LICEO Nº1 JAVIERA CARRERA 2012 MATEMATICA Benjamín Rojas F. FACTORIZACIÓN

Capitulo 4. DECISIONES BAJO RIESGO TEORIA DE JUEGOS

Álgebra de BOOLE. Tema 4

GUIA DE CIRCUITOS LOGICOS COMBINATORIOS

MAPAS DE KARNAUGH. Representación gráfica. Distancia. Distancia. Circuitos Digitales EC1723

SOLUCIÓN NUMÉRICA DE ECUACIONES ALGEBRAICAS Y TRASCENDENTES

Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo

SIMPLIFICACIÓN DE FUNCIONES LÓGICAS

UNA ECUACIÓN es una igualdad de dos expresiones algebraicas.

Álgebra de Boole. Retículos.

Sistemas de ecuaciones lineales

Figura 3.1. Grafo orientado.

APUNTES DE FUNDAMENTOS DE MATEMATICA. CASO I: Cuando todos los términos de un polinomio tienen un factor común.

NOT. Ejemplo: Circuito C1

EXPRESIONES ALGEBRAICAS EXPRESIONES ALGEBRAICAS Y POLINOMIOS

UNIDAD III NÚMEROS FRACCIONARIOS

Complejidad computacional (Análisis de Algoritmos)

Una ecuación puede tener ninguna, una o varias soluciones. Por ejemplo: 5x 9 = 1 es una ecuación con una incógnita con una solución, x = 2

Capítulo 4. Lógica matemática. Continuar

SISTEMAS DE NUMERACION

Unidad 2: Ecuaciones, inecuaciones y sistemas.

Álgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes

Sistemas Digitales. Diseño lógico con Verilog. Sinopsis. Prólogo.

SISTEMAS DE ECUACIONES LINEALES Y MATRICES Dos ecuaciones lineales con dos

Tema 3: Espacios vectoriales

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

MULTIPLICACIÓN DE NÚMEROS NATURALES

EL PROBLEMA DE TRANSPORTE

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

EL LENGUAJE DE LAS COMPUTADORAS

Ampliación Matemática Discreta. Justo Peralta López

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

Existen distintas formas de representar una función lógica, entre las que podemos destacar las siguientes:

INTERVALOS Y SEMIRRECTAS.

El álgebra booleana (Algebra de los circuitos lógicos tiene muchas leyes o teoremas muy útiles tales como :

Algebra lineal y conjuntos convexos

Teoría de Números. Divisibilidad. Olimpiada de Matemáticas en Tamaulipas

Formulación del problema de la ruta más corta en programación lineal

Circuitos lógicos combinacionales. Tema 6

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

CONJUNTOS NUMÉRICOS. La noción de número es tan antigua como el hombre mismo ya que son necesarios para resolver situaciones de la vida diaria.

Sistemas Numéricos y Códigos Binarios

Definición: Dos matrices A y B son iguales si tienen el mismo orden y coinciden los elementos que ocupan el mismo lugar.

Factorización ecuación identidad condicional término coeficiente monomio binomio trinomio polinomio grado ax3

de la forma ), i =1,..., m, j =1,..., n, o simplemente por (a i j ).

DERIVADA DE LA FUNCIONES BÁSICAS TANGENTE, COTANGENTE, SECANTE Y COSECANTE

Identificación de inecuaciones lineales en los números reales

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

UNIDAD 6: SISTEMAS DE ECUACIONES

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES

DESCOMPOSICIÓN FACTORIAL

Autómatas Deterministas. Ivan Olmos Pineda

Funciones: Aspectos básicos

MATRICES. Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden x (que se lee por ).

UNIDAD 4. Álgebra Booleana

SEGUNDA OLIMPIADA ESTATAL DE MATEMÁTICAS

Sistemas de Ecuaciones Lineales y Matrices

TEMA II: SISTEMAS DE NUMERACIÓN

Seminario de problemas. Curso Hoja 5

Matrices Invertibles y Elementos de Álgebra Matricial

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

5.2. Sistemas de codificación en binario

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

UNIDAD 10: ECUACIONES DE SEGUNDO GRADO.

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.

DETERMINANTES página 251 DETERMINANTES. Por ejemplo: es un determinante de tres filas y tres columnas.

I. Operaciones con matrices usando Mathematica

Programación Lineal. El método simplex

DESARROLLO D) 4. para a = 1 y b = 2 (a 2 + b 2 )(2a 3b 2 ) es:

decir de las funciones f g. Posteriormente se obtienen los términos independientes

Álgebra y Geometría Analítica I - LF 2016 Práctica 1: Algunos elementos de la Geometría Analítica

Algebra de Boole y puertas lógicas

Introducción al Álgebra

UNIDAD 8 INECUACIONES. Objetivo general.

El ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales.

ECUACIONES DE PRIMER Y SEGUNDO GRADO

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Ecuaciones, inecuaciones y sistemas

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Curso º ESO. UNIDADES 6 Y 7: EXPRESIONES ALGEBRAICAS Y ECUACIONES Departamento de Matemáticas IES Fray Bartolomé de las Casas de Morón

Transcripción:

Capítulo 6 Algoritmos de minimización Durante 40 años el algoritmo de minimización conocido como método de Quine-McCluskey permaneció prácticamente sin cambios. En 992 aparecen dos métodos, fundamentalmente nuevos, que permiten desarrollar algoritmos más eficientes para encontrar soluciones exactas. El método de minimización de Quine-McCluskey, consiste en encontrar los implicantes primos y luego seleccionar un conjunto de éstos que cubran la función; esto último se efectúa mediante la reducción de la tabla de implicantes. Como alternativa se describe el método de Tison, de consenso reiterado, para determinar los implicantes primos. La tabla de implicantes tiene como columnas los mintérminos y como renglones los cubos que son implicantes primos. Para n variables, se tienen 2 n mintérminos o columnas; y se dispone de un resultado que establece que se pueden tener del orden de 3n implicantes primos. Con lo cual n los algoritmos para reducir la tabla, en forma exacta, tienen un costo exponencial. Por esta razón se han desarrollado heurísticas de minimización que están basadas en propiedades de las funciones booleanas y que producen resultados bastante satisfactorios, desde un punto de vista de ingeniería. Un excelente ejemplo de estos programas es espresso, que se trata en el Apéndice 3. 6.. Implicación Un implicante es un mintérmino o un grupo de éstos que formen un sub-cubo. Una expresión X implica la función f, si y solamente si f= para cualquier combinación de valores para los cuales X=. Se anota la implicación de la siguiente forma: X f f X Figura 6. Implicación. Puede verse que si X f, con g una función booleana, puede anotarse: f = X + g. Profesor Leopoldo Silva Bijit 9-0-200

2 Sistemas Digitales Es decir, X es un término o parte de f. También suele decirse que f cubre a X. En un mapa de f, si X corresponde a un grupo de mintérminos, g corresponderá al resto de los mintérminos de f, no considerados en X, si la intersección de g y X es vacía; si la intersección no es vacía, pueden existir algunos mintérminos comunes a X y g. Se desea ahora definir las componentes de f que sean más primitivas. 6.2. Implicantes primos Un implicante primo es un implicante que no puede ser agrupado con otros implicantes, para formar un sub-cubo de mayor dimensión. Se dice que X (producto de literales) es un implicante primo de f si y sólo si: X f No existe y tal que X y f, donde el número de literales de y es menor que el número de literales de X. No puede encontrarse un grupo mayor que X. Si existe y; entonces y es un implicante primo. Básicamente, un implicante primo es un producto de literales que no puede ser combinado con otros para obtener un término con menos literales. Se dice primo o primitivo en el sentido de ser componente básica o elemental de una función. Algunas propiedades de un implicante primo: No contiene literales repetidos. No contiene a una variable y a su complemento. No contiene variables redundantes. Es decir, si se descarta un literal del implicante, el resto no será implicante. Si x e y son implicantes primos de f, entonces: x no cubre a y; y viceversa. Encontrar los implicantes primos es determinar los grupos de mintérminos que pueden escribirse con menos literales. Pasar de un implicante a un implicante primo está asociado a un proceso de crecimiento; es decir, a encontrar un grupo de mintérminos que forman el sub-cubo mayor posible. 6.3. Implicante primo esencial Es aquél que cubre a lo menos un mintérmino de la función que no es cubierto por otros implicantes primos. Deben estar presentes en la forma mínima. Los mintérminos superfluos pueden emplearse para formar implicantes primos; pero no deben considerarse para los implicantes primos esenciales. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 3 Ejemplo 6.. Para una función de 4 variables, cuyo mapa es de la figura 6.2, se tienen los siguientes implicantes primos: A'B'D, BC', AC, A'C'D, AB, B'CD De los 6 implicantes primos, sólo AC es esencial, ya que contiene al mintérmino: AB'CD' que no es cubierto por ningún otro implicante primo. A 0 d 0 C 0 0 0 0 B Figura 6.2 Implicantes primos D Puede comprobarse que se logra una mínima cobertura de la función con: AC + BC' + A'B'D Para un diseño libre de perturbaciones deben agregarse: AB, A C D y B CD. Ejemplo 6.2. Minimizar, determinando implicantes, observando el mapa de la Figura 6.3. A 0 0 0 C 0 0 0 0 0 B D Figura 6.3 Implicantes primos ejemplo 6.2 Profesor Leopoldo Silva Bijit 9-0-200

4 Sistemas Digitales Para la función de 4 variables, cuyo mapa es el de la figura 6.3, se tienen los siguientes implicantes primos: BD, ABC', ACD, A'BC, A'C'D Sólo BD es no esencial, ya que los demás contienen un mintérmino no cubierto por los otros implicantes primos. La función mínima debe contener los esenciales, y con éstos se logra cubrir completamente a la función: f = ABC' + ACD + A'BC + A'C'D Para un diseño libre de perturbaciones debe agregarse el cubo BD. 6.4. Método de Quine (952) Es un método sistemático para encontrar la expresión mínima de una función, que no depende de la habilidad para reconocer agrupaciones en un mapa de Karnaugh. Básicamente, es una búsqueda exhaustiva de todas las adyacencias entre los mintérminos de la función, mediante la aplicación sistemática del teorema de fusión ( a ab ab ) a todos los términos de la forma canónica. 6.4.. Obtención de implicantes primos Se forma una primera columna con los mintérminos de la función. Se forma la siguiente columna según: Se revisa el primer elemento de la columna con todos los siguientes; si se encuentra un término que sólo difiera en una variable, se lo anota en la nueva columna, omitiendo el literal correspondiente; se marcan los términos en la columna actual. Se repite el proceso para todos los elementos de la columna. Se vuelve a repetir el paso anterior hasta que no se puedan formar nuevas columnas. Los términos que originan nuevas entradas, en la próxima columna, sólo necesitan marcarse una vez. Pero pueden usarse las veces que sea necesario. Nótese que la segunda columna lista todos los grupos de dos mintérminos. La tercera, lista grupos de cuatro mintérminos adyacentes, y así sucesivamente. Al finalizar el proceso anterior, los elementos no marcados en las columnas, corresponden a los implicantes primos. Ejemplo 6.3. Obtener los implicantes primos de: f ( a, b, c) m(0,2,5,6,7) Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 5 Primera columna Segunda columna m min. marcas Grupos Implicantes 0 a'b'c' (0,2) a'c' 2 a'bc' (2,6) bc' 5 ab'c (5,7) ac 6 abc' (6,7) ab 7 abc Figura 6.4 Obtención de implicantes primos No se pueden formar nuevas columnas, por lo tanto los implicantes primos son: a'c', bc', ac, ab Nótese que en la segunda columna, se han identificado los renglones con los grupos de mintérminos. Cuando se escribe, en la segunda columna: a'c', se marcan con el 0 y el 2 en la primera columna. Cuando se escribe, en la segunda columna: bc', se marcan con los mintérminos 2 y 6. 6.4.2. Tabla de implicantes La tabla de implicantes se forma empleando los implicantes primos en los renglones y los mintérminos de la función en las columnas. Luego, en cada renglón, se marca con valor las columnas de los mintérminos pertenecientes al implicante considerado. Aquellas columnas que tengan sólo una marca, permiten detectar a los implicantes primos esenciales. En esta tabla debe escogerse el menor número de implicantes primos que cubran todos los mintérminos de la función. Evidentemente, deben estar presentes todos los implicantes primitivos esenciales en la expresión mínima de una función. Ejemplo 6.4. La tabla de implicantes, para el ejemplo anterior: 0 2 5 6 7 a'c' bc' ac ab Figura 6.5 Tabla de implicantes primos La columna 0, por tener sólo un renglón marcado, permite identificar a: a'c' como implicante primo esencial. Profesor Leopoldo Silva Bijit 9-0-200

6 Sistemas Digitales Igualmente la columna 5 indica que el implicante ac también es esencial. Se acostumbra encerrar con un círculo las marcas en las columnas que definen los implicantes primos esenciales. Nótese que sólo resta cubrir el mintérmino 6, lo que puede lograrse eligiendo: bc' o ab. Finalmente, la forma mínima es: f = a'c' + ac + bc' o, alternativamente: f = a'c' + ac + ab 6.4.3. Reducción de tablas En caso de tener tablas complejas, éstas pueden reducirse mediante el siguiente método. Cada vez que se selecciona un implicante para formar la función, se remueve el renglón correspondiente. Cuando se remueve un renglón, también se eliminan las columnas que tienen marcas en dicho renglón. Se comienza eliminando los implicantes primos esenciales. Luego la tabla puede seguir reduciéndose, aplicando las siguientes reglas: Un renglón cubierto por otro, puede eliminarse (sólo el renglón). Una columna que cubre a otra puede eliminarse (sólo la columna). Un renglón cubre a otro, si tiene marcas en las columnas marcadas del otro, pudiendo además tener columnas adicionales marcadas. Podría decirse que el renglón eliminado es menos importante, debido a su menor cobertura de la función. Una columna cubre a otra, si contiene marcas en cada renglón que esa otra columna tiene marcas, pudiendo además tener renglones adicionales marcados. Ejemplo 6.5. En la Figura 6.6, el implicante primo ipa cubre al implicante primo ipb. Puede eliminarse renglón ipb; ya que si luego se eligiese ipa, m y m3 quedarían considerados en la función. Si se elimina ipa, en lugar de ipb, no queda garantizada la cobertura de m2. m m2 m3 ipa ipb Figura 6.6 Renglón cubierto por otro. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 7 Para la función: f(a, B, C, D) = m(0, 4, 5,, 3, 5) según el mapa de la Figura 6.7, se tienen los siguientes implicantes primos: A C D (0, 4), A BC (4, 5), BC D (5, 3), ABD (3, 5), ACD (, 5). Todos ellos deben considerarse para un diseño libre de perturbaciones. AB CD 00 0 0 4 00 0 2 8 0 5 3 9 3 7 5 0 2 6 4 0 La tabla de implicantes resulta: f(a, B, C, D)=m(0,4,5,,3,5) Figura 6.7 Mapa con implicantes. 0 4 5 3 5 A C D A BC BC D ABD ACD Figura 6.8 Tabla de implicantes. Se tiene que A C D y ACD son implicantes primos esenciales. Reduciendo la tabla de la Figura 6.8, se obtiene: 5 3 A BC BC D ABD Figura 6.9 Tabla de implicantes reducida. Profesor Leopoldo Silva Bijit 9-0-200

8 Sistemas Digitales El cubo BC D cubre a los implicantes A BC y ABD. Si se eliminan los renglones cubiertos, sólo queda el renglón dominante BC D; luego de esto queda una tabla con un solo implicante. La función mínima resulta: f(a, B, C, D) = A C D + ACD + BC D Ejemplo 6.6. m m2 m3 ipa ipb ipc ipd Figura 6.0 Columna cubierta por otra. La columna m2 cubre a la columna m; puede eliminarse la columna m2. El mintérmino de la columna eliminada tiene asegurada su consideración. Si se elimina columna m2, para cubrir al mintérmino m debe seleccionarse uno de los cubos: ipb o ipc; y como cualquiera de éstos contiene a m2, se considera automáticamente a m2 en la cobertura. No es correcta la eliminación de columna m, ya que si se eliminara la columna m, en lugar de m2, quedarían para seleccionar los implicantes ipa, ipb e ipc; pero si luego se eligiera a ipa, no se incluiría a m en la función. Para la función: f(a, B, C, D) = m(, 2, 3, 5, 7) +d(0, 6, 9, 3) según el mapa de la Figura 6., se tienen los siguientes implicantes primos: A B (, 2, 3), C D (, 5), A D (, 3, 5, 7), A C (2, 3, 7). AB CD 00 0 0 0 4 2 8 00 d 0 5 d 3 d 9 3 7 5 0 2 d 6 4 0 Figura 6. Mapa con implicantes. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 9 La tabla de implicantes de la Figura 6.2, muestra que no hay implicantes primos esenciales. En la tabla de implicantes no se colocan los mintérminos superfluos. 2 3 5 7 A B C D A D A C Figura 6.2 Tabla implicantes con columnas cubiertas por otras. La columna cubre a la columna 5; la columna 3 cubre a las columnas 2 y 7. Pueden eliminarse las columnas y 3. Si se elimina la columna, dejando la 5; si se eligen cualquiera de los implicantes marcados en la columna 5, es decir: C D o A D, se estará cubriendo al mintérmino. 2 5 7 A B C D A D A C Figura 6.3. Tabla reducida, por eliminación de columnas. En la Figura 6.3, se tiene que el cubo A D cubre al cubo C D; y que el implicante A C cubre al implicante A B. Eliminando los renglones cubiertos, resulta: 2 5 7 A D A C Figura 6.4. Tabla reducida, por eliminación de renglones. En la tabla reducida de la Figura 6.4, los cubos A D y A C deben formar parte de la función ya que tienen una columna con una sola marca; éstos podría denominarse implicantes primos esenciales secundarios. Resulta: f(a, B, C, D) = A D + A C También se tiene, observando la Figura 6.3, las coberturas: f(a, B, C, D) = A D + A B f(a, B, C, D) = A C + C D Profesor Leopoldo Silva Bijit 9-0-200

0 Sistemas Digitales 6.5. Tabla reducida cíclica. Se repite la aplicación de las reglas hasta agotar la tabla. Siempre se remueven aquellos renglones que contengan columnas con una sola marca; se tratan en la tabla reducida, en forma similar a los implicantes primos esenciales en la tabla completa. La función se forma con los implicantes de los renglones removidos por contener columnas con una sola marca. En determinados casos, luego de remover los implicantes primos esenciales, los renglones cubiertos por otros, y las columnas que cubren a otras, no puede seguir reduciéndose la tabla. Se denominan tablas reducidas cíclicas, aquéllas que no pueden reducirse según el método recién planteado. Para resolver tablas cíclicas se tienen varios métodos; uno es una heurística conocida como bifurcación y acotamiento, otro es el algoritmo o método exacto de Petrick. Cuando se tienen condiciones superfluas, el método es similar, excepto que en la tabla no se consideran las columnas de mintérminos superfluos, debido a que éstos no requieren ser cubiertos. El método anterior es adecuado para un número reducido de variables. 6.5.. Bifurcación. En la heurística de bifurcación se elige un implicante primo Pi. Se resuelve la tabla cíclica considerando que Pi forma parte de la cobertura final y también considerando que no forma parte; se escoge entre las dos, la solución con mínimo costo. Se almacena el costo y se varía la elección del implicante primo; se vuelve a realizar el proceso anterior y se compara costos almacenados hasta encontrar el menor. Puede escogerse el implicante que tenga menos literales, es decir el que cubra la mayor cantidad de mintérminos; también es buen candidato el cubo que contenga un mintérmino que es cubierto por el menor número de implicantes, es decir un implicante que sea casi un implicante primo esencial. Existen en la literatura otras heurísticas para escoger al implicante primo que permite resolver una tabla cíclica. Ejemplo 6.7. Costo m m2 m3 Ip 2 Ip2 4 Ip3 2 Figura 6.5. Método de bifurcación (branching). La columna costo puede ser el número de literales del implicante primo. Se escoge, tentativamente, uno de los implicantes, removiéndolo junto a los mintérminos que cubre; se Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización resuelve el subproblema y se calcula el costo. Finalmente se escoge la bifurcación que conduzca al costo menor. Para el caso de la tabla cíclica de la Figura 6.5, se escoge en primer lugar Ip, con costo 2, queda, luego de la reducción: Costo m3 Ip2 4 Ip3 2 Figura 6.6. Bifurcación con Ip. Se escoge Ip3, por ser de menor costo, resulta un costo total de (2 + 2) = 4. Luego, en segundo lugar, se escoge Ip2, resultando: Costo m Ip 2 Ip3 2 Figura 6.7. Bifurcación con Ip2. Puede elegirse, luego Ip o Ip3, resultando un costo total de ( 4 + 2) = 6. Podría haberse descartado la elección de Ip2, ya que tendría mayor costo que la anterior. Finalmente, en este ejemplo, se escoge Ip3, resultando: Costo m2 Ip 2 Ip2 4 Figura 6.8. Bifurcación con Ip3. Se escoge Ip, con un costo total de: (2 + 2) = 4. Entonces tenemos dos soluciones con costo total 4, para la solución de la tabla cíclica. A este costo habría que sumarle el debido a la selección de implicantes primos antes de la tabla cíclica. Si el subproblema resulta cíclico, debe repetirse el procedimiento en forma recursiva. 6.5.2. Petrick (956). Se plantea una expresión booleana P, como producto de sumas, que garantice que la cobertura considera todos los mintérminos de la tabla, sea ésta cíclica o no, y que a la vez entregue todas las soluciones de cobertura posibles. Profesor Leopoldo Silva Bijit 9-0-200

2 Sistemas Digitales En la Figura 6.9 se han identificado los implicantes primos y los mintérminos de una tabla cíclica. m m2 m3 m4 Ip Ip2 Ip3 Ip4 Figura 6.9. Tabla cíclica. Si definimos Pi como verdadera si el implicante primo Ipi está presente en la cobertura; y falsa si no está presente, podemos plantear, observando la Figura 6.9, que para que el mintérmino m esté presente en la cobertura, debe cumplirse que debe estar presente el implicante Ip o el implicante Ip4; es decir: (P+P4). Que estén presentes todos los mintérminos, puede escribirse: P = (P+P4)(P2+P3)(P+P3)(P2+P4) La proposición anterior debe satisfacerse, lo cual se logra con P=. Puede expresarse P, como una suma de productos. Cada producto es una posible solución. En el caso del ejemplo, efectuando los productos y empleando el teorema de idempotencia: P= (PP2+PP3+P2P4+P3P4)(PP2+PP4+P2P3+P3P4) P=PP2+PP2P4+PP2P3+PP2P3P4+PP3P4+P2P3P4+P3P4 P=PP2(+P4+P3+P3P4) +P3P4(+P+P2) P=PP2 + P3P4. Conviene emplear: (X + Y)(X + Z) = X + YZ, en la reducción a suma de productos. Se tienen dos soluciones, que resuelven la tabla cíclica: los implicantes Ip e Ip2, o bien los implicantes Ip3 e Ip4. Puede verificarse que ambas son coberturas, con la tabla de la Figura 6.9. Se elige la de menor costo. Ejemplo 6.8. Si una columna cubre a otra, puede eliminarse la columna que cubre a las otras. Por ejemplo si un mintérmino tiene garantizada su inclusión, si (P6 + P7 + P8) y si otro mintérmino tiene asegurada su cobertura si: (P6 + P7); entonces puede comprobarse que: (P6 + P7 + P8) (P6 + P7) = (P6 + P7) usando (a+b) a = a. Esto implica conservar el mintérmino con menos marcas en las columnas. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 3 El método de Petrick puede aplicarse a tablas de implicantes primos, incluidos los esenciales. En caso de estar presentes, estos últimos, la expresión que debe satisfacerse, para incluir todos los mintérminos, tendrá la forma: P= (Pp )(...)(Pp m )(Pa+Pb)( ) Donde (Pp )( )( Pp m ) son los m implicantes primos esenciales. El resto de las sumas deben garantizar la inclusión de los mintérminos no esenciales en la cobertura de la función. De esta forma el tratamiento algebraico para reducir los productos de sumas a suma de productos se complica un tanto, pero se obtienen todas las formas de implementación posibles. En todas éstas deben estar presentes los m implicantes primos esenciales. Ejemplo 6.9. Si se toma la tabla de la Figura 6.3, y se enumeran los implicantes según: 2 5 7 IP A B IP2 C D IP3 A D IP4 A C Figura 6.20. Implicantes primos de Ejemplo 6.6. Que estén presentes todos los mintérminos, puede escribirse: P = (P+P4)(P2+P3)(P3+P4) Efectuando los productos, se obtiene: P = PP3+P2P4+P3P4 Generando las tres soluciones con dos productos: f(a, B, C, D) = A B + A D f2(a, B, C, D) = C D + A C f3(a, B, C, D) = A D + A C Lo cual muestra que el método de Petrick obtiene todas las soluciones posibles. Debe notarse que si se eliminan los renglones que son cubiertos por otros, no se obtienen todas las soluciones. En el caso del ejemplo de la Figura 6.20, deberían eliminarse el renglón IP, que es cubierto por IP4; y el implicante primo IP2 que es cubierto por el renglón IP3. Ejemplo 6.0. Reducir la tabla de implicantes de la función f(a,b,c,d) que se muestra en la Figura 6.2. Notar que el costo de todos los implicantes primos es similar, ya que todos contienen dos mintérminos. Profesor Leopoldo Silva Bijit 9-0-200

4 Sistemas Digitales 3 4 6 7 9 3 5 ipa ipb ipc ipd ipe ipf ipg iph Figura 6.2. Tabla de implicantes Ejemplo 6.0. Observar que el implicante primo b es esencial. Removiendo el renglón asociado a b, deben también removerse columnas asociadas a los mintérminos 4 y 6. Queda la siguiente tabla reducida: 3 7 9 3 5 ipa ipc ipd ipe ipf ipg iph Figura 6.22 Remoción implicante primo esencial El renglón ipc cubre a ipd; por lo tanto, puede eliminarse el renglón ipd. 3 7 9 3 5 ipa ipc ipe ipf ipg iph Figura 6.23. Remoción renglón ipd La tabla resultante es cíclica. Una heurística simple es seleccionar a uno de los implicantes de la tabla reducida cíclica, posiblemente el que tenga mayor número de marcas en las columnas. Este procedimiento no obtiene todas las soluciones posibles. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 5 Se escoge arbitrariamente al primitivo ipa para formar la función, esto elimina columnas y 3, quedando: 7 9 3 5 ipc ipe ipf ipg iph Figura 6.24. Remoción implicante primo ipa, en tabla cíclica. Ahora, ipe cubre a ipc; e ipg cubre a iph, queda eliminando a ipc e iph: 7 9 3 5 ipe ipf ipg Figura 6.25 Remoción renglones ipc e iph. ipe e ipg deben formar parte de la función; pues contienen a las columnas 7 y 9, que en la tabla reducida sólo tienen una marca. Luego de esto, la tabla queda vacía. Finalmente: f = ipb + ipa + ipe + ipg Entonces, se tiene, en términos de las variables: Solución con 2 literales y 6 entradas. f=a bd +a b d+bcd+ac d Existen otras formas posibles. Éstas se obtienen eliminando otro implicante cuando la tabla resultó cíclica. Por ejemplo, eliminando ipc, en la Figura 6.8, resulta: ipf cubre a ipe. iph cubre a ipa. Eliminando ipa e ipe, se obtiene: 9 3 5 ipa ipe ipf ipg iph Figura 6.26 Remoción implicante primo ipc, en tabla cíclica. Profesor Leopoldo Silva Bijit 9-0-200

6 Sistemas Digitales En la cual deben escogerse: ipf e iph. Entonces resulta otra función mínima: 9 3 5 ipf ipg iph Figura 6.27 Remoción implicantes primos ipa e ipe. f = ipb +ipc + ipf + iph En términos de las variables: f=a bd +b c d+a cd+abd Solución con 2 literales y 6 entradas. Aplicando el método de Petrick a la tabla de la Figura 6.2, se debe satisfacer p, para cubrir todos los mintérminos: p= (pa+ph)*(pa+pc)*(pb)*(pb+pd)*(pc+pd+pe)*(pg+ph)*(pf+pg)*(pe+pf); Expresando como suma de productos, se obtienen siete soluciones, debe notarse que pb, está presente en todos los productos, ya que es esencial. A continuación debe evaluarse el costo de cada una de las soluciones para seleccionar cuales son mínimas. p = pb*pc*pe*pg*ph + pa*pb*pe*pf*ph + pa*pb*pd*pf*ph + pa*pb*pd*pf*pg + pa*pb*pc*pf*pg + pb*pc*pf*ph + pa*pb*pe*pg; Los dos últimos productos, formados por cuatro implicantes primos son las dos soluciones obtenidas antes, con 6 entradas. Los primeros cuatro productos del método de Petrick, conducen a soluciones con 5 literales y 20 entradas, por lo cual no son considerados soluciones mínimas. Adicionalmente debe resolverse para la forma producto de sumas, considerando la función: f '( a, b, c, d) m(0,2,5,8,0,,2,4) En la cual se encuentran cuatro implicantes primos, todos esenciales. Lo cual conduce a una solución: f = b d +ad +ab c+a bc d Obteniéndose la expresión con literales y 5 entradas, la cual es la solución mínima: f= (b+d)(a +d)(a +b+c )(a+b +c+d ) Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 7 6.6. Método de Quine-McCluskey (956) Es una variante para encontrar los implicantes primos, representando en forma digital el método de Quine, y es adecuado para ser programado en un computador. Su complejidad, de tipo exponencial, lo convierte en un problema intratable para elevados valores de variables. Se forma la columna de mintérminos, codificada en binario o decimal, en grupos, de acuerdo al número de unos. De esta forma sólo será necesario comparar los mintérminos de grupos adyacentes, disminuyendo significativamente las comparaciones que deben realizarse para formar las columnas con cubos mayores. Por ejemplo: el grupo que contiene un uno no puede ser adyacente a los mintérminos que contengan tres unos; no pueden estar a distancia uno. Se comparan los elementos de cada grupo, buscando adyacencias, y se forman las siguientes columnas en forma similar al método de Quine. Notando que en la representación decimal, diferencias de, 2, 4, 8 y, en general, de una potencia de 2, indican una diferencia en un bit. También se mantiene la separación en grupos en las nuevas columnas. Es posible encontrar una función que entregue el número de unos en representación binaria de un número decimal. La cual facilita la formación de los grupos. La segunda columna representa todas las agrupaciones posibles de dos mintérminos. La tercera columna representa grupos de cuatro mintérminos, y así sucesivamente. El algoritmo permite trabajar con dígitos decimales o binarios. Se anotan en los ejemplos columnas binarias y decimales. En la segunda y siguientes columnas, las variables eliminadas se denotarán con un guión (también es posible anotar la posición del guión con un número decimal potencia de dos). Pueden combinarse dos términos si ellos difieren solamente en un literal; por esta razón, no podrán combinarse dos términos en un mismo grupo. Los miembros de un grupo de un solo "", difieren en dos variables por lo menos; lo mismo puede establecerse para los otros grupos. Esta observación organiza la búsqueda de adyacencias, ya que sólo es preciso comparar entre grupos adyacentes. Ejemplo 6.. Aplicar método de Quine-McCluskey para minimizar la siguiente función: g(a, b, c, d, e, f) = m(0,2,6,7,8,0,2,4,5,4) Considerando la equivalencia binaria de los mintérminos decimales, se tienen: m0 = 000000 m2 = 00000 m8 = 00000 m6 = 0000 m0 = 0000 m2 = 0000 m7 = 000 m4 = 000 m4 = 000 m5 = 00 Profesor Leopoldo Silva Bijit 9-0-200

8 Sistemas Digitales Formando grupos, de acuerdo al número de unos, se obtiene la siguiente tabla: Decimal Binario mintérmino a b c d e f Número de unos 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 0 0 0 0 6 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 7 0 0 0 3 4 0 0 0 4 0 0 0 5 0 0 4 Figura 6.28 Agrupación según número de unos. Los mintérminos del grupo con n unos, se comparan con todos los del grupo con (n+) unos. En la representación decimal se buscan diferencias de potencias de dos; en binario, se busca la diferencia en un bit. Puede formarse la siguiente tabla, que contiene los implicantes formados por dos mintérminos: Decimal Binario Grupo Posición a b c d e f Número de unos 0,2 2 0 0 0 0-0 0 0.8 8 0 0-0 0 0 2,6 4 0 0 0-0 2,0 8 0 0-0 0 8,0 2 0 0 0-0 8,2 4 0 0-0 0 6,7 0 0 0-2 6,4 8 0 0-0 0,4 4 0 0-0 2,4 2 0 0-0 7,5 8 0 0-3 4,5 0 0 - Figura 6.29 Grupos de dos mintérminos adyacentes. En la notación decimal, se anota la lista de mintérminos y la posición de la variable eliminada se registra con una potencia de dos entre paréntesis. Nótese que se mantiene el concepto de grupos, mediante líneas horizontales. A medida que se forma la segunda tabla, se van marcando los mintérminos utilizados en la primera tabla. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 9 En el ejemplo no queda marcado el 4, ya que no puede agruparse con ningún otro mintérmino; en este caso el mintérmino 4 es implicante primo esencial. Para formar la tercera tabla, que contendrá grupos de cuatro mintérminos; se buscan diferencias de potencias de dos entre grupos adyacentes, pero además deben tener igual diferencia (o posición de variable eliminada). Por ejemplo la componente del grupo 0,2 es necesario compararla solamente con 8,0 del segundo grupo, debido a la diferencia común (2). No importa el orden de las listas de mintérminos, sólo se anotan una vez. Por ejemplo, entre los primeros grupos se tiene: 0, 2 (2) 8, 0 (2) Diferencia: 8, 8 generando: 0, 2, 8, 0 (2,8) 0, 8 (8) 2, 0 (8) Diferencia: 2, 2 generando: 0, 8, 2, 0 (8,2) Estas dos agrupaciones se consideran iguales. Desarrollando en forma similar, se genera la siguiente tabla: Decimal Binario Grupo Posición a b c d e f Número de unos 0, 2, 8, 0 2,8 0 0-0 - 0 0 2, 6, 0, 4 4,8 0 0 - - 0 8, 0,2,4 2,4 0 0 - - 0 6, 7, 4, 5,8 0 0 - - 2 Figura 6.30. Grupos de cuatro mintérminos agrupables. De este modo quedan marcados todos los grupos de la segunda lista. Nótese que, en la tabla anterior, no hay diferencias comunes entre grupos, por lo tanto, no puede formarse una siguiente tabla. Es decir, no hay implicantes formados por 8 mintérminos que estén formando un 3-cubo. La tabla de implicantes resulta: Implicantes 0 2 8 6 0 2 7 4 4 5 primos 4 0, 2, 8, 0 2, 6, 0, 4 8, 0, 2, 4 6, 7, 4, 5 Figura 6.3. Tabla de implicantes ejemplo 6.8. Profesor Leopoldo Silva Bijit 9-0-200

20 Sistemas Digitales Removiendo los implicantes primos esenciales, la función mínima queda: g = ab'cd'e'f + a'b'd'f' + a'b'cf' + a'b'de Es conveniente realizar el ejemplo, desarrollando agrupaciones en un mapa de Karnaugh, a medida que se forman las tablas. Nótese que todo el proceso podría haberse realizado sólo considerando la información binaria, o solamente la información decimal. 6.7. Método de Tison (965) para encontrar implicantes primos. Consenso reiterado. 6.7.. Fundamentos. Se tiene una función f, definida por una suma de productos: f p p2... pk Si se tiene: p a p con a, siendo a una de las variables de f. i Se puede descartar Esto debido a que: j p i de f. Lo cual puede anotarse: p p a p p ( a ) p p i j j j j j p i p El método consiste en introducir términos implicados, de tal manera de eliminar los términos que los implican. Es decir, se introduce p, en la suma de productos, y se elimina p. j j i Si por ejemplo, se tiene: f xt x' yt Debido a que yt es el término de consenso entre x' yt y xt, puede escribirse: Como se tiene que: f xt x' yt yt x' yt yt Entonces, se puede cambiar el producto x' yt por el implicado yt, resultando: f xt yt Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 2 Logrando, de este modo, una suma de productos con menos literales. La formación de implicantes basada en el teorema de fusión, sobre la que está basado el método de Quine, también puede verse como la eliminación de productos que implican a otros productos: f xt x' T El consenso de xt y escribirse: f T. xtes ' T. Y se tiene que: xt T y que x' T T, con lo cual puede Los productos S y R tienen consenso SR, 0 0 si existe una variable x tal que S xs0 y R x ' R0 ; y no existe una variable y, en el producto S 0, que aparezca como y ' en R 0. Si existe la variable y, el término SR 0 0 es cero, y no hay consenso. Se dice que la variable x es biforme en el conjunto:sr,. Los productos S y R están formados por conjuntos disjuntos de mintérminos. El consenso es el implicante primo de los mintérminos de S y R, y es la máxima cobertura entre las fronteras de la exclusión mutua entre S y R. AB CD 00 0 S 00 0 0 0 4 5 2 8 3 9 AB CD 00 0 00 0 0 0 4 5 2 8 3 9 3 7 5 3 7 5 0 2 6 4 0 0 2 6 4 0 S 0 R 0 =A BD R S 0 R 0 =A D 6.7.2. Algoritmo de Tison. Figura 6.32. Término de consenso. Sea una función f, definida por una suma de productos: Sea el conjunto: f p p2... pk L p, p2,..., pk Profesor Leopoldo Silva Bijit 9-0-200

22 Sistemas Digitales El algoritmo de Tison, encuentra todos los implicantes primos de f. Para cada variable biforme x de f: { Para (cada par p, p de L: ) } i j { Si (existe consenso q, para x) L L Q ; } Para (cada p i de L: ) { Si (existe p j de L, tal que: pi pj Ejemplo 6.2. Sea una función f, definida por sus mintérminos. AB CD 00 0 0 L L p i ; } ) 00 0 0 0 3 2 4 5 7 6 2 8 3 9 5 4 0 Figura 6.33. Mintérminos de f. Si se inicia L con los mintérminos de la función: L 0000, 000, 00, 00, 00, 0,0, La variable C es biforme, se tiene consenso A B D entre: (000,00) ; y A BD entre (00,0). Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 23 AB CD 00 0 0 00 0 0 0 3 2 4 5 7 6 2 8 3 9 5 4 0 Figura 6.34. Productos de consenso para variable C. Agregando los términos de consenso a L, queda: L 0000, 000, 00, 00, 00, 0,0,, 00 _, 0_ Eliminando los que implican el consenso: L 0000, 00,0,, 00 _, 0_ D es biforme, se tiene consenso A B C entre (0000, 00_), A BC entre (00, 0_) y ABC entre (0, ). AB CD 00 0 0 00 0 0 0 3 2 4 5 7 6 2 8 3 9 5 4 0 Agregándolos a L: L Figura 6.35. Productos de consenso para variable D. 0000, 00,0,, 00 _, 0_, 000 _, 0_,_ Eliminando los que implican consensos: L 00 _,0_,000 _,0_,_ Profesor Leopoldo Silva Bijit 9-0-200

24 Sistemas Digitales A es biforme, se tiene consenso BC entre (0_, _). AB CD 00 0 0 00 0 0 0 3 2 4 5 7 6 2 8 3 9 5 4 0 Agregando ( ) a L: Figura 6.36. Productos de consenso para variable A. L 00 _,0_,000 _,0_,_, Eliminando los que implican consenso: L 00 _,0_,000 _, Finalmente B, es biforme, se tiene consenso A D entre (00_,0_), AB CD 00 0 0 00 0 0 0 3 2 4 5 7 6 2 8 3 9 5 4 0 Agregando (0 ) a L: Figura 6.37. Productos de consenso para variable B. L 00 _,0_,000 _,,0 Eliminando los que implican consenso, se obtienen los implicantes primos: L 000 _,,0 Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 25 AB CD 00 0 0 00 0 0 0 3 2 4 5 7 6 2 8 3 9 5 4 0 Figura 6.38. Implicantes primos para f. Finalmente, debido a que todos son implicantes primos esenciales: f A' B' C ' BC A' D 6.7.3. Operaciones para desarrollar el algoritmo, La elaboración de algoritmos está basada en desarrollar funciones que determinen: a) Obtener términos de consenso. Para encontrar la idea general, puede observarse el siguiente ejemplo: S 0 0 0 R 0 Sólo la cuarta variable es biforme, y no existe otra que presente conflicto binario. Entonces: SR 0 0 0 0 Debido a que el producto de una variable o su complemento en S, cuando no está presente esa variable en R, deja la variable en el término de consenso. Lo anterior puede comprobarse en el siguiente ejemplo. El producto: ( ab' e')( ab' cde) ab' cd Puede representarse, empleando notación de cubos, por: S R SR 0 0 0--0 = 0 0- Profesor Leopoldo Silva Bijit 9-0-200

26 Sistemas Digitales Considerando un cubo como una secuencia de caracteres, pueden compararse uno a uno los caracteres de dos cubos. Para obtener el término de consenso: Si los caracteres son iguales, queda el carácter; si son diferentes en binario queda ; si uno de los caracteres es, queda el otro carácter. b) Un producto que implica otro: pi pj El código, con notación de subcubo, para y p i tiene unos o ceros en posiciones donde Ejemplo: 0 Ejemplo 6.3. p i, sintoniza con todos los caracteres binarios de p j tiene. Aplicando las operaciones binarias anteriores, pueden determinarse los implicantes primos de f, debe observarse que L puede estar formado por productos, no necesariamente mintérminos. Para: f ( x, x2, x3, x4, x5, x 6), se tiene: L 0, 0 0, 0, x es biforme en L, en 0, con consenso: L 0, 0 0, 0,, Se tiene la única implicación: 0. Entonces L queda: L 0 0, 0,, x2 no es biforme en L. x es biforme en L, en 3 0 0, con consenso:0 L 0 0, 0,,, 0 No se encuentran implicaciones. L conserva sus valores. x4 y x 5 no son biformes en L. x6 es biforme en L, en 0, con consenso: y también en: 0, con consenso: L 0 0, 0,,, 0, Se tiene la única implicación: 0. Se tienen entonces los implicantes primos: p j ; Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 27 Ejemplo 6.4. Minimizar: be f+acde fgh+b gh L 0 0,,, 0, Se tiene una función de ocho variables, para la cual es difícil emplear mapas de Karnaugh. Con b biforme, el consenso entre el primer y último término es: e fgh. Pero acde fgh implica e fgh. A su vez e fgh es término de consenso, e implica a be f y b gh. Entonces resulta: be f + b gh Ejemplo 6.5. Minimizar: ac de+d +e +c. c es biforme, el consenso es ade, y ac de implica a ade. Queda ade+d +e +c. d es biforme, el consenso entre ade y d es ae. Pero ade implica a ae. Queda ae+d +e +c. e es biforme, el consenso entre ae y e es a; pero ae implica a e, queda finalmente: a+d +e +c. Profesor Leopoldo Silva Bijit 9-0-200

28 Sistemas Digitales Problemas resueltos. Problema 6.. Se tiene la función g(a, B, C, D, E, F) = m( 8, 0, 24, 26, 42, 58, 59 ) a) Determinar los implicantes primos aplicando el método de Quine McCluskey. b) Indicar cuáles son esenciales, justificando su respuesta. c) Minimizar la función g. Solución. Se ordena según número de unos de los mintérminos. En la primera columna quedan todos los mintérminos marcados, en el proceso de formar la siguiente columna de -cubos. 8 00000 0 0000 24 0000 26 000 42 000 58 00 59 0 un uno dos unos tres unos cuatro unos cinco unos Figura P6.. Ordenamiento según número de unos. En la segunda columna, de -cubos, queda sin marcar el grupo 58,59. 8,0 000_0 8,24 0_000 0,26 0_00 0,42 _000 24,26 00_0 26,58 _00 42,58 _00 58,59 0_ ip queda sin marcar Figura P6.2. Implicantes formados por dos mintérminos. La tercera columna, de los 2-cubos, es la última que puede formarse. Y por lo tanto los renglones quedan sin marcar. 8,0,24,26 0 _0_0 ip2 0,26,42,58 00 ip3 Figura P6.3. 2 cubos. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 29 Finalmente los implicantes son: ip = ABCD'E ; ip2 = A'CD'F' ; ip3 = CD'EF' Determinación de los implicantes primos. ip es esencial porque es el único que contiene al 8 y 24. ip2 es esencial porque es el único que contiene al 42. ip3 es esencial porque es el único que contiene al 59. Resultando la siguiente función mínima: g = ABCD'E + A'CD'F' + CD'EF' Problema 6.2. En el proceso de reducción de tablas se tiene la siguiente tabla reducida. 2 3 4 5 8 0 ip x x x ip2 x x x x ip3 x x ip4 x x x x ip5 x x Figura P6.4. Tabla Problema 6.2. a) Determinar cuáles renglones pueden eliminarse por estar cubiertos por otro. b) Determinar cuáles columnas pueden eliminarse. c) Explicar la razón por la que ip2 e ip4 figuran con los mismos mintérminos. Solución. a) ip cubre a ip3 y también a ip5. Podrían eliminarse renglones asociados a ip3 e ip5. ip2 cubre a ip4 y viceversa; puede eliminarse uno de ellos. b) Columna 3 puede eliminarse, ya que está cubierta por la columna 2. (el mintérmino 3 tiene asegurada su consideración) Columna 4 puede eliminarse, ya que está cubierta por las columnas 5, 8 y 0. (el mintérmino 4 tiene asegurada su consideración) Columnas 5, 8 y 0 se cubren entre sí. Pueden eliminarse dos cualesquiera. c) ip2 e ip4 tienen iguales mintérminos, se diferencian en implicantes superfluos; los cuáles no se indican en la tabla. Ejercicios propuestos. Ejercicio 6.. Verificar, aplicando método de Quine-McCluskey, que la minimización de: f(a, b, c, d) = m(0, 2, 5, 6, 7, 8, 0, 2, 3, 4, 5) resulta: f(a, b, c, d) = b d + bd + cd + ad Profesor Leopoldo Silva Bijit 9-0-200

30 Sistemas Digitales Ejercicio 6.2. Verificar, aplicando método de Quine-McCluskey, que la minimización de: f(a, b, c, d) = m(0, 2, 3, 4, 5, 6, 7, 8, 9, 0,, 2, 3) tiene las siguientes soluciones: f(a, b, c, d) =a b + ac + b c + a d P3*P5*P7*P8 f2(a, b, c, d) =ab + bc + a c + a d P2*P4*P6*P8 f3(a, b, c, d) =ab + bc + a c + b d P2*P4*P6*P9 f4(a, b, c, d) =c d + a b + ac + b c P*P3*P5*P7 f5(a, b, c, d) =c d + ab + bc + a c P*P2*P4*P6 f6(a, b, c, d) =a b + ac + b c + b d P3*P5*P7*P9 Todas de 2 entradas y 8 literales. Pero el diseño mínimo se obtiene con la forma producto de sumas: f(a, b, c, d)= (a + b + c )(a + b + c + d ) con 8 entradas y 7 literales. Verificar que se tienen 9 implicantes primos, todos de igual costo en literales: IP IP2 IP3 IP4 IP5 IP6 IP7 IP8 IP9 c d ab a b bc ac a c b c a d b d Y para que estén presentes todos los mintérminos, debe cumplirse, aplicando el método de Petrick: P = (P+P8+P9)*(P6+P7+P8+P9)*(P6+P7)*(P+P3+P4+P9)*(P3+P4)*(P3+P6+P9)* (P3+P6)* (P+P2+P5+P8)*(P2+P5)*(P2+P7+P8)*(P2+P7)*(P+P4+P5)*(P4+P5); Lo cual entrega 5 soluciones, seis de ellas formadas por cuatro implicantes, que resultan las formas mínimas. P = P4*P5*P6*P7*P9 + P2*P3*P4*P7*P9 + P2*P3*P5*P6*P9 + P4*P5*P6*P7*P8 + P2*P3*P4*P7*P8 + P2*P3*P5*P6*P8 + P*P4*P5*P6*P7 + P*P2*P3*P4*P7 + P*P2*P3*P5*P6 + P3*P5*P7*P9 +P2*P4*P6*P9 +P3*P5*P7*P8 +P2*P4*P6*P8 + P*P3*P5*P7 + P*P2*P4*P6; La reducción a producto de sumas puede lograrse escribiendo en un archivo eq.eqn, el contenido: INORDER = P P2 P3 P4 P5 P6 P7 P8 P9; OUTORDER = P; P = (P+P8+P9)*(P6+P7+P8+P9)*(P6+P7)*(P+P3+P4+P9)*(P3+P4)*(P3+P6+P9)*(P3+P6)* (P+P2+P5+P8)*(P2+P5)*(P2+P7+P8)*(P2+P7)*(P+P4+P5)*(P4+P5); Luego empleando sis (ver Apéndice 6), se ejecutan los comandos: sis> read_eqn eq.eqn sis> write_eqn res.eqn Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 3 Lo cual produce el archivo res.eqn, con los productos: INORDER = P P2 P3 P4 P5 P6 P7 P8 P9; OUTORDER = P; P = P4*P5*P6*P7*P9 + P2*P3*P4*P7*P9 + P2*P3*P5*P6*P9 + P4*P5*P6*P7*P8 + P2*P3*P4*P7*P8 + P2*P3*P5*P6*P8 + P*P4*P5*P6*P7 + P*P2*P3*P4*P7 + P*P2*P3*P5*P6 + P3*P5*P7*P9 + P2*P4*P6*P9 + P3*P5*P7*P8 + P2*P4*P6*P8 + P*P3*P5*P7 + P*P2*P4*P6; Los últimos seis productos son las formas mínimas, y se han anotado a la derecha de las funciones en el enunciado del problema. Ejercicio 6.3. Verificar, aplicando método de Quine-McCluskey, que la minimización de: f(a, b, c, d) = m(2, 3, 7, 9,, 3) +d(, 0, 5) resulta: f(a, b, c, d) = ad + b c + cd Con implicantes primos: ad, b c, cd, b d Ejercicio 6.4. Verificar, aplicando método de Quine-McCluskey, que la minimización de: f(a, b, c, d) = Σ m(, 5, 7, 8, 9, 3, 5) + Σ d(4, 2, 4) resulta: f(a, b, c, d) = ab + ac + c d Ejercicio 6.5. Verificar que el diseño mínimo de: f(a, b, c) = Σ m(0,, 2, 5, 6, 7) resulta: f(a, b, c) = a'b'+ bc'+ ac = a'c'+ b'c + ab Ejercicio 6.6. Verificar que el diseño mínimo de: f(a, b, c, d) = Σ m(2, 5, 6,, 2, 4, 5) + Σ d(0, 3, 4) resulta: f(a, b, c, d) = a'bc' + bd' + acd + a'd' Ejercicio 6.7. Demostrar f g f g g y f g f f g ( f g) y ( g f ) Profesor Leopoldo Silva Bijit 9-0-200

32 Sistemas Digitales Referencias. W.V. Quine. "The problem of simplifying truth functions." American Mathematical Monthly Vol. 59. Octubre 952. págs 52-53. W.V. Quine. "A way to simplify truth functions." American Mathematical Monthly Vol. 62. Noviembre 955. págs 627-63. E.J. McCluskey. "Minimization of Boolean Functions". Bell Syst. Tech. Journal N 6, Noviembre 956. págs. 47-444. P. Tison. "Théorie des consensus. These présentée à La Faculte des Sciences de L'Universite de Grenoble. Junio 965. P. Tison, "Generalization of consensus theory and application to the minimization of Boolean functions," IEEE Trans. Electron. Comput., vol. EC-6, pp. 446-456, Aug. 967. Petrick, S. R. A Direct Determination of the Irredundant Forms of a Boolean Function from the Set of Prime Implicants. Technical Report AFCRC-TR-56-0, Air Force Cambridge Research Center, Cambridge, MA, USA. 956. Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 33 Índice general. CAPÍTULO 6... ALGORITMOS DE MINIMIZACIÓN... 6.. IMPLICACIÓN... 6.2. IMPLICANTES PRIMOS... 2 6.3. IMPLICANTE PRIMO ESENCIAL... 2 Ejemplo 6..... 3 Ejemplo 6.2.... 3 6.4. MÉTODO DE QUINE (952)... 4 6.4.. Obtención de implicantes primos... 4 Ejemplo 6.3.... 4 6.4.2. Tabla de implicantes... 5 Ejemplo 6.4.... 5 6.4.3. Reducción de tablas... 6 Ejemplo 6.5.... 6 Ejemplo 6.6.... 8 6.5. TABLA REDUCIDA CÍCLICA.... 0 6.5.. Bifurcación.... 0 Ejemplo 6.7.... 0 6.5.2. Petrick (956)... Ejemplo 6.8.... 2 Ejemplo 6.9.... 3 Ejemplo 6.0.... 3 6.6. MÉTODO DE QUINE-MCCLUSKEY (956)... 7 Ejemplo 6... 7 6.7. MÉTODO DE TISON (965) PARA ENCONTRAR IMPLICANTES PRIMOS. CONSENSO REITERADO.... 20 6.7.. Fundamentos.... 20 6.7.2. Algoritmo de Tison.... 2 Ejemplo 6.2.... 22 6.7.3. Operaciones para desarrollar el algoritmo,... 25 a) Obtener términos de consenso.... 25 b) Un producto que implica otro: pi pj... 26 Ejemplo 6.3... 26 Ejemplo 6.4... 27 Ejemplo 6.5... 27 PROBLEMAS RESUELTOS.... 28 Problema 6..... 28 Problema 6.2.... 29 EJERCICIOS PROPUESTOS.... 29 Ejercicio 6..... 29 Ejercicio 6.2.... 30 Ejercicio 6.3.... 3 Ejercicio 6.4.... 3 Ejercicio 6.5.... 3 Profesor Leopoldo Silva Bijit 9-0-200

34 Sistemas Digitales Ejercicio 6.6.... 3 Ejercicio 6.7.... 3 REFERENCIAS.... 32 ÍNDICE GENERAL.... 33 ÍNDICE DE FIGURAS... 35 Profesor Leopoldo Silva Bijit 9-0-200

Capítulo 6. Algoritmos de minimización 35 Índice de figuras Figura 6. Implicación.... Figura 6.2 Implicantes primos... 3 Figura 6.3 Implicantes primos ejemplo 6.2... 3 Figura 6.4 Obtención de implicantes primos... 5 Figura 6.5 Tabla de implicantes primos... 5 Figura 6.6 Renglón cubierto por otro.... 6 Figura 6.7 Mapa con implicantes.... 7 Figura 6.8 Tabla de implicantes.... 7 Figura 6.9 Tabla de implicantes reducida... 7 Figura 6.0 Columna cubierta por otra... 8 Figura 6. Mapa con implicantes.... 8 Figura 6.2 Tabla implicantes con columnas cubiertas por otras.... 9 Figura 6.3. Tabla reducida, por eliminación de columnas... 9 Figura 6.4. Tabla reducida, por eliminación de renglones.... 9 Figura 6.5. Método de bifurcación (branching).... 0 Figura 6.6. Bifurcación con Ip.... Figura 6.7. Bifurcación con Ip2.... Figura 6.8. Bifurcación con Ip3.... Figura 6.9. Tabla cíclica.... 2 Figura 6.20. Implicantes primos de Ejemplo 6.6.... 3 Figura 6.2. Tabla de implicantes Ejemplo 6.0.... 4 Figura 6.22 Remoción implicante primo esencial... 4 Figura 6.23. Remoción renglón ipd... 4 Figura 6.24. Remoción implicante primo ipa, en tabla cíclica.... 5 Figura 6.25 Remoción renglones ipc e iph.... 5 Figura 6.26 Remoción implicante primo ipc, en tabla cíclica.... 5 Figura 6.27 Remoción implicantes primos ipa e ipe.... 6 Figura 6.28 Agrupación según número de unos.... 8 Figura 6.29 Grupos de dos mintérminos adyacentes.... 8 Figura 6.30. Grupos de cuatro mintérminos agrupables.... 9 Figura 6.3. Tabla de implicantes ejemplo 6.8.... 9 Figura 6.32. Término de consenso.... 2 Figura 6.33. Mintérminos de f.... 22 Figura 6.34. Productos de consenso para variable C.... 23 Figura 6.35. Productos de consenso para variable D.... 23 Figura 6.36. Productos de consenso para variable A.... 24 Figura 6.37. Productos de consenso para variable B.... 24 Figura 6.38. Implicantes primos para f.... 25 Figura P6.. Ordenamiento según número de unos.... 28 Figura P6.2. Implicantes formados por dos mintérminos.... 28 Figura P6.3. 2 cubos.... 28 Figura P6.4. Tabla Problema 6.2.... 29 Profesor Leopoldo Silva Bijit 9-0-200

36 Sistemas Digitales Profesor Leopoldo Silva Bijit 9-0-200