Elementi di informatica
Algebra di Boole
Algebra di Boole
I circuiti logici sono componenti hardware che manipolano
informazione binaria. I circuiti di base sono detti
PORTE LOGICHE (logical gate).
Allo scopo di descrivere i comportamenti dei circuiti digitali si
si
può usare una algebra (notazione matematica) che
specifica l’
l’operazione di ogni gate e permette di
analizzare e sintetizzare (disegnare) il circuito.
1
Algebra di Boole
L’algebra di Boole
(dal suo inventore George Boole,
Boole, matematico inglese (1815(18151864))
serve a descrivere le operazioni logiche.
Componenti dell’
dell’algebra di Boole:
„ Operatori booleani (not,
not, and, or)
„ Regole di trasformazione ed equivalenza tra operatori
booleani
Gli operandi booleani assumono solo due valori:
Vero/Falso
True/False
1/0
True/False
…
Sì/No
Operatore not
Tavola di verità
x
not x
0
1
1
0
2
Esempi di not
x:
not x :
"piove"
"non piove"
VERO
FALSO
Posso scrivere:
not x oppure
¬x oppure
x
Tavola di verità: and
x
0
0
1
1
y
0
0
0
1
x and y
0
0
0
1
Posso scrivere:
x and y
oppure x●y
oppure x * y
3
Esempi di and
x : "Benevento è capoluogo di provincia" VERO
y : "il NA gioca in serie A" FALSO
x and y :
"Benevento è capoluogo di provincia e il NA gioca in serie A"
FALSO
x : “la terra è un pianeta" VERO
y : “la luna è un satellite della terra" VERO
x and y :
“la terra è un pianeta e la luna è un satellite della terra"
VERO
Tavola di verità:or
x
0
0
1
1
y
0
0
0
1
x or y
0
1
1
1
4
Esempi di or
x : "Benevento è capoluogo di provincia"
y : "il NA gioca in serie A"
z : "Benevento è capitale d'Italia"
VERO
FALSO
FALSO
x or y :
"Benevento è capoluogo di provincia oppure il NA gioca in
serie A"
VERO
y or z :
"Il NA gioca in serie A oppure Benevento è capitale
d'Italia"
FALSO
Precedenza degli operatori logici
+ alta
Operatori
Operatore unario: not
Associatività
da destra a sinistra
Operatore binario: and
da sinistra a destra
Operatore binario: or
da sinistra a destra
+ bassa
5
Esempio
Se a è vero
b è falso
c è falso
a or b and c
?
a or (b and c)
vero
Tabella di verità di: a or (b and c)
6
Teoremi fondamentali
Elementi neutri
Idempotenza
Complemento
Principio di dualità
Il principio di dualità afferma che data
una eguaglianza se ne ottiene un’altra
sostituendo l’operatore AND con
l’operatore OR, 1 con 0 e viceversa.
PROPRIETÀ DELL'ASSORBIMENTO
a * ( a + b ) == a
a + ( a * b ) == a
Valgono le proprietà distributive
x and (y or z)=( x and y) or (x and z)
"mi piace" e ( "ho i soldi" oppure "la carta di credito")
=
(" mi piace" e "ho i soldi") oppure (" mi piace" e "ho la
carta di credito")
7
Regole di De Morgan
Circuiti logici
Un circuito logico è biunivocamente associato ad una
funzione logica
La struttura del circuito è biunivocamente associato alla
forma della funzione
Funzioni elementari: porte logiche
AND
OR
NOT
Fondamenti di
Informatica 1
Algebra di Boole
16
8
Esempio
y = (( a or b) and (not c)) or (c and d)
circuito
y = (( a or b) and (not c)) or (c and d)
9
Semplificazione
Il vantaggio dell’algebra di boole sta nel fatto di
permettere la semplificazione dei circuiti
10
Analisi di reti Combinatorie
Una rete combinatoria è una rete logica con n ingressi m
uscite.
Le uscite sono funzione degli ingressi, ma non del tempo:
cambiano gli ingressi ed immediatamente cambiano le
uscite (ovviamente è un modello).
In un circuito logico le porte logiche viste sono combinate
tra loro formando un circuito combinatorio.
Le variabili sono combinate tramite le operazioni logiche.
11
Forme canoniche
Abbiamo visto che è possibile esprimere le funzioni
booleane tramite la sua espressione analitica oppure tramite
la tabella di verità.
Le funzioni booleane possono essere scritte in vari modi ma vi
sono delle espressioni che vengono considerate standard.
Per far ciò definiamo i mintermini e i maxtermini
Forme canoniche
Considerando una riga della tabella di verità si definisce
mintermine il prodotto delle variabili booleane relative a
tal riga prese in forma diretta o complementata a seconda
se assumono valore 1 o 0.
Si definisce maxtermine la somma delle variabili booleane
prese in forma diretta o negata a seconda se assumono
valore 0 o 1.
Con n variabili abbiamo mintermini 2n e maxtermini
12
Forme Standard
SOMMA DI PRODOTTI
Possiamo ottenere la forma analitica di una funzione a partire
dalla tabella di verità nel seguente modo:
1. Si individuano le righe per cui F ha valore 1;
2. Si scrivono tanti prodotti quante sono le righe
individuate
3. Ogni prodotto è il mintermine relativo alla riga
4. Si sommano i prodotti.
Forme Standard
PRODOTTO DI SOMME
Possiamo ottenere la forma analitica di una funzione a partire
dalla tabella di verità nel seguente modo:
1. Si individuano le righe per cui F ha valore 0;
2. Si scrivono tante somme quante sono le righe
individuate
3. Ogni somma è il maxtermine relativo alla riga
4. Si effettua il prodotto delle somme.
13
Dalla tabella all’espressione
Conosciamo la tabella, ma
non sappiamo qual è
l’espressione
Ci basta trovare una delle
espressioni equivalenti che
hanno questa tabella della
verità
a
b
c
espressione
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
Dalla tabella all’espressione (1)
a
b
c
espressione
riga 0
0
0
0
0
riga 1
0
0
1
0
riga 2
0
1
0
0
riga 3
0
1
1
1
riga 4
1
0
0
0
riga 5
1
0
1
1
riga 6
1
1
0
1
riga 7
1
1
1
1
⇜
⇜
⇜
⇜
14
Dalla tabella all’espressione (2)
a
b
c
espressione
riga 0
0
0
0
0
riga 1
0
0
1
0
riga 2
0
1
0
0
riga 3
0
1
1
1
riga 4
1
0
0
0
riga 5
1
0
1
1
riga 6
1
1
0
1
riga 7
1
1
1
1
⇜
(a) × b × c
⇜
a × (b) × c
⇜
⇜
a × b × (c)
a×b×c
Dalla tabella all’espressione (3)
a
b
c
espressione
riga 0
0
0
0
0
riga 1
0
0
1
0
riga 2
0
1
0
0
riga 3
0
1
1
1
riga 4
1
0
0
0
riga 5
1
0
1
riga 6
1
1
riga 7
1
1
⇜
(a) × b × c
1
⇜
a × (b) × c
0
1
⇜
a × b × (c)
1
1
⇜
a×b×c
expr = m1 + m2 + m3 + m4
expr = ((a) × b × c) + (a × (b) × c) + (a × b × (c)) + (a × b × c)
15
Verifica
a
b
c
m1 =
(a) × b × c
m2 =
a × (b) × c
m3 =
a × b × (c)
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
m4 =
m1 + m2 +
a × b × c m3 + m4
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
Un’altra espressione
equivalente
a b c a × b a × c b × c (a × b) + (a × c) + (b × c)
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
16
Forme Standard
Il vantaggio delle forme standard è quello di permettere
la realizzazione delle funzioni con circuiti a due livelli:
AND-OR
oppure
OR-AND
17