icc-05 Álgebra booleana

80
Álgebra Binária Booleana Capítulo 3

Upload: nicola-zagari

Post on 18-Dec-2014

6.351 views

Category:

Technology


2 download

DESCRIPTION

Álgebra Binária Booleana: funções booleanas, funções AND, OR, NOT, NAND, NOR, XOR, X-NOR e função Implicação. Teoremas da Álgebra de Boole, Teoremas de De Morgan, Diagramas de Venn, Produto da Soma e Soma de Produtos.

TRANSCRIPT

Page 1: ICC-05 Álgebra Booleana

Álgebra Binária Booleana

Capítulo 3

Page 2: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 2

O Conceito de Função

� Função de 1 variável independente:– Regra através da qual se determina o valor

de uma segunda variável (dependente) a partir do valor da variável dependente

y = f(x)

� Domínio: conjunto de valores que pode ser assumido pela variável independente x

Page 3: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 3

Exemplo 1

� y = 5x2 + 3

x y = f(x)

0 3

1 8

2 23

3 48

Page 4: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 4

Exemplo 2

� Não existem apenas funções matemáticas. As variáveis nem sempre precisam ser numéricas

x y = f(x)

Verde Prossiga

Amarelo Devagar

Vermelho Pare

Page 5: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 5

Tipos de Função

� Contínuas� Discretas

Page 6: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 6

Funções Booleanas

Variáveis que podemassumir 2 valores

Associadas Valores binários1 e 0

Denominadas variáveis binárias ou lógicas

� Variáveis binárias ou lógicas:– Só pode assumir 1 de 2 valores possíveis– Valores expressos por afirmações declarativas– Os 2 valores possíveis devem ser mutuamente

exclusivos

� Álgebra Booleana: é a álgebra das variáveis binárias

Page 7: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 7

Funções Booleanas

� Com variáveis lógicas podemos representar qualquer coisa: temperatura, pressão, distância, velocidade, tempo, etc. – ao se considerar a relação funcional entre variáveis do

ponto de vista matemático, não nos interessa o que érepresentado por elas.

– assim, devemos dar aos dois valores possíveis de uma variável lógica, nomes que permitam considerar a variável independentemente do que ela possa representar

Page 8: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 8

Exemplo� Seja a versão simplificada da tabela do exemplo do

semáforo:

� “X” é a variável lógica independente e “Y” é a variável lógica dependente. Os valores 1 e 0 na tabela da direita são atribuídos arbitrariamente no caso de “X” para as cores “verde” e “vermelho”; e no caso da variável “Y” para os comandos “prossiga” e “pare”. Normalmente associamos ao valor 1 as idéias de verdadeiro, positivo, ativo, etc; e ao valor 0 as idéias de falso, inativo, etc.

a qual é equivalente a:

x y = f(x) x y = f(x)

Verde Prossiga 1 1

Vermelho Pare 0 0

Page 9: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 9

Funções BooleanasBásicas

� Funções com apenas 1 variável:

Função negação

X Y = não(X)

1 0

0 1

Função coincidência

X Y = (X)

1 1

0 0

Page 10: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 10

Funções BooleanasBásicas

� Funções com 2 variáveis booleanas:

Função e Função ou

X Z Y = (X e Z) X Z Y = (X ou Z)

0 0 0 0 0 0

0 1 0 0 1 1

1 0 0 1 0 1

1 1 1 1 1 1

Page 11: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 11

Expressões Booleanas

� Problemas podem ser expressos através de funções booleanas:– “João irá ao cinema mas apenas se conseguir

um carro emprestado e Maria também puder ir.”

Cadaafirmação

variávelbooleana

Associada

Page 12: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 12

Expressões Booleanas

� Variável X= empréstimo do carro.– Como X só pode assumir dois valores, vamos estipular

que:• X = 1 significa que João conseguiu o empréstimo do carro.

• X = 0 significa que ninguem emprestou o carro para João.

� Variável Z= companhia da Maria.– De forma análoga ao caso anterior podemos estipular

que:• Z = 1 significa que Maria irá ao cinema.

