l'algebra di boole - unina.stidue.netunina.stidue.net/fondamenti di informatica/materiale/1. c...

15
L'algebra di Boole L'algebra booleana deve il suo nome al logico e matematico inglese George Boole (1815 – 1864) che ebbe il merito di formularla. Egli sviluppò i concetti espressi da Leibniz sul sistema binario e descrisse gli operatori logici, che da lui presero il nome di operatori booleani, su cui si fonda un modello di calcolo che consente: di operare sulle proposizioni logiche su cui si articola il ragionamento allo stesso modo che su entità matematiche; di spiegare il comportamento dei componenti elettronici denominati porte logiche che sono alla base del funzionamento dei calcolatori elettronici Come tutte le algebre essa si sviluppa partendo dalla definizione di un insieme di supporto X e di operatori binari che associano a coppie di elementi di X un elemento dello stesso insieme. Gli operatori sono due: l'operatore di somma che si indicherà con l'operatore di prodotto che si indicherà con Entrambi gli operatori sono funzioni definite nel dominio X X e hanno per codominio X. Perché sia un'algebra devono valere le seguenti proprietà definite assiomaticamente per ogni x, y, z appartenenti a X: I. proprietà commutativa: a) della somma: x y = y x b) del prodotto: x y = y x II. proprietà distributiva: α) della somma rispetto al prodotto: x (y z) = (x y) (x z) β) del prodotto rispetto alla somma: x (y z) = (x y) (x z) III. dell'esistenza dell'elemento neutro: a) O per la somma: x Ο = x b) I per il prodotto: x Ι = x con O ed I appartenenti all'insieme X; IV. del complemento x' per il quale sussiste: α) x x' = Ι β) x x' = Ο Il complemento x' di x è unico. Per dimostrarlo si assuma per assurdo che esista un altro x” che gode della proprietà di essere complemento di x. Allora: x' = x' O per la III.a = x' (x” x) per la IV.a = (x' x”) (x' x) per la II.a = (x' x”) I per la IV.a = (x” x') (x” x) per la I.a e la IV.a = x” (x' x) per la II.b = x” I per la IV.a = x” per la III.b Data la univocità del complemento si introduce un terzo operatore denominato complemento ed indicato con ¬. Con la notazione x' = ¬x si fa riferimento al complemento di x. Si noti che: O = ¬I I = ¬O x = ¬(¬x) Le quattro proprietà rappresentano le regole fondamentali del modello di algebra. Con esse si possono dimostrare le ulteriori proprietà: V. associativa: α) della somma: x (y z) = (x y) z

Upload: dangcong

Post on 15-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

L'algebra di Boole L'algebra booleana deve il suo nome al logico e matematico inglese George Boole (1815 – 1864) che ebbe il merito di formularla. Egli sviluppò i concetti espressi da Leibniz sul sistema binario e descrisse gli operatori logici, che da lui presero il nome di operatori booleani, su cui si fonda un modello di calcolo che consente:

• di operare sulle proposizioni logiche su cui si articola il ragionamento allo stesso modo che su entità matematiche;

• di spiegare il comportamento dei componenti elettronici denominati porte logiche che sono alla base del funzionamento dei calcolatori elettronici

Come tutte le algebre essa si sviluppa partendo dalla definizione di un insieme di supporto X e di operatori binari che associano a coppie di elementi di X un elemento dello stesso insieme. Gli operatori sono due:

• l'operatore di somma che si indicherà con ⊕ • l'operatore di prodotto che si indicherà con ⊗

Entrambi gli operatori sono funzioni definite nel dominio X ⋅ X e hanno per codominio X. Perché sia un'algebra devono valere le seguenti proprietà definite assiomaticamente per ogni x, y, z appartenenti a X:

I. proprietà commutativa: a) della somma: x ⊕ y = y ⊕ x b) del prodotto: x ⊗ y = y ⊗ x

II. proprietà distributiva: α) della somma rispetto al prodotto: x ⊕ (y ⊗ z) = (x ⊕ y) ⊗ (x ⊕ z) β) del prodotto rispetto alla somma: x ⊗ (y ⊕ z) = (x ⊗ y) ⊕ (x ⊗ z)

III. dell'esistenza dell'elemento neutro: a) O per la somma: x ⊕ Ο = x b) I per il prodotto: x ⊗ Ι = x con O ed I appartenenti all'insieme X;

