Algebra di Boole, elementi di logica e Mappe di Karnaugh

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Algebra di Boole, elementi di
logica e Mappe di Karnaugh
Marco D. Santambrogio – [email protected]
Ver.aggiornataal18Marzo2016
Progetti
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Meeting
§  Quando: 22 Marzo @2pm
§  Dove: Sala Conferenze @DEIB
2
Progetti
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Meeting
§  Quando: 22 Marzo @2pm
§  Dove: Sala Conferenze @DEIB
•  Problemi email
§  [email protected]
§  [email protected]
§  [email protected]
§  [email protected]
3
Progetti
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Meeting
§  Quando: 22 Marzo @2pm
§  Dove: Sala Conferenze @DEIB
•  Problemi email
§  [email protected]
§  [email protected]
§  [email protected]
§  [email protected]
4
Problema: caratteri MaIuScOli
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Si scriva un programma che, preso un
carattere minuscolo da tastiera, ne
riporta a video l’equivalente maiuscolo
5
HELP: errori sull’input
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6
Problema: errori sull’input
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
7
Pseudocodice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
8
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Dati
§  L’insieme dei caratteri ammissibili
{a, b, c, …, z}
•  Il carattere inserito deve essere
§  =>a
§  <= z
9
Obiettivi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Algebra di Boole
§  Algebra di boole a due valori: algebra
di commutazione
§  Operazioni logiche
§  Espressioni logiche
•  Funzioni booleane
•  Forme canoniche
•  Karnaugh e Mappe di Karnaugh
10
Cenni all’algebra di Boole
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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)
11
Algebra Booleana: definizione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
- 12 -
Algebra Booleana a due valori:
Algebra di Commutazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
“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]
- 13 -
Operazioni logiche fondamentali
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
14
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
+ 0 1
0 0 1
1 1 1
* 0 1
0 0 0
1 0 1
•  Mentre l’operazione a un solo elemento (unary operation) detta
complementazione o negazione (NOT) è definita come
‘
0 1
1 0
§  Nota: il simbolo associato al NOT è spesso indicato come ’(esempio
x’), !(esempio !x) o sopra segnando la variabile.
Operatori logici di base e loro tabelle di verità
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
A B
A or B
0 0
0
0 1
1
1 0
1
1  1
1
(somma logica)
A B
A and B
0 0
0
0 1
0
1 0
0
1  1
1
(prodotto logico)
A
not A
0
1
1
0
(negazione)
Le tabelle elencano tutte le possibili combinazioni in ingresso
e il risultato associato a ciascuna combinazione
16
Espressioni logiche (o Booleane)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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)
17
Tabella di verità di un’espressione logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
A and B or not C
ABC
X = A and B
Y = not C
X or Y
000
0 and 0 = 0
not 0 = 1
0
or
1
=1
001
0 and 0 = 0
not 1 = 0
0
or
0
=0
010
0 and 1 = 0
not 0 = 1
0
or
1
=1
011
0 and 1 = 0
not 1 = 0
0
or
0
=0
100
1 and 0 = 0
not 0 = 1
0
or
1
=1
101
1 and 0 = 0
not 1 = 0
0
or
0
=0
110
1 and 1 = 1
not 0 = 1
1
or
1
=1
111
1 and 1 = 1
not 1 = 0
1
or
0
=1
Due esercizi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
A
0
0
1
1
B
0
1
0
1
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
NOT ((A OR B) AND (NOT A))
1
0 0 0 0
1 0
0
0 1 1 1
1 0
1
1 1 0 0
0 1
1
1 1 1 0
0 1
C
0
1
0
1
0
1
0
1
( B OR NOT C) AND (A OR NOT C)
0 1
1 0
1
0 1
1 0
0 0
0 1
0
0 0
0 1
1 1
1 0
1
0 1
1 0
1 1
0 1
0
0 0
0 1
0 1
1 0
1
1 1
1 0
0 0
0 1
0
1 1
0 1
1 1
1 0
1
1 1
1 0
1 1
0 1
1
1 1
0 1
19
A che cosa servono le espressioni logiche?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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)
20
Che cosa non si può modellare tramite
espressioni logiche?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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 | x2 = -1
è falso
§  Domande universali: “ogni numero naturale è la somma
di quattro quadrati di numeri naturali ?” (si è dimostrato
di sì)
∀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)
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
22
Problema: caratteri MaIuScOli
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Si scriva un programma che, preso un
carattere minuscolo da tastiera, ne
riporta a video l’equivalente maiuscolo
23
Pseudocodice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Dati
§  L’insieme dei caratteri ammissibili
{a, b, c, …, z}
1.  Richiedere linserimento di un
carattere
2.  Se carattere inserito corretto
3.  Allora stampa a video carattere-32
4.  Altrimenti stampa a video un
messaggio di errore
24
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Dati
§  L’insieme dei caratteri ammissibili
{a, b, c, …, z}
•  Il carattere inserito deve essere
§  =>a
§  <= z
25
Maiuscolo: solo if
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
26
Maiuscolo: esecuzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
27
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il carattere inserito deve essere
§  X: =>a
§  Y: <= z
•  Come vogliamo che si comporti il
nostro modello rispetto a X e Y?
28
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il carattere inserito deve essere
§  X: =>a
§  Y: <= z
•  Come vogliamo che si comporti il
nostro modello rispetto a X e Y?
X
0
0
1
1 
Y
0
1
0
1
USCITA
0
0
0
1
34
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il carattere inserito deve essere
§  X: =>a
§  Y: <= z
•  Come vogliamo che si comporti il
nostro modello rispetto a X e Y?
X
0
0
1
1 
Y
0
1
0
1
USCITA
0
0
0
1
a
d
r
?
co
i
a
r
s
i
o
V
c
e
h
c
l
a
qu
35
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il carattere inserito deve essere
§  X: =>a
§  Y: <= z
•  Come vogliamo che si comporti il
nostro modello rispetto a X e Y?
a
X Y
USCITA
d
r
o
?
c
i
a
r
s
i
o
0 0
0
V
c
e
h
c
l
a
0 1
0
u
q
!
!
!
1 0
0
D
N
A
1  1
1
36
Condizione da verificare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il carattere inserito deve essere
§  X: =>a
§  Y: <= z
•  Come vogliamo che si comporti il
nostro modello rispetto a X e Y?
X Y
X AND Y
a
d
r
o
?
c
0 0
0
i
a
r
s
i
o
V
c
e
0 1
0
h
c
l
a
u
q
1 0
0
!
!
!
D
1  1
1
AN
(prodotto logico)
37
Maiuscolo: AND
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
38
Maiuscolo: codice ottimizzato
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
39
Maiuscolo: esecuzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
40
Qualche cosa di più complesso…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si accettano soltanto numeri dispari,
primi, oppure maggiori di tre
§  a: dispari
§  b: primi
§  c: maggiori di 3
41
Qualche cosa di più complesso…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si accettano soltanto numeri dispari,
primi, oppure maggiori di tre
§  a: dispari
§  b: primi
§  c: maggiori di 3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
42
Qualche cosa di più complesso…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si accettano soltanto numeri dispari,
primi, oppure maggiori di tre
§  a: dispari
§  b: primi
§  c: maggiori di 3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
43
Qualche cosa di più complesso…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si accettano soltanto numeri dispari,
primi, oppure maggiori di tre
§  a: dispari
§  b: primi
§  c: maggiori di 3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
44
Per farlo…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Qualche definizione
45
Letterale
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Un letterale è una coppia
(Variabile,Valore)
§  (x,1) è indicato come x (variabile in
forma naturale);
§  (x,0) rappresenta la variabile x in forma
negata (complementata) ed è indicato
come x’ (oppure !x).
46
Termine prodotto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Un termine prodotto è il prodotto logico o
congiunzione (AND) di più letterali.
•  Un termine prodotto in cui compaiono letterali
corrispondenti a tutte le variabili della funzione e
tale per cui la configurazione di valori delle variabili
definite dai letterali genera un valore 1 della
funzione stessa nella tabella delle verità, costituisce
un mintermine della funzione
§  Ad esempio, a’b’c e ab’c rappresentano due
mintermini della funzione di cui si è prima data la
tabella delle verità
•  Un termine prodotto in cui compaiono solo alcuni dei
letterali e che corrisponda a un insieme di 1 della
funzione è denominato implicante.
47
Termine somma (duale)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Un termine somma è la somma logica o disgiunzione
(OR) di più letterali.
•  Un termine somma in cui compaiono letterali
corrispondenti a tutte le variabili della funzione e
tale per cui la configurazione di valori delle variabili
definite dai letterali genera un valore 0 della
funzione stessa nella tabella delle verità, costituisce
un maxtermine della funzione
§  Ad esempio, a+b+c e a+b’+c rappresentano due
maxtermini della funzione data
•  Un termine somma in cui compaiono solo alcuni dei
letterali e che corrisponda a un insieme di 0 della
funzione è denominato implicato.
48
Funzioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Una funzione booleana di n variabili
può essere espressa attraverso una
espressione booleana di n variabili
costituita da letterali, costanti,
operatori AND, OR e NOT.
49
Funzioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Una funzione booleana di n variabili
può essere espressa attraverso una
espressione booleana di n variabili
costituita da letterali, costanti,
operatori AND, OR e NOT.
•  Esempio di espressione booleana:
f(a,b,c)=ab+a’c’
50
Nota
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il numero di espressioni booleane di
n variabili definite su una algebra
booleana B è infinito.
§  La relazione tra espressioni booleane e
funzioni booleane non è 1 a 1
51
Nota
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il numero di espressioni booleane di
n variabili definite su una algebra
booleana B è infinito.
§  La relazione tra espressioni booleane e
funzioni booleane non è 1 a 1
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
0
0
0
1
1
1
1
52
Nota
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il numero di espressioni booleane di
n variabili definite su una algebra
booleana B è infinito.
§  La relazione tra espressioni booleane e
funzioni booleane non è 1 a 1
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
0
0
0
1
1
1
1
f(a,b,c)= (a’*b’)’*a
f(a,b,c)= ...
f(a,b,c)= a
53
Ma quindi…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
54
Ma quindi…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si accettano soltanto numeri dispari,
primi, oppure maggiori di tre
§  a: dispari
§  b: primi
§  c: maggiori di 3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
55
Ma quindi…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Data una funzione booleana
§  ad esempio, mediante la tabella delle verità
§  il problema è identificare almeno una
espressione booleana ad essa
a b c
f(a,b,c)
corrispondente
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
1
0
1
0
1
1
1
56
Ma quindi… diventa...
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Data una funzione booleana
§  ad esempio, mediante la tabella delle verità
§  il problema è identificare almeno una
espressione booleana ad essa
a b c
f(a,b,c)
corrispondente
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
1
0
1
0
1
1
1
57
Come calcolare l’espressione booleana
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Data una funzione booleana, la
soluzione iniziale al problema di
determinare una sua espressione
consiste nel ricorso alle forme
canoniche
•  Le forme canoniche sono:
§  la forma somma di prodotti (SoP)
§  quella prodotto di somme (PoS)
58
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Mettendo in OR i mintermini della
funzione si ottiene l’espressione
booleana della funzione stessa (SoP)
a
0
0
1
1
b
0
1
0
1
f(a,b)
0
1
0
1
=
f(a,b)
=
59
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Mettendo in OR i mintermini della
funzione si ottiene l’espressione
booleana della funzione stessa (SoP)
a
0
0
1
1
b
0
1
0
1
f(a,b)
0
1
0
1
=
f(a,b)
=
a
0
0
1
1
b
0
1
0
1
f1(a,b)
0
1
0
0
+
a
0
0
1
1
b
0
1
0
1
f2(a,b)
0
0
0
1
60
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Mettendo in OR i mintermini della
funzione si ottiene l’espressione
booleana della funzione stessa (SoP)
a
0
0
1
1
b
0
1
0
1
f(a,b)
0
1
0
1
=
f(a,b)
=
a
0
0
1
1
b
0
1
0
1
f1(a,b)
0
1
0
0
a’b
+
+
a
0
0
1
1
b
0
1
0
1
f2(a,b)
0
0
0
1
ab
61
Seconda forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Mettendo in AND i maxtermini della
funzione si ottiene l’espressione
booleana della funzione stessa (PoS)
a
0
0
1
1
b
0
1
0
1
f(a,b)
0
1
0
1
f(a,b)
=
=
62
Seconda forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Mettendo in AND i maxtermini della
funzione si ottiene l’espressione
booleana della funzione stessa (PoS)
a
0
0
1
1
b
0
1
0
1
f(a,b)
0
1
0
1
f(a,b)
=
a
0
0
1
1
b
0
1
0
1
f1(a,b)
0
1
1
1
*
a
0
0
1
1
b
0
1
0
1
f2(a,b)
1
1
0
1
=
63
Seconda forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Mettendo in AND i maxtermini della
funzione si ottiene l’espressione
booleana della funzione stessa (PoS)
a
0
0
1
1
b
0
1
0
1
f(a,b)
0
1
0
1
f(a,b)
=
=
a
0
0
1
1
b
0
1
0
1
f1(a,b)
0
1
1
1
a+b
*
*
a
0
0
1
1
b
0
1
0
1
f2(a,b)
1
1
0
1
a’+b
64
Il problema di partenza
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si accettano soltanto numeri dispari,
primi, oppure maggiori di tre
§  a: dispari
§  b: primi
§  c: maggiori di 3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
65
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
!a!bc
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
66
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
!a!bc + !abc
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
67
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
!a!bc + !abc + a!bc
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
68
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
!a!bc + !abc + a!bc + ab!c
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
69
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
!a!bc + !abc + a!bc + ab!c + abc
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
70
Prima forma canonica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
!a!bc + !abc + a!bc + ab!c + abc
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
71
Il problema
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Ridurre la complessità di una (o più)
funzione(i) booleana(e) espressa(e) in
forma di Prodotto di Somme o di
Somma di Prodotti (SOP).
•  Si considerano le forme canoniche
come soluzioni iniziali
72
Il problema
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Ridurre la complessità di una (o più)
funzione(i) booleana(e) espressa(e) in
forma di Prodotto di Somme o di
Somma di Prodotti (SOP).
•  Si considerano le forme canoniche
come soluzioni iniziali
•  Obiettivi
§  Riduzione del numero dei termini
prodotto (principale)
§  Riduzione del numero di letterali
(secondario)
73
Karnaugh
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si propone di identificare forme minime a due livelli
applicando la regola di riduzione a Z + a' Z = (a
+a') Z = Z con Z termine prodotto di n-1
variabili.
§  Esempio: abcd’ + ab’cd’ = acd’
- 74 -
Karnaugh
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si propone di identificare forme minime a due livelli
applicando la regola di riduzione a Z + a' Z = (a
+a') Z = Z con Z termine prodotto di n-1
variabili.
§  Esempio: abcd’ + ab’cd’ = acd’
•  La riduzione può essere applicata iterativamente
§  Esempio: abc’d’+abc’d+abcd’+abcd= abc’(d’+d)
+abc(d’+d) = abc’+abc = ab(c’+c) = ab
- 75 -
Karnaugh
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si propone di identificare forme minime a due livelli
applicando la regola di riduzione a Z + a' Z = (a
+a') Z = Z con Z termine prodotto di n-1
variabili.
§  Esempio: abcd’ + ab’cd’ = acd’
•  La riduzione può essere applicata iterativamente
§  Esempio: abc’d’+abc’d+abcd’+abcd= abc’(d’+d)
+abc(d’+d) = abc’+abc = ab(c’+c) = ab
Nota: si osservi che la applicazione della relazione
identificata è applicata ad un numero di termini pari a
2n quindi 2, 4, 8, ...
- 76 -
Karnaugh sul nostro esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f(a,b,c)=
!a!bc + !abc + a!bc + ab!c + abc
77
Karnaugh sul nostro esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f(a,b,c)=
!a!bc + !abc + a!bc + ab!c + abc
!ac (!b + b) + a!bc + ab!c + abc
78
Karnaugh sul nostro esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f(a,b,c)=
!a!bc + !abc + a!bc + ab!c + abc
!ac (!b + b) + a!bc + ab!c + abc
!ac + a!bc + ab!c + abc
79
Karnaugh sul nostro esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f(a,b,c)=
!a!bc + !abc + a!bc + ab!c + abc
!ac (!b + b) + a!bc + ab!c + abc
!ac + a!bc + ab!c + abc
!ac + a!bc + ab (!c + c)
80
Karnaugh sul nostro esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f(a,b,c)=
!a!bc + !abc + a!bc + ab!c + abc
!ac (!b + b) + a!bc + ab!c + abc
!ac + a!bc + ab!c + abc
!ac + a!bc + ab (!c + c)
!ac + a!bc + ab
81
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
82
Mappe di Karnaugh
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Una mappa di Karnaugh è uno schema deducibile
dalla rappresentazione geometrica delle
configurazioni binarie.
•  Definizione utili:
§  Distanza di Hamming: numero di bit che cambia nel
passare da una configurazione binaria ad un’altra
•  Esempio: la distanza di Hamming tra le configurazioni 01001
e 10101 è 3 poiché cambiano 3 bit.
•  L’applicazione della regola di riduzione consiste
nell’identificare le configurazioni binarie associate ai
termini prodotto che sono a distanza di Hamming
unitaria.
§  Esempio: i termini prodotto abcd’ e ab’cd’
corrispondono a 1110 e 1010 e sono a distanza di
Hamming pari ad 1.
- 83 -
Funzione in uno spazio n-D
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Una funzione booleana a n variabili f: {0,1}n → {0,1}
può essere rappresenta in modo comodo utilizzando una
tabella della funzione o tabella della verità.
•  In modo assolutamente equivalente una funzione a n
variabili può essere associata ad una rappresentazione
cartesiana in uno spazio a n dimensioni
f(a,b,c)=ONset(001,011,101,110,111)
ONset=
insieme
di 1 della funzione
- 84 -
Punti a distanza di Hamming 1 in n-D
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Nella rappresentazione cartesiana di una funzione in uno
spazio a n dimensioni, collegando i vertici le cui
configurazioni sono a distanza di Hamming unitaria si
ottiene un n-cubo.
§  Spazio a 1 dimensione (1 variabile)
•  È una linea, e l’1-cubo è un segmento: i due vertici sono
associati alle configurazioni 0 e 1
0
1
§  Spazio a 2 dimensioni (2 variabili):
•  È il piano, il 2-cubo è un quadrato che si ottiene dall’1-cubo per
proiezione. Si premette 0 alle configurazioni dei vertici originali,
1 a quelle dei vertici proiettati
00
01
10
11
- 85 -
Punti a distanza di Hamming 1 in n-D
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
§  Spazio a 3 dimensioni (3 variabili)
•  Il 3-cubo è un solido, che si ottiene dal 2cubo per proiezione, premettendo 0 alle
configurazioni dei vertici originali, 1 a
quelle dei vertici proiettati
000
100
001
101
010
110
011
111
- 86 -
Funzione in uno spazio n-D
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f(a,b,c)=ONset(001,011,101,110,111)
ONset=
insieme di 1 della funzione
- 87 -
Funzione in uno spazio n-D
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f(a,b,c)=ONset(001,011,101,110,111)
ONset=
insieme di 1 della funzione
000
001
100
c
101
dove
a
010
110
011
b
1
0
111
- 88 -
Sviluppo nel piano dei cubi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Di fatto, la rappresentazione in uno spazio a n
dimensioni non è maneggevole
§  Quindi, si passa allo sviluppo nel piano dei cubi
§  Lo sviluppo nel piano di un 3-cubo implica il taglio del
cubo
§  Il taglio deve mantenere intatta, concettualmente, la
adiacenza fra vertici. Si presti molta attenzione
all’ordinamento delle coordinate
•  Ordinamento delle coordinate mantiene le distanze di
Hamming e non coincide con la numerazione consecutiva
- 89 -
Sviluppo nel piano dei cubi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Di fatto, la rappresentazione in uno spazio a n
dimensioni non è maneggevole
§  Quindi, si passa allo sviluppo nel piano dei cubi
§  Lo sviluppo nel piano di un 3-cubo implica il taglio del
cubo
§  Il taglio deve mantenere intatta, concettualmente, la
adiacenza fra vertici. Si presti molta attenzione
all’ordinamento delle coordinate
•  Ordinamento delle coordinate mantiene le distanze di
Hamming e non coincide con la numerazione consecutiva
000
001
c
"
"
100
101
c
dove
a
010
110
011
b
a,b
1
0
0
1
00 01 11 10
0 0 1 0
1 1 1 1
"
111
- 90 -
Caratteristiche delle mappe
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si ricorda che: un implicante è un
termine prodotto in cui compaiono
solo alcuni dei letterali.
F(a,b,c,d)=a’b’c’d’+a’b’cd’+a’bc’d’+ab’c’d+ ab’cd+ab’cd’
raggruppamento 1
raggruppamento2
Implicante 2
F(a,b,c,d)=a’b’d’+a’c’d’+...
Implicante 1
a,b
c,d
00
01
11
10
raggruppamento 1
00
1
0
0
1
01 11 10
1 0 0
0 0 1
0 0 1
0 0 1
raggruppamento 2
- 91 -
Metodo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
1.  Individuare gli implicanti primi e primi
essenziali;
§  Implicante primo
•  Termine prodotto associato ad un raggruppamento di
dimensione massima.
§  implicante primo essenziale
•  Implicante primo che copre uno o più 1 non coperti
da nessun altro implicante primo.
2.  Copertura:
§  Scelta del minor numero di implicanti primi e
primi essenziali
implicanti
implicanti primi
implicanti primi essenziali
- 92 -
Scopo delle mappe
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Identificare una forma SoP che includa il numero
minimo di implicanti e – a parità di numero di
prodotti – gli implicanti col minimo numero di
letterali (definita come forma minima) garantendo la
copertura di tutti gli 1 della funzione.
•  Teorema:
§  Esiste sicuramente una forma minima costituita da soli
implicanti primi
•  sulla mappa di Karnaugh si identificano tutti gli implicanti primi.
–  Nota: la somma di tutti gli implicanti primi è spesso ridondante.
§  Implicanti primi essenziali devono essere inclusi nella forma
minima.
§  Una forma minima costituita da soli implicanti primi
essenziali è unica
•  Condizione sufficiente.
- 93 -
Esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
a,b
c,d
00
01
11
10
00
1
1
0
1
01 11 10
1 0 0
1 1 1
0 1 1
0 0 1
!
raccoglimento
Raccoglimento di
dimensione massima
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
ERRORE: valido raccoglimento solo di 2,4,...
- 94 -
Esempio: continua
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
a,b
c,d
00
01
11
10
00
1
1
0
1
01 11 10
1 0 0
1 1 1
0 1 1
0 0 1
!
Raccoglimento di
dimensione massima
Raccoglimento di
dimensione massima essenziale
1 appartenente ad un
solo implicante primo
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
- 95 -
Definizione del termine prodotto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Ad ogni raccoglimento è associato un
termine prodotto.
•  Il termine prodotto (implicante) è
ottenuto:
§  identificando le variabili che non
cambiano mai di valore
§  riportando ogni variabile in modo
naturale
•  (esempio: a) se il valore che essa assume è 1
•  in modo complementato (esempio: a’) se il
valore da essa assunto è 0
- 96 -
Identificazione del termine prodotto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
a,b
c,d
00
01
11
10
a,b
00 01 11 10
b cambia valore
! 00 1 1 0 0
01 1 1 1 1
d cambia valore
11 0 0 1 1
10 1 0 0 1
b e d cambiano valore: non compaiono nel termine prodotto.
00
1
1
0
1
01 11 10
1 0 0
1 1 1
0 1 1
0 0 1
c,d
a e c compaiono come 0 quindi a’ e c’ .
Il termine prodotto è a’c’.
- 97 -
Copertura
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Sotto insieme degli implicanti
identificati tale per cui nessun 1 della
funzione rimane scoperto.
§  Poiché ogni implicante scelto aumenta il
costo della realizzazione della funzione, il
numero di implicanti da scegliere deve
essere il minore possibile.
§  L’obiettivo è la riduzione del costo; questo
si traduce nella identificazione della
copertura di minima cardinalità:
•  sotto insieme degli implicanti primi e primi ed
essenziali identificati che realizza una
copertura della funzione che è di cardinalità
minima.
- 98 -
Copertura: scelta implicanti
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
1. Si scelgono tutti gli implicanti primi
essenziali.
§  Gli implicanti primi essenziali devono essere
parte della copertura poiché “sono essenziali” e,
quindi, non è possibile fare a meno di loro.
2. Si eliminano tutti gli implicanti primi che sono
coperti da quelli essenziali (eliminazione
implicanti completamente ridondanti)
§  gli implicanti eliminati, detti completamente
ridondanti, coprono degli 1 che sono già ricoperti
da quelli essenziali e, quindi, non servono ed
aumentano il costo.
3. Si seleziona il numero minore degli implicanti
primi che sono rimasti.
§  gli implicanti residui sono detti parzialmente
ridondanti.
- 99 -
E quindi, il nostro esempio…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f (a, b, c) = ∑(001, 011,101,110,111)
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
- 100 -
E quindi, il nostro esempio…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f (a, b, c) = ∑(001, 011,101,110,111)
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
Implicanti primi essenziali
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
c
- 101 -
E quindi, il nostro esempio…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f (a, b, c) = ∑(001, 011,101,110,111)
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
Implicanti primi essenziali
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
c
ab
- 102 -
E quindi, il nostro esempio…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
f (a, b, c) = ∑(001, 011,101,110,111)
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f(a,b,c)
0
1
0
1
0
1
1
1
Implicanti primi essenziali
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
c
ab
f(a,b,c)= ab + c
Forma minima
- 103 -
Osservazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Ma se la forma minima è
f(a,b,c) = ab + c
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
104
Osservazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Ma se la forma minima è
f(a,b,c) = ab + c
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
•  La soluzione (S78)
f(a,b,c) = !ac + a!bc + ab ?
105
Osservazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Ma se la forma minima è
f(a,b,c) = ab + c
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
•  La soluzione (S78)
f(a,b,c) = !ac + a!bc + ab ?
a,b
c
0
1
00 01 11 10
0 0 1 0
1 1 1 1
106
Problemi di fine giornata…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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”
107
Appendice (utile per la prox exe)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
108
Tautologie e Contraddizioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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)
109
Equivalenza tra espressioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Due espressioni logiche si dicono equivalenti (e
si indica con ⇔) se hanno la medesima tabella
di verità. La verifica è algoritmica. Per esempio:
AB
not A and not B ⇔ not (A or B)
00
1 and 1 = 1
not 0 = 1
01
1 and 0 = 0
not 1 = 0
10
0 and 1 = 0
not 1 = 0
11
0 and 0 = 0
not 1 = 0
•  Espressioni logiche equivalenti modellano gli stessi
stati di verità a fronte delle medesime variabili
110
Proprietà dell’algebra di Boole
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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
111
Algebra Booleana a due valori: Assiomi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
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.
• 
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
Algebra di Commutazione: Proprietà 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
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
Algebra di Commutazione: Proprietà 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
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)
- 114 -
Uso delle proprietà
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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)
115
Fonti per lo studio + Credits
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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