• Z = 0 significa que Maria não poderá ir.

Page 13: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 13

Expressões Booleanas

� Variável Y= ida de João ao cinema• Y = 1 significa que João irá ao cinema.

• Y = 0 significa que João não poderá ir.

� Sabemos que Y depende de X e Z– logo Y = f(X,Z).

� Montando uma tabela com todas as possibilidades descobrimos que a relação entre X,Z,Y é: Y = (X e Z)

Page 14: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 14

Expressões BooleanasX Z Y =

f(X,Z)SIGNIFICADO

0 0 0 João não irá ao cinema porque está sem carro e Maria não pode ir.

0 1 0 João não irá ao cinema porque está sem carro.

1 0 0 João não irá ao cinema porque Maria não pode ir.

1 1 1 João irá ao cinema com Maria usando um carro emprestado.

Page 15: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 15

Expressões Booleanas

� Outro exemplo: – “Vou ao cinema se eu tiver dinheiro para o

ingresso ou se alguém pagar para mim.”

– X = Ter dinheiro (0 = não ter $ , 1= ter $)– Z = Alguém vai pagar para mim (0 = ninguém

pg p/ mim , 1= alguém pg)– Y = (X OU Z) - Decisão (0= não ir ao cinema ,

1= ir ao cinema)

Page 16: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 16

Expressões BooleanasX Z Y =

f(X,Z)SIGNIFICADO

0 0 0 Não fui ao cinema porque não tenhodinheiro e ninguém pagou.

0 1 1 Vou ao cinema porque alguém vai pagar.

1 0 1 Vou ao cinema porque tenho dinheiro.

1 1 1 Vou ao cinema porque tenho dinheiro e alguém vai pagar.

Page 17: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 17

Expressões Booleanas

� As linguagens de programação possuem formas de escrever expressões, tais como as dos exemplosanteriores (ou bem mais complexas), as quais podem ser avaliadas pelo computador.

� Desta forma, usando álgebra booleana em um computador é possível criar programas que resolvam problemas que possuam uma solução lógica.

Page 18: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 18

Funções Booleanas

� A notação 0 e 1– A = 0 A = F

– A = 1 A = V– Ou tensões elétricas, normalmente 0 V e

+5 V– 0 e 1 são valores lógicos de uma variável

(não são números).

Page 19: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 19

A Função AND� Z = (A AND B ) ou Z = A ∧ B ou Z = AB (A e

B)

� Convenções:• chave aberta = 0• chave fechada = 1• lâmpada apagada = 0• lâmpada acesa = 1

E

A B

L

Page 20: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 20

A Função ANDChave A Chave B Lampada

Aberta Aberta Apagada

Aberta Fechada Apagada

Fechada Aberta Apagada

Fechada Fechada Acesa

A B Z=f(A,B)

0 0 0

0 1 0

1 0 0

1 1 1

TabelaVerdade:

Page 21: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 21

A portaAND

� Executa a função AND

� Pode-se descrever a função AND para qualquer número de entradas. A saída Zpermanecerá no estado 1 se, e somente se, as N entradas forem iguais a 1 e permanecerá no estado 0 nos demais casos.

A

BZ

Page 22: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 22

A FunçãoOR

� Z = A + B ou Z = A ∨ B (A ou B)

E

A

B L

A B Z= A + B

0 0 0

0 1 1

1 0 1

1 1 1

TabelaVerdade:

Page 23: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 23

Porta Lógica OR

A

BZ

Page 24: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 24

A FunçãoNOT (Complemento)

� Z = ¬A (não A)� A função NOT, ou função complemento,

inverte o estado da variável

A Z = ¬A

0 1

1 0

Page 25: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 25

A PortaNOT (inversor)

A Z

Page 26: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 26

A Função NAND

� A função NAND é a função AND combinada com a função NOT.

� Z = ¬ (A ∧ B)

A B Z = ¬ (A ∧ B)

0 0 1

0 1 1

1 0 1

1 1 0

Page 27: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 27

Porta Lógica NAND

A

BZ