IV. del complemento x' per il quale sussiste: α) x ⊕ x' = Ι β) x ⊗ x' = Ο

Il complemento x' di x è unico. Per dimostrarlo si assuma per assurdo che esista un altro x” che gode della proprietà di essere complemento di x. Allora: x' = x' ⊕ O per la III.a = x' ⊕ (x” ⊗ x) per la IV.a = (x' ⊕ x”) ⊗ (x' ⊕ x) per la II.a = (x' ⊕ x”) ⊗ I per la IV.a = (x” ⊕ x') ⊗ (x” ⊕ x) per la I.a e la IV.a = x” ⊗ (x' ⊕ x) per la II.b = x” ⊗ I per la IV.a = x” per la III.b Data la univocità del complemento si introduce un terzo operatore denominato complemento ed indicato con ¬. Con la notazione x' = ¬x si fa riferimento al complemento di x. Si noti che:

• O = ¬I • I = ¬O • x = ¬(¬x)

Le quattro proprietà rappresentano le regole fondamentali del modello di algebra. Con esse si possono dimostrare le ulteriori proprietà:

V. associativa: α) della somma: x ⊕ (y ⊕ z) = (x ⊕ y) ⊕ z

Page 2: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

β) del prodotto: x ⊗ (y ⊗ z) = (x ⊗ y) ⊗ z VI. idempotenza:

a) per la somma: x ⊕ x = x b) per il prodotto: x ⊗ x = x

VII. assorbimento: α) della somma: x ⊕ (x ⊗ y) = x β) del prodotto: x ⊗ (x ⊕ y) = x

VIII. del minimo e del massimo: a) per il minimo: x ⊗ O = O β) per il massimo: x ⊕ I = I

Si osservi che tutti gli assiomi sono caratterizzati dal principio di dualità che recita che da una qualsiasi identità booleana se ne ricava un'altra sostituendo l'operatore di somma con quello di prodotto e l'elemento O con I. Il principio di dualità non dice che le due identità sono uguali o equivalenti, ma afferma soltanto che se una identità è valida nell'algebra di boole lo è anche la sua duale. Infine si dimostra che valgono le due relazioni di De Morgan: l'una duale dell'altra:

1. ¬ (x ⊕ y) = (¬x ⊗ ¬y) 2. ¬(x ⊗ y) = (¬x ⊕ ¬y)

Per la prima il complemento di una somma è uguale al prodotto dei complementi dei termini; per la seconda il complemento di un prodotto è uguale alla somma dei complementi dei fattori. Per il principio di dualità basta dimostrare la validità di una delle due relazioni. Si applichino le proprietà del complemento alla 1):

a) (x ⊕ y) ⊕ (¬x ⊗ ¬y) = I b) (x ⊕ y) ⊗ (¬x ⊗ ¬y) = O

La a) si dimostra con i seguenti passaggi: (x ⊕ y) ⊕ (¬x ⊗ ¬y) = (x ⊕ y ⊕ ¬x ) ⊗ (x ⊕ y ⊕ ¬y) = (y ⊕ I ) ⊗ (x ⊕ I) = I ⊗ I = I La b) si dimostra con passaggi duali: (x ⊗ y) ⊕ (¬x ⊗ ¬y) = (x ⊗ y ⊗ ¬x ) ⊕ (x ⊗ y ⊗ ¬y) = (y ⊗ O ) ⊕ (x ⊗ O) = O ⊕ O = O Si noti che applicando ad entrambi i membri delle due relazioni di De Morgan la complementazione si ottiene:

1. ¬(¬(x ⊕ y)) = ¬(¬x ⊗ ¬y) 2. ¬(¬(x ⊗ y)) = ¬(¬x ⊕ ¬y)

Ma la doppia negazione si può eliminare ottenendo: 1. x ⊕ y = ¬(¬x ⊗ ¬y) 2. x ⊗ y = ¬(¬x ⊕ ¬y)

dalla quale emerge che: • l'operatore somma si ottiene da una espressione in cui compaiono gli operatori di

complemento e prodotto; • l'operatore prodotto si ottiene da una espressione in cui compaiono gli operatori di

complemento e somma. Se si definiscono:

• le costanti booleane gli elementi appartenenti all'insieme X di sostegno; • le variabili booleane i simboli (a, b, c) a cui possono essere associati insiemi di costanti

