Fondamenti di Informatica · L’Algebra di Boole –2/4 •Relazione con i circuiti logici •Si...

Post on 18-Jun-2020

7 views 0 download

Transcript of Fondamenti di Informatica · L’Algebra di Boole –2/4 •Relazione con i circuiti logici •Si...

Fondamenti di InformaticaAlgebra d i Boole

P r o f. R a f fa e l e P i z zo l a n t e

A . A . 2 0 1 6 / 1 7

L’Algebra di Boole – 1/4• Storia• Il matematico inglese George Boole nel 1847 fondò un campo della

matematica e della filosofia chiamato logica simbolica

• Shannon per primo applicò la logica simbolica ai circuiti logici nel 1939

• Basi• Variabili booleane (o binarie)

• Variabili i cui valori possono essere 0 oppure 1

• Funzioni booleane

• Funzioni i cui input ed output sono variabili booleane

Algebra di Boole

L’Algebra di Boole – 2/4•Relazione con i circuiti logici• Si studia l’algebra booleana poiché le sue funzioni sono

isomorfe ai circuiti digitali:• un circuito digitale può essere espresso tramite un’espressione booleana e

viceversa

• Le variabili booleane corrispondono a segnali

• Le funzioni booleane corrispondono a circuiti

Algebra di Boole

L’Algebra di Boole – 3/4• Una variabile booleana è• Una variabile che può assumere esclusivamente UN valore fra 0 o 1

• Sia 𝑥 una variabile booleana, allora 𝑥 = 0 oppure 𝑥 = 1

• Contempla quindi due stati che si escludono a vicenda: 0 e 1 (falso e vero)• Gli stati possono descrivere, ad esempio, lo stato di apertura o chiusura di un

circuito, ecc.

0 1

Algebra di Boole

L’Algebra di Boole – 4/4 • Sulle variabili e i valori booleani si definiscono gli operatori• AND• OR• NOT• Ed altri definiti a partire da essi

•Gli operatori AND e OR sono operatori binari: agiscono su dueoperandi

•L’operatore NOT è un operatore unario: agisce su un solo operando

•Un operando può essere:• Variabile booleana• Valore booleano (1 o 0)

Algebra di Boole

Gli operatori (o funzioni)• Gli operatori (o funzioni)• AND

• OR

• NOT

Algebra di Boole

Gli operatori (o funzioni)• Gli operatori (o funzioni)• AND

• OR

• NOT

Algebra di Boole

AND – Prodotto Logico• Il risultato dell’operatore (o funzione) AND è 1 se il valore di entrambi gli operandi è 1. Il risultato è 0 negli altri casi

• Date n variabili binarie indipendenti, il loro prodotto logico (AND) è dato da

x1 x2 … xn =0 se almeno una xi vale 0, 𝑐𝑜𝑛 1 ≤ 𝑖 ≤ 𝑛

1 se x1= x2= …= xn = 1

𝑥1 𝑥2 𝐹 𝑥1, 𝑥2 = 𝑥1 × 𝑥20 0 0

0 1 0

1 0 0

1 1 1

Algebra di Boole

AND – Prodotto Logico• Il risultato dell’operatore (o funzione) AND è 1 se il valore di entrambi gli operandi è 1. Il risultato è 0 negli altri casi

• Date n variabili binarie indipendenti, il loro prodotto logico (AND) è dato da

x1 x2 … xn =0 se almeno una xi vale 0, 𝑐𝑜𝑛 1 ≤ 𝑖 ≤ 𝑛

1 se x1= x2= …= xn = 1

𝑥1 𝑥2 𝐹 𝑥1, 𝑥2 = 𝑥1 × 𝑥20 0 0

0 1 0

1 0 0

1 1 1

Tavola di verità

Algebra di Boole

AND – Prodotto LogicoPossibili Rappresentazioni• x & y

• x and y

• x ∧ 𝒚

• x ∩ 𝒚

• x * y

• x × 𝒚

• xy

Algebra di Boole

AND – Prodotto LogicoPossibili Rappresentazioni• x & y

• x and y

• x ∧ 𝑦

• x ∩ 𝑦

•x * y

• x × 𝒚

• xy

Algebra di Boole

Gli operatori (o funzioni)• Gli operatori (o funzioni)• AND

• OR

• NOT

Algebra di Boole

OR – Somma Logica• Il risultato dell’operatore (o funzione) OR è 1 se almeno uno degli operandi vale 1. Il risultato è 0 negli altri casi

• Date n variabili binarie, la loro somma logica (OR) è data da

x1+ x2+ …+ xn =

1 se almeno una xi vale 1, 𝑐𝑜𝑛 1 ≤ 𝑖 ≤ 𝑛

0 se x1= x2= …= xn = 0

