Algebra di Boole, elementi di logica e Mappe di Karnaugh

Documenti analoghi
Algebra di Boole ed elementi di logica

Algebra di Boole Cenni all Algebra di Boole. Algebra Booleana: definizione

Algebra di Boole Cenni all Algebra di Boole

Algebra di Boole. Tavole di verità. Fondamenti di Informatica Algebra di Boole. Si basa su tre operazioni logiche: AND (*) OR (+) NOT (!

Richiami di Algebra di Commutazione

I.2 Logica. Elisabetta Ronchieri. Ottobre 13, Università di Ferrara Dipartimento di Economia e Management. Insegnamento di Informatica

I circuiti digitali: dalle funzioni logiche ai circuiti

4. Logica. Insegnamento di Informatica. Elisabetta Ronchieri. I semestre, anno Corso di Laurea di Economia, Universitá di Ferrara

L algebra di Boole. Cenni Corso di Reti Logiche B. Mariagiovanna Sami

Algebra di Boole X Y Z V. Algebra di Boole

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono:

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche

Funzioni booleane. Vitoantonio Bevilacqua.

Algebra di Boole Algebra di Boole

Reti logiche: introduzione

Reti logiche: analisi, sintesi e minimizzazione Esercitazione. Venerdì 9 ottobre 2015

Algebra di Boole. Modulo 2. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB)

Fondamenti di Informatica

Algebra di Boole: mappe di Karnaugh e funzioni NAND e NOR

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1.

A.A. 2003/2004 Esercizi di Reti Logiche A

I circuiti digitali: dalle funzioni logiche ai circuiti (le SOP)

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA

Corso di Calcolatori Elettronici I A.A Algebra di Boole Lezione 4

1 Minimizzazione di espressioni logiche con le proprietà dell algebra

INSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.

Metodo di Quine- McCluskey

Algebra di commutazione

Sistemi Combinatori & Mappe di Karnaugh

Maurizio Palesi. Maurizio Palesi 1

Esercitazioni di Reti Logiche. Algebra Booleana e Porte Logiche

Sintesi di Reti Combinatorie

Algebra di Boole e circuiti dalle funzioni logiche ai circuiti digitali

Corso di Elementi di Informatica Anno accademico 2015/16

Elementi di informatica

Algebra di Boole ed Elementi di Logica

Operatori di relazione

Algebra Booleana, Funzioni Logiche e Circuiti Logici

Algebra di Boole: mappe di Karnaugh

Corso di Calcolatori Elettronici I

17/10/16. Espressioni Booleane

Costruzione di. circuiti combinatori

Dalla tabella alla funzione canonica

MATEMATICA DI BASE 1

Informatica. Logica e Algebra di Boole

Sommario. 1 Algebra di Boole. 2 Algebra di commutazione. 4 Calcolo delle proposizioni

PROGRAMMA CONSUNTIVO

Algebra di Boole Esercizi risolti

Cenni di logica e calcolo proposizionale

Minimizzazione a più livelli di reti combinatorie Cristina Silvano

George BOOLE ( ) L algebra booleana. (logica proposizionale)

Minimizzazione di funzioni booleane:

Logica proposizionale

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale

Algebra di Boole: minimizzazione di funzioni booleane

METODI MATEMATICI PER L INFORMATICA

I circuiti digitali: dalle funzioni logiche ai circuiti

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Logica: materiale didattico

FUNZIONI BOOLEANE. Vero Falso

I circuiti logici: definizione delle funzioni logiche

Il livello logico digitale

NOZIONI DI LOGICA PROPOSIZIONI.

Calcolo numerico e programmazione Elementi di logica

Lezione2: Circuiti Logici

COMPITO A Esercizio 1 (13 punti) Dato il seguente automa:

Matematica per le scienze sociali Elementi di base. Francesco Lagona

Logica proposizionale

Cenni di logica matematica e di teoria degli insiemi. CORSI INTRODUTTIVI Dipartimento di Ingegneria di Perugia a.a. 2016/2017 Paola Rubbioni

Esercitazioni di Reti Logiche. Lezione 3

Corso E Docente: Siniscalchi. Algebra di Boole

(b) le operazioni, sono distributive: (c) le operazioni, hanno un elemento neutro: cioè esistono O e I P(X) tali che A P(X) : A O = A, A I = A.

Mappe di Karnaugh G. MARSELLA UNIVERSITÀ DEL SALENTO

