Quickstart
- Instale o Python (baixe ou use seu gerenciador de pacotes favorito.)
- Instale o pacote
sympy
, compython -m pip install sympy
.
Estudos de Caso
Considere que deseja-se simplificar a expressão A'B'C' + A'B'C + ABC' + AB'C'
, também representada pela seguinte tabela-verdade:
A | B | C | D | S |
---|---|---|---|---|
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 0 |
Caso 1 - Partindo da Tabela-verdade
from sympy.logic import SOPform
from sympy import symbols
from sympy.logic.boolalg import bool_miniterm
# Extraia manualmente os minitermos e guarde-os em uma matriz
miniterms = [
[0, 0, 0, 0], # A'B'C'D'
[0, 0, 0, 1], # A'B'C'D
[0, 0, 1, 0], # A'B'CD'
[0, 0, 1, 1], # A'B'CD
[1, 0, 0, 0], # AB'C'D'
[1, 0, 0, 1], # AB'C'D
[1, 1, 0, 0], # ABC'D'
[1, 1, 0, 1] # ABC'D
]
# Nomeie as variaveis atraves de simbolos
A, B, C, D = symbols('A B C D')
# Simplifique a expressao
simplified_expression = SOPform([A, B, C, D], miniterms)
# Mostre o resultado
print("Minitermos:")
[print(x) for x in miniterms]
print()
print("Expressao simplificada:")
print(simplified_expression)
Minitermos:
[0, 0, 0, 0]
[0, 0, 0, 1]
[0, 0, 1, 0]
[0, 0, 1, 1]
[1, 0, 0, 0]
[1, 0, 0, 1]
[1, 1, 0, 0]
[1, 1, 0, 1]
Expressao simplificada:
(A & ~C) | (~A & ~B)
Caso 2 - Partindo da Expressão Booleana
from sympy.logic import simplify_logic
from sympy import symbols
# Crie os simbolos e defina a expressao logica
A, B, C, D = symbols('A B C D')
expression = ~A & ~B & ~C | ~A & ~B & C | A & B & ~C | A & ~B & ~C
# Simplifique a expressao
simplified_expression = simplify_logic(expression, 'dnf')
# Mostre o resultado
print("Expressao original:")
print(expression)
print()
print("Expressao simplificada:")
print(simplified_expression)
Expressao original:
(A & B & ~C) | (A & ~B & ~C) | (C & ~A & ~B) | (~A & ~B & ~C)
Expressao simplificada:
(A & ~C) | (~A & ~B)
Como esperado, os resultados coincidem.