Algebra di George Boole Istituto di istruzione superiore “A. Maserati” - Voghera Guiracocha Carlos 3^ EA INDICE George Boole (vita & pensiero) Introduzione all’ algebra di Boole Simbologia Operatori(Porte Logiche) Omomorfismi ed isomorfismi Anelli, ideali e filtri booleani Espressioni booleane Rappresentazione delle algebre booleane Mappa di Karnaugh Indicazione delle Pagine web. George Boole George Boole (Lincoln, 2 novembre 1815 Ballintemple, 8 dicembre 1864) è stato un matematico e logico britannico considerato il fondatore della logica matematica; la sua opera influenzò anche settori della filosofia. Incoraggiato e indirizzato da Duncan Gregory, curatore del Cambridge Mathematical Journal, Boole si dedicò allo studio di metodi algebrici per la risoluzione di equazioni differenziali e la pubblicazione dei suoi risultati sulla suddetta rivista gli fecero ottenere una medaglia della Royal society e, successivamente, nel 1849, la nomina alla cattedra di matematica al Queen's College di Cork. Introduzione all’ algebra di Boole In matematica ed informatica, le algebre booleane, o reticoli booleani, sono strutture algebriche che rivestono una notevole importanza per varie ragioni. Permettono di trattare in termini algebrici questioni riguardanti singoli bit (0 e 1), sequenze binarie, matrici binarie (e di conseguenza, attraverso le loro matrici di incidenza i digrafi) e altre funzioni binarie (si tenga presente anche la nozione di funzione indicatrice). Inoltre ogni algebra booleana risulta criptomorfa ad un particolare tipo di anello, chiamato anello booleano. Nella descrizione dei circuiti, possono anche essere usati NAND (NOT AND), NOR (NOT OR) e XOR (OR esclusivo). Simbologia Nella progettazione di circuiti elettronici, vengono utilizzati anche gli operatori brevi NAND (AND negato), NOR (OR negato) e XNOR (XOR negato); questi operatori, come XOR, sono delle combinazioni dei tre operatori base e quindi non costituiscono un arricchimento della specie di strutture, vengono usati solo per rendere la notazione più semplice. NOT L'operatore NOT Restituisce il valore inverso di quello in entrata. Una concatenazione di NOT è semplificabile con un solo NOT in caso di dispari ripetizioni o con nessuno nel caso di pari. Spesso, per semplificare espressioni complesse, si usano operatori brevi che uniscono l'operazione di NOT ad altre, questi operatori sono NOR (OR + NOT), NAND (AND + NOT), XNOR (XOR + NOT). La negazione, in questi casi, viene applicata dopo il risultato dell'operatore principale (OR, AND, XOR). AND L' operazione AND (letteralmente e in inglese) restituisce 1 (vero) se e solo se tutti gli operandi hanno valore 1 (vero), altrimenti restituisce 0 (falso). 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 1 AND 1 AND 0 = 0 0 AND 0 AND 1 = 0 1 AND 1 AND 1 = 1 0 AND 1 AND 1 AND 0 = 0 OR L' operazione logica OR (letteralmente o in inglese) restituisce 1 (vero) se almeno uno degli elementi è 1 (vero); altrimenti dicibile: OR restituisce 0 (falso) se e solo se tutti gli operandi sono 0 (falso). 0 OR 0 = 0 0 OR 1 = 1 1 OR 0 = 1 1 OR 1 = 1 ... 1 OR 1 OR 0 = 1 0 OR 0 OR 1 = 1 0 OR 0 OR 0 = 0 0 OR 1 OR 1 OR 0 = 1 ... Xor L'operatore XOR (detto anche OR esclusivo) restituisce 1 (vero) se e solo se un unico dei due operandi è 1, mentre restituisce 0 (falso) in tutti gli altri casi. 0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0 ... 1 XOR 1 XOR 0 = 0 0 XOR 0 XOR 1 = 1 1 XOR 1 XOR 1 = 1 0 XOR 1 XOR 1 XOR 0 = 0 ... Nand L'operatore NAND (cioè la negazione del risultato dell'operazione AND) restituisce 0 (falso) se e solo se tutti gli elementi sono 1, mentre restituisce 1 (vero) in tutti gli altri casi. 0 NAND 0 = 1 0 NAND 1 = 1 1 NAND 0 = 1 1 NAND 1 = 0 ... 1 NAND 1 NAND 0 = 1 0 NAND 0 NAND 1 = 1 1 NAND 1 NAND 1 = 0 0 NAND 1 NAND 1 NAND 0 = 1 NOR L'operatore NOR, (cioè la negazione del risultato dell'operazione OR) restituisce 1 (vero) se e solo se tutti gli elementi sono 0, mentre restituisce 0 (falso) in tutti gli altri casi. 0 NOR 0 = 1 0 NOR 1 = 0 1 NOR 0 = 0 1 NOR 1 = 0 ... 1 NOR 1 NOR 0 = 0 0 NOR 0 NOR 1 = 0 0 NOR 0 NOR 0 = 1 Xnor L'operatore XNOR (cioè la negazione del risultato dell'operazione XOR) restituisce 0 se e solo se un unico elemento dei due è uguale a 1 e tutti gli altri elementi sono 0 0 XNOR 0 = 1 0 XNOR 1 = 0 1 XNOR 0 = 0 1 XNOR 1 = 1 ... 1 XNOR 1 XNOR 0 = 1 0 XNOR 0 XNOR 1 = 0 1 XNOR 1 XNOR 1 = 0 0 XNOR 1 XNOR 1 XNOR 0 = 1 Omomorfismi ed isomorfismi Un omomorfismo tra due algebre booleane A e B è una funzione f: AB tale che per ogni a, b in A: 1. f( a b ) = f( a ) f( b ) 2. f( a b ) = f( a ) f( b ) 3. f(0) = 0 4. f(1) = 1 Da queste proprietà segue anche f(a) = f(a) per ogni a in A . Ogni algebra booleana, con la definizione di omomorfismo, forma una categoria. Un isomorfismo da A su B è un omomorfismo da A su B che è biiettivo. L'inverso di un isomorfismo è ancora un isomorfismo, e le due algebre booleane A e B si dicono isomorfe. Dal punto di vista della teoria dell'algebra booleana , due algebre booleane isomorfe non sono distinguibili, ma differiscono soltanto nella notazione dei loro elementi. Anelli, ideali e filtri booleani In questo anello l'elemento neutro per la somma coincide con lo 0 dell'algebra booleana, mentre l'elemento neutro della moltiplicazione è l'elemento 1 dell'algebra booleana. Questo anello ha la proprietà che a * a = a per ogni a in A; gli anelli con questa proprietà sono chiamati anelli booleani.La categoria degli anelli booleani e delle algebre booleane sono equivalenti.Questa notazione coincide con la notazione teorica: ideale primo e ideale massimale nell'anello booleano A. Il duale di un ideale è un filtro. Espressioni booleane (1) Possono esistere delle espressioni che, pur essendo differenti, si rivelano equivalenti. Certamente le espressioni booleane assumono una particolare importanza per quanto riguarda il calcolo proposizionale, in cui vengono usate come variabili delle proposizioni legate tramite congiunzioni, disgiunzioni, negazioni ed altre operazioni più complesse. Espressioni booleane (2) Un prodotto fondamentale è un prodotto in cui ciascuna variabile, o il suo complemento, compare una sola volta e rigorosamente fuori da parentesi, ad esempio, date le variabili x, y, z all'interno di un'algebra di Boole, sono prodotti fondamentali P(x,y,z) = xy Mentre non sono prodotti fondamentali yyz Rappresentazione delle algebre Booleane Si può dimostrare che ogni reticolo booleano finito è isomorfo al reticolo booleano di tutti i sottoinsiemi di un insieme finito. Di conseguenza, il numero di elementi di ogni reticolo booleano finito ha un sostegno che contiene un numero di elementi uguale ad una potenza di 2. In figura è rappresentato il diagramma di Hasse dell'algebra di Boole di ordine otto. Marshall Stone ha enunciato il celebre teorema di rappresentazione per le algebre booleane dimostrando che ogni algebra booleana "A" è isomorfa a tutte le algebre booleane aperte-chiuse in un certo spazio topologico, detto compatto di Hausdorff Mappa di Karnaugh La mappa di Karnaugh è una metodologia esatta di sintesi di reti combinatorie a uno o più livelli. Queste sono una rappresentazione di una funzione booleana in modo da mettere in evidenza le coppie di mintermini o di maxtermini a distanza di Hamming unitaria (ovvero che differiscono di un solo bit). Siccome derivano da una meno intuitiva visione multidimensionale delle funzioni booleane in campo cartesiano, le mappe di Karnaugh risultano effettivamente applicabili a funzioni fino a 5 - 6 variabili. Storia e Utilizzo Storia La mappa di Karnaugh è stata inventata nel 1953 da Maurice Karnaugh, un ingegnere in Telecomunicazioni presso i Bell Laboratories Utilizzo Una mappa di Karnaugh riguarda una funzione booleana di un numero poco elevato di variabili e si costruisce a partire dalla tabella della verità di tale funzione. Il metodo delle mappe di Karnaugh ha il vantaggio di essere un procedimento grafico piuttosto intuitivo e quindi di permettere semplificazioni della funzione booleana spesso più immediate di quelle ottenibili solo con modifiche algebriche. Esempio Consideriamo la funzione: f(A, B, C, D) = E(4, 8, 9, 10, 11, 12, 14, 15) Essendoci 16 combinazioni delle 4 varibili booleane, anche la mappa di Karnaugh dovrà avere 16 posizioni. Il modo più conveniente per disporle è in una tabella 4x4. Limiti delle mappe di Karnaugh Per le funzioni con più di 4 variabili diventa difficile l'uso delle mappe di Karnaugh; infatti queste per cercare di essere intuitive dovrebbero diventare tridimensionali oppure ricorrere alla Variabili Entered Map, o ancora usare una mappa supplementare in più per ogni combinazione di variabili oltre la quarta. Il numero di tali combinazioni è 2n − 4, dove n è il numero di variabili della funzione: ad esempio 5 variabili necessitano di 2 mappe, mentre 6 variabili necessitano di 4 mappe. Non sempre la funzione ottenuta da una mappa di Karnaugh, è la più ottimizzata possibile. Un corretto raggruppamento sulla mappa di Karnaugh consente però di trovare il circuito ottimo a due livelli di logica. Un'alternativa alle mappe di Karnaugh, utile nei casi già elencati, è il metodo di semplificazione Quine McCluskey. Indicazione delle Pagine web George Boole (vita & pensiero) Algebra di Boole Mappa di Karnaugh