Logica: nozioni di base

Reti Combinatorie: sintesi

Lezione 5. Sommario. La logica booleana. I principi della logica booleana Gli operatori logici

Quante sono le combinazioni possibili n cifre che possono assumere i valori 0 e 1? Le combinazioni possibili sono 2 n.

ELEMENTI DI ALGEBRA BOOLEANA

Transcript:

Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 8 Marzo 206

Progetti Meeting Quando: 22 Marzo @2pm Dove: Sala Conferenze @DEIB 2

Progetti 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

Progetti 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

Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l equivalente maiuscolo 5

HELP: errori sull input 6

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

Pseudocodice Dati L insieme dei caratteri ammissibili {a, b, c,, z}. 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 Dati L insieme dei caratteri ammissibili {a, b, c,, z} Il carattere inserito deve essere =>a <= z 9

Obiettivi 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 0

Cenni all algebra di Boole 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 e falso con il bit 0 (convenzione di logica positiva)

Algebra Booleana: definizione Algebra Booleana B è un sistema algebrico identificato dalla sestupla (B,+,*,,0,) dove: B è l'insieme su cui vengono definite le operazioni (supporto) +,*, sono le operazioni binarie OR e AND e l operazione unaria NOT 0, sono elementi speciali di B. 0 è l elemento neutro rispetto a + è l elemento neutro rispetto a * Assiomi - 2 -

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, 976] - 3 -

Operazioni logiche fondamentali Operatori logici binari (con 2 operandi logici) Operatore OR, o somma logica Operatore AND, o prodotto logico Operatore logico unario (con 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 4

Operazioni logiche fondamentali Le variabili dell algebra booleana a due valori possono assumere solo i due valori 0 e precisamente, se x indica una variabile, è x = 0 se e solo se x x = se e solo se x 0 Algebra Booleana a due valori: ({0,},+,*,,0,) dove + (OR) e * (AND) sono definiti come + 0 0 0 Mentre l operazione a un solo elemento (unary operation) detta complementazione o negazione (NOT) è definita come 0 0 * 0 0 0 0 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à A B A or B 0 0 0 0 0 (somma logica) A B A and B 0 0 0 0 0 0 0 (prodotto logico) A not A 0 0 (negazione) Le tabelle elencano tutte le possibili combinazioni in ingresso e il risultato associato a ciascuna combinazione 6

Espressioni logiche (o Booleane) Come le espressioni algebriche, costruite con: Variabili logiche (letterali): p. es. A, B, C = 0 oppure 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) 7

Tabella di verità di un espressione logica 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 = 0 or = 0 0 0 and 0 = 0 not = 0 0 or 0 = 0 0 0 0 and = 0 not 0 = 0 or = 0 0 and = 0 not = 0 0 or 0 = 0 0 0 and 0 = 0 not 0 = 0 or = 0 and 0 = 0 not = 0 0 or 0 = 0 0 and = not 0 = or = and = not = 0 or 0 =

9 A B NOT ((A OR B) AND (NOT A)) 0 0 0 0 A B C ( B OR NOT C) AND (A OR NOT C) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Due esercizi

A che cosa servono le espressioni logiche? A modellare alcune (non tutte) forme di ragionamento A = è vero che è maggiore di 2? (sì o no, qui è no) = 0 B = è vero che 2 più 2 fa 4? (sì o no, qui è sì) = A and B = è vero che sia maggiore di 2 e che 2 più 2 faccia 4? Si ha che A and B = 0 and = 0, dunque no A or B = è vero che sia maggiore di 2 o che 2 più 2 faccia 4? Si ha che A or B = 0 and =, 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? Le espressioni logiche (booleane) non modellano: Domande esistenziali: c è almeno un numero reale x tale che il suo quadrato valga -? (si sa bene che non c è) x x 2 = - è 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) 2

22

Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l equivalente maiuscolo 23

Pseudocodice Dati L insieme dei caratteri ammissibili {a, b, c,, z}. 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 Dati L insieme dei caratteri ammissibili {a, b, c,, z} Il carattere inserito deve essere =>a <= z 25

Maiuscolo: solo if 26

Maiuscolo: esecuzione 27

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

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

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

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? 3

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

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 = e Y =? Uscita VERA! 33

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? X Y USCITA 0 0 0 0 0 0 0 34

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? X Y USCITA 0 0 0 0 0 0 0 Vi ricorda qualche cosa? 35

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? X Y USCITA 0 0 0 0 0 0 0 Vi ricorda qualche cosa? AND!!! 36

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? X Y X AND Y 0 0 0 0 0 0 0 (prodotto logico) Vi ricorda qualche cosa? AND!!! 37