𝑥1 𝑥2 𝐹 𝑥1, 𝑥2 = 𝑥1 + 𝑥20 0 0

0 1 1

1 0 1

1 1 1

Algebra di Boole

OR – Somma LogicaPossibili Rappresentazioni• x | y

• x # y

• x or y

• x ∪ 𝒚

• x ∨ 𝒚

• x + y

Algebra di Boole

OR – Somma LogicaPossibili Rappresentazioni• x | y

• x # y

• x or y

• x ∪ 𝑦

• x ∨ 𝑦

• x + y

Algebra di Boole

Gli operatori (o funzioni)• Gli operatori (o funzioni)• AND

• OR

• NOT

Algebra di Boole

NOT – Negazione • L’operatore (o funzione) NOT, inverte il valore dell’operando su cui opera

•Doppia negazione:

• L’elemento ҧ𝑥 viene detto complemento di x

𝑥1 𝐹 𝑥1 = 𝑥10 1

1 0

Algebra di Boole

NOT – NegazionePossibili Rappresentazioni• y = ~x

• y = !x

• y = not x

• y = x’

• y = ¬𝒙

• y = ഥ𝒙

Algebra di Boole

NOT – NegazionePossibili Rappresentazioni• y = ~x

• y = !x

• y = not x

• y = x’

• y = ¬𝑥

• y = ഥ𝒙

Algebra di Boole

Algebra di Boole: Alcune Identità

Funzione AND Funzione OR Funzione NOT

0 × 0 = 0 0 + 0 = 0 x+ ҧ𝑥 = 1

0 × 1 = 0 0 + 1 = 1 x × ҧ𝑥 = 0

1 × 0 = 0 1 + 0 = 1 Ӗ𝑥 = 𝑥

1 × 1 = 1 1 + 1 = 1

x × 0 = 0 x + 0 = x

0 × x = 0 0 + x = x

x × 1 = x x + 1 = 1

1 × x = x 1 + x = 1

x × x = x x + x = x

Algebra di Boole

Algebra di Boole: Alcune Identità

Funzione AND Funzione OR Funzione NOT

0 × 0 = 0 0 + 0 = 0 x+ ҧ𝑥 = 1

0 × 1 = 0 0 + 1 = 1 x × ҧ𝑥 = 0

1 × 0 = 0 1 + 0 = 1 Ӗ𝑥 = 𝑥

1 × 1 = 1 1 + 1 = 1

x × 0 = 0 x + 0 = x

0 × x = 0 0 + x = x

x × 1 = x x + 1 = 1

1 × x = x 1 + x = 1

x × x = x x + x = x

Prodotto Logico

Algebra di Boole

Algebra di Boole: Alcune Identità

Funzione AND Funzione OR Funzione NOT

0 × 0 = 0 0 + 0 = 0 x+ ҧ𝑥 = 1

0 × 1 = 0 0 + 1 = 1 x × ҧ𝑥 = 0

1 × 0 = 0 1 + 0 = 1 Ӗ𝑥 = 𝑥

1 × 1 = 1 1 + 1 = 1

x × 0 = 0 x + 0 = x

0 × x = 0 0 + x = x

x × 1 = x x + 1 = 1

1 × x = x 1 + x = 1

x × x = x x + x = x

Somma Logica

NOTA: 1+1=1

Algebra di Boole

Algebra di Boole: Alcune Identità

Funzione AND Funzione OR Funzione NOT

0 × 0 = 0 0 + 0 = 0 x+ ҧ𝑥 = 1

0 × 1 = 0 0 + 1 = 1 x × ҧ𝑥 = 0

1 × 0 = 0 1 + 0 = 1 Ӗ𝑥 = 𝑥

1 × 1 = 1 1 + 1 = 1

x × 0 = 0 x + 0 = x

0 × x = 0 0 + x = x

x × 1 = x x + 1 = 1

1 × x = x 1 + x = 1

x × x = x x + x = x

Legge dell’idempotenza

Algebra di Boole

Algebra di Boole: Proprietà e Leggi

Proprietà Commutativa Leggi di Assorbimento

Proprietà Distributiva Leggi di De Morgan

Proprietà Associativa Altre Note

𝑥1𝑥2 = 𝑥2𝑥1𝑥1+ 𝑥2 = 𝑥2+ 𝑥1

𝑥1+ 𝑥1𝑥2 = 𝑥1𝑥1(𝑥1+ 𝑥2) = 𝑥1

𝑥1 𝑥2+ 𝑥3 = 𝑥1𝑥2+ 𝑥2𝑥3𝑥1+ 𝑥2𝑥3 = 𝑥1+ 𝑥2 + (𝑥1+ 𝑥3)

