L’algebra di Boole George Boole matematico inglese (XIX secolo) L’algebra di Boole è un sistema algebrico sviluppato per formalizzare la sillogistica aristotelica mediante una logica delle classi. Essa fu interpretata dallo stesso autore anche come una struttura di relazioni logiche tra proposizioni, mostrando così le affinità profonde esistenti tra la logica e l’usuale algebra. 1 L’algebra di Boole E’ rimasta pressoché ignorata per oltre 80 anni, cioè fino al 1937, quando lo scienziato americano Claude Elwood Shannon propose per primo di applicarla all’analisi e alla sintesi di circuiti a relè, che sono caratterizzati dai due stati di funzionamento “aperto” e “chiuso”. Da allora l’algebra di Boole viene impiegata per la progettazione dei circuiti elettronici di tutti i computer ALGEBRA BOOLEANA Si basa su due soli stati: acceso (ON) spento (OFF) È definita su un insieme costituito da due elementi (successivamente è stata generalizzata per insiemi costituiti da un numero di elementi uguale a una qualsiasi potenza del 2), che a seconda dei casi vengono chiamati vero, falso. Per esempio, nel calcolo proposizionale si usano come elementi di partenza delle proposizioni semplici, a ciascuna delle quali si possa attribuire in modo univoco il valore di verità vero o falso. Fondamenti di Informatica 4 2 Una proposizione semplice suscettibile di assumere i due soli valori, vero o falso si dice variabile booleana o di commutazione. Nel seguito indicheremo le variabili booleane con le lettere x, y, e i loro valori di verità con v, f *. Unendo più proposizioni tramite nessi logici si formano proposizioni complesse, il cui valore di verità è ricavabile in maniera puramente formale dai valori delle proposizioni costituenti. O. Tomarchio Fondamenti di Informatica 5 Variabili booleane Le variabili possono assumere solo due valori: 0e1 Si chiamano Variabili logiche o booleane Fondamenti di Informatica 6 3 Funzioni booleane Usando le variabili booleane, si possono costruire le funzioni booleane (o funzioni logiche) F(x,y,z) che possono assumere solo due stati: true - vero - 1 false - falso - 0 Fondamenti di Informatica 7 Tabella della verità Ogni funzione booleana è caratterizzata dalla propria tabella di verità x y z F 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 Fondamenti di Informatica 8 4 Funzioni booleane Funzioni completamente specificate: se per tutte le combinazioni delle variabili il suo valore è determinato Funzioni non completamente specificate: se a una o più combinazioni delle sue variabili non corrisponde alcun valore della funzione Fondamenti di Informatica 9 Costanti booleane Oltre alle variabili vi sono anche le costanti Essendo l’Algebra Booleana definita su due soli simboli, esistono solo due costanti: 0 1 Fondamenti di Informatica 10 5 Operatori logici Tra le variabili e le costanti possono intervenire delle relazioni Le relazioni si esprimono utilizzando gli operatori logici Definiti insieme agli operatori logici, i postulati definiscono il loro comportamento Fondamenti di Informatica 11 Tipi di operatori Esistono due tipi di operatori, in dipendenza dal numero di variabili che utilizzano: monadici diadici Fondamenti di Informatica 12 6 L’operatore NOT Il risultato è il complemento dell’unica variabile x NOT x 0 1 1 0 Fondamenti di Informatica 13 L’operatore AND Il risultato è vero se e solo se sono vere entrambe le variabili a b 0 0 1 1 0 1 0 1 a AND b 0 0 0 1 Fondamenti di Informatica 14 7 L’operatore OR Il risultato è vero se e solo se è vera almeno una delle variabili a b 0 0 1 1 0 1 0 1 a OR b 0 1 1 1 Fondamenti di Informatica 15 L’operatore XOR Il risultato è vero se e solo se è vera solo una delle due variabili a b 0 0 1 1 0 1 0 1 a XOR b 0 1 1 0 Fondamenti di Informatica 16 8 Operatori - nomenclatura NOT: AND: OR: XOR: inversione prodotto logico somma logica or esclusivo (¯) (·) (+) () Fondamenti di Informatica 17 Operatori universali Con gli operatori NOT, OR, AND, XOR si possono costruire tutte le funzioni booleane Esistono due operatori (NAND, NOR) che permettono la sintesi di qualsiasi funzione, utilizzando un unico tipo di operatori Fondamenti di Informatica 18 9 L’operatore NAND Il risultato è vero solo se è falso l’AND tra le due variabili a b 0 0 1 1 0 1 0 1 a NAND b 1 1 1 0 Fondamenti di Informatica 19 L’operatore NOR Il risultato è vero solo se è falso l’OR tra le due variabili a b 0 0 1 1 0 1 0 1 a NOR b 1 0 0 0 Fondamenti di Informatica 20 10 Espressioni logiche Un insieme di variabili e/o costanti booleane a cui siano applicati gli operatori logici si dice espressione booleana o logica Una espressione logica rappresenta una funzione logica: ad esempio: T a b a b Fondamenti di Informatica 21 Precedenze tra operatori Le precedenze sono simili al + e al x dell’algebra consueta: priorità alta x priorità bassa + Priorita operatori logici Not And Or Fondamenti di Informatica 22 11 Proprietà dell’algebra booleana X·0 = 0 X·1 = X X·X = X X·X = 0 X·Y = Y·X X·(X+Y) = X X·(X+Y) = X ·Y X·(Y+Z) = X·Y+X·Z X+1 = 1 X+0 = X X+X = X idempotenza X+X = 1 complementazione X+Y = Y+X commutativa X+(X·Y) = X assorbimento X+(X·Y) = X+Y assorbimento X+(Y·Z) = (X+Y)·(X+Z) distributiva Fondamenti di Informatica 23 Proprietà dell’algebra booleana X·(Y·Z) = (X·Y) ·Z = X·Y·Z X+(Y+Z) = (X+Y)+Z = X+Y+Z associativa (X)=X X·Y = X + Y X+Y = X ·Y Fondamenti di Informatica De Morgan 24 12 Algebra di boole insiemi Esiste una stretta somiglianza tra le tabelle di verità e i diagrammi di Venn impiegati nelle operazioni tra insiemi. La figura seguente è un diagramma di Venn che mostra due insiemi, S e T, ognuno rappresentato da un’ellisse. I due insiemi potrebbero rappresentare, rispettivamente: • S l’insieme delle persone di questa aula con i capelli castani T l’insieme delle persone di questa aula con gli occhi azzurri • Come si vede, le due ellissi dividono il piano in 4 regioni, numerate da 1 a 4: 1 2 3 4 S T 1 2 3 S 4 T 1. la regione 1 rappresenta gli elementi che non appartengono né a S né a T, cioè le persone che non hanno né i capelli castani né gli occhi azzurri 2. la regione 2 rappresenta la differenza S-T, cioè le persone che hanno i capelli castani e non gli occhi azzurri 3. la regione 3 rappresenta l’intersezione () di S e T, cioè le persone con capelli castani e occhi azzurri 4. la regione 4 rappresenta la differenza T-S, cioè le persone che hanno gli occhi azzurri e non i capelli castani 5. le regioni 2, 3 e 4 rappresentano l’unione () di S e T, cioè le persone con capelli castani o con occhi azzurri. 13 Algebra di boole insiemi 14