DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D....
-
Upload
fiorella-tedesco -
Category
Documents
-
view
220 -
download
0
Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D....
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Algebra di BooleAlgebra di Booleed elementi di logicaed elementi di logica
Marco D. Santambrogio – [email protected]. aggiornata al 10 Ottobre 2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ObiettiviObiettivi
• 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 BooleCenni all’algebra di Boole
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
- 4 -
Algebra Booleana: Algebra Booleana: definizionedefinizione
• 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 Booleana a due valori:Algebra di CommutazioneAlgebra 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 Operazioni logiche fondamentalifondamentali
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 11 0
+ 0 10 0 11 1 1
* 0 10 0 01 0 1
Operazioni logiche Operazioni logiche fondamentalifondamentali
‘
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
8
Operatori logici di base e loro tabelle di Operatori logici di base e loro tabelle di veritàverità
A B A and B
0 0 00 1 01 0 01 1 1(prodotto logico)
A B A or B
0 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 Espressioni logiche (o Booleane)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 Tabella di verità di un’espressione logicalogica
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 eserciziDue esercizi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Pausa 5’Pausa 5’
12
George Boole
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Vero e falso in CVero 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
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ProblemaProblema
Si scriva un programma in C che, dato un numero, dica se questo è positivo o negativo
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
SoluzioneSoluzione
1. Si inserisca N2. N è maggiore di 0?
Vero: N è positivo Falso: N non è positivo
15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
16
In C: positivoIn 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 Problema: caratteri MaIuScOliMaIuScOli
Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo
17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaiuscoloMaiuscolo: esecuzione: esecuzione
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
HELP: errori sullHELP: errori sull’’inputinput
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problema: errori sullProblema: errori sull’’inputinput
• 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
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
PseudocodicePseudocodice
• 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
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Dati L’insieme dei caratteri ammissibili
{a, b, c, …, z}
• Il carattere inserito deve essere =>a <= z
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: Maiuscolo: solo ifsolo if
23
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• X e Y devono essere entrambe vere
24
X Y X and Y
0 0 00 1 01 0 01 1 1(prodotto logico)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: Maiuscolo: ANDAND
25
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaiuscoloMaiuscolo: : codice codice ottimizzatoottimizzato
26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaiuscoloMaiuscolo: esecuzione: esecuzione
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
28
• 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 A che cosa servono le espressioni logiche?logiche?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
29
• 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 a2b2c2d2` è vero (“teorema dei 4 quadrati”) Più esattamente andrebbe scritto:x a,b,c,d | x a2b2c2d2
• 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 Che cosa non si può modellare tramite espressioni logiche?tramite espressioni logiche?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
30
• 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 Tautologie e ContraddizioniContraddizioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
31
• 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 Equivalenza tra espressioniespressioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
32
Proprietà dell’algebra di Proprietà dell’algebra di BooleBoole
• 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: Algebra Booleana a due valori: AssiomiAssiomi
• 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’=0Val e
per
l a s
om
ma r
ispett
o a
l pr o
dot t
o c
om
e p
er
i l pro
dot t
o r
i spet t
o
all a
som
ma –
non e
s ist
e p
r ece
denza
fr a
le d
ue o
pera
z ioni , o
ccor r
e
s em
pr e
im
magi n
ar e
le p
ar e
nt e
s i “
sot t
i nte
se”
int o
rno a
ogni
appli c
az i
one d
i un’ o
pera
z ione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Algebra di Commutazione: Algebra di Commutazione: Proprietà 1Proprietà 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
- 35 -
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à 2Algebra di Commutazione: Proprietà 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
36
• 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àUso delle proprietà
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problemi di fine giornata…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”
37
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fonti per lo studio + Fonti per lo studio + CreditsCredits• 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