DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio – [email protected] Ver.aggiornataal18Marzo2016 Progetti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Meeting § Quando: 22 Marzo @2pm § Dove: Sala Conferenze @DEIB 2 Progetti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Meeting § Quando: 22 Marzo @2pm § Dove: Sala Conferenze @DEIB • Problemi email § [email protected] § [email protected] § [email protected] § [email protected] 3 Progetti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Meeting § Quando: 22 Marzo @2pm § Dove: Sala Conferenze @DEIB • Problemi email § [email protected] § [email protected] § [email protected] § [email protected] 4 Problema: caratteri MaIuScOli DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo 5 HELP: errori sull’input DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 Problema: errori sull’input DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Problema § Preso un dato inserito da tastiera § Per potervi applicare la trasformazione di nostro interesse § Dobbiamo prima verificare che il dato sia coerente con quanto ci aspettiamo • Soluzione § Definire l’insieme dei caratteri validi § Verificare l’appartenenza del carattere inserito, all’insieme dei caratterei validi 7 Pseudocodice DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Dati § L’insieme dei caratteri ammissibili {a, b, c, …, z} 1. Richiedere l’inserimento di un carattere 2. Se carattere inserito corretto 3. Allora stampa a video carattere-32 4. Altrimenti stampa a video un messaggio di errore 8 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Dati § L’insieme dei caratteri ammissibili {a, b, c, …, z} • Il carattere inserito deve essere § =>a § <= z 9 Obiettivi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Algebra di Boole § Algebra di boole a due valori: algebra di commutazione § Operazioni logiche § Espressioni logiche • Funzioni booleane • Forme canoniche • Karnaugh e Mappe di Karnaugh 10 Cenni all’algebra di Boole DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • L’algebra di Boole (inventata da G. Boole, britannico, seconda metà ’800), o algebra della logica, si basa su operazioni logiche • Le operazioni logiche sono applicabili a operandi logici, cioè a operandi in grado di assumere solo i valori vero e falso • Si può rappresentare vero con il bit 1 e falso con il bit 0 (convenzione di logica positiva) 11 Algebra Booleana: definizione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Algebra Booleana B è un sistema algebrico identificato dalla sestupla (B,+,*,’,0,1) dove: § B è l'insieme su cui vengono definite le operazioni (supporto) § +,*,’ sono le operazioni binarie OR e AND e l’operazione unaria NOT § 0,1 sono elementi speciali di B. • 0 è l’elemento neutro rispetto a + • 1 è l’elemento neutro rispetto a * § Assiomi - 12 - Algebra Booleana a due valori: Algebra di Commutazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE “Tra tutte le algebre booleane, l'algebra booleana a due valori........è la più utile. Essa è la base matematica della analisi e progetto di circuiti di commutazione che realizzano i sistemi digitali.” [Lee, S.C., Digital Circuit And Logic Design. Englewood Cliffs, NJ: Prentice-Hall, 1976] - 13 - Operazioni logiche fondamentali DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Operatori logici binari (con 2 operandi logici) § Operatore OR, o somma logica § Operatore AND, o prodotto logico • Operatore logico unario (con 1 operando) § Operatore NOT, o negazione, o inversione • Poiché gli operandi logici ammettono due soli valori, si può definire compiutamente ogni operatore logico tramite una tabella di associazione operandi-risultato 14 Operazioni logiche fondamentali DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Le variabili dell’algebra booleana a due valori possono assumere solo i due valori 0 e 1 § precisamente, se x indica una variabile, è • x = 0 se e solo se x ≠ 1 • x = 1 se e solo se x ≠ 0 • Algebra Booleana a due valori: ({0,1},+,*,’,0,1) dove + (OR) e * (AND) sono definiti come + 0 1 0 0 1 1 1 1 * 0 1 0 0 0 1 0 1 • Mentre l’operazione a un solo elemento (unary operation) detta complementazione o negazione (NOT) è definita come ‘ 0 1 1 0 § Nota: il simbolo associato al NOT è spesso indicato come ’(esempio x’), !(esempio !x) o sopra segnando la variabile. Operatori logici di base e loro tabelle di verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A B A or B 0 0 0 0 1 1 1 0 1 1 1 1 (somma logica) A B A and B 0 0 0 0 1 0 1 0 0 1 1 1 (prodotto logico) A not A 0 1 1 0 (negazione) Le tabelle elencano tutte le possibili combinazioni in ingresso e il risultato associato a ciascuna combinazione 16 Espressioni logiche (o Booleane) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Come le espressioni algebriche, costruite con: § Variabili logiche (letterali): p. es. A, B, C = 0 oppure 1 § Operatori logici: and, or, not • Esempi: A or (B and C) (A and (not B)) or (B and C) • Precedenza: l’operatore “not” precede l’operatore “and”, che a sua volta precede l’operatore “or” A and not B or B and C = (A and (not B)) or (B and C) • Per ricordarlo, si pensi OR come “+” (più), AND come “×” (per) e NOT come “-” (cambia segno) 17 Tabella di verità di un’espressione logica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A and B or not C ABC X = A and B Y = not C X or Y 000 0 and 0 = 0 not 0 = 1 0 or 1 =1 001 0 and 0 = 0 not 1 = 0 0 or 0 =0 010 0 and 1 = 0 not 0 = 1 0 or 1 =1 011 0 and 1 = 0 not 1 = 0 0 or 0 =0 100 1 and 0 = 0 not 0 = 1 0 or 1 =1 101 1 and 0 = 0 not 1 = 0 0 or 0 =0 110 1 and 1 = 1 not 0 = 1 1 or 1 =1 111 1 and 1 = 1 not 1 = 0 1 or 0 =1 Due esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A 0 0 1 1 B 0 1 0 1 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 NOT ((A OR B) AND (NOT A)) 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 C 0 1 0 1 0 1 0 1 ( B OR NOT C) AND (A OR NOT C) 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 19 A che cosa servono le espressioni logiche? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • A modellare alcune (non tutte) forme di ragionamento § A = è vero che 1 è maggiore di 2 ? (sì o no, qui è no) = 0 § B = è vero che 2 più 2 fa 4 ? (sì o no, qui è sì) = 1 § A and B = è vero che 1 sia maggiore di 2 e che 2 più 2 faccia 4 ? Si ha che A and B = 0 and 1 = 0, dunque no § A or B = è vero che 1 sia maggiore di 2 o che 2 più 2 faccia 4 ? Si ha che A or B = 0 and 1 = 1, dunque sì • OR, AND e NOT vengono anche chiamati connettivi logici, perché funzionano come le congiunzioni coordinanti “o” ed “e”, e come la negazione “non”, del linguaggio naturale • Si modellano ragionamenti (o deduzioni) basati solo sull’uso di “o”, “e” e “non” (non è molto, ma è utile) 20 Che cosa non si può modellare tramite espressioni logiche? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Le espressioni logiche (booleane) non modellano: § Domande esistenziali: “c’è almeno un numero reale x tale che il suo quadrato valga -1 ?” (si sa bene che non c’è) ∃x | x2 = -1 è falso § Domande universali: “ogni numero naturale è la somma di quattro quadrati di numeri naturali ?” (si è dimostrato di sì) ∀x | x = a2+b2+c2+d2 è vero (“teorema dei 4 quadrati”) Più esattamente andrebbe scritto: ∀x ∃a,b,c,d | x = a2+b2+c2+d2 • ∃ e ∀ sono chiamati “operatori di quantificazione”, e sono ben diversi da or, and e not • La parte della logica che tratta solo degli operatori or, and e not si chiama calcolo proposizionale • Aggiungendo gli operatori di quantificazione, si ha il calcolo dei predicati (che è molto più complesso) 21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 22 Problema: caratteri MaIuScOli DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo 23 Pseudocodice DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Dati § L’insieme dei caratteri ammissibili {a, b, c, …, z} 1. Richiedere linserimento di un carattere 2. Se carattere inserito corretto 3. Allora stampa a video carattere-32 4. Altrimenti stampa a video un messaggio di errore 24 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Dati § L’insieme dei caratteri ammissibili {a, b, c, …, z} • Il carattere inserito deve essere § =>a § <= z 25 Maiuscolo: solo if DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 26 Maiuscolo: esecuzione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 27 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? 28 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? § Se X = 0? 29 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? § Se X = 0? Vogliamo una uscita FALSA 30 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? § Se X = 0? Vogliamo una uscita FALSA § Se Y = 0? 31 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? § Se X = 0? Vogliamo una uscita FALSA § Se Y = 0? Vogliamo una uscita FALSA 32 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? § Se X = 0? Vogliamo una uscita FALSA § Se Y = 0? Vogliamo una uscita FALSA § Se X = 1 e Y = 1? Uscita VERA! 33 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? X 0 0 1 1 Y 0 1 0 1 USCITA 0 0 0 1 34 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? X 0 0 1 1 Y 0 1 0 1 USCITA 0 0 0 1 a d r ? co i a r s i o V c e h c l a qu 35 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? a X Y USCITA d r o ? c i a r s i o 0 0 0 V c e h c l a 0 1 0 u q ! ! ! 1 0 0 D N A 1 1 1 36 Condizione da verificare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il carattere inserito deve essere § X: =>a § Y: <= z • Come vogliamo che si comporti il nostro modello rispetto a X e Y? X Y X AND Y a d r o ? c 0 0 0 i a r s i o V c e 0 1 0 h c l a u q 1 0 0 ! ! ! D 1 1 1 AN (prodotto logico) 37 Maiuscolo: AND DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 38 Maiuscolo: codice ottimizzato DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 39 Maiuscolo: esecuzione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 40 Qualche cosa di più complesso… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si accettano soltanto numeri dispari, primi, oppure maggiori di tre § a: dispari § b: primi § c: maggiori di 3 41 Qualche cosa di più complesso… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si accettano soltanto numeri dispari, primi, oppure maggiori di tre § a: dispari § b: primi § c: maggiori di 3 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 42 Qualche cosa di più complesso… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si accettano soltanto numeri dispari, primi, oppure maggiori di tre § a: dispari § b: primi § c: maggiori di 3 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 43 Qualche cosa di più complesso… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si accettano soltanto numeri dispari, primi, oppure maggiori di tre § a: dispari § b: primi § c: maggiori di 3 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 44 Per farlo… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Qualche definizione 45 Letterale DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Un letterale è una coppia (Variabile,Valore) § (x,1) è indicato come x (variabile in forma naturale); § (x,0) rappresenta la variabile x in forma negata (complementata) ed è indicato come x’ (oppure !x). 46 Termine prodotto DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Un termine prodotto è il prodotto logico o congiunzione (AND) di più letterali. • Un termine prodotto in cui compaiono letterali corrispondenti a tutte le variabili della funzione e tale per cui la configurazione di valori delle variabili definite dai letterali genera un valore 1 della funzione stessa nella tabella delle verità, costituisce un mintermine della funzione § Ad esempio, a’b’c e ab’c rappresentano due mintermini della funzione di cui si è prima data la tabella delle verità • Un termine prodotto in cui compaiono solo alcuni dei letterali e che corrisponda a un insieme di 1 della funzione è denominato implicante. 47 Termine somma (duale) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Un termine somma è la somma logica o disgiunzione (OR) di più letterali. • Un termine somma in cui compaiono letterali corrispondenti a tutte le variabili della funzione e tale per cui la configurazione di valori delle variabili definite dai letterali genera un valore 0 della funzione stessa nella tabella delle verità, costituisce un maxtermine della funzione § Ad esempio, a+b+c e a+b’+c rappresentano due maxtermini della funzione data • Un termine somma in cui compaiono solo alcuni dei letterali e che corrisponda a un insieme di 0 della funzione è denominato implicato. 48 Funzioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Una funzione booleana di n variabili può essere espressa attraverso una espressione booleana di n variabili costituita da letterali, costanti, operatori AND, OR e NOT. 49 Funzioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Una funzione booleana di n variabili può essere espressa attraverso una espressione booleana di n variabili costituita da letterali, costanti, operatori AND, OR e NOT. • Esempio di espressione booleana: f(a,b,c)=ab+a’c’ 50 Nota DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il numero di espressioni booleane di n variabili definite su una algebra booleana B è infinito. § La relazione tra espressioni booleane e funzioni booleane non è 1 a 1 51 Nota DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il numero di espressioni booleane di n variabili definite su una algebra booleana B è infinito. § La relazione tra espressioni booleane e funzioni booleane non è 1 a 1 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 0 0 0 1 1 1 1 52 Nota DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il numero di espressioni booleane di n variabili definite su una algebra booleana B è infinito. § La relazione tra espressioni booleane e funzioni booleane non è 1 a 1 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 0 0 0 1 1 1 1 f(a,b,c)= (a’*b’)’*a f(a,b,c)= ... f(a,b,c)= a 53 Ma quindi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 54 Ma quindi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si accettano soltanto numeri dispari, primi, oppure maggiori di tre § a: dispari § b: primi § c: maggiori di 3 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 55 Ma quindi… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Data una funzione booleana § ad esempio, mediante la tabella delle verità § il problema è identificare almeno una espressione booleana ad essa a b c f(a,b,c) corrispondente 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 0 1 0 1 1 1 56 Ma quindi… diventa... DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Data una funzione booleana § ad esempio, mediante la tabella delle verità § il problema è identificare almeno una espressione booleana ad essa a b c f(a,b,c) corrispondente 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 0 1 0 1 1 1 57 Come calcolare l’espressione booleana DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Data una funzione booleana, la soluzione iniziale al problema di determinare una sua espressione consiste nel ricorso alle forme canoniche • Le forme canoniche sono: § la forma somma di prodotti (SoP) § quella prodotto di somme (PoS) 58 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Mettendo in OR i mintermini della funzione si ottiene l’espressione booleana della funzione stessa (SoP) a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 = f(a,b) = 59 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Mettendo in OR i mintermini della funzione si ottiene l’espressione booleana della funzione stessa (SoP) a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 = f(a,b) = a 0 0 1 1 b 0 1 0 1 f1(a,b) 0 1 0 0 + a 0 0 1 1 b 0 1 0 1 f2(a,b) 0 0 0 1 60 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Mettendo in OR i mintermini della funzione si ottiene l’espressione booleana della funzione stessa (SoP) a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 = f(a,b) = a 0 0 1 1 b 0 1 0 1 f1(a,b) 0 1 0 0 a’b + + a 0 0 1 1 b 0 1 0 1 f2(a,b) 0 0 0 1 ab 61 Seconda forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Mettendo in AND i maxtermini della funzione si ottiene l’espressione booleana della funzione stessa (PoS) a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 f(a,b) = = 62 Seconda forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Mettendo in AND i maxtermini della funzione si ottiene l’espressione booleana della funzione stessa (PoS) a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 f(a,b) = a 0 0 1 1 b 0 1 0 1 f1(a,b) 0 1 1 1 * a 0 0 1 1 b 0 1 0 1 f2(a,b) 1 1 0 1 = 63 Seconda forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Mettendo in AND i maxtermini della funzione si ottiene l’espressione booleana della funzione stessa (PoS) a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 f(a,b) = = a 0 0 1 1 b 0 1 0 1 f1(a,b) 0 1 1 1 a+b * * a 0 0 1 1 b 0 1 0 1 f2(a,b) 1 1 0 1 a’+b 64 Il problema di partenza DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si accettano soltanto numeri dispari, primi, oppure maggiori di tre § a: dispari § b: primi § c: maggiori di 3 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 65 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !a!bc a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 66 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !a!bc + !abc a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 67 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !a!bc + !abc + a!bc a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 68 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !a!bc + !abc + a!bc + ab!c a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 69 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !a!bc + !abc + a!bc + ab!c + abc a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 70 Prima forma canonica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !a!bc + !abc + a!bc + ab!c + abc a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 71 Il problema DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ridurre la complessità di una (o più) funzione(i) booleana(e) espressa(e) in forma di Prodotto di Somme o di Somma di Prodotti (SOP). • Si considerano le forme canoniche come soluzioni iniziali 72 Il problema DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ridurre la complessità di una (o più) funzione(i) booleana(e) espressa(e) in forma di Prodotto di Somme o di Somma di Prodotti (SOP). • Si considerano le forme canoniche come soluzioni iniziali • Obiettivi § Riduzione del numero dei termini prodotto (principale) § Riduzione del numero di letterali (secondario) 73 Karnaugh DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si propone di identificare forme minime a due livelli applicando la regola di riduzione a Z + a' Z = (a +a') Z = Z con Z termine prodotto di n-1 variabili. § Esempio: abcd’ + ab’cd’ = acd’ - 74 - Karnaugh DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si propone di identificare forme minime a due livelli applicando la regola di riduzione a Z + a' Z = (a +a') Z = Z con Z termine prodotto di n-1 variabili. § Esempio: abcd’ + ab’cd’ = acd’ • La riduzione può essere applicata iterativamente § Esempio: abc’d’+abc’d+abcd’+abcd= abc’(d’+d) +abc(d’+d) = abc’+abc = ab(c’+c) = ab - 75 - Karnaugh DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si propone di identificare forme minime a due livelli applicando la regola di riduzione a Z + a' Z = (a +a') Z = Z con Z termine prodotto di n-1 variabili. § Esempio: abcd’ + ab’cd’ = acd’ • La riduzione può essere applicata iterativamente § Esempio: abc’d’+abc’d+abcd’+abcd= abc’(d’+d) +abc(d’+d) = abc’+abc = ab(c’+c) = ab Nota: si osservi che la applicazione della relazione identificata è applicata ad un numero di termini pari a 2n quindi 2, 4, 8, ... - 76 - Karnaugh sul nostro esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)= !a!bc + !abc + a!bc + ab!c + abc 77 Karnaugh sul nostro esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)= !a!bc + !abc + a!bc + ab!c + abc !ac (!b + b) + a!bc + ab!c + abc 78 Karnaugh sul nostro esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)= !a!bc + !abc + a!bc + ab!c + abc !ac (!b + b) + a!bc + ab!c + abc !ac + a!bc + ab!c + abc 79 Karnaugh sul nostro esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)= !a!bc + !abc + a!bc + ab!c + abc !ac (!b + b) + a!bc + ab!c + abc !ac + a!bc + ab!c + abc !ac + a!bc + ab (!c + c) 80 Karnaugh sul nostro esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)= !a!bc + !abc + a!bc + ab!c + abc !ac (!b + b) + a!bc + ab!c + abc !ac + a!bc + ab!c + abc !ac + a!bc + ab (!c + c) !ac + a!bc + ab 81 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 82 Mappe di Karnaugh DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Una mappa di Karnaugh è uno schema deducibile dalla rappresentazione geometrica delle configurazioni binarie. • Definizione utili: § Distanza di Hamming: numero di bit che cambia nel passare da una configurazione binaria ad un’altra • Esempio: la distanza di Hamming tra le configurazioni 01001 e 10101 è 3 poiché cambiano 3 bit. • L’applicazione della regola di riduzione consiste nell’identificare le configurazioni binarie associate ai termini prodotto che sono a distanza di Hamming unitaria. § Esempio: i termini prodotto abcd’ e ab’cd’ corrispondono a 1110 e 1010 e sono a distanza di Hamming pari ad 1. - 83 - Funzione in uno spazio n-D DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Una funzione booleana a n variabili f: {0,1}n → {0,1} può essere rappresenta in modo comodo utilizzando una tabella della funzione o tabella della verità. • In modo assolutamente equivalente una funzione a n variabili può essere associata ad una rappresentazione cartesiana in uno spazio a n dimensioni f(a,b,c)=ONset(001,011,101,110,111) ONset= insieme di 1 della funzione - 84 - Punti a distanza di Hamming 1 in n-D DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Nella rappresentazione cartesiana di una funzione in uno spazio a n dimensioni, collegando i vertici le cui configurazioni sono a distanza di Hamming unitaria si ottiene un n-cubo. § Spazio a 1 dimensione (1 variabile) • È una linea, e l’1-cubo è un segmento: i due vertici sono associati alle configurazioni 0 e 1 0 1 § Spazio a 2 dimensioni (2 variabili): • È il piano, il 2-cubo è un quadrato che si ottiene dall’1-cubo per proiezione. Si premette 0 alle configurazioni dei vertici originali, 1 a quelle dei vertici proiettati 00 01 10 11 - 85 - Punti a distanza di Hamming 1 in n-D DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE § Spazio a 3 dimensioni (3 variabili) • Il 3-cubo è un solido, che si ottiene dal 2cubo per proiezione, premettendo 0 alle configurazioni dei vertici originali, 1 a quelle dei vertici proiettati 000 100 001 101 010 110 011 111 - 86 - Funzione in uno spazio n-D DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)=ONset(001,011,101,110,111) ONset= insieme di 1 della funzione - 87 - Funzione in uno spazio n-D DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)=ONset(001,011,101,110,111) ONset= insieme di 1 della funzione 000 001 100 c 101 dove a 010 110 011 b 1 0 111 - 88 - Sviluppo nel piano dei cubi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Di fatto, la rappresentazione in uno spazio a n dimensioni non è maneggevole § Quindi, si passa allo sviluppo nel piano dei cubi § Lo sviluppo nel piano di un 3-cubo implica il taglio del cubo § Il taglio deve mantenere intatta, concettualmente, la adiacenza fra vertici. Si presti molta attenzione all’ordinamento delle coordinate • Ordinamento delle coordinate mantiene le distanze di Hamming e non coincide con la numerazione consecutiva - 89 - Sviluppo nel piano dei cubi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Di fatto, la rappresentazione in uno spazio a n dimensioni non è maneggevole § Quindi, si passa allo sviluppo nel piano dei cubi § Lo sviluppo nel piano di un 3-cubo implica il taglio del cubo § Il taglio deve mantenere intatta, concettualmente, la adiacenza fra vertici. Si presti molta attenzione all’ordinamento delle coordinate • Ordinamento delle coordinate mantiene le distanze di Hamming e non coincide con la numerazione consecutiva 000 001 c " " 100 101 c dove a 010 110 011 b a,b 1 0 0 1 00 01 11 10 0 0 1 0 1 1 1 1 " 111 - 90 - Caratteristiche delle mappe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si ricorda che: un implicante è un termine prodotto in cui compaiono solo alcuni dei letterali. F(a,b,c,d)=a’b’c’d’+a’b’cd’+a’bc’d’+ab’c’d+ ab’cd+ab’cd’ raggruppamento 1 raggruppamento2 Implicante 2 F(a,b,c,d)=a’b’d’+a’c’d’+... Implicante 1 a,b c,d 00 01 11 10 raggruppamento 1 00 1 0 0 1 01 11 10 1 0 0 0 0 1 0 0 1 0 0 1 raggruppamento 2 - 91 - Metodo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1. Individuare gli implicanti primi e primi essenziali; § Implicante primo • Termine prodotto associato ad un raggruppamento di dimensione massima. § implicante primo essenziale • Implicante primo che copre uno o più 1 non coperti da nessun altro implicante primo. 2. Copertura: § Scelta del minor numero di implicanti primi e primi essenziali implicanti implicanti primi implicanti primi essenziali - 92 - Scopo delle mappe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Identificare una forma SoP che includa il numero minimo di implicanti e – a parità di numero di prodotti – gli implicanti col minimo numero di letterali (definita come forma minima) garantendo la copertura di tutti gli 1 della funzione. • Teorema: § Esiste sicuramente una forma minima costituita da soli implicanti primi • sulla mappa di Karnaugh si identificano tutti gli implicanti primi. – Nota: la somma di tutti gli implicanti primi è spesso ridondante. § Implicanti primi essenziali devono essere inclusi nella forma minima. § Una forma minima costituita da soli implicanti primi essenziali è unica • Condizione sufficiente. - 93 - Esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE a,b c,d 00 01 11 10 00 1 1 0 1 01 11 10 1 0 0 1 1 1 0 1 1 0 0 1 ! raccoglimento Raccoglimento di dimensione massima 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 ERRORE: valido raccoglimento solo di 2,4,... - 94 - Esempio: continua DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE a,b c,d 00 01 11 10 00 1 1 0 1 01 11 10 1 0 0 1 1 1 0 1 1 0 0 1 ! Raccoglimento di dimensione massima Raccoglimento di dimensione massima essenziale 1 appartenente ad un solo implicante primo 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 - 95 - Definizione del termine prodotto DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ad ogni raccoglimento è associato un termine prodotto. • Il termine prodotto (implicante) è ottenuto: § identificando le variabili che non cambiano mai di valore § riportando ogni variabile in modo naturale • (esempio: a) se il valore che essa assume è 1 • in modo complementato (esempio: a’) se il valore da essa assunto è 0 - 96 - Identificazione del termine prodotto DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE a,b c,d 00 01 11 10 a,b 00 01 11 10 b cambia valore ! 00 1 1 0 0 01 1 1 1 1 d cambia valore 11 0 0 1 1 10 1 0 0 1 b e d cambiano valore: non compaiono nel termine prodotto. 00 1 1 0 1 01 11 10 1 0 0 1 1 1 0 1 1 0 0 1 c,d a e c compaiono come 0 quindi a’ e c’ . Il termine prodotto è a’c’. - 97 - Copertura DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Sotto insieme degli implicanti identificati tale per cui nessun 1 della funzione rimane scoperto. § Poiché ogni implicante scelto aumenta il costo della realizzazione della funzione, il numero di implicanti da scegliere deve essere il minore possibile. § L’obiettivo è la riduzione del costo; questo si traduce nella identificazione della copertura di minima cardinalità: • sotto insieme degli implicanti primi e primi ed essenziali identificati che realizza una copertura della funzione che è di cardinalità minima. - 98 - Copertura: scelta implicanti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1. Si scelgono tutti gli implicanti primi essenziali. § Gli implicanti primi essenziali devono essere parte della copertura poiché “sono essenziali” e, quindi, non è possibile fare a meno di loro. 2. Si eliminano tutti gli implicanti primi che sono coperti da quelli essenziali (eliminazione implicanti completamente ridondanti) § gli implicanti eliminati, detti completamente ridondanti, coprono degli 1 che sono già ricoperti da quelli essenziali e, quindi, non servono ed aumentano il costo. 3. Si seleziona il numero minore degli implicanti primi che sono rimasti. § gli implicanti residui sono detti parzialmente ridondanti. - 99 - E quindi, il nostro esempio… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f (a, b, c) = ∑(001, 011,101,110,111) a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 - 100 - E quindi, il nostro esempio… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f (a, b, c) = ∑(001, 011,101,110,111) a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 Implicanti primi essenziali a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 c - 101 - E quindi, il nostro esempio… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f (a, b, c) = ∑(001, 011,101,110,111) a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 Implicanti primi essenziali a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 c ab - 102 - E quindi, il nostro esempio… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f (a, b, c) = ∑(001, 011,101,110,111) a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 0 1 1 1 Implicanti primi essenziali a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 c ab f(a,b,c)= ab + c Forma minima - 103 - Osservazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ma se la forma minima è f(a,b,c) = ab + c a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 104 Osservazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ma se la forma minima è f(a,b,c) = ab + c a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 • La soluzione (S78) f(a,b,c) = !ac + a!bc + ab ? 105 Osservazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ma se la forma minima è f(a,b,c) = ab + c a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 • La soluzione (S78) f(a,b,c) = !ac + a!bc + ab ? a,b c 0 1 00 01 11 10 0 0 1 0 1 1 1 1 106 Problemi di fine giornata… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma in C che richiede l’inserimento di un numero intero positivo, se l’inserimento e’ errato ritorna un messaggio di errore • Si scriva un programma in C che, dati due caratteri, li ordina in ordine alfabetico “inverso” 107 Appendice (utile per la prox exe) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 108 Tautologie e Contraddizioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Tautologia § Una espressione logica che è sempre vera, per qualunque combinazione di valori delle variabili • Esempio: principio del “terzo escluso”: A or not A (tertium non datur, non si dà un terzo caso tra l’evento A e la sua negazione) • Contraddizione § Una espressione logica che è sempre falsa, per qualunque combinazione di valori delle variabili • Esempio: principio di “non contraddizione”: A and not A (l’evento A e la sua negazione non possono essere entrambi veri) 109 Equivalenza tra espressioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Due espressioni logiche si dicono equivalenti (e si indica con ⇔) se hanno la medesima tabella di verità. La verifica è algoritmica. Per esempio: AB not A and not B ⇔ not (A or B) 00 1 and 1 = 1 not 0 = 1 01 1 and 0 = 0 not 1 = 0 10 0 and 1 = 0 not 1 = 0 11 0 and 0 = 0 not 1 = 0 • Espressioni logiche equivalenti modellano gli stessi stati di verità a fronte delle medesime variabili 110 Proprietà dell’algebra di Boole DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • L’algebra di Boole gode di svariate proprietà, formulabili sotto specie di identità § cioè formulabili come equivalenze tra espressioni logiche, valide per qualunque combinazione di valori delle variabili 111 Algebra Booleana a due valori: Assiomi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Vale per la somma rispetto al prodotto come per il prodotto rispetto alla somma – non esiste precedenza fra le due operazioni, occorre sempre immaginare le parentesi “sottintese” intorno a ogni applicazione di un’operazione. • Gli operatori descritti godono delle proprietà definite dai seguenti assiomi (postulati di Huntington): § Le operazioni di disgiunzione (+) e congiunzione (·) sono commutative, cioè per ogni elemento a,b ∈ B a+b = b+a a· b = b · a § Esiste un elemento neutro (o identità) rispetto a + (indicato con 0) e un elemento neutro rispetto a · (indicato con 1), cioè: a+0=a a·1=a § Le due operazioni sono distributive rispetto all’altra, cioè per ogni a,b,c ∈ B, risulta: a+(b·c)=(a+b)·(a+c) a·(b+c)=(a·b)+(a·c) § Per ogni a ∈ B esiste l’elemento a’∈ B, detto negazione logica o complemento di a, tale che: a+a’=1 a·a’=0 Algebra di Commutazione: Proprietà 1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1: associativa a+(b+c)=(a+b)+c a*(b*c)=(a*b)*c 2: idempotenza a+a=a a*a=a 3: elemento nullo a+1=1 a*0=0 4: unicità elemento inverso: il complemento di a, a’, è unico 5: assorbimento a+(a*b)=a a*(a+b)=a Algebra di Commutazione: Proprietà 2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6: Semplificazione a+a’b = a+b a*(a’+b) = a*b 7: involuzione ((a)’)’ = a 8: Leggi di De Morgan (a+b)’ = a’*b’ (a*b)’ = a’+b’ 9: consenso a*b+a’*c+b*c = a*b + a’*c (a+b)*(a’+c)*(b+c)=(a+b)*(a’+c) - 114 - Uso delle proprietà DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Trasformare un’espressione logica in un’altra, differente per aspetto ma equivalente: = = = = = = not A and B or A = (assorbimento) not A and B or (A or A and B) = (togli le parentesi) not A and B or A or A and B = (commutativa) not A and B or A and B or A = (distributiva) (not A or A) and B or A = (legge dell’elemento 1) true and B or A = (vero and B à B) B or Aè più semplice dell’espressione originale • Si può verificare l’equivalenza con le tabelle di verità • Occorre conoscere un’ampia lista di proprietà e si deve riuscire a “vederle” nell’espressione (talvolta è difficile) 115 Fonti per lo studio + Credits DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Fonti per lo studio § Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill • Capitolo 2 • Credits § Daniele Braga • http://home.dei.polimi.it/braga/ § Cristiana Bolchini • http://home.dei.polimi.it/bolchini/didattica/ retilogichea/index.htm