Maiuscolo: AND 38

Maiuscolo: codice ottimizzato 39

Maiuscolo: esecuzione 40

Qualche cosa di più complesso Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 4

Qualche cosa di più complesso Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 a b c 0 0 0 0 0 0 0 0 0 0 0 0 f(a,b,c) 42

Qualche cosa di più complesso Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43

Qualche cosa di più complesso Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44

Per farlo Qualche definizione 45

Letterale Un letterale è una coppia (Variabile,Valore) (x,) è 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 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 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 della funzione è denominato implicante. 47

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

Funzioni 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 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 Il numero di espressioni booleane di n variabili definite su una algebra booleana B è infinito. La relazione tra espressioni booleane e funzioni booleane non è a 5

Nota Il numero di espressioni booleane di n variabili definite su una algebra booleana B è infinito. La relazione tra espressioni booleane e funzioni booleane non è a a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52

Nota Il numero di espressioni booleane di n variabili definite su una algebra booleana B è infinito. La relazione tra espressioni booleane e funzioni booleane non è a a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f(a,b,c)= (a *b ) *a f(a,b,c)=... f(a,b,c)= a 53

Ma quindi 54

Ma quindi Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55

Ma quindi Data una funzione booleana ad esempio, mediante la tabella delle verità il problema è identificare almeno una espressione booleana ad essa corrispondente a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56

Ma quindi diventa... Data una funzione booleana ad esempio, mediante la tabella delle verità il problema è identificare almeno una espressione booleana ad essa corrispondente a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57

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

Prima forma canonica Mettendo in OR i mintermini della funzione si ottiene l espressione booleana della funzione stessa (SoP) a b f(a,b) 0 0 0 0 0 0 = f(a,b) = 59

Prima forma canonica Mettendo in OR i mintermini della funzione si ottiene l espressione booleana della funzione stessa (SoP) a b f(a,b) 0 0 0 0 0 0 a b f (a,b) 0 0 0 0 0 0 0 = + a b f 2 (a,b) 0 0 0 0 0 0 0 f(a,b) = 60

Prima forma canonica Mettendo in OR i mintermini della funzione si ottiene l espressione booleana della funzione stessa (SoP) a b f(a,b) 0 0 0 0 0 0 a b f (a,b) 0 0 0 0 0 0 0 = + a b f 2 (a,b) 0 0 0 0 0 0 0 f(a,b) = a b + ab 6

Seconda forma canonica Mettendo in AND i maxtermini della funzione si ottiene l espressione booleana della funzione stessa (PoS) a b f(a,b) 0 0 0 0 0 0 = f(a,b) = 62

Seconda forma canonica Mettendo in AND i maxtermini della funzione si ottiene l espressione booleana della funzione stessa (PoS) a b f(a,b) 0 0 0 0 0 0 a b f (a,b) 0 0 0 0 0 = * a b f 2 (a,b) 0 0 0 0 0 f(a,b) = 63

Seconda forma canonica Mettendo in AND i maxtermini della funzione si ottiene l espressione booleana della funzione stessa (PoS) a b f(a,b) 0 0 0 0 0 0 a b f (a,b) 0 0 0 0 0 = * a b f 2 (a,b) 0 0 0 0 0 f(a,b) = a+b * a +b 64

Il problema di partenza Si accettano soltanto numeri dispari, primi, oppure maggiori di tre a: dispari b: primi c: maggiori di 3 a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65

Prima forma canonica!a!bc a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66

Prima forma canonica!a!bc +!abc a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67

Prima forma canonica!a!bc +!abc + a!bc a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68

Prima forma canonica!a!bc +!abc + a!bc + ab!c a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69

Prima forma canonica!a!bc +!abc + a!bc + ab!c + abc a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70

Prima forma canonica!a!bc +!abc + a!bc + ab!c + abc a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7

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

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

Karnaugh 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- variabili. Esempio: abcd + ab cd = acd - 74 -

Karnaugh 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- 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 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- 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 sul nostro esempio f(a,b,c)=!a!bc +!abc + a!bc + ab!c + abc 77

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

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

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

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 8

82

Mappe di Karnaugh 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 000 e 00 è 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 0 e 00 e sono a distanza di Hamming pari ad. - 83 -