booleane;

Page 3: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

allora si possono costruire espressioni con gli operatori di complementazione, somma e prodotto. E = a ⊕ b (¬b ⊗ (c ⊕ a))

In assenza di parentesi si stabilisce: • che si eseguano per prime le complementazioni; • successivamente i prodotti • ed infine le somme.

Due espressioni si dicono equivalenti se: • assumono lo stesso valore comunque si assegni valore alle variabili in esse contenute; • o è possibile trasformare una delle due nell'altra applicando i postulati dell'algebra.

Proprietà dell'Algebra di Boole All'algebra di Boole si associano diversi modelli nei quali si ritrovano interpretazioni diverse sia degli elementi dell'insieme di sostegno X che degli operatori. I modelli più importanti sono:

• l'algebra binaria • l'algebra degli insiemi; • la logica delle proposizioni; • l'algebra delle reti

Poiché in ognuno di essi valgono le proprietà dell’algebra, vengono definiti come algebre di Boole.

Algebra booleana binaria Nell'algebra binaria sono definiti:

• un insieme costituito da due soli valori {0,1} detti bit; • gli operatori di somma logica, prodotto logico e di negazione.

Boole Binaria

Insieme di sostegno X Due soli valori detti bit {0,1}

somma ⊕ Somma logica OR prodotto ⊗ Prodotto logico AND

complemento ¬ Negazione NOT minimo O zero 0 massimo I uno 1

Per gli operatori logici si è soliti far ricorso ad una notazione più semplice:

• per la somma si usa il simbolo +: a AND b ⇒ a + b

• per il prodotto si usa il puntino • che però può anche essere omesso: a OR b ⇒ a • b oppure solo ab

• per la negazione si soprasegna la variabile NOT a ⇒

x Nell'algebra binaria si definisce funzione booleana y su n variabili booelane:

y = f(x1, x2, …., xn) la corrispondenza che associa ad ogni combinazione di valori delle n variabili indipendenti x1, x2, …., xn un valore booleano della variabile dipendente y. Poiché ognuna delle variabili può assumere due soli valori, la funzione f viene ad essere definita su un insieme discreto di valori uguale proprio alle 2n combinazioni di valori delle n variabili. La tabella che riporta tutte le 2n combinazioni di valori delle n variabili e i valori corrispondenti della funzione viene detta tavola di verità. Dalle tavole di verità si nota che l'OR tra due variabili logiche a e b assume valore 0 quando

Page 4: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

entrambe le variabili sono zero, ed il valore 1 negli altri tre casi. L'AND assume invece il valore uno quando entrambe le variabili valgono 1 e zero in tutti gli altri casi. Il NOT, che si applica ad una sola variabile, è uguale ad 1 se la variabile è 0, e 0 in caso contrario.

a b ab a b a + b a

a 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1

Una qualsiasi funzione f si presenta come un’espressione composta dagli operatori OR, AND e NOT: la presenza di parentesi fissa l’ordine di esecuzione; in assenza delle parentesi si esegue prima il NOT, poi l’AND ed infine l’OR.

a b c

ab + (bc)

a + (bc) 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0

Due funzioni che presentano la stessa tavola di verità sono equivalenti. A titolo di esempio si dimostra la relazione di De Morgan:

ab = a + b costruendo le tavole di verità di primo e secondo membro e verificando che sono uguali.

a b

ab

a + b 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0

Poiché una funzione booleana definita su due variabili può assumere solo quattro valori, 24 sono le possibili funzioni diverse:

a b f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

con:

• f0: detta contraddizione • f1: ab; ossia l’AND; • f2: a

b • f3: a; ossia uguale ad a • f4:

ab • f5: b; ossia uguale a b

Page 5: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

• f6:

ab + a

b; detta or esclusiva o XOR che risulta uguale ad 1 quando i valori di a e b sono diversi;

• f7: a + b; ossia l’OR; • f8:

a + b ; ossia il complemento dell’OR detta anche NOR; • f9:

ab + ab; detta equivalenza EQV che risulta uguale ad 1 quando i valori di a e b sono uguali;

• f10:

b ; il complemento di b; • f11: a+

b; detta implicazione b →a, con b antecedente; • f12:

a ; il complemento di a; • f13:

