Algebra di Boole Elementi di Informatica - Algebra di Boole 1 A. Valenzano 1996-2002 Sommario • • • • • Variabili e funzioni booleane Tabelle di verità Operatori booleani Espressioni booleane Teoremi fondamentali dell’algebra di Boole • Semplificazione delle espressioni logiche Elementi di Informatica - Algebra di Boole 2 A. Valenzano 1996-2002 Variabili booleane • Secondo Boole, il ragionamento è basato sulle asserzioni, le quali assumono il valore Vero o Falso. Esempio: oggi_piove. Introdusse così le variabili logiche, che assumono due valori, T o F. • Con le variabili logiche si possono modellare tutti i fenomeni che assumono due valori, ad esempio i circuiti di commutazione (ON e OFF), le cifre del sistema binario (1 e 0), ecc. • Useremo le variabili x1, x2, … , xn, che assumono valori T o F, chiamandole variabili logiche o booleane. Elementi di Informatica - Algebra di Boole 3 A. Valenzano 1996-2002 Funzioni booleane • Una funzione logica F(x1, x2,…,xn) associa ad ogni n-pla xi un valore logico T o F. • Ogni funzione può essere specificata per mezzo di una tabella di verità, che assegna ad ogni combinazione di valori x1, x2,…,xn il valore assunto dalla funzione F. Elementi di Informatica - Algebra di Boole 4 A. Valenzano 1996-2002 Tabelle di verità Per ogni combinazione delle variabili indipendenti si riporta il valore di F. Esempio: F(x,y,z) x y z F 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 Elementi di Informatica - Algebra di Boole 5 A. Valenzano 1996-2002 Numero di funzioni booleane • Con n variabili si possono avere 2n combinazioni. Poiché una funzione può assumere solo 2 valori il numero di possibili funzioni diverse è dato da: m=2 Elementi di Informatica - Algebra di Boole 6 2n A. Valenzano 1996-2002 Numero di funzioni booleane (2) • Infatti: Fm-1 x1 x2 … xn F0 F1 F2 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 ………………………………. 1 1 1 0 0 0 1 Elementi di Informatica - Algebra di Boole 7 A. Valenzano 1996-2002 Tipi di funzioni booleane • Completamente specificate: viene indicato il valore di F per ogni combinazione delle variabili indipendenti. • Non completamente specificate: il valore di F non è definito per una o più combinazioni delle variabili indipendenti. Nota: il valore di F per le combinazioni non specificate è detto "don't care" ed è indicato con "-" sulla tabella di verità. Elementi di Informatica - Algebra di Boole 8 A. Valenzano 1996-2002 Funzioni completamente specificate • Esempio: In una stazione, il treno parte se e solo se il semaforo è verde e il capostazione ha dato il via. Variabili logiche: S: vale 1 (= vero) se il semaforo è verde C: vale 1 (= vero) se il capostazione ha dato il via Funzione: T: vale 1 (= vero) se il treno parte Elementi di Informatica - Algebra di Boole 9 A. Valenzano 1996-2002 Funzioni completamente specificate (2) Tavola di specificata): S 0 0 1 1 C 0 1 0 1 Elementi di Informatica - Algebra di Boole 10 verità (completamente T 0 0 0 1 A. Valenzano 1996-2002 Funzioni completamente specificate (3) • Altro esempio: Un allievo del Politecnico si laurea se ha superato tutti gli esami e se ha svolto una tesi di laurea oppure una prova di sintesi. Variabili: E: vale 1 se l’allievo ha superato tutti gli esami T: vale 1 se ha svolto la tesi S: vale 1 se ha svolto la sintesi Funzione: L: vale 1 se si laurea Elementi di Informatica - Algebra di Boole 11 A. Valenzano 1996-2002 Funzioni completamente specificate (4) Tavola di verità: E T 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Elementi di Informatica - Algebra di Boole 12 S 0 1 0 1 0 1 0 1 L 0 0 0 0 0 1 1 1 A. Valenzano 1996-2002 Funzioni non completamente specificate Si osservi che, nella realtà del Poli, • non si può dare la tesi o la sintesi senza aver prima superato tutti gli esami (combinazioni 2 e 4) • non viene assegnata la sintesi, se l’allievo svolge la tesi (combinazioni 3 e 8) Per queste combinazioni si può non assegnare un valore alla funzione (funzione non completamente specificata). Per le combinazioni che non accadono mai, si usa il valore don’t care. Elementi di Informatica - Algebra di Boole 13 A. Valenzano 1996-2002 Funzioni non completamente specificate (2) Tavola di verità: E T 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Elementi di Informatica - Algebra di Boole 14 S 0 1 0 1 0 1 0 1 L 0 0 1 1 A. Valenzano 1996-2002 Operatori booleani • Rappresentano le operazioni basilari dell'algebra di Boole. • Le loro funzioni possono essere realizzate tramite circuiti elettronici elementari talora detti porte o porte logiche. • Possono essere definiti tramite tabelle di verità. • Tutte le funzioni più complesse sono ottenute tramite opportune combinazioni di tali operatori. Elementi di Informatica - Algebra di Boole 15 A. Valenzano 1996-2002 Operatore AND E' anche detto "prodotto logico": Simbolo logico Tavola della verità x 0 0 1 1 y 0 1 0 1 x AND y 0 0 0 1 x y Notazioni xy xy xy x AND y Elementi di Informatica - Algebra di Boole 16 A. Valenzano 1996-2002 Operatore OR E' anche detto "somma logica": Tavola della verità x 0 0 1 1 y 0 1 0 1 x OR y 0 1 1 1 Simbolo logico x y Notazioni: xy xy x OR y Elementi di Informatica - Algebra di Boole 17 A. Valenzano 1996-2002 Operatore NOT E' anche detto "negazione": Simbolo logico Tavola della verità x x 0 1 NOT x 1 0 Notazioni: x ~x NOT x Elementi di Informatica - Algebra di Boole 18 A. Valenzano 1996-2002 Operatore NAND Tavola della verità x 0 0 1 1 y 0 1 0 1 x NAND y 1 1 1 0 Simbolo logico x y Notazioni xy ~ (x y) xy x NAND y Elementi di Informatica - Algebra di Boole 19 A. Valenzano 1996-2002 Operatore NOR Tavola della verità x 0 0 1 1 y 0 1 0 1 x NOR y 1 0 0 0 Simbolo logico x y Notazioni: xy ~ (x y) x NOR y Elementi di Informatica - Algebra di Boole 20 A. Valenzano 1996-2002 Operatore EX-OR E' anche detto "or esclusivo": Tavola della verità x 0 0 1 1 y 0 1 0 1 x EX-OR y 0 1 1 0 Simbolo logico x y Notazioni: xy xy x EXOR y Elementi di Informatica - Algebra di Boole 21 A. Valenzano 1996-2002 Espressioni logiche • Sono espressioni che combinano variabili booleane tramite gli operatori logici • Espressioni equivalenti: E1 ed E2 sono equivalenti se • per tutte le combinazioni delle variabili indipendenti per cui E1 = 1 anche E2 = 1 e • per tutte le combinazioni delle variabili indipendenti per cui E1 = 0 anche E2 = 0 Elementi di Informatica - Algebra di Boole 22 A. Valenzano 1996-2002 Espressioni equivalenti Esempio di equazioni equivalenti: Impossibile v isualizzare l'immagine. Ta xz x yz Tb xz yz Ta Tb Elementi di Informatica - Algebra di Boole 23 A. Valenzano 1996-2002 Espressioni equivalenti (2) x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 Elementi di Informatica - Algebra di Boole 24 xz 0 0 0 0 0 1 0 1 _ xyz 0 0 0 1 0 0 0 0 yz 0 0 0 1 0 0 0 1 Ta 0 0 0 1 0 1 0 1 Tb 0 0 0 1 0 1 0 1 A. Valenzano 1996-2002 Espressioni complementari E1 ed E2 sono complementari se: • per tutte le combinazioni delle variabili indipendenti per cui E1 = 1 risulta E2 = 0 e • per tutte le combinazioni delle variabili indipendenti per cui E1 = 0 risulta E2 = 1 Nota: se due espressioni sono complementari E1 = E2 Elementi di Informatica - Algebra di Boole 25 A. Valenzano 1996-2002 Espressioni complementari (2) Esempio di funzioni complementari: Ta x y x y Tb x y xy Ta Tb Elementi di Informatica - Algebra di Boole 26 A. Valenzano 1996-2002 Espressioni complementari (3) x 0 0 1 1 y 0 1 0 1 _ xy 0 0 1 0 Elementi di Informatica - Algebra di Boole 27 _ xy 0 1 0 0 __ xy 1 0 0 0 xy 0 0 0 1 Ta 0 1 1 0 Tb 1 0 0 1 A. Valenzano 1996-2002 Espressioni duali • E2 è duale di E1 se può essere ottenuta da E1: • sostituendo l'operatore OR con l'operatore AND e viceversa (tenendo conto delle precedenze degli operatori in E1 !!); • sostituendo il valore 0 con il valore 1 e viceversa. Regola di complementazione: l'espressione complementare di E1 può essere ottenuta dalla sua duale E2 complementando tutte le variabili in E2. Elementi di Informatica - Algebra di Boole 28 A. Valenzano 1996-2002 Esempi di espressioni booleane F(a,b,c) = a (b + c) a 0 0 0 0 1 1 1 1 Elementi di Informatica - Algebra di Boole 29 b 0 0 1 1 0 0 1 1 Fd = a + (b c) c 0 1 0 1 0 1 0 1 F 0 0 0 0 0 1 1 1 Fd 0 0 0 1 1 1 1 1 F = a + (b c) F 1 1 1 1 1 0 0 0 A. Valenzano 1996-2002 Teoremi dell’algebra booelana • Possono essere dimostrati per induzione completa (verifica della validità per ogni combinazione delle variabili indipendenti). • Dato un teorema esiste il teorema duale. • Se è dimostrata la validità di un teorema è dimostrata anche la validità del teorema duale. Elementi di Informatica - Algebra di Boole 30 A. Valenzano 1996-2002 Principali teoremi a) X 0 0 Duale : X 1 1 b) X 1 X Duale : X 0 X c) X X X Duale : X X X d)X X 0 Duale : X X 1 Elementi di Informatica - Algebra di Boole 31 A. Valenzano 1996-2002 Principali teoremi (2) e) X Y Y X _ propr. _ commutativa Duale : X Y Y X f ) X Y Z ( X Y ) Z X (Y Z ) _ propr. _ assoc. Duale : X Y Z ( X Y ) Z X (Y Z ) g ) X Y ... Z X Y ... Z _ teorema _ DeMorgan Duale : X Y ... Z X Y ... Z h) X Y X Z X (Y Z ) _ propr. _ distributiva Duale : ( X Y ) ( X Z ) X Y Z Elementi di Informatica - Algebra di Boole 32 A. Valenzano 1996-2002 Principali teoremi (3) i ) X X Y X _ teorema _ dell ' inclusione Duale : X ( X Y ) X j ) X Y X Y X _ teor. fusione _ diretta Duale : ( X Y ) ( X Y ) X k ) X X Y X Y Duale : X ( X Y ) X Y l )Z X Z X Y Z X Z Y Duale : ( Z X ) ( Z X Y ) ( Z X ) ( Z Y ) Elementi di Informatica - Algebra di Boole 33 A. Valenzano 1996-2002 Principali teoremi (4) m) X Y X Z Y Z X Y X Z Duale : ( X Y ) ( X Z ) (Y Z ) ( X Y ) ( X Z ) n) X Y X Z ( X Z ) ( X Y ) Duale : ( X Y ) ( X Z ) X Z X Y o) X f ( X , X , Y ,..., Z ) X f (1,0, Y ,..., Z ) Duale : X f ( X , X , Y ,..., Z ) X f (0,1, Y ,..., Z ) Elementi di Informatica - Algebra di Boole 34 A. Valenzano 1996-2002 Principali teoremi (5) p) f ( X , X , Y ,..., Z ) X f (1,0, Y ,..., Z ) X f (0,1, Y ,..., Z ) Duale : f ( X , X , Y ,..., Z ) ( X f (0,1, Y ,..., Z ) ( X f (1,0, Y ,..., Z ) q ) f ( X , Y ,..., Z ,,) f ( X , Y ,..., Z ,,) _ deMorgan _ generalizzato Elementi di Informatica - Algebra di Boole 35 A. Valenzano 1996-2002 Espressione che rappresenta una funzione Problema: una luce L deve essere accesa / spenta da due interruttori separati A e B. Tavola di verità della funzione L: A B L 0 0 0 0 1 1 1 0 1 1 1 0 Elementi di Informatica - Algebra di Boole 36 A. Valenzano 1996-2002 Espressione che rappresenta una funzione (2) Si consideri l’espressione T data come: _ _ T = AB+AB La tavola di verità è: A 0 0 1 1 B 0 1 0 1 Elementi di Informatica - Algebra di Boole 37 _ AB 0 1 0 0 _ AB 0 0 1 0 T 0 1 1 0 A. Valenzano 1996-2002 Espressione che rappresenta una funzione (3) L e T si comportano allo stesso modo riga per riga: si dice che T “rappresenta” L. Regola: si considerano le combinazioni per cui la funzione vale 1. L’espressione avrà tanti termini in OR quanti sono gli 1 della funzione. Ogni termine contiene tutte le variabili in AND. Una variabile sarà affermata se nella combinazione quella variabile vale 1, sarà negata se la variabile vale 0. L’espressione ottenuta sarà quindi nella forma somma di prodotti (min-term). Elementi di Informatica - Algebra di Boole 38 A. Valenzano 1996-2002 Semplificazione delle espressioni booleane •I teoremi fondamentali possono essere impiegati per semplificare le espressioni usate per specificare le funzioni booleane. • Se una funzione non è completamente specificata si possono utilizzare le combinazioni di "don't care" per semplificarne l'espressione. Elementi di Informatica - Algebra di Boole 39 A. Valenzano 1996-2002 Semplificazione delle espressioni booleane (2) Regola per la semplificazione: • si confronta ciascun termine con tutti i successivi; • se i due termini confrontati contengono le stesse lettere e nei due termini c’è una sola differenza di una lettera che in un termine è affermata e nell’altra è negata, si applica il teorema: _ xY + xY = Y Elementi di Informatica - Algebra di Boole 40 A. Valenzano 1996-2002 Semplificazione delle espressioni booleane (3) • i due termini utilizzati nella fusione si marcano come utilizzati; • se alla fine ci sono termini non utilizzati in nessuna fusione (non marcati), si riportano nell’espressione finale; • si ripete il tentativo di fusione nell’espressione ottenuta, fino a quando, ad una passata, non si sono effettuate più fusioni. L’espressione ottenuta è minima (si possono eventualmente applicare altri teoremi, per migliorare la forma). Elementi di Informatica - Algebra di Boole 41 A. Valenzano 1996-2002 Esempi di semplificazione Tavola di verità di “al Poli ci si laurea”: E T S L 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Elementi di Informatica - Algebra di Boole 42 A. Valenzano 1996-2002 Esempi di semplificazione (2) L ET S ET S ETS ES (T T ) ET ( S S ) ES ET E (S T ) Elementi di Informatica - Algebra di Boole 43 A. Valenzano 1996-2002 Esempi di semplificazione (3) x 0 0 0 0 1 1 1 1 Elementi di Informatica - Algebra di Boole 44 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 F 0 1 0 1 0 1 1 - A. Valenzano 1996-2002 Esempi di semplificazione (4) a) don't care = 0 F x yz x yz x yz x yz x z ( y y ) y z ( x x) x y z xz yz x yz z ( x y) x y z Elementi di Informatica - Algebra di Boole 45 A. Valenzano 1996-2002 Esempi di semplificazione (5) a) don't care = 1 F x yz x yz x yz x yz x yz x z ( y y ) y z ( x x) y z ( x x) x z ( y y ) x y ( z z) xz yz yz xz x y z ( x x) z ( y y ) x y z z x y z x y Elementi di Informatica - Algebra di Boole 46 A. Valenzano 1996-2002 Realizzazioni circuitali A A B B C C D D Infatti (A·B)·(C·D) = A·B + C·D = A·B + C·D Elementi di Informatica - Algebra di Boole 47 A. Valenzano 1996-2002 Esempio: full adder La somma S di 2 numeri binari A e B di n bit può essere ricondotta a n somme elementari di 3 bit tenendo conto che: • ak, bk sono i bit di peso k di A e B • sk è il k-esimo bit di S • rk è il riporto generato dalla somma dei bit di peso k-1, k-2, ... 0 di A e B. • r-1 = 0 Elementi di Informatica - Algebra di Boole 48 A. Valenzano 1996-2002 Full adder: tabelle di verità Si possono ricavare le tabelle di verità di sk e rk in funzione di ak , bk e rk-1 ak bk rk-1 sk rk 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 Elementi di Informatica - Algebra di Boole 49 A. Valenzano 1996-2002 Full adder: espressioni booleane ak bk rk-1 sk rk 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 akbkrk-1 akbkrk-1 akbkrk-1 akbkrk-1 Elementi di Informatica - Algebra di Boole 50 akbkrk-1 akbkrk-1 akbkrk-1 akbkrk-1 A. Valenzano 1996-2002 Full adder: semplificazione delle espressioni Le espressioni di sk e rk sono date da: sk a k b k rk 1 a k bk r k 1 ak b k r k 1 ak bk rk 1 rk 1 (a k b k ak bk ) r k 1 (a k bk ak b k ) rk 1 (ak bk ) r k 1 (ak bk ) rk 1 ak bk rk a k bk rk 1 ak b k rk 1 ak bk r k 1 ak bk rk 1 bk rk 1 ak rk 1 ak bk rk 1 (ak bk ) ak bk Elementi di Informatica - Algebra di Boole 51 A. Valenzano 1996-2002 Full adder: struttura a blocchi Le funzioni che forniscono sk ed rk possono essere realizzate in un unico circuito elettronico (full adder): carry an bn rn-1 an-1bn-1rn2 rn sn Elementi di Informatica - Algebra di Boole 52 rn1 sn-1 a0 b0 0 r0 s0 A. Valenzano 1996-2002 Esempio (I) Problema (tema di esame del 27/2/96): Si considerino due valori A = a1a0 e B = b1b0 espressi in complemento a 2 su 2 bit. Scrivere l’espressione di una funzione booleana F che è vera se e solo se A = -B Soluzione: conviene considerare i bit che costituiscono A e B come variabili indipendenti e scrivere la funzione come F (a0,a1,b0,b1). Elementi di Informatica - Algebra di Boole 53 A. Valenzano 1996-2002 Esempio (II) a1 a0 b1 b0 A B F 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 -2 -2 -2 -2 -1 -1 -1 -1 0 1 -2 -1 0 1 -2 -1 0 1 -2 -1 0 1 -2 -1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 F = a1a0b1b0 + a1a0b1b0 + a1a0b1b0 Elementi di Informatica - Algebra di Boole 54 A. Valenzano 1996-2002 Esempio (III) Semplificazione di F: F = a1a0b1b0 + a1a0b1b0 + a1a0b1b0 = = a1a0b1b0 + a0b0 (a1b1 + a1b1) = = a1a0b1b0 + a0b0 (a1 + b1) Elementi di Informatica - Algebra di Boole 55 A. Valenzano 1996-2002