Funzione in uno spazio n-d Una funzione booleana a n variabili f: {0,} n {0,} 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 ON set = insieme di della funzione f(a,b,c)=on set (00,0,0,0,) - 84 -

Punti a distanza di Hamming 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 dimensione ( variabile) È una linea, e l -cubo è un segmento: i due vertici sono associati alle configurazioni 0 e 0 Spazio a 2 dimensioni (2 variabili): È il piano, il 2-cubo è un quadrato che si ottiene dall -cubo per proiezione. Si premette 0 alle configurazioni dei vertici originali, a quelle dei vertici proiettati 00 0 0-85 -

Punti a distanza di Hamming in n-d 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, a quelle dei vertici proiettati 000 00 00 0 00 0 0-86 -

Funzione in uno spazio n-d f(a,b,c)=on set (00,0,0,0,) ON set = insieme di della funzione - 87 -

Funzione in uno spazio n-d f(a,b,c)=on set (00,0,0,0,) ON set = insieme di della funzione 000 00 c 00 0 a 00 0 dove 0 0 b - 88 -

Sviluppo nel piano dei cubi 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 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 a 00 0 000 " 00 b " 0 00 0 dove c 0 a,b c 0 00 0 0 0 0 0 " - 90 -

Caratteristiche delle mappe 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 raggruppamento2 F(a,b,c,d)=a b d +a c d +... Implicante Implicante 2 a,b c,d 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 raggruppamento raggruppamento 2-9 -

Metodo. 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ù 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 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 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 a,b c,d 00 0 0 00 0 0 0 0 0 0 0 0! 0 0 raccoglimento Raccoglimento di dimensione massima 0 0 0 0 ERRORE: valido raccoglimento solo di 2,4,... - 94 -

Esempio: continua a,b c,d 00 0 0 00 0 0 0 0 0 0 0 0! Raccoglimento di dimensione massima Raccoglimento di dimensione massima essenziale 0 0 0 0 0 0 appartenente ad un solo implicante primo - 95 -

Definizione del termine prodotto 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 è in modo complementato (esempio: a ) se il valore da essa assunto è 0-96 -

Identificazione del termine prodotto a,b c,d 00 0 0 00 0 0 0 0 0 0 0 0! a,b 00 0 0 c,d 00 0 0 0 b cambia valore d cambia valore 0 0 0 0 0 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. - 97 -

Copertura Sotto insieme degli implicanti identificati tale per cui nessun 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. 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 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 f (a, b, c) = 00, 0,0,0, ( ) a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a,b c 0 00 0 0 0 0 0-00 -

E quindi, il nostro esempio f (a, b, c) = 00, 0,0,0, ( ) a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Implicanti primi essenziali a,b c 0 00 0 0 0 0 0 c - 0 -

E quindi, il nostro esempio f (a, b, c) = 00, 0,0,0, ( ) a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Implicanti primi essenziali a,b c 0 00 0 0 0 0 0 c ab - 02 -

E quindi, il nostro esempio f (a, b, c) = 00, 0,0,0, ( ) a b c f(a,b,c) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Implicanti primi essenziali a,b c 0 00 0 0 0 0 0 c ab f(a,b,c)= ab + c Forma minima - 03 -

Osservazione Ma se la forma minima è f(a,b,c) = ab + c a,b c 0 00 0 0 0 0 0 04

Osservazione Ma se la forma minima è f(a,b,c) = ab + c a,b c 0 00 0 0 0 0 0 La soluzione (S78) f(a,b,c) =!ac + a!bc + ab? 05

Osservazione Ma se la forma minima è f(a,b,c) = ab + c a,b c 0 00 0 0 0 0 0 La soluzione (S78) f(a,b,c) =!ac + a!bc + ab? a,b c 0 00 0 0 0 0 0 06

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 07

Appendice (utile per la prox exe) 08

Tautologie e Contraddizioni 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) 09

Equivalenza tra espressioni 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 and = not 0 = 0 and 0 = 0 not = 0 0 0 and = 0 not = 0 0 and 0 = 0 not = 0 Espressioni logiche equivalenti modellano gli stessi stati di verità a fronte delle medesime variabili 0

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

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. 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 ), cioè: a+0=a a =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 = a a =0

Algebra di Commutazione: Proprietà : 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+= 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 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) - 4 -

Uso delle proprietà 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 ) = 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) 5

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