a + b; detta implicazione a →b, con a antecedente; • f14:

ab; ossia il complemento dell’AND detta anche NAND; • f15: tautologia.

La tavola di verità consente anche di determinare la forma algebrica di una funzione f che essa rappresenta. Infatti fissata una tavola di verità, si ricavano da essa due rappresentazioni della funzione dette forme normali, non solo tra loro equivalenti ma equivalenti anche a qualsiasi altra espressione indicante la stessa funzione. Se si indica con letterale l’occorrenza di una variabile a in una espressione sia nella sua forma semplice a che in quella complementata

a, si definisce: • mintermine un prodotto di letterali • maxtermine una somma di letterali.

Per n variabili si determinano 2n mintermini o maxtermini diversi, tanti quante sono le combinazioni dei letterali nelle due forme ammesse (semplice e complementata). I mintermini sono particolari funzioni che assumono valore 1 per una sola combinazione dei valori delle variabili indipendenti: nello specifico il valore della variabile deve essere 1 se il suo letterale è nella forma semplice, 0 se è complementata. Dualmente i maxtermini sono particolari funzioni che assumono valore 0 per una sola combinazione dei valori delle variabili indipendenti: nello specifico il valore della variabile deve essere 0 se il suo letterale è nella forma semplice, 1 se è complementata. In una tavola di verità ad ogni riga corrisponde pertanto un unico mintermine che assume valore 1 e un unico maxtermine che assume valore 0.

a b c Mintermine = 1 Maxtermine = 0 0 0 0

abc

a + b + c 0 0 1

abc

a + b + c 0 1 0

abc

a + b + c 0 1 1

abc

a + b + c 1 0 0

abc

a + b + c 1 0 1

abc

a + b + c 1 1 0

abc

a + b + c 1 1 1

abc

a + b + c Il passaggio dalla tavola di verità alla forma algebrica della funzione può essere ottenuto:

• come SOP (sum of product) sommando tutti e solo i mintermini che nella tavola di verità corrispondono alle righe nelle quali la funzione assume valore 1;

• come POS (product of sum) moltiplicando tutti e soli i maxtermini che nella tavola di verità corrispondono alle righe nelle quali la funzione assume valore 0.

a b c f1 f2 f3 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0

Page 6: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

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

Ad ogni funzione corrisponde una sola forma SOP ed una sola forma POS, tra loro equivalenti. f SOP POS f1

abc+

abc+

abc (

a + b + c )(

a + b + c )(

a + b + c )(

a + b + c )(

a + b + c )(

a + b + c ) f2

abc (

a + b + c )(

a + b + c )(

a + b + c )(

a + b + c )(

a + b + c )(

a + b + c ) (

a + b + c ) f3

abc+

abc+

abc+

abc+

abc (

a + b + c )(

a + b + c )(

a + b + c ) Si sceglie pertanto tra le due quella che presenta il minor numero di mintermini o di maxtermini: la SOP conviene quando la funzione assume il valore 1 un numero di volte inferiore al valore 0 (primi due casi dell’esempio); conviene la POS in caso contrario (terzo caso in tabella). A titolo di esempio si determinino le due funzioni somma (S) e riporto (R) utili per il calcolo della somma algebrica di due bit. Per la tavola di verità di S si ricorda che essa assume valore 0 quando i due termini sono entrambi uguali, e il valore 1 nel caso hanno valore diverso. La funzione R assume il valore 1 solo quando a e b hanno entrambi valore 1: infatti la somma algebrica di 1+1 in binario è uguale a 0 con riporto 1.

a b S R 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

Le due funzione S ed R sono ottenibili come:

S =

ab+

ab e R = ab Si noti che S = a XOR b e R = a AND b.

Algebra degli insiemi Anche l’algebra degli insiemi è un modello isomorfo all’algebra di Boole nel quale si definiscono:

• l’universo T come insieme contenente un qualsiasi altro insieme, compreso l’insieme che non ha elementi detto insieme vuoto;

• l’unione di A e B come l’insieme di tutti gli elementi appartenenti ad entrambi; • l’intersezione di A e B come l’insieme contenente gli elementi che sono presenti

contemporaneamente in A e B; • la complementazione dell’insieme A come l’insieme di tutti gli elementi dell’universo T che

ad esso non appartengono.

Boole Insiemi Insieme di sostegno

