Como converter uma expressão de SOP para POS e de volta na Álgebra Booleana?

9

Como converter uma expressão Soma de produtos (SOP) para forma de produto de somas (POS) e vice-versa em Álgebra booleana?

por exemplo: F = xy '+ yz'

jskroch
fonte
8
Na verdade, isso está muito relacionado à lógica digital. É equivalente a dizer como mudar um circuito que consiste em um monte de portas e alimenta um ou portão para um que consiste em um monte de portas que alimentam um portão e.
21711 Chris Stratton
11
O que é SOP e POS?
AndrejaKo
3
POP = soma de produtos. POS = produto das somas, por exemplo (x + y) (~ x + ~ y). "OR" lógico é uma soma, enquanto "AND" é um produto.
Eryk Sun
Isso certamente é ensinado nos cursos de graduação em lógica digital, mas o tyblu está certo de que isso pertence à matemática SE. @TheLameProgrammer, procure mapas de Karnaugh (mapas K) e o teorema de DeMorgan.
Eryk Sun
2
... usar as leis de DeMorgan? Além disso, o exemplo fornecido na pergunta não é um POP canônico porque todas as variáveis ​​devem estar presentes em todos os termos, certo?
vicatcu

Respostas:

15

Eu acho que a maneira mais fácil é converter para um mapa-k e depois obter o POS. No seu exemplo, você tem:

  \ xy
 z \  00    01    11    10
    +-----+-----+-----+-----+
 0  |     |  x  |  x  |  x  |
    +-----+-----+-----+-----+
 1  |     |     |     |  x  |
    +-----+-----+-----+-----+

Nesse caso, excluir a coluna da esquerda fornece (x + y) e excluir as duas caixas do meio inferiores fornece (z '+ y'), fornecendo uma resposta de (x + y) (z '+ y')

FryGuy
fonte
Mas deve ser F = (x + y) (y '+ z').
Eryk Sun
Opa, você está certa. Já faz um tempo desde que eu fiz k-maps, então eu li errado. Eu corrigi a resposta.
FryGuy
5

F = xy '+ yz' está na forma SOP

Isso também pode ser resolvido usando técnicas de Álgebra Booleana Simples como:

Aplicação da lei distributiva : - F = ( xy ') + y . z '

F = ( xy ' + y) . ( xy '+ z') que agora é convertido para o formulário POS .

Syed Fahad
fonte
4

Outro método é apenas aceitar o elogio da expressão fornecida:

Como: xy '+ yz'

Tomando seu elogio:
(xy '+ yz') '

= (xy ')'. (yz ')' {Usando a lei de De Morgans (a + b) '= a'.b'}

= (x '+ y) (y' + z)

Que também é o formulário POS ...!

Syed Fahad
fonte
6
Isso dá um POS.Mas é o oposto completo da expressão fornecida.
Nirmal Seneviratne
2

Use a lei de DeMorgan duas vezes.

Aplique a lei uma vez:

F' = (xy' + yz')'
   = (xy')'(yz')'
   = (x'+y)(y'+z)
   = x'y' + x'z + yy' + yz
   = x'y' + x'z + yz

Aplique novamente:

F=F''
 =(x'y'+x'z+yz)'
 =(x'y')'(x'z)'(yz)'
 =(x+y)(x+z')(y'+z')
 =(x+y)(y'+z')

Verifique a resposta usando wolframalpha.com

xy '+ yz'

(x + y) (y '+ z')

Edit: A resposta pode ser simplificada mais um passo pela lei do consenso em álgebra booleana

wannik
fonte
1

Se você quiser verificar seu trabalho depois de fazê-lo manualmente, poderá usar um programa como o Logic Friday .

mjh2007
fonte
1

Ele está nos termos mínimo / Soma dos produtos [SOP] e máximo / Produto das somas [POS], para que possamos usar um mapa de Karnaugh (mapa K) para ele.

Para o SOP, emparelhamos 1 e escrevemos a equação de emparelhamento no SOP, enquanto isso pode ser convertido em POS ao emparelhar 0 nele e escrever a equação na forma de POS.

xyzx+y+z

dipen
fonte
0

Veja o procedimento em Forma Normal Conjuntiva: Convertendo da Lógica de Primeira Ordem .

Este procedimento abrange o caso mais geral da lógica de primeira ordem, mas a lógica proposicional é um subconjunto da lógica de primeira ordem.

Simplificando ignorando a lógica de primeira ordem, é:

  • Eliminar implicações
  • Mova as negações para dentro aplicando a lei de DeMorgan
  • Distribuir disjunções sobre conjunções

Obviamente, se sua entrada já estiver no DNF (também conhecido como SOP), então obviamente a primeira e a segunda etapas não se aplicam.

Doug McClean
fonte
0

Seja x = ab'c + bc '

x '= (ab'c + bc') '

Pelo teorema de DeMorgan, x '= (a' + b + c ') (b' + c)

x '= a'b' + a'c + bb '+ bc + c'b' + c'c

x '= a'b' + a'c + bc + c'b '

Empregando o teorema de DeMorgan novamente, x = (a'b '+ a'c + bc + c'b') '

x = (a + b) (a + c ') (b' + c ') (c + b)

shivani singh
fonte
Bem-vindo ao StackExchange de Engenharia Elétrica. Se você fornecer uma nova resposta para uma pergunta antiga, deixe claro o que foi adicionado às respostas anteriores ou o que estava incorreto nas respostas anteriores. A propósito, sua segunda linha não está no formato POS? O OP não perguntou sobre como reduzir a equação, para que o restante de sua resposta pudesse ser confuso.
precisa
Isto está correto.
Nirmal Seneviratne