Page 28: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 28

A Função NOR

� A função NOR é a função OR combinada com a função NOT.

� Z = ¬(A ∨ B)

A B Z = ¬ (A ∨ B)

0 0 1

0 1 0

1 0 0

1 1 0

Page 29: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 29

Porta Lógica NOR

A

BZ

Page 30: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 30

A Função XOR (Exclusive Or)

� Z = A ⊕ B� Z = 1 quando A ou B, na exclusão da

outra variável, tiver valor lógico 1.

A B Z = A ⊕ B

0 0 0

0 1 1

1 0 1

1 1 0

Page 31: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 31

Porta Lógica XOR

A

BZ

Page 32: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 32

A Função X-NOR (Exclusive NOR)

� A função Exclusive-Nor é a função Exclusive-Or combinada com a função NOT.

� Z = ¬(A ⊕ B)

A B Z = ¬(A ⊕ B)

0 0 1

0 1 0

1 0 0

1 1 1

Page 33: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 33

Porta Lógica X-NOR

A

BZ

Page 34: ICC-05 Álgebra Booleana

34

A Função Implicação

� Z = A → B (A implica B)

� Se a situação com respeito a A e B for consistente com a idéia de que A implica B, então Z seráverdadeira. A única possibilidade que não éconsistente com a idéia de A implicar B é que A seja verdadeiro e B seja falso. Neste caso, Z será falso.

A B Z = A → B

0 0 1

0 1 1

1 0 0

1 1 1

Page 35: ICC-05 Álgebra Booleana

35

Teoremas da Álgebra de Boole

� Para definir uma função:

1) Expressão lógica: Z = A ∨ (B ∧ C)2) Tabela Verdade

A B C Z

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1

Page 36: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 36

Propriedades das funções lógicas:

� 1) Comutatividade:

Z = A ∧ B = B ∧ A ANDZ = A ∨ B = B ∨ A ORZ = A ⊕ B = B ⊕ A XOR

Page 37: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 37

Propriedades das funções lógicas:

� 2) Associatividade:

Z = (A ∧ B) ∧ C = A ∧ (B ∧ C) ANDZ = (A ∨ B) ∨ C = A ∨ (B ∨ C) ORZ = (A ⊕ B) ⊕ C = A ⊕ (B ⊕ C) XOR

Page 38: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 38

Propriedades das funções lógicas:

� 3) Princípio da DualidadeSe trocarmos os sinais (OR) e

(AND) entre si e trocarmos os 0s e 1s entre si, teremos substituído a equação original por outra igualmente válida.

Ex.: 0 ∧ 0 = 0 1 ∨ 1 = 1

Page 39: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 39

Teoremas

1. ¬ ¬A = A2. A ∨ 0 = A3. A ∨ 1 = 14. A ∨ A = A5. A ∨ ¬A = 16. A ∧ 1 = A7. A ∧ 0 = 08. A ∧ A = A9. A ∧ ¬A = 0

Page 40: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 40

Teoremas

10. A ∨ (A ∧ B) = A11. A ∧ (A ∨ B) = A12. (A ∧ B) ∨ (A ∧ ¬B) = A13. (A ∨ B) ∧ (A ∨ ¬B) = A14. A ∨ (¬A ∧ B) = A ∨ B15. A ∧ (¬A ∨ B) = A ∧ B

Page 41: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 41

Teoremas

16. A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C)

17. A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C)18. (A ∧ B) ∨ (¬A ∧ C) = (A ∨ C) ∧ (¬A ∨ B)

19. (A ∨ B) ∧ (¬A ∨ C) = (A ∧ C) ∨ (¬A ∧ B)20. (A∧B) ∨ (¬A∧C) ∨ (B∧C) = (A∧B) ∨ (¬A∧C)

21. (A∨B) ∧ (¬A∨C) ∧ (B∨C) = (A∨B) ∧ (¬A∨C)

Page 42: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 42

Teoremas

� A equação (17) indica que a álgebra de variáveis lógicas é distributiva:

A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C)