X L’universo del discorso contenente tutti gli insiemi compreso quello vuoto

Τ

somma ⊕ Unione di due insiemi ∪

prodotto ⊗ Intersezione di due insiemi ∩

complemento ¬ Complemento

A

Page 7: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

minimo O Insieme Vuoto ∅

massimo I Insieme Universo T Nell’algebra degli insiemi le relazioni dell'algebra possono essere illustrate su un piano mediante i diagrammi di Venn. In tale rappresentazione gli insiemi vengono rappresentati con figure piane con contorno chiuso e l’insieme T con un rettangolo nel quale sono contenute tutte le altre figure.

A titolo di esempio si nota osservando la figura b) che

AA = T e

AA = φ , ma anche che

AA = A e

AA = A. L’importanza dell’algebra degli insiemi risiede nel teorema di Stone del ’36 secondo cui ogni algebra di Boole è rappresentabile su di un’algebra degli insiemi e quindi dimostrabile mediante i diagrammi di Venn.

Logica delle proposizioni La logica matematica applica il formalismo matematico a processi di logica quali la deduzione e l’induzione. In logica, tra le espressioni linguistiche, sono di particolare interesse le proposizioni, ossia quelle frasi che implicano un valore di verità e falsità: ad esempio la frase “Roma è la capitale d’Italia” è vera. Sono proposizioni variabili quelle frasi per le quali il valore di verità e falsità dipende dal riscontro con il contesto in cui la frase è usata: ad esempio “il docente del corso è giovane” risulta vera o falsa solo dopo aver scoperto l’età del docente. La tautologia è una frase sempre vera; una contraddizione è sempre falsa. Le proposizioni possono solo assumere o il valore vero o il valore falso (in inglese TRUE e FALSE). Nel nostro linguaggio, l’italiano, due o più proposizioni possono essere combinate in proposizioni composte mediante:

• la congiunzione “e” • la disgiunzione “oppure”.

La congiunzione comporta che la proposizione composta è vera solo quando tutte le proposizioni componenti sono vere, in tutti gli altri casi risulta falsa.

“Gli appunti sono completi” e “validi didatticamente” La disgiunzione comporta che la proposizione composta è falsa solo quando tutte le proposizioni componenti sono false, in tutti gli altri casi risulta vera.

“x<a” oppure “x>b”

Page 8: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

Una proposizione può essere negata con il non: la nuova proposizione è falsa se in partenza era vera, è falsa altrimenti.

“oggi non è una giornata fortunata” La logica delle preposizioni è un’algebra di Boole nella quale valgono le definizioni di tabella.

Boole Logica proposizione Insieme di sostegno X Due soli valori di verità {falso,vero}

somma ⊕ Disgiunzione oppure prodotto ⊗ Congiunzione e

complemento ¬ Negazione non minimo O contraddizione falso massimo I tautologia vero

Con le preposizioni si dimostrano le relazioni di De Morgan ragionando sull’appartenenza di un punto ad un intervallo: infatti dire che un punto è interno ad un intervallo equivale a dire che non è esterno ad esso. Allora dati due punti a e b, con a<b, un punto x è interno se:

x>a e x<b mentre un punto y è esterno se:

y<a oppure y>b ma essere interno equivale a non essere esterno, quindi:

x>a e x<b = non (x<a oppure x>b) Poiché:

x>a = non x<a x<b = non x>b

si ha la relazione di De Morgan: non (x<a oppure x>b) = (non x<a) e (non x>b)

L’algebra di Boole è uno strumento algebrico per trattare le proprietà logiche delle proposizioni: i procedimenti della logica che consentono di trarre conclusioni da alcune premesse sono ricondotti a formulazioni algebriche e dimostrazioni matematiche. Infatti ogni proposizione diventa un letterale che assume uno dei due valori di verità e le proposizioni composte sono funzioni logiche definite dalle loro tavole di verità. Per semplicità di notazione si è soliti o abbreviare Falso e Vero con F e V, o usare al loro posto la codifica binaria associando al primo il valore 0 e al secondo 1. Anche per gli operatori si è soliti adottare la stessa notazione introdotta nell’algebra binaria. La logica delle proposizioni è importante perché consente di studiare la correttezza della formulazione delle condizioni usate negli algoritmi (e quindi nei programmi) per controllare il flusso di esecuzione. Infatti una condizione è una espressione logica desunta da proposizioni che caratterizzano lo svolgimento di parti dell’algoritmo. Ad esse si arriva analizzando frasi in cui alcune proposizioni implicano il valore di verità di altre proposizioni. Frasi tipiche sono:

