Upload
donhan
View
216
Download
0
Embed Size (px)
Citation preview
Codifica binaria:- valori logici e algebra di Boole -
Ingegneria Meccanica e dei Materiali
Università degli Studi di Brescia
Prof. Massimiliano Giacomin
Tipologie di codici
Informatica e Programmazione – Università di Brescia 2Docente: M. Giacomin
• Per la rappresentazione di:
– caratteri alfabetici e testi
– valori logici
– numeri naturali
– numeri interi relativi [val assoluto e segno, complemento a due]
– numeri “reali” [virgola fissa e virgola mobile]
– suoni, immagini e sequenze video
• Codici per la rilevazione e correzione di errori
• Codici di compressione (senza | con perdita)
Una riflessione sull’algebra “numerica”- Costanti (valori)- Variabili- Operatori
Elementi di Informatica e Programmazione – Università di Brescia 5Docente: M. Giacomin
ESPRESSIONE-(x + y)
• Le variabili denotano (contengono) valori numerici (es. interi)• Operatori binari (es. +) e unari (es. –)• Valore dell’espressione determinabile da valori delle variabili,
mediante applicazione operatori• Equivalenza di espressioni:
-(x + y) = -(x) - y
uguale valore per qualunque coppia di valori assunti da x, y
OBIETTIVO: introdurre un formalismo per esprimere FATTI
Elementi di Informatica e Programmazione – Università di Brescia 6Docente: M. Giacomin
ESEMPIO:- r1 contiene l’età di un utente acquisita da tastiera- si vuole fare in modo che r2 indichi se è maggiorenne
SE(r1>=18)
r2←”VERO”
SE(r1<18)
r2←”FALSO”
I fatti possono essere “veri” o “falsi”
Dato un fatto, dobbiamo codificare i suoi possibili valori logici.
2 “oggetti” da rappresentare
V (vero) F (falso)
E’ quindi sufficiente 1 bit, ad esempio con la codifica:
- falso: 0
- vero: 1
Elementi di Informatica e Programmazione – Università di Brescia 7Docente: M. Giacomin
Valore logico: esprime il “valore di verità” di un determinato fatto
ES: Il voto del compito di informatica è sufficiente (F1)
F1 è vero oppure falso, non entrambi
Valori logici e codifica binaria
• Variabile booleana: variabile binaria che può assumere uno dei due valori logici denotati con 0 e 1 (oppure Falso e Vero)
Variabile booleana
• Così come si usano variabili “numeriche” per memorizzare valorinumerici (es. temperatura_aria) in modo simile si possono usarevariabili booleane per memorizzare il valore di verità di un fatto
Esempio: uso una variabile F1 per il fatto che il compito sia suff. se (voto>=18) allora F1 = V
Definizione
DOMINIO: {0, 1} (oppure: {F, V})
Elementi di Informatica e Programmazione – Università di Brescia 8Docente: M. Giacomin
Espressione booleana (informalmente)
Elementi di Informatica e Programmazione – Università di Brescia 9Docente: M. Giacomin
• I fatti possono essere composti a partire da altri fatti mediantecongiunzione, disgiunzione, negazione, …
“ho_l’automobile e ho_la_benzina”
“ho_l’automobile o ho_la_bicicletta”
“non ho_l’automobile”
• Il loro “valore di verità” dipende da quello dei fatti elementari
ES: se ho_l’automobile è VERO, ho_la_benzina è FALSO,“ho_l’automobile e ho_la_benzina” è FALSO
• Definizione degli operatori booleani…
Operatori booleani
• Così come per le variabili numeriche esistono operatori aritmetici(es: +, -, *, …), allo stesso modo per le variabili booleane esistono operatori booleani
OPERATORI BINARI (due argomenti)
V F
V F
op V F
OPERATORI UNARI (un argomento)
op V FV F
Elementi di Informatica e Programmazione – Università di Brescia 10Docente: M. Giacomin
NOT Negazione Logica not(x), x, ~xAND Prodotto Logico x and y, x • y, xyOR Somma Logica x or y, x + y
Operatori booleani più importanti
x1 x0 x1 • x00 0 0
0 1 0
1 0 0
1 1 1
x1 x0 x1 + x00 0 0
0 1 1
1 0 1
1 1 1
AND OR
Tabelle di verità (NB: 0 equivale a F, 1 equivale a T)
x x
0 1
1 0
NOT
Elementi di Informatica e Programmazione – Università di Brescia 11Docente: M. Giacomin
1. Le costanti 0 e 1 e le variabili (simboli a cui possono
essere associati i valori 0 e 1) sono formule booleane
2. Se E, E1 ed E2 sono formule booleane lo sono anche
(E1+E2), (E1·E2) e (E)3. Non esistono altre formule oltre a quelle che possono
essere generate da un numero finito di applicazioni delle
regole 1 e 2
Formule (o espressioni) booleane (formalmente)Esempi:
x + y
Definizione:
((x+y)·z)
Elementi di Informatica e Programmazione – Università di Brescia 12Docente: M. Giacomin
Riassumendo…
• Per elaborare numeri (es: gli interi relativi)- Costanti (valori)- Variabili- Operatori
•Anche in questo contesto abbiamo gli stessi concetti- FALSO e VERO sono i valori elaborati- ho_l’automobile, … sono variabili che assumono questi valori- (Non ho_l’automobile) o (Non ho_la_bicicletta)
sono ESPRESSIONI costruiti con gli operatori non, o, e
Elementi di Informatica e Programmazione – Università di Brescia 13Docente: M. Giacomin
ESPRESSIONI
Tabelle di verità di formule booleane
Valore di verità per ogni combinazione di valori delle variabili
ESEMPIO
auto·bici
auto bici auto·bici 0 0 1 0 1 1 1 0 1 1 1 0
Elementi di Informatica e Programmazione – Università di Brescia 14Docente: M. Giacomin
Elementi di Informatica e Programmazione – Università di Brescia 15Docente: M. Giacomin
Equivalenza di espressioni booleane (1)
• Espressioni diverse possono indicare il medesimo fatto
“Non (ho_l’automobile e ho_la_bicicletta)”
“(Non ho_l’automobile) o (Non ho_la_bicicletta)”
• Come si può verificare formalmente?Cfr. il concetto di espressioni equivalenti nel contesto “numerico”!
Equivalenza di espressioni booleane (2)
Formule equivalenti: per ogni combinazione di valori delle variabilile formule restituiscono lo stesso valore
ESEMPIO 1
auto·bici = auto+bici
auto bici auto·bici auto·bici auto bici auto+bici 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0
Un modo per verificare l’equivalenza: tabella di verità
Elementi di Informatica e Programmazione – Università di Brescia 16Docente: M. Giacomin
x y x+y x(x+y) 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1
Assorbimento: x(x+y) = x
ESEMPIO 2
Elementi di Informatica e Programmazione – Università di Brescia 17Docente: M. Giacomin
x y x+y x(x+y) F F F F F V V F V F V V V V V V
Assorbimento: x(x +y) = x
NB: potevamo usare anche una diversa simbologia per i valori…
Elementi di Informatica e Programmazione – Università di Brescia 18Docente: M. Giacomin
x y x OR y x AND (x OR y) F F F F F V V F V F V V V V V V
Assorbimento: x AND (x OR y) = x
…o per gli operatori
Elementi di Informatica e Programmazione – Università di Brescia 19Docente: M. Giacomin
x1 + x2 + x2x3 + x2x3 = x1 + x2 + x3
x3 x2 x1 x2 x2x3 x2x3 x1+x2+x2x3+x2x3 x1+x2+x3 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1
ESEMPIO 3
Elementi di Informatica e Programmazione – Università di Brescia 20Docente: M. Giacomin
Il concetto di algebra
• Per elaborare numeri (es: i numeri relativi Z) si utilizzano
operatori che elaborano i valori appartenenti al dominio considerato •L’impianto formale “sottostante” è il concetto di algebra
Elementi di Informatica e Programmazione – Università di Brescia 21Docente: M. Giacomin
- insieme di supporto (i valori utilizzati) - insieme degli operatori fondamentali
(devono essere chiusi rispetto all’insieme di supporto)Es: (Z, {+, -}) è un’algebra, (N, {+, -}) non lo è
Algebra di Boole
•Una specifica algebra che include:
– un insieme di supporto A (l’insieme {0,1} o {V,F})
– due operatori binari: AND (·) e OR (+)
– un operatore unario: NOT (¯)
[operatori definiti da un insieme di assiomi]•E’ lo strumento matematico su cui si fonda il funzionamento dei circuiti digitali
Elementi di Informatica e Programmazione – Università di Brescia 22Docente: M. Giacomin
Forma AND Forma OR
Commutatività AB = BA A+B = B+A
Distributività A+BC=(A+B)(A+C) A(B+C)=AB+AC
Identità 1A = A 0+A = A
Inverso AĀ = 0 A+Ā = 1
Assiomi dell’algebra di Boole
Elementi di Informatica e Programmazione – Università di Brescia 23Docente: M. Giacomin
Forma AND Forma OR
Elemento nullo 0A = 0 1+A = 1Idempotenza AA = A A+A = AAssorbimento A(A+B) = A A+AB=AAssociatività (AB)C=A(BC) (A+B)+C=A+(B+C)De Morgan AB = A+B A+B = A B
Proprietà dell’algebra di Boole (deducibili dagli assiomi)
Altre proprietà della negazione logica
• 1 = 1• 0 = 0
Elementi di Informatica e Programmazione – Università di Brescia 24Docente: M. Giacomin
Equivalenza tra formule booleane via algebra di Boole
auto·bici = auto+bici direttamente dalla proprietà di De Morgan
• ESEMPIO 1 precedente
• ESEMPIO 3 precedente
x1 + x2 + x2x3 + x2x3 = x1 + x2 + x3(x2+x2) = x1 + x2 + x3
Elementi di Informatica e Programmazione – Università di Brescia 25Docente: M. Giacomin
• ESEMPIO 2 precedente
x(x+y) = x direttamente dalla proprietà di assorbimento
x1x2 + x1x2x3 + x1x2 e x1x2
Elementi di Informatica e Programmazione – Università di Brescia 26Docente: M. Giacomin
ESERCIZIO 0
Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti:
x1x2 + x1x2x3 + x1x2 = x1x2 + x1x2x3 = x1x2 (1 +x3) = x1x2
Elementi di Informatica e Programmazione – Università di Brescia 27Docente: M. Giacomin
ESERCIZIO 0
Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti:
Soluzione 1
Si costruiscono le tabelle di verità e si verifica che sono equivalenti(serve la tabella di verità completa)
Soluzione 2
Elementi di Informatica e Programmazione – Università di Brescia 28Docente: M. Giacomin
ESERCIZIO 1
Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti (ovvero, identificano la stessa funzione delle variabili booleane x, y e z):
xy + xy + x y e x + y
Elementi di Informatica e Programmazione – Università di Brescia 29Docente: M. Giacomin
Soluzione 1
Si costruiscono le tabelle di verità e si verifica che sono equivalenti(serve la tabella di verità completa)
Soluzione 2
xy + xy + x y =
xy + xy + x y + x y =
(x+x) y + x(y+y) =
x + y
ESERCIZIO 2
Elementi di Informatica e Programmazione – Università di Brescia 30Docente: M. Giacomin
Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti (ovvero, identificano la stessa funzione delle variabili booleane x, y e z):
xy + x+z e x+y + x z [5]
Elementi di Informatica e Programmazione – Università di Brescia 31Docente: M. Giacomin
Soluzione
Si costruiscono le tabelle di verità (anche parziali) e si riportano uno
o più casi (non occorre tutti) in cui non danno lo stesso valore,
quindi non sono equivalenti.
Volendo, per trovare un caso ci si può aiutare con l’algebra booleana
notando che i due termini a destra sono equivalenti…
(ma vedi soluzione errata)
P.es. x=0, y=1, z=1 (la prima è 1, la seconda 0)
Elementi di Informatica e Programmazione – Università di Brescia 32Docente: M. Giacomin
Soluzione ERRATA
xy + x+z e x+y + x z
e quindi, verificando che i due termini xy e x+y non sonoequivalenti, concludere che le formule non lo sono.
NB: è vero che le formule non sono equivalenti, ma questometodo non lo dimostra perché in altri casi non funziona
(cfr la regola “i gol in trasferta valgono doppio” nelle coppe)
Elementi di Informatica e Programmazione – Università di Brescia 33Docente: M. Giacomin
NOTA IMPORTANTE
Poichè il dominio non è illimitato, per dimostrare che due formule
NON sono equivalenti non si possono trascurare termini equivalenti!
Esempio
?stabilire se x+1 è equivalente a x+1
� Ovviamente sì (valgono entrambe 1)
x Ma ragionando come in algebra numerica si direbbe che
sono equivalenti sse x=x, cosa non vera!
Elementi di Informatica e Programmazione – Università di Brescia 34Docente: M. Giacomin
Esempio precedente leggermente modificato….
xy + z+z e x+y + z z
xy + z+z e x+y + z z
Sono equivalenti, perché danno 1 in tutti i casi (il II termine è 1),
invece procedendo come prima:
e quindi, verificando che i due termini xy e x+y non sono
equivalenti, si concluderebbe che le formule non lo sono.
VADEMECUM PER TEMI D’ESAME
Elementi di Informatica e Programmazione – Università di Brescia 35Docente: M. Giacomin
A) VERIFICARE CHE DUE FORMULE SONO EQUIVALENTI:
bisogna dimostrare che danno lo stesso valore in tutti i casi
- via tabella di verità, oppure
- dimostrando con proprietà algebriche che sono equivalenti a
due formule sintatticamente uguali
L’algebra booleana consente praticamente tutte le operazioni cui
si è abituati con l’algebra dei numeri, p.es.
- raccogliere termini comuni
- 0*x=0, 1*x=xed anche molte altre (es. prop. De Morgan, 1+x=1, ecc.)
Elementi di Informatica e Programmazione – Università di Brescia 36Docente: M. Giacomin
B) DIMOSTRARE CHE DUE FORMULE NON SONO
EQUIVALENTI:
bisogna e basta trovare un caso in cui danno risultato diverso
- Errore frequente: semplificare un termine e dimostrare che
“i termini rimasti” sono equivalenti. Questo NON dimostra nulla
NB: trovare la risposta esatta con un procedimento sbagliato
è valutato come se la risposta fosse sbagliata!
Linguaggio macchina (cenno)
• Il verificarsi (o meno) di determinate condizioni (es. ultima operazionearitmetica ha dato risultato nullo) sono segnalate ponendo a 1/0 unospecifico bit di un particolare registro
• Sono tipicamente disponibili istruzioni per la manipolazione di bitcorrispondenti agli operatori booleani
Elementi di Informatica e Programmazione – Università di Brescia 38Docente: M. Giacomin
Esempio
and $r1, $r2, $r3 # $r1 = $r2 AND $r3 (bit a bit)
or $r1, $r2, $r3 # $r1 = $r2 OR $r3 (bit a bit)