La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio –

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio –"— Transcript della presentazione:

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


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio –"

Presentazioni simili


Annunci Google