Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoCristina Ruggiero Modificato 8 anni fa
1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Marzo 2016
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEProgetti Meeting Quando: 22 Marzo @2pm Dove: Sala Conferenze @DEIB 2
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEProgetti Meeting Quando: 22 Marzo @2pm Dove: Sala Conferenze @DEIB Problemi email stephen.bono@email.polimi.it elena.balzan@polimi.it gianluca.drappo@polimi.it giulia.crocioni@polimi.it 3
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEProgetti Meeting Quando: 22 Marzo @2pm Dove: Sala Conferenze @DEIB Problemi email stephen.bono@mail.polimi.it elena.balzan@mail.polimi.it gianluca.drappo@mail.polimi.it giulia.crocioni@mail.polimi.it 4
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo 5
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE HELP: errori sull’input 6
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: errori sull’input 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
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice 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
9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Dati L’insieme dei caratteri ammissibili {a, b, c, …, z} Il carattere inserito deve essere =>a <= z 9
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi 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
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11 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) Cenni all’algebra di Boole
12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 12 - Algebra Booleana: definizione 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
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana a due valori: Algebra di Commutazione “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 -
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 14 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 Operazioni logiche fondamentali
15
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 Mentre l’operazione a un solo elemento (unary operation) detta complementazione o negazione ( NOT ) è definita come Nota: il simbolo associato al NOT è spesso indicato come ’ (esempio x’ ), ! (esempio !x ) o sopra segnando la variabile. 0 1 1 0 + 0 1 0 0 1 1 1 1 * 0 1 0 0 0 1 0 1 Operazioni logiche fondamentali ‘
16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Operatori logici di base e loro tabelle di verità A B A and B 0 0 0 0 1 0 1 0 0 11 1 (prodotto logico) A B A or B 0 0 0 0 1 1 1 0 1 11 1 (somma logica) A not A 0 1 1 0 (negazione) Le tabelle elencano tutte le possibili combinazioni in ingresso e il risultato associato a ciascuna combinazione
17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 17 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) Espressioni logiche (o Booleane)
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A and B or not C A B C X = A and B Y = not C X or Y 0 0 0 0 and 0 = 0 not 0 = 1 0 or 1 = 1 0 0 1 0 and 0 = 0 not 1 = 0 0 or 0 = 0 0 1 0 0 and 1 = 0 not 0 = 1 0 or 1 = 1 0 1 1 0 and 1 = 0 not 1 = 0 0 or 0 = 0 1 0 0 1 and 0 = 0 not 0 = 1 0 or 1 = 1 1 0 1 1 and 0 = 0 not 1 = 0 0 or 0 = 0 1 1 0 1 and 1 = 1 not 0 = 1 1 or 1 = 1 1 1 1 1 and 1 = 1 not 1 = 0 1 or 0 = 1 Tabella di verità di un’espressione logica
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 A B NOT ((A OR B) AND (NOT A)) 0 0 0 1 1 0 1 1 A B C ( B OR NOT C) AND (A OR NOT C) 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 01000100 00110011 10111011 00110011 01010101 01110111 0011001100110011 11001100 0101010101010101 0101010101010101 1010101110101011 0000111100001111 1010101010101010 1010101010101010 1011101110111011 1010111110101111 Due esercizi
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 20 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) A che cosa servono le espressioni logiche?
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 21 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 | x 2 1 è falso Domande universali: “ogni numero naturale è la somma di quattro quadrati di numeri naturali ?” (si è dimostrato di sì) x | x a 2 b 2 c 2 d 2 è vero (“teorema dei 4 quadrati”) Più esattamente andrebbe scritto: x a,b,c,d | x a 2 b 2 c 2 d 2 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) Che cosa non si può modellare tramite espressioni logiche?
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 22
23
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo 23
24
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice 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
25
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Dati L’insieme dei caratteri ammissibili {a, b, c, …, z} Il carattere inserito deve essere =>a <= z 25
26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: solo if 26
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 27
28
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere X: =>a Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 28
29
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare 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
30
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare 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
31
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare 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
32
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare 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
33
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare 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
34
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere X: =>a Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 34 X Y USCITA 0 0 0 0 1 0 1 0 0 11 1
35
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere X: =>a Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 35 X Y USCITA 0 0 0 0 1 0 1 0 0 11 1 Vi ricorda qualche cosa?
36
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere X: =>a Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 36 X Y USCITA 0 0 0 0 1 0 1 0 0 11 1 Vi ricorda qualche cosa? AND!!!
37
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere X: =>a Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 37 Vi ricorda qualche cosa? AND!!! X Y X AND Y 0 0 0 0 1 0 1 0 0 11 1 (prodotto logico)
38
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: AND 38
39
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: codice ottimizzato 39
40
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 40
41
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Qualche cosa di più complesso… Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 41
42
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Qualche cosa di più complesso… Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 42 a b c f(a,b,c) 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
43
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Qualche cosa di più complesso… Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 43 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
44
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Qualche cosa di più complesso… Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 44 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Come calcoliamo il legame tra a, b, e c?
45
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Per farlo… 45 Qualche definizione
46
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONELetterale 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
47
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Termine prodotto 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
48
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Termine somma (duale) 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
49
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFunzioni 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
50
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFunzioni 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
51
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONENota 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
52
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONENota 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 52 a b c f(a,b,c) 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1
53
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONENota 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 53 a b c f(a,b,c) 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 f(a,b,c)= (a’*b’)’*a f(a,b,c)= a f(a,b,c)=...
54
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma quindi… 54
55
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma quindi… Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 55 Come calcoliamo il legame tra a, b, e c? a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
56
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma quindi… Data una funzione booleana ad esempio, mediante la tabella delle verità il problema è identificare almeno una espressione booleana ad essa corrispondente 56 Come calcoliamo il legame tra a, b, e c? a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
57
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma quindi… diventa... Data una funzione booleana ad esempio, mediante la tabella delle verità il problema è identificare almeno una espressione booleana ad essa corrispondente 57 Come calcoliamo l’espressione boolena? a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
58
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come calcolare l’espressione booleana 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
59
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica Mettendo in OR i mintermini della funzione si ottiene l’espressione booleana della funzione stessa (SoP) 59 a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 f(a,b) = =
60
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica Mettendo in OR i mintermini della funzione si ottiene l’espressione booleana della funzione stessa (SoP) 60 a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 a b f 2 (a,b) 0 0 0 0 1 0 1 0 0 1 1 1 a b f 1 (a,b) 0 0 0 0 1 1 1 0 0 1 1 0 =+ f(a,b) =
61
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica Mettendo in OR i mintermini della funzione si ottiene l’espressione booleana della funzione stessa (SoP) 61 a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 a b f 2 (a,b) 0 0 0 0 1 0 1 0 0 1 1 1 a b f 1 (a,b) 0 0 0 0 1 1 1 0 0 1 1 0 =+ a’babf(a,b) +=
62
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda forma canonica Mettendo in AND i maxtermini della funzione si ottiene l’espressione booleana della funzione stessa (PoS) 62 a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 = f(a,b) =
63
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda forma canonica Mettendo in AND i maxtermini della funzione si ottiene l’espressione booleana della funzione stessa (PoS) 63 a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 a b f 2 (a,b) 0 0 1 0 1 1 1 0 0 1 1 1 a b f 1 (a,b) 0 0 0 0 1 1 1 0 1 1 1 1 =* f(a,b) =
64
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda forma canonica Mettendo in AND i maxtermini della funzione si ottiene l’espressione booleana della funzione stessa (PoS) 64 a b f(a,b) 0 0 0 0 1 1 1 0 0 1 1 1 a b f 2 (a,b) 0 0 1 0 1 1 1 0 0 1 1 1 a b f 1 (a,b) 0 0 0 0 1 1 1 0 1 1 1 1 =* a+ba’+b f(a,b) = *
65
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il problema di partenza Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 65 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
66
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica !a!bc 66 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
67
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica !a!bc + !abc 67 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
68
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica !a!bc + !abc + a!bc 68 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
69
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica !a!bc + !abc + a!bc + ab!c 69 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
70
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica !a!bc + !abc + a!bc + ab!c + abc 70 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
71
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima forma canonica !a!bc + !abc + a!bc + ab!c + abc 71 a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
72
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il problema 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
73
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il problema 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
74
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
75
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
76
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 2 n quindi 2, 4, 8,... - 76 -Karnaugh
77
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Karnaugh sul nostro esempio f(a,b,c)= !a!bc + !abc + a!bc + ab!c + abc 77
78
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Karnaugh sul nostro esempio f(a,b,c)= !a!bc + !abc + a!bc + ab!c + abc !ac (!b + b) + a!bc + ab!c + abc 78
79
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Karnaugh sul nostro esempio 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
80
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Karnaugh sul nostro esempio 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
81
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Karnaugh sul nostro esempio 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
82
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 82
83
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 - Mappe di Karnaugh
84
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)=ON set ( 001,011,101,110,111 ) - 84 - Funzione in uno spazio n-D ON set = insieme di 1 della funzione
85
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Punti a distanza di Hamming 1 in n-D 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 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 - 85 - 10 01 00 1110
86
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Spazio a 3 dimensioni (3 variabili) Il 3-cubo è un solido, che si ottiene dal 2- cubo per proiezione, premettendo 0 alle configurazioni dei vertici originali, 1 a quelle dei vertici proiettati - 86 - 101 100 111 110 001 000 011 010 Punti a distanza di Hamming 1 in n-D
87
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)=ON set ( 001,011,101,110,111 ) - 87 - Funzione in uno spazio n-D ON set = insieme di 1 della funzione
88
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE f(a,b,c)=ON set ( 001,011,101,110,111 ) - 88 - Funzione in uno spazio n-D 101 100 111 110 001 000 011 010 a b c 1 0 dove ON set = insieme di 1 della funzione
89
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
90
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 - 90 - 101 100 111 110 001 000 011 010 a b c 1 0 dove 00011110 0 1 0 0 1 0 1 1 a,b c Sviluppo nel piano dei cubi
91
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Si ricorda che: un implicante è un termine prodotto in cui compaiono solo alcuni dei letterali. - 91 - 00011110 00 01 11 10 1 1 0 0 0 0 0 1 1 0 0 1 a,b c,d F(a,b,c,d)=a’b’c’d’+a’b’cd’+a’bc’d’+ab’c’d+ ab’cd+ab’cd’ F(a,b,c,d)=a’b’d’+a’c’d’+... raggruppamento 1 raggruppamento2 Implicante 1 Implicante 2 raggruppamento 1 raggruppamento 2 Caratteristiche delle mappe
92
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 - 92 - implicanti implicanti primi implicanti primi essenzialiMetodo
93
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE I dentificare 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 - Scopo delle mappe
94
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsempio - 94 - 00011110 00 01 11 10 1 1 0 0 1 1 0 0 1 1 1 0 0 1 a,b c,d 1 1 0 0 1 1 0 0 1 1 1 0 0 1 raccoglimento Raccoglimento di dimensione massima ERRORE: valido raccoglimento solo di 2,4,...
95
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 95 - 00011110 00 01 11 10 1 1 0 0 1 1 0 0 1 1 1 0 0 1 a,b c,d 1 1 0 0 1 1 0 0 1 1 1 0 0 1 Raccoglimento di dimensione massima essenziale 1 appartenente ad un solo implicante primo Raccoglimento di dimensione massima Esempio: continua
96
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 - Definizione del termine prodotto
97
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 97 - 00011110 00 01 11 10 1 1 0 0 1 1 0 0 1 1 1 0 0 1 a,b c,d 1 1 0 0 1 1 0 0 1 1 1 0 0 1 00101 0 0101 a,b c,d 1110 11 10 b e d cambiano valore: non compaiono nel termine prodotto. a e c compaiono come 0 quindi a’ e c’. Il termine prodotto è a’c’. b e d cambiano valore: non compaiono nel termine prodotto. a e c compaiono come 0 quindi a’ e c’. Il termine prodotto è a’c’. d cambia valore b cambia valore Identificazione del termine prodotto
98
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
99
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 - Copertura: scelta implicanti
100
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 100 - E quindi, il nostro esempio… a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 00011110 0 1 0 0 1 0 1 1 a,b c
101
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 101 - E quindi, il nostro esempio… a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Implicanti primi essenziali 00011110 0 1 0 0 1 0 1 1 a,b c c
102
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 102 - E quindi, il nostro esempio… a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 c ab Implicanti primi essenziali 00011110 0 1 0 0 1 0 1 1 a,b c
103
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 103 - E quindi, il nostro esempio… a b c f(a,b,c) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 c ab Implicanti primi essenziali 00011110 0 1 0 0 1 0 1 1 a,b c f(a,b,c)= ab + c Forma minima
104
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOsservazione Ma se la forma minima è f(a,b,c) = ab + c 104 00011110 0 1 0 0 1 0 1 1 a,b c
105
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOsservazione Ma se la forma minima è f(a,b,c) = ab + c La soluzione (S78) f(a,b,c) = !ac + a!bc + ab ? 105 00011110 0 1 0 0 1 0 1 1 a,b c
106
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOsservazione Ma se la forma minima è f(a,b,c) = ab + c La soluzione (S78) f(a,b,c) = !ac + a!bc + ab ? 106 00011110 0 1 0 0 1 0 1 1 a,b c 00011110 0 1 0 0 1 0 1 1 a,b c
107
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problemi di fine giornata… 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
108
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Appendice (utile per la prox exe) 108
109
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 109 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) Tautologie e Contraddizioni
110
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 110 Due espressioni logiche si dicono equivalenti (e si indica con ) se hanno la medesima tabella di verità. La verifica è algoritmica. Per esempio: A B not A and not B not (A or B) 0 0 1 and 1 = 1 not 0 = 1 0 1 1 and 0 = 0 not 1 = 0 1 0 0 and 1 = 0 not 1 = 0 1 1 0 and 0 = 0 not 1 = 0 Espressioni logiche equivalenti modellano gli stessi stati di verità a fronte delle medesime variabili Equivalenza tra espressioni
111
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 111 Proprietà dell’algebra di Boole 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
112
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana a due valori: Assiomi 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 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.
113
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Commutazione: Proprietà 1 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
114
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 114 - 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) Algebra di Commutazione: Proprietà 2
115
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 115 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) Uso delle proprietà
116
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits 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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.