Sei sulla pagina 1di 14

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

INFORMATICA (sezione A-K)


Ingegneria Civile

Algebra di Boole

Marco Lattuada
Cenni sull’Algebra di Boole
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Facciamo un passo indietro…

• Per imparare a definire in modo corretto condizioni complesse


in un algoritmo è necessario introdurre qualche nozione di
base sull’algebra di Boole

• Esempi:
▪ “La variabile x contiene un valore compreso nell’intervallo [2;5]?” cioè
“x >= 2 and x <= 5”
▪ “Entrambe i voti parziali sono maggiori o uguali a 8 e la loro somma
maggiore di 18?” cioè “voto1 >= 8 and voto2 >= 8 and voto1 + voto2 >=
18”
▪ “Almeno uno dei due voti è maggiore o uguale a 8?” cioè “voto1 >= 8
or voto2 >= 8”
Introduzione agli Algoritmi 2
Cenni sull’Algebra di Boole
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• L’algebra di Boole (inventata da G. Boole, britannico,


seconda metà ’800), o algebra della logica, è un’algebra
astratta che opera su due soli valori di verità, falso e vero,
mediante operatori logici

• In un calcolatore vero è in genere rappresentato con il valore


1 e falso con il valore 0

Introduzione agli Algoritmi 3


Letterale
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Il letterale è una variabile logica


▪ Il letterale può assumere valore 0 o 1
▪ Il letterale può rappresentare (il risultato di) una condizione semplice
• Esempi:
▪ A = “5 > 2” cioè “è vero che 5 è maggiore di 2? ” -> quindi A = 1
▪ A = “x > 2” cioè “è vero che x contiene un valore maggiore di 2? ” ->
quindi A = 1 se il valore contenuto in x è maggiore di 2

Introduzione agli Algoritmi 4


Operazioni logiche fondamentali
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• È possibile esprimere condizioni più complesse mediante gli


operatori logici
• 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

• Esempi:
▪ “x < 5 AND x > 2” è vera se il valore di x è compreso nell’intervallo (2,5)
▪ “x > 5 OR x < 2” è vera se il valore di x è fuori dall’intervallo [2,5]

Introduzione agli Algoritmi 5


Operatori logici di base e loro tabelle di verità
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Le tabelle delle verità elencano tutte le possibili combinazioni


in ingresso e il risultato associato a ciascuna combinazione

Somma logica Prodotto logico Negazione


A B A or B A B A and B A not A
0 0 0 0 0 0 0 1
0 1 1 0 1 0 1 0
1 0 1 1 0 0
1 1 1 1 1 1

• 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

Introduzione agli Algoritmi 6


Espressioni logiche (o Booleane)
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Come le espressioni algebriche, le espressioni logiche sono


costruite con:
▪ Variabili logiche (letterali), che possono assumere valore 0 o 1
▪ Operatori logici: and, or, not
• Esempi:
A or (B and C)
(A and (not B)) or (B and C)
• 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)

Introduzione agli Algoritmi 7


Tabella di verità di un’espressione logica
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• La tabella delle verità di un’espressione generica specifica i


valori di verità per tutti i possibili valori delle variabili
• Esempio:

A B NOT ( ( A OR B) AND ( NOT A ) )


0 0 1
0 1 0
1 0 1
1 1 1

Introduzione agli Algoritmi 8


Tabella di verità di un’espressione logica
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Costruire la tabella delle verità per l’espressione


not((A or B) and (not A))

AB X = A or B Y = not A Z = X and Y not Z


00 0 or 0 = 0 not 0 = 1 0 and 1 = 0 not 0 = 1
01 0 or 1 = 1 not 0 = 1 1 and 1 = 1 not 1 = 0
10 1 or 0 = 1 not 1 = 0 1 and 0 = 0 not 0 = 1
11 1 or 1 = 1 not 1 = 0 1 and 0 = 0 not 0 = 1

Introduzione agli Algoritmi 9


Due esercizi
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Costruire la tabella delle verità per l’espressione


not((A or B) and (not A))

A B NOT ( ( A OR B) AND ( NOT A ) )


0 0 1 0 0 0 0 1 0
0 1 0 0 1 1 1 1 0
1 0 1 1 1 0 0 0 1
1 1 1 1 1 1 0 0 1

Ordine con cui si 5 1 3 1 4 2 1


valutano le
operazioni

Introduzione agli Algoritmi 10


Due esercizi
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Costruire la tabella delle verità per l’espressione


(b or not c) and (a or not c)

A B C ( B OR NOT C ) AND ( A OR NOT C )


0 0 0 0 1 1 0 1 0 1 1 0
0 0 1 0 0 0 1 0 0 0 0 1
0 1 0 1 1 1 0 1 0 1 1 0
0 1 1 1 1 0 1 0 0 0 0 1
1 0 0 0 1 1 0 1 1 1 1 0
1 0 1 0 0 0 1 0 1 1 0 1
1 1 0 1 1 1 0 1 1 1 1 0
1 1 1 1 1 0 1 1 1 1 0 1

Introduzione agli Algoritmi 11


Equivalenza tra espressioni
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• 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

Introduzione agli Algoritmi 12


Proprietà dell’algebra di Boole
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• 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)
• Esempio celebre: le “Leggi di De Morgan”
not (A and B) = not A or not B (1a legge)
not (A or B) = not A and not B (2a legge)

Introduzione agli Algoritmi 13


Proprietà dell’algebra di Boole
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Alcune proprietà somigliano a quelle dell’algebra numerica


tradizionale:
▪ Proprietà associativa: A or (B or C) = (A or B) or C (idem per AND)
▪ Proprietà commutativa: A or B = B or A (idem per AND)
▪ Proprietà distributiva di AND rispetto a OR:
A and (B or C) = A and B or A and C
▪ … e altre ancora
• Ma parecchie altre sono alquanto insolite…
▪ Proprietà distributiva di OR rispetto a AND:
A or B and C = (A or B) and (A or C)
▪ Proprietà di assorbimento (A assorbe B):
A or A and B = A
▪ Legge dell’elemento 1: not A or A = 1
▪ not (not A) = A
▪ A and 1 = A, A or 0 = A, A and 0 = 0, A or 1 = 1
▪ … e altre ancora

Introduzione agli Algoritmi 14