� ou pode ser fatorado um fator comum:(A ∧ B) ∨ (A ∧ C) = A ∧ (B ∨ C)

Fator comum

Page 43: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 43

Exercício

� Mostrar o Teorema 21 através da tabela-verdade.

Page 44: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 44

(A∨B) ∧ (¬A∨C) ∧ (B∨C) = (A∨B) ∧ (¬A∨C)

111110111

010010011

111110101

000010001

111111110

111111010

010101100

000101000

(A∨∨∨∨B) ∧∧∧∧ (¬¬¬¬A∨∨∨∨C) ∧∧∧∧ (B∨∨∨∨C)(B∨C)(A∨∨∨∨B) ∧∧∧∧ (¬¬¬¬A∨∨∨∨C)(¬A∨C)(A∨B)¬ACBA

Page 45: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 45

Funções de Duas Variáveis

� 16 funções possíveis:A 0 0 1 1B 0 1 0 1 Função

f0 0 0 0 0 f = 0f1 0 0 0 1 f = A ∧ B (and)f2 0 0 1 0 f = ¬(A → B) = A ∧ ¬Bf3 0 0 1 1 f = Af4 0 1 0 0 f = ¬(B → A) = ¬A ∧ B

Page 46: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 46

Funções de Duas Variáveis

A 0 0 1 1

B 0 1 0 1 Função

f5 0 1 0 1 f = B

f6 0 1 1 0 f = A⊕B = (A∧¬B)∨(¬A∧B)

f7 0 1 1 1 f = A ∨ B (or)f8 1 0 0 0 f = ¬(A ∨ B) (nor)

f9 1 0 0 1 f=¬(A⊕B)=(¬A∧¬B)∨(A∧B)

Page 47: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 47

Funções de Duas Variáveis

A 0 0 1 1B 0 1 0 1 Função

f10 1 0 1 0 f = ¬Bf11 1 0 1 1 f = B → A = A ∨ ¬Bf12 1 1 0 0 f = ¬Af13 1 1 0 1 f = A → B = ¬A ∨ Bf14 1 1 1 0 f = ¬(A ∧ B) (nand)f15 1 1 1 1 f = 1

Page 48: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 48

Exemplof6

A⊕B = (¬A ∧ B) ∨ (A ∧ ¬B)

A B ¬A ¬B ¬A ∧ B A ∧ ¬B (¬A ∧ B) ∨ (A ∧ ¬B)

0 0 1 1 0 0 0

0 1 1 0 1 0 1

1 0 0 1 0 1 1

1 1 0 0 0 0 0

Page 49: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 49

Teoremas de DeMorgan

� Teorema 1O complemento de um produto lógico (AND)

de variáveis é igual a soma lógica (OR) dos complementos de cada variável.

¬(A ∧ B ∧ C ...) = ¬A ∨ ¬B ∨ ¬C ...

Page 50: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 50

Teoremas de DeMorgan

� Teorema 2O complemento de uma soma lógica (OR) de

variáveis é igual ao produto lógico (AND) dos complementos de cada variável.

¬(A ∨ B ∨ C ...) = ¬A ∧ ¬B ∧ ¬C ...

Teorema 1 é dual a Teorema 2

Princípio da Dualidade

Page 51: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 51

Exercício

� Mostrar que f2 (A ∧ ¬B) é o complemento de f13 (¬A ∨ B) através de De Morgan.

Page 52: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 52

Diagramas de Venn

� O diagrama de Venn divide o espaço em regiões mutuamente exclusivas– 2n áreas identificáveis diferentes, onde n é

o número de variáveis.

– útil para visualizar geometricamente os teoremas da álgebra boolena.

Page 53: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 53

Diagramas de Venn

a) A ∨ ¬A = 1 � o 1 representa o universo de interesse (21 áreas)

b) (A ∧ B) ∨ (A ∧ ¬B) ∨ (¬A ∧ B) ∨ (¬A ∧¬B) = 1

22 áreas

A B

A.B

A.B A.B

A.B

A

A

Page 54: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 54

Diagramas de Venn

