Algebra di Boole ed elementi di...
Transcript of Algebra di Boole ed elementi di...
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Algebra di Booleed elementi di logica
Marco D. Santambrogio – [email protected]
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
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
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
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 -
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
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
‘
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
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)
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
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problema
Si scriva un programma in C che, dato un numero, dica se questo è positivo o negativo
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Soluzione
1. Si inserisca N2. N è maggiore di 0?
§ Vero: N è positivo§ Falso: N non è positivo
14
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: esecuzione
17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
HELP: errori sull’input
18
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
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: solo if
22
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
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
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
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
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
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
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
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?
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!!!
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)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: AND
33
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: codice ottimizzato
34
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: esecuzione
35
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?
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?
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
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
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
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.
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
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
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à
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
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