Un primer paso habitual en un problema de cobertura mínima es encontrar todos los implicantes primos y seleccionar los esenciales: candidatos que por sí solos cubren al menos un minterm requerido. Ese paso es útil y muchas veces completa la cobertura, como en el ejemplo clásico de 4 variables de la guía del mapa de Karnaugh. Sin embargo, si quedan minterms requeridos, aún hay que completar la cobertura comparando los candidatos restantes; detenerse tras extraer los esenciales dejaría la función cubierta solo parcialmente.
De dónde viene el atajo de PI esenciales
Un minterm es "esencial" para un implicante primo cuando ese implicante primo es el único que lo cubre — no hay elección que hacer, así que más vale seleccionarlo. Una vez seleccionado cada implicante primo esencial, todo lo que cubren queda contabilizado, y la única pregunta restante es qué minterms quedan sin cubrir. A menudo no queda ninguno — cada minterm resulta tener al menos un implicante primo esencial, y el atajo por sí solo da la respuesta mínima exacta.
Cuándo se rompe: un ejemplo cíclico genuino
Toma F(A,B,C,D) = Σm(2,4,5,6,10,11,13,15). Al calcular cada implicante primo se obtienen exactamente ocho candidatos, y — de forma inusual — cada uno de ellos cubre exactamente dos minterms, con cada minterm cubierto por exactamente dos candidatos:
| Implicante primo | Cubre |
|---|---|
| A′CD′ | 2, 6 |
| B′CD′ | 2, 10 |
| A′BC′ | 4, 5 |
| A′BD′ | 4, 6 |
| BC′D | 5, 13 |
| AB′C | 10, 11 |
| ACD | 11, 15 |
| ABD | 13, 15 |
Revisa cada minterm contra esta lista y ninguno tiene un solo implicante primo que lo cubra — cada uno tiene exactamente dos opciones. No hay ningún implicante primo esencial en toda esta tabla. El atajo de "selecciona los esenciales" no tiene nada que seleccionar, y por sí solo no te lleva absolutamente a ningún lado.
Qué hace el método de Petrick en su lugar
El método de Petrick resuelve esto convirtiendo el problema de cobertura en álgebra Booleana pura. Para cada minterm, escribe un OR de los implicantes primos que lo cubren — para el minterm 2 en la tabla anterior, eso es "A′CD′ o B′CD′". Multiplica todas esas cláusulas OR entre sí (una por minterm), a través de los ocho minterms, y expande el producto usando álgebra Booleana ordinaria — distribuyendo, y eliminando cualquier término que sea un superconjunto de un término más pequeño ya presente (un conjunto más grande de implicantes primos seleccionados nunca es mejor que uno más pequeño que ya hace el trabajo). Lo que queda después de expandir y reducir es cada forma válida de cubrir la función; elige la opción sobreviviente que use menos implicantes primos, y menos literales totales como criterio de desempate.
Ejecuta este ejemplo específico a través de ese proceso y se resuelve limpiamente en una cobertura de 4 términos:
Cuatro implicantes primos, cada uno cubriendo exactamente dos minterms, particionando juntos los ocho minterms sin ninguna superposición — el mínimo genuino, alcanzado sin ningún implicante primo esencial en el que apoyarse en todo el proceso.
Por qué esto importa para una herramienta que afirma ser "mínima"
Tablas cíclicas como esta no son un caso extremo raro inventado para libros de texto — aparecen siempre que la estructura de una función resulta ser lo suficientemente simétrica como para que ningún implicante primo sea insustituible. Un simplificador que solo implementa la extracción de PI esenciales o bien se quedará atascado con minterms que no puede resolver, o — peor — recurrirá a una heurística codiciosa que elige una cobertura válida pero no mínima, sin señalar que lo hizo. Este solucionador ejecuta el método de Petrick sobre lo que queda después de la extracción esencial en cada ocasión, específicamente para que una tabla cíclica como la anterior siga resolviéndose al mínimo verdadero en lugar de una aproximación "suficientemente buena".