• l’azione A deve essere eseguita se condizione è vera; • l’azione A deve essere ripetuta se condizione è falsa; • l’azione A deve continuare mentre la condizione è vera.

Ad esempio si considerino i due predicati: • x: “batteria carica” • y: “serbatoio vuoto”.

Si studi la condizione f : “il motore si accende” se “batteria carica” oppure “serbatoio vuoto”

x y f

Page 9: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

F F F F V V V F V V V V

Dalle righe della tavola di verità si evince: • riga 1: il motore non si accende quando la batteria non è carica e il serbatoio non è vuoto; • riga 2: il motore si accende quando la batteria non è carica e il serbatoio è vuoto; • riga 3: il motore si accende quando la batteria è carica e il serbatoio non è vuoto; • riga 4: il motore si accende quando la batteria è carica e il serbatoio è vuoto.

Si noti che solo la terza riga riporta una condizione corretta della realtà: da essa si ricava la corretta condizione di accensione del motore:

“il motore si accende” se “batteria carica” e non “serbatoio vuoto”

Logica delle reti Con la logica delle reti si studia il comportamento di un sistema di interconnessioni esistente tra due punti A e B al fine di determinare se tra di essi esiste un flusso. Le parti della rete sono tratte che collegano tra loro due punti. Le tratte possono essere disposte in modo che il punto terminale della prima coincida con quello iniziale della seconda oppure affiancandole mediante il congiungimento dei punti di ingresso e di uscita: nel primo caso si dice che le due tratte sono state disposte in sequenza, nel secondo si dice che sono in parallelo. Una tratta nella quale esiste sempre un flusso viene detta ON, si dice OFF una tratta nella quale il flusso si interrompe. Inoltre il flusso in una tratta può essere regolato da interruttore che pone in ON o in OFF la tratta stessa. Una sequenza di due tratte con interruttori è ON solo se i due interruttori sono entrambi ON; un parallelo delle stesse tratte è invece OFF solo se gli interruttori sono entrambi OFF. Sono alcuni esempi di reti le reti idriche, autostradali e i circuiti elettrici. Se ad ogni tratta viene associata una variabile vi che assume valori OFF ed ON, la funzione y=f(v1,v2,…vn) studia se esiste trasmissione tra i punti di ingresso ed uscita della rete. Una rete siffatta è un modello di algebra di boole nel quale l’operatore di somma è il parallelo di tratte e il prodotto la sequenza di tratte.

Boole Logica delle reti Insieme di sostegno X Presenza o meno di

trasmissione {OFF, ON}

somma ⊕ Tratte in parallelo | |

prodotto ⊗ Tratte in sequenza

complemento ¬ Passaggio da ON a OFF e viceversa

NOT

minimo O Assenza di flusso OFF massimo I Presenza di flusso ON

Nel caso di circuiti elettrici la condizione di OFF corrisponde ad un circuito aperto, e quella di ON ad uno chiuso: condizioni che determinano il transito di corrente.

Page 10: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

Affinchè la lampadina della figura possa accendersi la funzione:

((a(b+c))+((e+g)f))d deve essere ON.

Reti combinatorie e sequenziali Il lavoro di Boole caratterizzò fortemente il pensiero matematico del '900 ma solo nel 1938 Claude Shannon dimostrò che la logica simbolica di Boole poteva essere usata per rappresentare le funzioni degli interruttori nei circuiti elettronici divenendo la base della progettazione dell'elettronica digitale. Nella elettronica analogica le variabili elettriche, tensioni e correnti, presenti in un circuito sono funzioni continue, non necessariamente lineari, delle grandezze fisiche che rappresentano; nei circuiti elettronici digitali invece le variabili elettriche assumono solo due valori discreti, corrispondenti per esempio ad un valore di tensione uguale o a 5 Volt o a -5 Volt. Se tali valori si associano ai bit, allora un circuito elettronico digitale è un dispositivo che riceve in ingresso dei segnali binari producendo in uscita altri segnali binari. La trasformazione dei segnali dall’ingresso all’uscita rappresenta il primo esempio di calcolo automatico in quanto evolve senza alcun intervento umano.

