46
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – [email protected] Ver. aggiornata al 12 O0obre 2015

Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Algebra di Booleed elementi di logica

Marco D. Santambrogio – [email protected]

Page 2: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Obiettivi

•  Algebra di Boole§  Algebra di boole a due valori: algebra

di commutazione§ Operazioni logiche§  Espressioni logiche§  Assiomi e proprietà dell’algebra di

commutazione

2

Page 3: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

3

•  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

Page 4: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

- 4 -

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

Page 5: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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]

- 5 -

Page 6: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

6

•  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

Page 7: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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

Page 8: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

8

Operatori logici di base e loro tabelle di verità

A B A and B0 0 00 1 01 0 01  1 1(prodotto logico)

A B A or B0 0 00 1 11 0 11  1 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

Page 9: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

9

•  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)

Page 10: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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

Page 11: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

11

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

0100

0011

1011

0011

0101

0111

00110011

1100

01010101

01010101

10101011

00001111

10101010

10101010

10111011

10101111

Due esercizi

Page 12: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Vero e falso in C

•  In C non esiste un tipo di dato specifico per rappresentare i concetti vero e falso

•  Una condizione assume un valore intero pari a §  0 se la condizione è falsa §  1 se la condizione è vera

•  In generale, ogni valore diverso da zero è considerato vero §  ( 3 ) VERO §  ( 1 ) VERO §  ( a – a ) FALSO

12

Page 13: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema

Si scriva un programma in C che, dato un numero, dica se questo è positivo o negativo

13

Page 14: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Soluzione

1.  Si inserisca N2. N è maggiore di 0?

§  Vero: N è positivo§  Falso: N non è positivo

14

Page 15: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

15

In C: positivo

int main(){ int n; printf (“Inserisci un numero\n"); scanf ("%d", &n ); if ( n > 0 ) printf ("Un numero positivo ! \n"); else printf ("Un numero negativo o nullo\n"); printf ("Fine del programma\n"); return 0;}

condizione

Page 16: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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

16

Page 17: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Maiuscolo: esecuzione

17

Page 18: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

HELP: errori sull’input

18

Page 19: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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

19

Page 20: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Pseudocodice

•  Dati§  L’insieme dei caratteri ammissibili

{a, b, c, …, z}

1.  Richiedere l’inserimento di un carattere

2.  Se carattere inserito corretto3.  Allora stampa a video carattere-324.  Altrimenti stampa a video un

messaggio di errore

20

Page 21: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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

21

Page 22: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Maiuscolo: solo if

22

Page 23: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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?

23

Page 24: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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?

24

Page 25: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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

25

Page 26: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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?

26

Page 27: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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

27

Page 28: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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!

28

Page 29: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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?

29

X Y USCITA0 0 00 1 01 0 01  1 1

Page 30: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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?

30

X Y USCITA0 0 00 1 01 0 01  1 1

Vi ricorda

qualche cosa?

Page 31: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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?

31

X Y USCITA0 0 00 1 01 0 01  1 1

Vi ricorda

qualche cosa?

AND!!!

Page 32: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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?

32

Vi ricorda

qualche cosa?

AND!!!

X Y X AND Y0 0 00 1 01 0 01  1 1

(prodotto logico)

Page 33: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Maiuscolo: AND

33

Page 34: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Maiuscolo: codice ottimizzato

34

Page 35: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Maiuscolo: esecuzione

35

Page 36: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

36

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

Page 37: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

37

•  Le espressioni logiche (booleane) non modellano:§  Domande esistenziali: “c’è almeno un numero reale x tale

che il suo quadrato valga -1 ?”∃x | x2 = -1 è falso (si sa bene che non c’è)§  Domande universali: “ogni numero naturale è la somma

di quattro quadrati di numeri naturali ?” ∀x | x = a2+b2+c2+d2` è vero (“teorema dei 4 quadrati”) Più esattamente andrebbe scritto:∀x ∃a,b,c,d | x = a2+b2+c2+d2

•  ∃ e ∀ sono chiamati “operatori di quantificazione”, e sono ben diversi da or, and e not

•  La parte della logica che tratta solo degli operatori or, and e not si chiama calcolo proposizionale

•  Aggiungendo gli operatori di quantificazione, si ha il calcolo dei predicati (che è molto più complesso)

Che cosa non si può modellare tramite espressioni logiche?

Page 38: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

38

•  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

Page 39: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

39

•  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

Page 40: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

40

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

Page 41: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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 s

omm

a ri

spet

to a

l pro

dott

o co

me

per

il pr

odot

to r

ispe

tto

alla

so

mm

a –

non

esis

te p

rece

denz

a fr

a le

due

ope

razi

oni,

occ

orre

sem

pre

imm

agin

are

le p

aren

tesi

“so

ttin

tese

” in

torn

o a

ogni

app

licaz

ione

di

un’o

pera

zion

e.

Page 42: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Algebra di Commutazione: Proprietà 1

1: associativaa+(b+c)=(a+b)+c a*(b*c)=(a*b)*c

2: idempotenzaa+a=a a*a=a

3: elemento nulloa+1=1 a*0=0

4: unicità elemento inverso: il complemento di a, a’, è unico

5: assorbimentoa+(a*b)=a a*(a+b)=a

Page 43: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

- 43 -

6: Semplificazionea+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: consensoa*b+a’*c+b*c = a*b + a’*c (a+b)*(a’+c)*(b+c)=(a+b)*(a’+c)

Algebra di Commutazione: Proprietà 2

Page 44: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

44

•  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à

Page 45: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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”

45

Page 46: Algebra di Boole ed elementi di logicahome.deib.polimi.it/santambr/dida/infob/1516/doc/PDF/3...Algebra Booleana a due valori: Algebra di Commutazione “Tra tutte le algebre booleane,

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