𝑥1 𝑥2𝑥3 = (𝑥1𝑥2)𝑥3𝑥1+ 𝑥2+ 𝑥3 = 𝑥1+ 𝑥2 + 𝑥3

𝑥1+ 𝑥2 = ഥ𝑥1 × ഥ𝑥2𝑥1 × 𝑥2 = ഥ𝑥1+ ഥ𝑥2

𝑥1+ ഥ𝑥1𝑥2 = 𝑥1+ 𝑥2𝑥1( ഥ𝑥1+ 𝑥2) = 𝑥1𝑥2

Algebra di Boole

Leggi di De Morgan

Leggi di De Morgan – 1/2

𝑥1+ 𝑥2 = ഥ𝑥1 × ഥ𝑥2𝑥1 × 𝑥2 = ഥ𝑥1+ ഥ𝑥2

Algebra di Boole

Leggi di De Morgan

Leggi di De Morgan – 1/2

𝑥1+ 𝑥2 = ഥ𝑥1 × ഥ𝑥2𝑥1 × 𝑥2 = ഥ𝑥1+ ഥ𝑥2

• Il complemento di due o più variabili poste in OR è uguale all’AND dei complementi delle singole variabili

Algebra di Boole

Leggi di De Morgan

Leggi di De Morgan – 2/2

𝑥1+ 𝑥2 = ഥ𝑥1 × ഥ𝑥2𝑥1 × 𝑥2 = ഥ𝑥1+ ഥ𝑥2

• Il complemento di due o più variabili poste in AND è equivalente all’OR dei complementi delle singole variabili

Algebra di Boole

Osservazioni• Dalle leggi di De Morgan si evince che la sceltadelle funzioni OR, AND e NOT, come operatoriprimitivi, è ridondante• L’operazione logica AND può essere espressa in funzione

delle operazioni OR e NOT

• In modo analogo, l’operazione OR può essere espressatramite AND e NOT

Algebra di Boole

Funzioni Logiche (o Booleane) – 1/5• Date n variabili booleane indipendenti: x1, x2,…, xn,queste possono assumere 2n configurazioni distinte• Ad esempio per n = 4 si hanno 16 (24) configurazioni

• Esempio di configurazione su n = 4

• 𝑥1 = 1, 𝑥2 = 0, 𝑥3 = 0, 𝑥4 = 1

• Ogni riga mostra (in rosso) il valore restituito da F apartire da una particolare configurazione dell’input

x1 x2 x3 F(x1, x2, x3)

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

Algebra di Boole

Funzioni Logiche (o Booleane) – 2/5• 010 indica la configurazione in cui

• 𝒙𝟏 = 0• 𝒙𝟐 = 1• 𝒙𝟑 = 0

• Questa configurazione si scrive semplicemente con ilprodotto logico

• 𝒙𝟏𝒙𝟐𝒙𝟑

x1 x2 x3 F(x1, x2, x3)

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

Algebra di Boole

Funzioni Logiche (o Booleane) – 2/5• 010 indica la configurazione in cui

• 𝒙𝟏 = 0• 𝒙𝟐 = 1• 𝒙𝟑 = 0

• Questa configurazione si scrive semplicemente con ilprodotto logico

• 𝒙𝟏𝒙𝟐𝒙𝟑

• Una configurazione specifica è individuataunivocamente da un AND (prodotto logico) di tutte levariabili, dove quelle corrispondenti ai valori 0compaiono negate

• Prodotto fondamentale o prodotto minimo

• minterm

x1 x2 x3 F(x1, x2, x3)

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

x1x2x3010

Algebra di Boole

Funzioni Logiche (o Booleane) – 2/5

ഥ𝑥1 ഥ𝑥2 ഥ𝑥3

ഥ𝑥1 ഥ𝑥2 𝑥3

ഥ𝑥1 𝑥2 ഥ𝑥3

ഥ𝑥1 𝑥2𝑥3

𝑥1 ഥ𝑥2 ഥ𝑥3

𝑥1 ഥ𝑥2 𝑥3

𝑥1 𝑥2 ഥ𝑥3

𝑥1 𝑥2𝑥3

Configurazioni x1 x2 x3 F(x1, x2, x3)

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

Tutte le configurazioni della tavola di verità dell’esempio

Algebra di Boole

Funzioni Logiche (o Booleane) – 3/5• Una variabile y è una funzione booleana delle n variabili indipendentix1, x2,…, xn, se esiste un criterio che fa corrispondere in modo univocoad ognuna delle 2n configurazioni delle variabili xi un valore di y (chepotrà essere 0 oppure 1)

• Una funzione può essere rappresentata in maniera esplicita tramite latabella (o tavola) di verità, in cui si elencano tutte le possibilicombinazioni di x1, x2, …, xn, con associato il valore di y