c) A ∨ B = (A ∧ ¬B) ∨(A ∧ B) ∨ (¬A ∧ B)

22 áreas

d) 3 variáveis (8 áreas)

A B

A + B

A+B

A B

C

A.B.C

A.B.C

A.B.C

A.B.C

A.B.C

A.B.C

A.B.C

A.B.C

Page 55: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 55

Exercícios

1) Usar um diagrama de Venn para verificar o teorema da equação (19), isto é,

(A ∨ B) ∧ (¬A ∨ C) = (A ∧ C) ∨ (¬A ∧ B)

2) Mostrar o Teorema 18 através de diagramas de Venn.

(A ∧ B) ∨ (¬A ∧ C) = (A ∨ C) ∧ (¬A ∨ B)

Page 56: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 56

Exemplos de aplicação(teoremas da Álgebra de Boole)

� Ex. 1: Simplificar w = xy + ¬(yx)z

w = xy + ¬(xy)z pois AB = BA (comutatividade)Se v = xy => w = v + ¬vz pois a função

de variáveis lógicas é uma variável lógica.

w = v + z pois A + ¬ AB = A + Bw = xy + z

(Teo. 14)

Page 57: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 57

Exemplos de aplicação

� Ex. 2: Simplificar w = x (¬x + y)

w = x (¬x + y) = xy pois A (¬A + B) = ABou

w = x (¬x + y) = x ¬x + xy A (B + C) = AB + AC= 0 + xy A . ¬A = 0= xy A + 0 = A

(Teo. 15)

Page 58: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 58

Exemplos de aplicação

� Ex. 3: Simplificar w = ¬x(x + y) + ¬z+zy

w = ¬x(x+y)+ ¬z+zy = ¬x(x+y)+ ¬z+y A+¬AB = A+B (A=z)w = ¬xx+ ¬xy+¬z+y = ¬xy+¬z+y A(B+C) = AB+AC e

¬AA=0w = y+¬xy+¬z = y+y¬x+¬z A+B = B+A; AB = BAw = y + ¬z A + AB = A

Page 59: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 59

Exemplos da aplicação(teoremas de DeMorgan)

� Ex. 4: Simplificar v = ¬(w + w¬x + yz)v = ¬(w+w¬x+yz) = ¬w.¬(w¬x).¬(yz)v = ¬w (¬w + ¬¬x)(¬y + ¬z)v = ¬w (¬w + x)(¬y + ¬z) ¬¬A = Av = ¬w (¬y + ¬z) A(A+B) = A, A = ¬wou:

v = ¬(w + w ¬x + yz) = ¬(w + yz) A + AB = Av = ¬(w + yz) = ¬w . ¬(yz) Teo. de De Morganv = ¬w (¬y + ¬z) Teo. de De Morgan

Teo. de De Morgan

Teo. de De Morgan

Page 60: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 60

Exemplos da aplicação

� Ex. 5: Simplificar v = ¬{w[(x+y(z+ ¬w))]}v =¬{w[(x+y(z+ ¬w))]} =¬w+¬[x+y(z+¬w)] De Morganv = ¬w + ¬x . ¬[y(z + ¬w)] De Morganv = ¬w + ¬x [¬y + ¬(z + ¬w)] De Morganv = ¬w + ¬x (¬y + ¬zw) De Morgan e ¬¬A = Av = ¬w + ¬x. ¬y + ¬x. ¬z.w A (B + C) = AB + BCv = ¬w + w.¬x. ¬z + ¬x. ¬y A+B = B+A e AB = BAv = ¬w + ¬x. ¬z + ¬x. ¬y A+¬AB = A+B (A = ¬w)v = ¬w + ¬x(¬y + ¬z) AB + AC = A (B + C) e

A+B = B+A

Page 61: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 61

Exemplos da aplicação(teoremas 20 e 21)

� Ex. 6: Simplificar v = wx+x¬y+yz+x¬z

v = wx + x¬y + yz + x¬z + xyv = wx + x(¬y + y) + yz + x¬z AB + AC = A(B + C)v = wx + x + yz + x¬z ¬A+A = 1 e A . 1 = Av = x + yz + x ¬z A + AB = Av = x + yz A + AB = A