Le porte logiche Le porte (in inglese gate) sono i componenti di base con cui costruire un qualsiasi circuito digitale. Una porta presenta più ingressi xi ma una sola uscita che è una funzione logica y=f(x1,x2,..,xn). Il numero degli ingressi di una porta è detto fan-in, il fan-out è il numero di collegamenti che si possono attestare sull’unica uscita. Collegando tra loro le uscite di una porta con gli ingressi di altre porte si costruisce un circuito che si comporta logicamente. Come tutti i circuiti anche quelli digitali eseguono la trasformazione con un tempo che dipende dalle tecnologie utilizzate: tale tempo misura il ritardo introdotto dal circuito per produrre il segnale in uscita a partire dalla disponibilità dei segnali in ingresso. Più questo ritardo è piccolo, maggiore è la velocità di calcolo mostrata dal circuito. Oggi con le moderne tecnologie VLSI (very large scale integration) che usano piastrine di silicio (in inglese chip), contenenti su dimensioni microscopiche milioni di porte logiche, si raggiungono tempi di calcolo uguali a frazioni di secondo.

Page 11: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

Le porte logiche fondamentali sono quelle che realizzano le funzioni OR, AND e NOT. Ad esse si aggiungono anche le porte NAND e NOR. Ad ognuna di esse si associa un simbolo grafico per agevolare la comprensione dello schema dei circuiti.

NOT o inverter AND OR NAND NOR In figura è riportato il circuito della funzione equivalence EQV =

ab + ab

L’importanza delle porte NAND e NOR deriva dal fatto che un qualsiasi circuito digitale può essere realizzato utilizzando solo porte del primo o del secondo tipo. Dalla osservazione delle loro tavole di verità si ricava che le due porte si comportano da NOT se ai loro ingressi si applica lo stesso segnale.

x y x NAND y x NOR y x x x NAND x x NOR x 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0

1 1 0 0

Circuiti equivalenti Poiché le due relazioni di De Morgan affermano che:

1.

ab = a + b = (a NOR a) NOR (b NOR b) 2.

a + b = ab = (a NAND a) NAND (b NAND b) si dimostra che un qualsiasi circuito si ottiene con sole porte NOR o con sole porte NAND.

Circuiti equivalenti Circuiti equivalenti

Page 12: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

Reti combinatorie Una rete combinatoria è un insieme di porte logiche tra loro interconnesse per realizzare un circuito costituito da n ingressi e m uscite.

Poiché ogni uscita yi è funzione degli n ingressi, la rete combinatoria è descritta da un gruppo di m espressioni logiche. La rete combinatoria realizza quindi l’insieme delle trasformazioni descritte dalle singole espressioni logiche secondo la funzione Z=F(X) con la quale alle 2n combinazioni dei valori di ingresso corrisponde la combinazione dei valori delle m uscite. La funzione F viene rappresentata mediante una tabella che è detta tabella di transizione. Si costruisca un addizionatore binario che calcoli la somma algebrica di due bit a e b e di un eventuale riporto r; come risultato si abbia il bit di somma s e il nuovo riporto r’.

a b r s r’ 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Dalla tabella di transizione si ricava una implementazione del circuito: •

s = (a + b + r)(a + b + r)(a + b + r)(a + b + r) •

r'= abr + abr + abr + abr

Si noti che nel disegno sono state introdotte, per semplificare lo schema, porte logiche con fan-in maggiore di due: si può facilmente dimostrare che:

• abc = (ab)c • a+b+c = (a+b)+c

Page 13: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

• abcd = ((ab)c)d • a+b+c+d = ((a+b)+c)+d

che utlizzano porte logiche con soli due ingressi.

