Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA Introduzione Ø George Boole (1815 - 1864) nel 1854 elaborò una algebra basata su predicati logici. Valori logici: VERO, FALSO Operatori logici: AND, OR, NOT Ø Una espressione logica coinvolge variabili che possono assumere valori logici e la sua valutazione può produrre solo valori logici. Ø L’algebra di Boole fornisce un modello matematico che consente di valutare espressioni logiche Giuliano Armano 2 Operatori Logici Ø Ø Siano p e q due variabili che possono assumere solo i valori logici VERO o FALSO Operatori logici: n n n p AND q restituisce VERO solo se p e q sono entrambi VERO p OR q restituisce VERO se una sola fra p e q o entrambi sono VERO NOT p restituisce la negazione di p: VERO se p è FALSO, FALSO se p è VERO Giuliano Armano 3 Espressioni Logiche Ø Un esempio di espressione logica: n Se ((a < b) OR ((a ³ b) AND (c = d))) allora… n La parte in grassetto può essere vera o falsa. n L’espressione scritta sopra può essere semplificata in: (a < b) OR (c = d) Infatti nella prima espressione: Se (a < b) è vera, non serve valutare la seconda parte Si valuta la seconda parte solo se (a < b) è falsa. In questo caso sicuramente (a ³ b), dunque non serve esplicitarlo! n n n n Giuliano Armano 4 Logica Proposizionale Ø La logica proposizionale fornisce gli strumenti per valutare la verità o la falsità di espressioni logiche n Per semplificare l’espressione precedente non è servito conoscere il “significato” di (a < b), ma il fatto che (a< b) e (a ³ b) sono complementari (quando una è vera l’altra è falsa e viceversa) Giuliano Armano 5 Logica Proposizionale Ø Si utilizzano variabili logiche al posto di espressioni che possono assumere i valori vero o falso n Se indico (a < b) con p, (a ³ b) con NOT p e (c = d) con q, allora p OR ((NOT p ) AND q) equivale all’espressione precedente Giuliano Armano 6 Logica Proposizionale e Algebra di Boole Ø Ø Le espressioni logiche possono essere modificate e/o semplificate in espressioni logiche equivalenti, usando i teoremi dell’algebra di Boole Essendo uno strumento matematico, non ci preoccupiamo del significato reale delle variabili. NB L’argomento è approfondito nei corsi di Calcolatori Elettronici e di Elettronica dei Sistemi Digitali Giuliano Armano 7 Algebre Ø Una struttura algebrica è definita come: <D,f 1,…,f n,P1,…,Pm,…,x,y…> Ø dove: n n D è un insieme (dominio) fi è una funzione a ni argomenti in D e valori in D n Pi è un predicato a ni argomenti in D n x, y, … sono elementi distinti di D Giuliano Armano 8 Algebre (esempio) Ø <R, +,*, £, 0, 1> è la struttura dei reali ordinata, con due operazioni “+” e “*” commutative, associative, aventi 0 e 1 rispettivamente come identità Giuliano Armano 9 Algebra Booleana Ø Un’Algebra Booleana è una sestupla del tipo B,+,·,-, =,0,1 dove: n n n n n B è un insieme di almeno due simboli (arbitrariamente definiti) sul quale è definita una relazione di equivalenza “=“ “+” è l’operazione di somma logica “·” è l’operazione di prodotto logico “-” è l’operazione di complemento logico 0 e 1 sono elementi di B (neutri rispetto a “+” e “·”) Giuliano Armano 10 Postulati Ø ESISTENZA ELEMENTO NEUTRO a+0= a a ·1 = a Ø elemento neutro rispetto a “+” elemento neutro rispetto a “·” ESISTENZA DEL COMPLEMENTO: a + a =1 a·a = 0 complemento rispetto a “+” complemento rispetto a “·” NB È possibile formulare diverse Algebre Booleane a seconda della scelta degli elementi di B e delle regole delle operazioni. Giuliano Armano 11 Postulati Ø Ø COMMUTATIVITÁ a+b=b+a commutatività rispetto a “+” a·b=b·a commutatività rispetto a “·” DISTRIBUTIVITÁ a · (b + c) = (a · b) + (a · c) distributività di “·” rispetto a “+” a + (b · c) = (a + b) · (a + c) distributività di “+” rispetto a “·” NB È possibile formulare diverse Algebre Booleane a seconda della scelta degli elementi di B e delle regole delle operazioni. Giuliano Armano 12 Proprietà Ø Un’algebra Booleana è simmetrica rispetto a (+, ·) e (0, 1) n Ø Se nei postulati si sostituisce “+” con “·” (e viceversa) e 0 con 1 (e viceversa), si riottengono gli stessi postulati. Il cosiddetto “principio di dualità” è una conseguenza della proprietà di simmetria Giuliano Armano 13 Principio di Dualità Ø Se da una dimostrazione D(+, ·, 0, 1) si sostituisce “+” con “·” (e viceversa) e 0 con 1 (e viceversa), si ottiene una dimostrazione D’(+, ·, 0, 1) duale rispetto alla precedente Ø Esempio (teoremi di De Morgan): a + b = a ·b 1o teorema di De Morgan ß a·b = a + b 2o teorema di De Morgan Giuliano Armano 14 I Diagrammi di Venn Ø Un esempio di algebra Booleana sono i diagrammi di Venn, dove: n n n n n n B è l’insieme delle aree rappresentate da cerchi contenuti in un rettangolo “+” è l’operazione di unione delle aree “·” è l’operazione di intersezione delle aree “-” è l’operazione di complemento rispetto al rettangolo 0 è la regione di area nulla 1 è la regione contenuta nel rettangolo Giuliano Armano 15 Interpretazione Classica Ø L’interpretazione “classica” per l’algebra Booleana del tipo B,+,·,-, =,0,1 è la seguente logica proposizionale (logica circuitale): n n n n n n B è un insieme di costanti che possono assumere i valori logici vero e falso (1 e 0) “+” è l’operazione di or logico non esclusivo (vel) “·” è l’operazione di and logico “-” 0 1 è l’operazione di complemento logico è la costante falso (0) [contraddizione] è la costante vero (1) [tautologia] Giuliano Armano 16 Algebra di Boole, Aritmetica Binaria e Circuiti Logici Ø Esiste una corrispondenza diretta fra l’aritmetica binaria (prossimo capitolo), l’algebra di Boole e la progettazione di circuiti logici. n n n I calcolatori elettronici rappresentano i dati in forma binaria, cioè come sequenza di 0 e 1 Di conseguenza i dati possono essere visti come una sequenza di variabili logiche La progettazione dei circuiti digitali che elaborano dati in forma binaria si avvale dei teoremi dell’algebra di Boole Giuliano Armano 17 Semplificazione di Funzioni Booleane Ø Esempi n x + x’y = (x + x’)(x + y) = 1×(x + y) = (x + y) n x(x’ + y) = xx’ + xy = 0 + xy = xy x’y’z + x’yz + xy’ = x’z(y’ + y) + xy’ = x’z + xy’ xy + x’z + yz = xy + x’z + yz(x’ + x) = = xy +x’z + x’yz + xyz = xy(1 + z) + x’z(1 + y) = xy + x’z (x + y)(x’ + z)(y + z) = (x + y)(x’ + z) n n n NB L’apice ’ indica la negazione Giuliano Armano 18 Giuliano Armano 19