Teo. (20)

Page 62: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 62

Exemplos da aplicação

� Ex. 7: Simplificar v = (w + x + y)(w + ¬x+ y)(¬y + z)(w + z)

v = (w + y)(¬y + z)(w + z)(A+B)(A+¬B) = AA = w + y, B = x

v = (w + y)(¬y + z) Teo. (21)

Page 63: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 63

Exemplos da aplicação

� Uma estudante consulta o catálogo da universidade e fica sabendo que pode se matricular em determinada disciplina somente se ela satisfizer uma das seguintes condições:

– Já completou sessenta créditos e é uma estudante de Análise de Sistemas regularmente matriculada;

– Completou sessenta créditos e é uma estudante de Análise e tem o consentimento do CEATEC;

– Completou menos de sessenta créditos e é uma estudante de Análise com matrícula especial;

– É uma estudante regularmente matriculada e tem o consentimento doCEATEC;

– É uma estudante de Análise e não tem o consentimento do CEATEC.� Encontre uma expressão mais simples que indique a possibilidade de a

estudante matricular-se na disciplina.

Page 64: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 64

Solução

� Introduzimos as variáveis w, x, y, z e v para representar as seguintes situações:

w = a estudante completou sessenta créditos;x = a estudante é aluna de Análise de Sistemas;

y = a estudante tem matrícula regular;

z = a estudante tem o consentimento do CEATEC;

v = a estudante pode se matricular na disciplina.� Ou seja,

se y = V ou y = 1 => a estudante tem matrícula regular, ou se y = F ou y = 0 => a estudante tem matrícula especial.

� Quando as variáveis w, x, y e z assumem valores tais que v = verdadeiro, a estudante pode se matricular. A especificação de quando isto ocorre pode ser feita pela equação algébrica lógica:

v = wxy + wxz + ¬wx¬y + yz + x¬z

Page 65: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 65

Solução

� A simplificação, usando os teoremas de álgebra booleana:

v = wxy + wxz + ¬wx¬y + yz + x¬zv = wxy + ¬wx¬y + yz + x(¬z + zw)v = wxy + ¬wx¬y + yz + x(¬z + w)v = wxy + ¬wx¬y + yz + x¬z + xwv = wx(y + 1) + ¬wx¬y + yz + x¬zv = wx + ¬wx¬y + yz + x¬zv = x(w + ¬w. ¬y) + yz + x¬zv = x(w + ¬y) + yz + x¬zv = xw + x¬y + yz + x¬z

Page 66: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 66

Solução

v = xw + x¬y + yz + x¬z

� A expressão é idêntica à do exemplo 6 do sub-ítemanterior, portanto:

v = x + yz

� Assim, a estudante poderá se matricular na disciplina (v = 1) se for uma aluna de Análise (x = 1) ou se simultaneamente tiver matrícula regular (y = 1) e consentimento do Instituto (z = 1).

Ex6

Page 67: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 67

Exemplos da aplicação

� Há cinco livros v, w, x, y e z, numa prateleira. Você deve selecionar alguns entre eles de modo a satisfazer todas as condições a seguir:

1. Selecionar v ou w ou ambos;2. Selecionar x ou z ou não ambos;3. Selecionar v e z juntos ou nenhum dos dois;4. Se selecionar y também deve selecionar z;5. Se selecionar w também deve selecionar v e y.

Page 68: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 68

Solução

� A expressão que satisfaz todas as condições é dada por u:

u = (v + w)(x ⊕ z)¬(v ⊕ z)(y → z)(w → vy)

Page 69: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 69

Solução� Transformando nas expressões equivalentes usando somente

as funções AND, OR e NOT:

u = (v + w)(x ⊕ z)¬(v ⊕ z)(y → z)(w → vy)u = (v + w)(x¬z + ¬xz)(vz + ¬v.¬z)(¬y + z)(¬w + vy)Pela comutatividade:

