Minimizao de Funes Booleanas Disciplina Lgica para Computao
Minimização de Funções Booleanas Disciplina: Lógica para Computação - INF 05508 Prof. Marcus Ritt n Clóvis Ricardo Fiegenbaum n Ricardo Marega. Morschbacher n Rodrigo Jaureguy Dobler
ROTEIRO n INTRODUÇÃO n História n Aplicações n Definição n FUNÇÕES BOOLEANAS n ÁLGEBRA BOOLEANA n SIMPLIFICAÇÃO n Álgebra n Mapa de Karnaugh n 1 EXEMPLO PRÁTICO - f(tempo de apresentação) = rápido INF 05508: Lógica para computação
INTRODUÇÃO - História Boole e os Fundamentos da Lógica Matemática e da Computação n Boole e os Fundamentos da Lógica Matemática e da Computação. n O inglês George Boole é considerado o pai da lógica simbólica. n Desenvolveu o primeiro sistema formal para raciocínio lógico (lógica booleana). INF 05508: Lógica para computação George Boole 1815 - 1864
INTRODUÇÃO - História n Boole, em sua obra The Mathematical Analysis of Logic, percebeu que uma álgebra de objetos (que não fossem números) poderia ser construída e então, ter várias interpretações. “Primeiro a forma, depois o conteúdo!!” INF 05508: Lógica para computação
INTRODUÇÃO - Aplicações Lógica e Computação n Arquitetura de Computadores n Modelagem de circuitos (hardware) n Minimização de circuitos INF 05508: Lógica para computação
INTRODUÇÃO - Definição Funções Booleanas e Fórmulas Proposicionais n Uma função booleana é uma função que recebe e retorna somente valores do conjunto B = {V, F} n Exemplo : Φ = p Λ q n A função booleana Φ é dada por uma tabela verdade. n Logo, qualquer fórmula proposicional define uma função booleana. INF 05508: Lógica para computação
FUNÇÕES BOOLEANAS Funções Booleanas e Fórmulas Proposicionais n Mas, será que existe uma fórmula proposicional para cada função booleana? n Por exemplo: n f(p, q) = V quando p e q têm valores lógicos contrários. Existe uma fórmula proposicional que possui a mesma tabela verdade que f: B x B → B? INF 05508: Lógica para computação
FUNÇÕES BOOLEANAS p i 1 F q f(p, q) F F i 2 F V i 3 V F i 4 V V ¬p Λ q p Λ ¬q (¬p Λ q) V (p Λ ¬q) F O que podemos observar acima? • Uma FND (Φ 1 Λ Φ 2 Λ. . . Λ Φn) V (Φn+1 Λ Φn+3 Λ. . . Λ Φm) V. . • O número de termos desta FND corresponde ao número de linhas tal que f(p, q) = V INF 05508: Lógica para computação
FUNÇÕES BOOLEANAS É possível também utilizar uma FNC? (Φ 1 V Φ 2 V. . . V Φn) Λ (Φn+1 V Φn+3 V. . . V Φm) Λ. . Lembrete - De. Morgan: ¬(A Λ B) ≡ ¬A V ¬B p i 1 F q f(p, q) F F i 2 F V i 3 V F i 4 V V p Λ q V (p V q) Λ (¬p V ¬q) V F ¬p Λ ¬q INF 05508: Lógica para computação
FUNÇÕES BOOLEANAS n Comparando as duas tabelas verdades: (¬p Λ q) V (p Λ ¬q) (p V q) Λ (¬p V ¬q) F V F = V V V F F ð Assim, toda função booleana equivale a uma fórmula proposicional!!! INF 05508: Lógica para computação
FUNÇÕES BOOLEANAS n Na concepção de circuitos, e na maior parte dos projetos, o objeto de interesse será o estado em que as combinações avaliam o valor “V” n Hardware: V ou F não tem um significado físico (elétrico) n Assim, convenciona-se: n n F – bit 0, 0 Volts, não circula corrente elétrica, etc. V – bit 1, 5 Volts (p. ex), circula corrente elétrica, etc. INF 05508: Lógica para computação
ÁLGEBRA BOOLEANA n Operações fundamentais da álgebra booleana: n AND (conjunção) n OR (disjunção) A B A+B 0 0 0 0 1 1 1 0 0 1 1 1 1 INF 05508: Lógica para computação n NOT (negação) A 0 1 A 1 0 Nota: A. B ≡ AB
ÁLGEBRA BOOLEANA n Operações derivadas da álgebra booleana: n NAND n NOR n XOR A B A+B 0 0 1 0 1 1 0 0 A 0 0 1 1 1 0 1 1 INF 05508: Lógica para computação B A+B 0 0 1 1 0
ÁLGEBRA BOOLEANA INF 05508: Lógica para computação
ÁLGEBRA BOOLEANA INF 05508: Lógica para computação
ÁLGEBRA BOOLEANA n Postulados: Teoremas 1 A + 0 = A 11 A. B + A. B' = A 2 A + 1 = 1 12 (A + B). (A + B') = A 3 A + A = A 13 A + A'. B = A + B 4 A + A' = 1 14 A. (A' + B) = A. B 5 A. 1 = A 15 A + B. C = (A + B). (A + C) 6 A. 0 = 0 16 A. (B + C) = A. B + A. C 7 A. A = A 17 A. B + A'. C = (A + C). (A' + B) 8 A. A' = 0 18 (A + B). (A' + C) = A. C + A'. B 9 A + A. B = A 19 A. B + A'. C + B. C = A. B + A'. C 10 A. ( A + B) = A 20 (A + B). (A' + C). (B + C) = (A + B). (A' + C) INF 05508: Lógica para computação
ÁLGEBRA BOOLEANA n Como qualquer prova de teorema, a cada passo em direção à prova, você tem que dizer o porque do passo. n Veja este exemplo: n A. (A + B) = (pelo teorema 16) n A. A + A. B = (teorema 7) n A + A. B = (teorema 5) n A. 1 + A. B = (teorema 16) n A. (1 + B) = (teorema 2) n A. 1 = (teorema 5) n A INF 05508: Lógica para computação
SIMPLIFICAÇÃO - Álgebra n ABC + A'BC + AB'C + A'B'C + ABC‘ = BC(A + A') + B'C(A + A') + ABC‘ n = BC 1 + B'C 1 + ABC‘ n = C(B + B') + ABC‘ n = C + AB n INF 05508: Lógica para computação
SIMPLIFICAÇÃO - Álgebra n E se a expressão tornar-se muito grande? ABCD + A'BCD’ + AB'C’D + A'B'CD + ABC‘D’ +. . . (ainda não acabou? ) +. . . Mapas de Karnaugh INF 05508: Lógica para computação
SIMPLIFICAÇÃO – Mapas de Karnaugh § 1 variável INF 05508: Lógica para computação
SIMPLIFICAÇÃO – Mapas de Karnaugh § 2 variáveis INF 05508: Lógica para computação
SIMPLIFICAÇÃO – Mapas de Karnaugh § 3 variáveis INF 05508: Lógica para computação
SIMPLIFICAÇÃO – Mapas de Karnaugh § 4 variáveis INF 05508: Lógica para computação
EXEMPLO PRÁTICO PROJETO DE UM SOMADOR COMPLETO DE 2 BITS n Entradas: n n A, B – bits somados Ci – carry-in (vem um da soma) n Saídas: n n Co – carry-out (vai um da soma) Função soma: S = A + B + Ci INF 05508: Lógica para computação A B Ci S Co 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1
EXEMPLO PRÁTICO PROJETO DE UM SOMADOR COMPLETO DE 2 BITS A B Ci S Co 0 0 0 0 1 1 0 0 1 0 n S = A’B’Ci + A’BCi’ + AB’Ci’ + ABCi = 0 1 1 0 1 S = Ci # (A#B) (# = XOR) 1 0 0 1 0 1 1 1 0 0 1 1 1 n Da tabela verdade (com simplificação algébrica): n Co = A’BCi + AB’Ci + ABCi’ + ABCi Co = Ci(A#B) + AB INF 05508: Lógica para computação
EXEMPLO PRÁTICO PROJETO DE UM SOMADOR COMPLETO DE 2 BITS n Temos 3 variáveis de entrada n Mapa para 3 variáveis INF 05508: Lógica para computação
EXEMPLO PRÁTICO PROJETO DE UM SOMADOR COMPLETO DE 2 BITS n Circuito Lógico INF 05508: Lógica para computação
FIM OBRIGADO !!! Danke !!! INF 05508: Lógica para computação
- Slides: 28