Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoTito Novelli Modificato 9 anni fa
1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 26 Marzo 2015
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche… 2
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche… Guardate il calendario La lezione di oggi iniziava alle 13! 3
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche… Guardate il calendario La lezione di oggi iniziava alle 13! 4
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche… Guardate il calendario La lezione di oggi iniziava alle 13! Non chiedetemi dove trovare il mio materiale su BeeP 5
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche… Guardate il calendario La lezione di oggi iniziava alle 13! Non chiedetemi dove trovare il mio materiale su BeeP 6
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Algebra di Boole Algebra di boole a due valori: algebra di commutazione Operazioni logiche Espressioni logiche Assiomi e proprietà dell’algebra di commutazione 7
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 8 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
9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 9 - 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
10
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] - 10 -
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11 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
12
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 ‘
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 13 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
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 14 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)
15
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
16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 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
17
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 17
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEProblema Si scriva un programma in C che, dato un numero, dica se questo è positivo o negativo 18
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONESoluzione 1. Si inserisca N 2. N è maggiore di 0? Vero: N è positivo Falso: N non è positivo 19
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 20 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
21
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 21
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 22
23
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE HELP: errori sull’input 23
24
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 24
25
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 25
26
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 26
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: solo if 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 41 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?
42
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 42 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?
43
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 43 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
44
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 44 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
45
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 45 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
46
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.
47
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
48
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE - 48 - 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
49
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 49 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à
50
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” 50
51
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.