u = (v + w)(vz + ¬v.¬z)(x¬z + ¬xz)(¬y + z)(¬w + vy)Pela distributividade:

u = (vvz + wvz + v¬v.¬z + w¬v.¬z)(x¬z + ¬xz)(¬y + z)(¬w + vy)Como A ∧ A = A e A ∧ ¬A = 0:

u = (vz + wvz + ¬vw¬z)(x¬z + ¬xz)(¬y + z)(¬w + vy)Como A ∨ (A ∧ B) = A, fazendo A = vz e B = w:

u = (vz + ¬vw¬z)(x¬z + ¬xz)(¬y + z)(¬w + vy)

⊕ →

Page 70: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 70

SoluçãoPela comutatividade:

u = (vz + ¬vw¬z)(¬w + vy)(x¬z + ¬xz)(¬y + z)Pela distributividade:u =(vz¬w + vzvy + ¬vw¬z¬w + ¬vw¬zvy)(x¬z¬y + ¬xz¬y + x¬zz + ¬xzz)

Como A ∧ A = A e A ∧ ¬A = 0:

u =(vz¬w + vzy)(x¬z¬y + ¬xz¬y + ¬xz)Um pouco mais direto:

u = vz¬w.¬x¬y + vz¬w.¬x + vzy.¬x

Page 71: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 71

Solução

u = vz¬w.¬x¬y + vz¬w.¬x + vzy.¬xColocando o fator comum v¬xz em evidência:

u = v ¬xz (¬w. ¬y + ¬w + y)Como A ∨ (A ∧ B) = A, fazendo A = ¬w e B = ¬y:

u = v ¬xz (¬w + y)

� Devemos selecionar v e z e rejeitar x e, ao mesmo tempo, se rejeitarmos w, não importa se selecionamos ou rejeitamos y.

Page 72: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 72

Diagramas de Circuitos Lógicos

� Expressão lógica �� Diagrama de portas lógicas

u = v¬xz(¬w + y)

v

x

z

w

y

u

v.x.z

w+y

Page 73: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 73

Diagramas de Circuitos Lógicos

� Como ficaria a implementação em circuitos lógicos da expressão original, sem a simplificação ?

u = (v + w)(x¬z + ¬xz)(vz + ¬v.¬z)(¬y + z)(¬w + vy)

� A simplificação de expressões lógicas, como acabou-se de ver, leva a uma implementação física, através de circuitos lógicos, bem mais econômica (no exemplo acima foram economizadas oito portas lógicas, sem contar os inversores).

Page 74: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 74

Simplificação de Circuitos Lógicos: Mapeamento

� Consideremos a expressão booleana

Z = A.¬B + ¬A.B + A.BA

B

A

B

A

B

A

B

A.B

A.B

A.B

Z

Page 75: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 75

Simplificação de Circuitos Lógicos: Mapeamento

� Tabela VerdadeA B Z

0 0 0

0 1 1

1 0 1

1 1 1

Page 76: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 76

Simplificação de Circuitos Lógicos: Mapeamento

� Circuito lógico simplificado

� Tabela Verdade

A

BZ

A B Z

0 0 0

0 1 1

1 0 1

1 1 1

Page 77: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 77

Expressões booleanasdesoma-de-produtos

A B C Z

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

A.¬B.¬C

A.B.C

Page 78: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 78

Expressões booleanasdesoma-de-produtos

� Expressão booleana de termos mínimos:

Z = A.¬B.¬C + A.B.C� Circuito lógico AND-OR

A

B

ZC

A.B.C

A.B.C

Page 79: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 79

Expressões booleanasde produto-de-somas

� Expressão boolena de termos mínimos:

Z = ¬A.B + A.¬B + A.B

A B Z

0 0 0

0 1 1

1 0 1

1 1 1

¬A.B

A.¬B

A.B

Page 80: ICC-05 Álgebra Booleana

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 80

Expressões booleanasde produto-de-somas

� Expressão boolena de termos máximos:

Z = A + B

A B Z

0 0 0

0 1 1

1 0 1

1 1 1

Inverte as variáveis A + B