Reti sequenziali Con le reti combinatorie una qualsiasi funzione aritmetico-logica può essere realizzata seppur con un gran numero di porte logiche; inoltre il valore delle uscite al tempo t dipende solo dal valore dei segnali di ingresso al tempo t-d dove d è il ritardo della rete e il ripetersi di una eguale configurazione di ingresso produce sempre la medesima risposta delle uscite. Una rete combinatoria non è in grado di realizzare una delle funzionalità più importanti per un calcolatore elettronico, cioè la possibilità di memorizzare l’informazione e di usarla per le successive elaborazioni. Serve allora una rete capace di evolvere ad ogni istante ricordando quanto calcolato nell’istante precedente. Le reti sequenziali sono reti logiche nelle quali il valore dei segnali dell'uscita ad un certo istante t dipende non solo dallo stato degli ingressi in quello stesso istante, ma anche dagli stati degli ingressi precedenti. Pertanto è necessario che la rete abbia memoria della storia passata per far sì che il comportamento ingresso/uscita ne venga condizionata. Una rete sequenziale si realizza con una rete combinatoria nella quale un dispositivo di memoria riporta in ingresso una parte dei segnali di uscita. La retroazione deve consentire che i segnali prodotti in uscita si ripresentino all’ingresso in un istante successivo per determinare il nuovo valore dell’uscita.

Il dispositivo di memoria nel presentare i segnali all’ingresso introduce uno specifico ritardo: la rete può quindi evolvere facendo sì che in ingresso i segnali si presentino con una frequenza che sfrutti proprio tale ritrado affinchè le uscite siano funzione degli ingressi allo stesso istante e delle uscite dell’istante precedente. Reti di questo tipo vengono dette asincrone per distinguerle da quelle sincrone nelle quali il comportamento è regolato da un segnale che scandisce il tempo ad intervalli prefissati. Caratteristiche di tale segnale, che viene detto clock, sono proprio il suo periodo T, ossia l’intervallo di tempo dopo il quale si ripresenta, o la sua frequenza che misura il numero di periodi nell’unità di tempo (1/T) e si misura in Herz.

Page 14: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

Gli impulsi del clock fissano il tempo in cui la rete produce l’uscita sulla base degli ingressi e dei valori retrozionati dalla memoria. A titolo di esempio si calcoli la somma algebrica di due byte eseguendo in sequenza la somma di due bit alla volta a partire da quelli di peso meno significativo. Si realizzi la somma con una rete sequenziale sincrona basata sul semplice addizionatore operante su due bit a cui sia stata aggiunta la retroazione del bit di riporto: in tale modo alla somma di due bit partecipa il riporto prodotto dalla somma dei bit precedenti.

La tabella riporta quanto calcolato dall’automa ad ogni colpo di clock.

Clock Uscita T1 B10+B20+r0 T2 B11+B21+r(B10+B20) T3 B12+B22+r(B11+B21) T4 B13+B23+r(B12+B22) T5 B14+B24+r(B13+B23) T6 B15+B25+r(B14+B24) T7 B16+B26+r(B15+B25) T8 B17+B27+r(B16+B26)

con r0 che all’avvio deve assumere il valore zero. Una rete sequenziale viene a trovarsi in ogni istante in una configurazione che dipende dalla sua storia, ossia dalla sua evoluzione automatica iniziata con il suo avvio. La rete può essere quindi descritta attraverso tutti gli stati assunti così come si sono susseguiti nel tempo e dalle sollecitazioni che ne hanno comportato il passaggio da uno stato al successivo. La rete viene anche detta macchina sequenziale per la somiglianza con le macchine meccaniche nelle quali lo stato è memorizzato dalla posizione degli ingranaggi. Una macchina sequenziale è allora rappresentata da:

• l’insieme S degli stati che essa assume; • l’insieme I degli ingressi; • l’insieme U delle uscite; • la funzione fs di transizione da uno stato al successivo; • la funzione fu di definizione delle uscite.

Esistono due modelli tra loro equivalenti che consentono di studiare il comportamento di una macchina sequenziale: secondo il modello di Mealy il sistema di equazioni logiche che la descrivono è:

S (t + 1) = fS (I (t), S (t)) U (t) = fu (I (t), S (t))

secondo invece Moore è:

S (t + 1) = fS (I (t), S (t)) U (t) = fu (S (t))

con t e (t+1) che indicano convenzionalmente due intervalli di tempo successivi. Le reti sequenziali si comportano come degli automi che potendo assumere un insieme finito di

Page 15: L'algebra di Boole - unina.stidue.netunina.stidue.net/Fondamenti di Informatica/Materiale/1. C plus plus... · • l'operatore somma si ottiene da una espressione in cui compaiono

stati evolvono ad intervalli di tempo regolari ricevendo informazioni in ingresso che in base allo stato in cui si trovano, provvedono sia a generare un uscita che a (eventualmente) cambiare il proprio stato.