y = F(x1, x2, …, xn)

y = x1+ x2

𝑥1 𝑥2 𝑦

0 0 0

0 1 1

1 0 1

1 1 1

Algebra di Boole

Funzioni Logiche (o Booleane) – 3/5– Tavola di verità –

• Modo sistematico per specificare il valore di una funzione per tutte le possibili combinazioni di valori di input• Una funzione che prende 2 input ha 4 = 22 righe

• Una funzione che prende n input ha 2n righe

• Esempio (2 variabili: x e y 4 righe):

x 𝑦 𝐹𝑢𝑛𝑧𝑖𝑜𝑛𝑒 𝐹

0 0 1

0 1 0

1 0 0

1 1 1

Algebra di Boole

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

x1 x2 x3 F(x1, x2, x3)

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

Algebra di Boole

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

x1 x2 x3 F(x1, x2, x3)

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

Algebra di Boole

x1 x2 x3 F(x1, x2, x3)

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

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

Algebra di Boole

x1 x2 x3 F(x1, x2, x3)

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

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

Algebra di Boole

x1 x2 x3 F(x1, x2, x3)

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

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

ഥ𝑥1 𝑥2𝑥3

Algebra di Boole

x1 x2 x3 F(x1, x2, x3)

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

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

ഥ𝑥1 𝑥2𝑥3 𝑥1 ഥ𝑥2 𝑥3

Algebra di Boole

x1 x2 x3 F(x1, x2, x3)

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

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

ഥ𝑥1 𝑥2𝑥3 𝑥1 ഥ𝑥2 𝑥3 𝑥1 𝑥2 ഥ𝑥3 𝑥1 𝑥2𝑥3

Algebra di Boole

x1 x2 x3 F(x1, x2, x3)

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

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

ഥ𝑥1 𝑥2𝑥3 𝑥1 ഥ𝑥2 𝑥3 𝑥1 𝑥2 ഥ𝑥3 𝑥1 𝑥2𝑥3

Algebra di Boole

x1 x2 x3 F(x1, x2, x3)

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

Funzioni Logiche (o Booleane) – 4/5• Oltre che con la tavola di verità, ogni funzione booleana può esseredeterminata tramite la sua espressione booleana

• Per passare dalla rappresentazione mediantetavola di verità alla notazione tramiteespressione booleana è necessario:

1. Identificare tutte le righe della tavola di veritàche danno 1 in output

2. Per ogni riga con un 1 in output, scrivere ilminterm della configurazione delle variabiliche la definiscono

3. Collegare tramite OR tutti i minterm ottenuti

ഥ𝑥1 𝑥2𝑥3+ 𝑥1 ഥ𝑥2 𝑥3+ 𝑥1 𝑥2 ഥ𝑥3+𝑥1 𝑥2𝑥3

Algebra di Boole

Funzioni Logiche (o Booleane) – 5/5• 𝐹 𝑥1, 𝑥2, 𝑥3 = ഥ𝑥1 𝑥2𝑥3+ 𝑥1 ഥ𝑥2 𝑥3+ 𝑥1 𝑥2 ഥ𝑥3+ 𝑥1 𝑥2𝑥3

• Con l’uso dei minterm possiamo determinarel’espressione booleana di una funzionebooleana a partire dalla tavola di verità

• L’espressione booleana trovata si chiamaforma canonica della funzione e si ottiene conuno sviluppo in minterm• Una somma (OR) di prodotti (AND)

• Se un minterm assume valore 1 anche lafunzione F assume il valore 1

• Tutte le funzioni logiche possono essereriportate in forma canonica

x1 x2 x3 F(x1, x2, x3)

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

Algebra di Boole

Esempio (dalla tavola di verità alla funzione):

Funzione Exclusive OR (XOR) • Il comportamento della funzione Exclusive OR (XOR) su due variabili indipendenti può essere descritto con la seguente tavola di verità

• Sostanzialmente la funzione XOR verifica la disuguaglianza di due variabili• Restituisce 1 sse 𝑥1 e 𝑥2 sono diversi

• Restituisce 0 sse 𝑥1 e 𝑥2 sono uguali

𝑥1 𝑥2 𝑋𝑂𝑅

0 0 0

0 1 1

1 0 1

1 1 0

Algebra di Boole

Dalla Funzione alla Tavola di Verità• Vediamo un esempio per la funzione • 𝐹 = 𝑥 × (𝑦 + 𝑧)

x y z F

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 0

Algebra di Boole

Esercizio per Casa: Dalla Tavola di Verità all’Espressione Booleana

Tavola di Verità della funzione X

A B C X

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 0

X = ______________________________

Algebra di Boole

Riferimenti• Libro di testo• Capitolo 3

• Paragrafo 4

Algebra di Boole