F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This...

15
Walter Ruggeri (wruggeri) FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 16 June 2018 PRESENTAZIONE Benvenuto, affezionato lettore! Quello che hai davanti è il secondo articolo del ciclo relativo ai metodi formali (se non hai ancora letto il primo, puoi farlo qui ); precisamente, con questo e con il prossimo articolo ci occuperemo di una trattazione essenziale della logica proposizionale, la quale vedremo prima come sistema algebrico e poi come linguaggio formale. Si tratta di un argomento fondamentale nel nostro percorso sui metodi formali, perché ci permette di vedere un primo esempio di linguaggio adatto alla modellazione dei sistemi e alla scrittura delle condizioni che si desidera essi rispettino; nello specifico, vedremo direttamente come utilizzare la formulazione algebrica della logica proposizionale per modellare semplici circuiti digitali, e indirettamente valuteremo come scrivere delle condizioni mentre tratteremo la definizione "linguistica" della logica. Questo articolo non presuppone che il lettore abbia competenze specifiche se non quelle minime acquisite nell'ambito delle scuole superiori o equipollenti, per cui in linea di principio dovrebbe essere fruibile da chiunque; in ogni caso, chi ne avesse bisogno è caldamente invitato ad avvalersi di un qualsiasi testo di analisi matematica di base (faccio un po' di campanilismo e consiglio [CanutoTabacco14], ma qualsiasi testo va bene) per un breve ripasso degli elementi fondamentali sulle funzioni. Bene, cominciamo. INTRODUZIONE Prima di iniziare: strutture algebriche Prima di addentrarci nell'analisi dell'algebra di commutazione, una breve spiegazione informale: quando definiamo delle cosiddette strutture algebriche, in realtà ciò che stiamo facendo è più o meno prendere un insieme di valori (un dominio, in termini tecnici) e delle operazioni su quei valori, un po' come si fa alle scuole elementari quando impariamo i numeri naturali e le quattro operazioni fondamentali. Precisamente, ai fini di questo articolo ci occupiamo di strutture algebriche chiuse, ovvero tali che l'esecuzione delle operazioni tra elementi del dominio risulti in altri elementi del dominio; non sempre, però, le strutture algebriche sono chiuse: basti pensare che, per esempio, l'insieme dei numeri naturali non può definirsi chiuso rispetto alla sottrazione, perché l'operazione 2 − 3 non produce un numero naturale. L'approfondimento teoretico delle strutture e delle loro proprietà esula dagli scopi di questo ELECTROYOU.IT FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 1

Transcript of F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This...

Page 1: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

Walter Ruggeri (wruggeri)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE

16 June 2018

PRESENTAZIONE

Benvenuto, affezionato lettore! Quello che hai davanti è il secondo articolo del ciclo relativo ai

metodi formali (se non hai ancora letto il primo, puoi farlo qui); precisamente, con questo e con il

prossimo articolo ci occuperemo di una trattazione essenziale della logica proposizionale, la quale

vedremo prima come sistema algebrico e poi come linguaggio formale. Si tratta di un argomento

fondamentale nel nostro percorso sui metodi formali, perché ci permette di vedere un primo

esempio di linguaggio adatto alla modellazione dei sistemi e alla scrittura delle condizioni che

si desidera essi rispettino; nello specifico, vedremo direttamente come utilizzare la formulazione

algebrica della logica proposizionale per modellare semplici circuiti digitali, e indirettamente

valuteremo come scrivere delle condizioni mentre tratteremo la definizione "linguistica" della

logica.

Questo articolo non presuppone che il lettore abbia competenze specifiche se non quelle minime

acquisite nell'ambito delle scuole superiori o equipollenti, per cui in linea di principio dovrebbe

essere fruibile da chiunque; in ogni caso, chi ne avesse bisogno è caldamente invitato ad avvalersi

di un qualsiasi testo di analisi matematica di base (faccio un po' di campanilismo e consiglio

[CanutoTabacco14], ma qualsiasi testo va bene) per un breve ripasso degli elementi fondamentali

sulle funzioni.

Bene, cominciamo.

INTRODUZIONE

Prima di iniziare: strutture algebriche

Prima di addentrarci nell'analisi dell'algebra di commutazione, una breve spiegazione informale:

quando definiamo delle cosiddette strutture algebriche, in realtà ciò che stiamo facendo è

più o meno prendere un insieme di valori (un dominio, in termini tecnici) e delle operazioni

su quei valori, un po' come si fa alle scuole elementari quando impariamo i numeri naturali

e le quattro operazioni fondamentali. Precisamente, ai fini di questo articolo ci occupiamo di

strutture algebriche chiuse, ovvero tali che l'esecuzione delle operazioni tra elementi del

dominio risulti in altri elementi del dominio; non sempre, però, le strutture algebriche sono chiuse:

basti pensare che, per esempio, l'insieme dei numeri naturali non può definirsi chiuso rispetto alla

sottrazione, perché l'operazione 2 − 3 non produce un numero naturale.

L'approfondimento teoretico delle strutture e delle loro proprietà esula dagli scopi di questo

ELECTROYOU.IT

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 1

www.princexml.com
Prince - Non-commercial License
This document was created with Prince, a great way of getting web content onto paper.
Page 2: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

articolo: si rimanda, per approfondimenti (consigliati, comunque, solo a chi sia già forte di solide

basi matematico-logiche), a testi come[Hodges97] o (da un punto di vista più "matematico" e

meno "logico") [Bourbaki89]; noi seguiremo un approccio molto più elementare, così da poter

comprendere i concetti fondamentali senza dover ricorrere a strumenti particolarmente avanzati.

Le proprietà fondamentali

Andando a noi, l'algebra di commutazione è identificata dal suo dominio e da tre operazioni di

base; formalmente, si scrive che l'algebra di commutazione è definita dalla tupla

, dove S = {0,1} è il dominio dell'algebra e i tre simboli successivi sono le tre operazioni, ovvero

l'operazione binaria di congiunzione , l'operazione binaria di disgiunzione + e l'operazione

unaria di negazione . Per indicare le tre operazioni, esistono delle scritture alternative che è

importante conoscere:

• Visto che il simbolo della congiunzione è analogo a quello del prodotto, può essere

omesso: è spesso scritto come xy. Un'altra simbologia, molto usata nell'ambito della

logica, è .

• Per indicare la negazione, spesso si scrive non , bensì (e noi faremo proprio così);

alternativamente, certuni preferiscono indicare come x'.• Per indicare la disgiunzione, si usa (soprattutto nell'ambito della logica) anche il simbolo

.

Le operazioni fondamentali godono di importanti proprietà:

• La congiunzione è un'operazione commutativa, ovvero , e il suo elemento

neutro è il valore 1, ovvero . Ogni elemento x ammette un complementare

rispetto alla congiunzione, ovvero un elemento indicato con (si, esatto: è proprio la

negazione dell'elemento di partenza!) e tale che .

• La disgiunzione è un'operazione commutativa, ovvero x + y = y + x e il suo elemento

neutro è il valore 0, ovvero x + 0 = x. Ogni elemento x amette un complementare rispetto

alla disgiunzione, ovvero l'elemento (anche qui, ci riferiamo proprio alla negazione

dell'elemento di partenza) e tale che .

La congiunzione e la disgiunzione sono legate da un principio importantissimo, detto principio di

dualità, il quale stabilisce che qualsiasi proprietà derivata da quelle fondamentali (ovvero, quelle

che abbiamo appena elencato) per una delle due operazioni vale anche per l'altra sostituendo

un'operazione con l'altra e gli 1 con gli 0 (o viceversa, gli 0 con gli 1); alcune proprietà che

rispettano il principio di dualità sono:

• La proprietà di idempotenza x + x = x, la cui duale è .

• La proprietà di assorbimento , la cui duale è .

• La proprietà di associatività x + (y + z) = (x + y) + z, la cui duale è

.

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 2

Page 3: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

• Le due leggi di De Morgan, che sono una la duale dell'altra: e

.

Introduciamo ora un piccolo supplemento di notazione, così da poter semplificare la scrittura di

certe formule avvalendoci di sintassi molto usate:

• La formula è comunemente scritta come , e si dice che x implica y.• La formula è comunemente scritta come , e si parla di

disgiunzione esclusiva tra le due variabili. Nota a margine: avremmo potuto evitare

le parentesi, perché la congiunzione ha la precedenza sulla disgiunzione (e la negazione

ha la precedenza sulla congiunzione, per la cronaca), ma le abbiamo scritte lo stesso per

miglior leggibilità.

• La formula , ovvero la formula , è indicata anche

come , e si dice che le variabili sono coimplicate.

Queste che abbiamo appena visto vengono comunemente annoverate come "operazioni derivate",

e noi le tratteremo come tali; non si dimentichi mai, però, che esse non sono a rigore operazioni

dell'algebra di commutazione: si tratta semplicemente di notazioni abbreviate per espressioni

basate sulle tre "vere" operazioni dell'algebra.

Una precisazione terminologica

Leggendo fin qui, il lettore "informato" si sarà chiesto "algebra di commutazione? Ma non si

chiamava algebra booleana?". A questo lettore è importante dare risposta, perché egli non sia

confuso dalla nostra trattazione: l'algebra che stiamo trattando si chiama davvero algebra di

commutazione... ed è un'algebra booleana!

Il punto fondamentale della questione è il seguente: si definisce algebra booleana una tupla

, dove S è il dominio dell'algebra, i tre simboli successivi sono tre operazioni

fondamentali (binarie le prime due, unaria la terza) e gli ultimi due simboli sono degli elementi

notevoli del dominio; le tre operazioni citate godono di tutte le proprietà che abbiamo già visto

per l'algebra di commutazione. Ma dove sta, quindi, il trucco? È presto detto: l'algebra di

commutazione è la particolare algebra booleana in cui S = {0,1}, le tre operazioni assumono

i nomi che abbiamo visto prima e i due simboli notevoli sono di fatto gli unici elementi del

dominio (per questo, nella definizione data all'inizio, li abbiamo omessi); si noti però che l'algebra

di commutazione non è ovviamente l'unica algebra booleana possibile: se prendiamo un qualche

insieme X, per esempio, e poniamo che:

• , dove è l'insieme delle parti di X.

• L'operazione è l'operazione di intersezione insiemistica, l'operazione + è l'operazione di

unione insiemistica e l'operazione è l'operazione di complementazione insiemistica.

• Il simbolo 0 indica l'insieme vuoto, mentre il simbolo 1 indica l'intero insieme X.

Otteniamo un'altra algebra booleana, la quale lavora sui sottoinsiemi dell'insieme-universo X.

Potrebbe essere un interessante esercizio per il lettore riflettere sul significato delle proprietà già

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 3

Page 4: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

discusse se inserite in una simile algebra.

Dopo aver risposto al lettore curioso che come un novello Diogene cercava l'algebra booleana, ci

permettiamo un'ultima precisazione, dopo la quale riprenderemo la trattazione: in questo articolo,

useremo tranquillamente termini "booleani" per parlare della sola algebra di commutazione,

ovvero parleremo, ad esempio, di "variabili booleane" invece che di "variabili dell'algebra di

commutazione": dato quanto abbiamo appena discusso, senz'altro il lettore non avrà difficoltà a

capire che, per ciò che ci interessa, non c'è differenza.

IL LINGUAGGIO DELL'ALGEBRA

Espressioni e formule

Torniamo a noi, e definiamo ciò che più ci interessa: come esprimere i concetti utilizzando il

linguaggio dell'algebra di commutazione. Il punto di partenza è costituito dalle variabili, che

possiamo identificare con i simboli che vogliamo (x o y, ad esempio), e dalle costanti, che dato

il nostro dominio possono essere solo 0 o 1. Questi elementi, benchè elementari, sono in realtà

tutto ciò che ci serve, perché possiamo concatenarli con le operazioni fondamentali per ottenere

le formule booleane, che sono in pratica le nostre "frasi" nel linguaggio dell'algebra di

commutazione. Formalmente, definiamo le formule booleane per induzione, in questo modo:

• Un elemento del dominio dell'algebra costituisce un'espressione booleana.

• Una variabile booleana costituisce un'espressione booleana.

• La congiunzione di espressioni booleane è un'espressione booleana.

• La disgiunzione di espressioni booleane è un'espressione booleana.

• La negazione di un'espressione booleana è ancora un'espressione booleana.

Questa modalità di definizione è molto potente, perché ci permette non solo di capire quali

sequenze di simboli rispettano la definizione e quali no, ma anche di intendere come costruire le

formule booleane.

Ora, poniamoci una domanda: possiamo tradurre delle espressioni booleane in una nuova

espressione booleana? In altri termini, possiamo dire in qualche modo che un'espressione

booleana è funzione di altre espressioni booleane? Banalmente, la risposta è si: possiamo infatti

definire le funzioni booleane , le quali prendono come parametri n variabili

booleane e forniscono in uscita un valore del dominio dell'algebra (ovviamente, nulla ci impedisce

di definire funzioni a più uscite ; noi ci limitiamo a quelle con una sola uscita per

semplicità); come le formule, anche le funzioni sono definite per induzione:

• La funzione f(x1,...,xn) = k con è una funzione booleana.

• La funzione f(x1,...,xn) = xi con è una funzione booleana.

• La congiunzione, la disgiunzione e la negazione di funzioni booleane è a sua volta una

funzione booleana.

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 4

Page 5: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

Tabelle di verità: arriva la logica

Alle funzioni booleane è connesso un concetto fondamentale: quello di tabella di verità. Data

una funzione booleana, la sua tabella di verità (il cui nome ha un'origine che sarà intuitivamente

chiara tra poco) descrive sostanzialmente quali valori dei suoi parametri producano in uscita un 1e quali uno 0. Possiamo utilizzare le tabelle di verità per dare un senso alle operazioni dell'algebra,

ovvero per dare una semantica al linguaggio la cui sintassi è data dall'algebra di commutazione;

vedremo per esteso il caso della disgiunzione, mentre per le altre operazioni daremo solo le tabelle

di verità e l'interpretazione.

Prendiamo la funzione f(x,y) = x + y, della quale sappiamo, dalle proprietà fondamentali, che, se

y = x allora x + y = x, mentre se y = 0 allora x + y = x, ed egualmente se x = 0 allora x + y = y.Compiliamo la tabella di verità:

x y f(x,y)0 0 0

1 0 1

0 1 1

1 1 1

Notiamo ora un dettaglio: se poniamo che x e y indichino frasi minime ("la pianta è secca", ad

esempio), che il valore 1 voglia dire che la frase è vera e che il valore 0 voglia dire che la frase è

falsa, la nostra tabella di verità ci dice quando è vera la frase "x o anche y"!

Vediamo un esempio, così ci rendiamo conto:

x = "la pianta è secca"

y = "c'è il sole"

f(x,y) = "la pianta è secca o anche c'è il sole" (orribile da leggere, ma rende l'idea)

Se la pianta è in fiore e piove, ovviamente ci aspettiamo che f(x,y) = 0; ponendo x = y = 0 (com'è

giusto che sia, visto che le due frasi indicate dalle variabili sono false) e guardando la tavola di

verità per la funzione, ci rendiamo conto che effettivamente f(x,y) = 0! Se invece la pianta è secca

e piove, ci aspettiamo che f(x,y) = 1, e ponendo x = 1 e y = 0 notiamo che questo succede;

egualmente, se la pianta è in fiore e c'è il sole, oltre a essere tutti contenti e dotati di pollice verde

ci aspettiamo che f(x,y) = 1, e ponendo x = 0 e y = 1 la tabella di verità ci dice che è così. Ultimo

caso: la pianta è secca e c'è il sole, quindi poniamo x = y = 1 e ci aspettiamo che f(x,y) = 1, come

in effetti la tabella di verità ci dice.

In sostanza, cosa abbiamo ottenuto? Per farla breve, abbiamo visto che la disgiunzione booleana

è un modo formale per esprimere in termini matematici la disgiunzione non esclusiva tra due

frasi minime (o, più esattamente, due proposizioni); in altri termini ed "esagerando" un po' (ma

neanche tanto), abbiamo appena ricavato gli strumenti per ragionare rigorosamente sul senso di

frasi nella forma "x o anche y". Non è poco, soprattutto in tempi come questi in cui tutti si sentono

autorizzati a dire le peggiori cretinate e capire cosa ha senso e cosa no diventa sempre più difficile.

Passiamo alle altre operazioni:

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 5

Page 6: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

• La congiunzione esprime la frase "x e y", e la sua tabella di verità (che

i più volenterosi potrebbero cercare di derivare: è un esercizio semplice ma istruttivo) è

ovviamente la seguente:

x y f(x,y)0 0 0

1 0 0

0 1 0

1 1 1

• La negazione esprime (probabilmente l'avevate già capito) la frase "non è vero

che x", e la sua tabella di verità è banale:

x f(x,y)0 1

1 0

• L'implicazione esprime la frase "se x allora y". Prima di presentare la

tabella di verità, riflettiamo un attimo sul valore dell'implicazione nel linguaggio naturale:

se la premessa di un'implicazione è vera, ci aspettiamo che lo sia anche la conseguenza,

dunque un'implicazione è vera se lo sono sia la premessa che la conseguenza, mentre

è falsa se la premessa è vera e la conseguenza non lo è; se la premessa è falsa, invece,

ci aspettiamo che anche la conseguenza lo sia, dunque un'implicazione in cui siano

entrambe false è perfettamente verificata; tuttavia, non possiamo dire che

un'implicazione in cui la premessa sia falsa e la conseguenza vera risulti falsa a sua volta,

perché non sappiamo se la nostra conseguenza possa derivare anche da premesse diverse

dalla nostra, quindi la nostra implicazione rimane perfettamente valida. Il risultato della

nostra riflessione è ben espresso dalla tabella di verità:

x y f(x,y)0 0 1

1 0 0

0 1 1

1 1 1

• La disgiunzione esclusiva esprime la frase "x oppure y, ma non

entrambe", e la sua tabella di verità è:

x y f(x,y)0 0 0

1 0 1

0 1 1

1 1 0

• La coimplicazione indica la frase "x equivale a y", ovvero "dire che xequivale a dire che y", e la sua tabella di verità è la seguente:

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 6

Page 7: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

x y f(x,y)0 0 1

1 0 0

0 1 0

1 1 1

Dopo questi ragionamenti, non può non apparirci ovvio un fatto fondamentale: l'algebra di

commutazione ci da la possibilità di esprimere formalmente una certa parte del nostro linguaggio e

di ragionare su di essa. Non serve conoscere il greco antico per capire che questa è sostanzialmente

la definizione di "λογική", che in italiano rendiamo con "logica": il linguaggio che ha per sintassi

l'algebra di commutazione e per semantica le tabelle di verità è una logica, e precisamente la

cosiddetta logica proposizionale, che sarà oggetto del prossimo articolo.

Andiamo all'elettronica

Oltre che per discutere parte del nostro linguaggio naturale, l'algebra di commutazione può essere

usata per rappresentare i circuiti digitali. Essi, infatti, sono composti da blocchi elementari, detti

porte logiche (a loro volta costituite da transistor... ma non divaghiamo: per i nostri scopi, cosa

c'è dentro le porte logiche non è importante), i quali implementano (lo dice il nome!) esattamente

le operazioni logiche, ovvero le operazioni dell'algebra di commutazione. La corrispondenza

operazione-porta è così definita:

Proviamo a costruire noi un circuito logico partendo dalla funzione

: anzitutto, ci occorre calcolare la disgiunzione di x e y:

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 7

Page 8: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

Poi, dobbiamo congiungere il risultato di questo calcolo a z:

Infine, dobbiamo calcolare la disgiunzione tra quanto ottenuto e :

Fatto: abbiamo ricavato il circuito descritto da f(x,y,z).

Un'altra riflessione, questa volta sui circuiti

A questo punto, dobbiamo precisare un dettaglio molto importante: le funzioni booleane

descrivono opportunamente solo i circuiti combinatori, ovvero quelli che implementano

funzioni in cui l'uscita dipende solo dall'ingresso corrente; per i circuiti sequenziali, i quali

implementano funzioni "con memoria", il formalismo è un altro, e ne parleremo qui brevemente.

Prendiamo uno dei più semplici circuiti sequenziali: il latch SR. Esso è così composto:

Vediamo un attimo come funziona dandogli una sequenza di input:

1. Se poniamo R = S = 1, entrambe le porte hanno l'uscita a 0, quindiQ = 0.

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 8

Page 9: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

2. Se a questo punto poniamo R = 0, otteniamo Q = 1 (ricordiamo la tabella di verità della

porta NOR!).

3. Se torniamo a R = S = 1, abbiamo di nuovoQ = 0.

4. Se a questo punto poniamo S = 0, l'uscita non cambia: la porta in basso ha due 0 in

ingresso e dunque produce un 1, ovvero la porta in alto si trova in ingresso due 1 e

continua a produrreQ = 0.

Questi quattro passi ci fanno notare una cosa fondamentale: partendo dallo stesso stato iniziale,

ovvero R = S = 1, azioni diverse portano il circuito in stati diversi. Per descrivere il circuito, noi

dobbiamo essere in grado di descrivere questi stati e come sono collegati tra loro.

Come fare? Ci viene in aiuto una branca dell'informatica teorica (e della matematica discreta), la

cosiddetta "teoria degli automi", la quale ci permette di derivare il modello che ci serve, chiamato

macchina a stati finiti. Questo modello è descritto dalla tupla (I,O,S,δ,λ,S0), dove I è detto

alfabeto d'ingresso, O è l'alfabeto d'uscita, S è l'insieme degli stati, è la

funzione di transizione tra gli stati, λ è la funzione che determina il valore dell'uscita del circuito

e è lo stato iniziale della macchina (in realtà possono essercene molteplici, ma nei circuiti

digitali di solito ne abbiamo uno, quindi accontentiamoci di un modello siffatto). Se λ dipende solo

dallo stato corrente, ovvero , la macchina a stati finiti è una macchina di Moore;

se invece λ dipende anche dall'ingresso, ovvero , la macchina a stati finiti è una

macchina di Mealy.

Per il momento, questo è tutto ciò che abbiamo da dire sulle macchine a stati finiti: oggi dobbiamo

parlare dell'algebra di commutazione, e conviene che non si divaghi troppo. Torneremo sui modelli

per circuiti sequenziali in seguito.

MINIMIZZAZIONE

Di cosa parliamo?

Abbiamo analizzato espressioni e funzioni booleane, e abbiamo dato loro un senso; a questo punto,

ci chiediamo: queste entità, le funzioni e le espressioni, sono uniche? In altri termini, possiamo

rappresentare la stessa funzione in più modi? E soprattutto, se possiamo, come scegliamo il modo

migliore?

Non perdiamo tempo, e rispondiamoci subito: si, è possibile rappresentare la stessa funzione

(o espressione; per semplicità, nel seguito parleremo solo di funzioni, ma l'applicabilità alle

espressioni è oltre la banalità) in più modi diversi, e ovviamente è possibile identificare una

rappresentazione migliore delle altre, posto che definiamo un'opportuna metrica per valutare

la qualità di ciascuna. Visto che nessuno ha voglia di operare con espressioni lunghe, e visto

che noi dobbiamo modellare (anche) circuiti digitali, dove diminuire gli ingressi può presentare

vantaggi non indifferenti, sceglieremo come metrica la minimizzazione del numero di variabili (più

propriamente, di letterali... ma ci arriviamo tra poco).

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 9

Page 10: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

Un po' di teoria

Iniziamo con una definizione utile per il seguito: data una variabile booleana x, si dicono suoi

letterali se stessa e la propria negazione . Formalmente, un letterale è definito come l = <nome,valore > , dove il primo parametro è il nome della variabile cui fa riferimento e il secondo

definisce se la variabile è negata o no: i due letterali associati a x sono x = < x,1 > (letterale

naturale) e (letterale negato).

Notiamo ora un dettaglio fondamentale: data una funzione booleana, non sempre è necessario

assegnare un valore a tutte le sue variabili: può capitare che basti dare un valore solo ad alcune di

esse per sapere quale valore assumerà a sua volta la funzione. Prendiamo, ad esempio, la funzione

f(x,y,z) = x + yz: se poniamo x = 1, possiamo anche disinteressarci dei valori delle altre variabili,

perché certamente la nostra funzione varrà 1. A questo comportamento sono legate due definizioni

interessanti, che adesso vediamo:

• Chiamiamo implicante una congiunzione di letterali il cui stato sia sufficiente a far

valere 1 la funzione, e in particolare implicante primo un implicante contenente il

minor numero possibile di letterali. In altri termini, un implicante è una congiunzione

contenente, per ognuna delle variabili "necessarie" al fine di definire il valore della

funzione, il suo letterale naturale se tale variabile deve valere 1, il suo letterale negato

altrimenti. Per esempio, nella nostra funzione di prima un possibile implicante potrebbe

essere x, mentre nella funzione un implicante sarebbe . Un

implicante che coinvolge tutte le variabili della funzione è un mintermine.

• Chiamiamo implicato una disgiunzione di letterali il cui stato sia sufficiente a far valere

0 la funzione, e in particolare implicato primo un implicato contenente il minor

numero possibile di letterali. Per esempio, nella nostra funzione di prima un possibile

implicato potrebbe essere . Un implicato che coinvolge tutte le variabili della

funzione è un maxtermine.

Partendo da queste definizioni, valuteremo due possibili metodi di minimizzazione delle funzioni

booleane.

Forme canoniche

Il primo metodo che vediamo è puramente meccanico, e si basa sull'applicazione ripetuta delle

proprietà delle formule booleane. Per poter applicare profittevolmente questo metodo, però, ci

occorre rappresentare la funzione in modo opportuno; ci viene in aiuto il fondamentale teorema

di espansione di Shannon (chiamato così anche se in realtà la sua formulazione si deve a

Boole), secondo il quale una generica funzione booleana f(x1,x2,...,xn) può essere riscritta in una

tra due forme:

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 10

Page 11: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

L'applicazione iterativa della prima scrittura a una funzione booleana conduce ad un'espressione

del tipo:

La quale può essere semplificata notando che in alcuni dei prodotti il termine f(...) (detto

discriminante della funzione) vale senz'altro 0; il risultato della semplificazione così realizzata è

la prima forma canonica della funzione, la quale risulta di fatto una disgiunzione di tutti i suoi

mintermini. Partendo da questa espressione e applicando le proprietà che abbiamo già studiato (o

altre che possiamo ricavare da esse), è possibile giungere alla semplificazione della funzione.

Applicando iterativamente la seconda scrittura, invece, otteniamo un'espressione del tipo:

Valutando i discriminanti, possiamo determinare senz'altro che alcuni valgono 1, e dunque

possiamo eliminare le relative disgiunzioni; la semplificazione siffatta conduce alla seconda

forma canonica della funzione, la quale risulta una congiunzione di tutti i suoi maxtermini. Vale

quanto detto prima: partendo da questa forma e applicando le proprietà note, è possibile giungere

alla semplificazione della funzione.

A margine, una piccola nota: ovviamente, nulla ci impedisce di provare ad applicare le proprietà

algebriche direttamente sulla funzione "non espansa", ma la rappresentazione canonica rende più

immediato capire quali proprietà possono essere applicate e dove.

Concludiamo questa sezione proponendo un utile esercizio: partendo dalla funzione

, il lettore provi a sviluppare le due forme canoniche e poi, da esse, torni

all'espressione originale. La soluzione è disponibile in [BBSS04], ma si consiglia al lettore di

controllarla solo dopo aver risolto l'esercizio da sè.

Mappe di Karnaugh

Passiamo ad un approccio totalmente diverso, basato sul concetto di distanza di Hamming tra

due sequenze di letterali: è così detto il numero di letterali differenti tra la prima e la seconda

sequenza; ad esempio, e xyz hanno distanza di Hamming 1. Perché ci interessa la distanza di

Hamming? È presto detto: due termini a distanza di Hamming unitaria differiscono per il letterale

associato a una sola variabile, che in uno dei termini è negata e nell'altro non lo è, quindi potrebbe

essere possibile semplificarli applicando le proprietà fondamentali che abbiamo visto. Facciamo un

esempio per capirci: data l'espressione , i cui due termini hanno distanza di Hamming

unitaria, possiamo scrivere:

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 11

Page 12: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

Torniamo a noi: il metodo che studiamo è quello delle mappe di Karnaugh, del quale diciamo

subito che risulta adatto solo per funzioni di al più tre-quattro variabili, perché per funzioni più

"grosse" la sua esecuzione diventa macchinosa e si ricorre ad altri metodi (come ad esempio il

metodo di Quine-McCluskey, che generalizza le mappe di Karnaugh; noi non vedremo queste

tecniche, perché appesantirebbero oltre modo la nostra trattazione, ma il lettore interessato può

consultare [BBSS04] o [DeMicheli94]).

Valutiamo graficamente una funzione di tre variabili f(x,y,z) utilizzando i valori delle sue variabili

come fossero le coordinate di un punto:

Notiamo subito che questa rappresentazione mostra in modo inequivocabile le combinazioni dei

valori delle variabili caratterizzate da una distanza di Hamming unitaria, e dunque ci permette

di determinare quali termini (se presenti nella nostra funzione) possiamo "fondere" insieme. Per

capire ancora meglio l'importanza della cosa, vediamola un attimo da un altro punto di vista:

questa rappresentazione elenca tutte le possibili congiunzioni dei letterali della funzione, ovvero

(anche) tutti i possibili mintermini della funzione.

Adesso, "smontiamo" il nostro cubo e riportiamolo sul piano, ottenendo questa struttura (da cui

abbiamo tolto alcune facce, perché non aggiungevano combinazioni che non avessimo già):

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 12

Page 13: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

Ciò che abbiamo ottenuto è una mappa di Karnaugh per una generica funzione booleana in

tre variabili. Ma come si usa? Vediamolo cercando di semplificare la funzione

, la cui mappa di Karnaugh possiamo rappresentare mettendo in ogni

cella il valore della funzione data la relativa assegnazione di valori alle variabili:

Notiamo un dettaglio importante: tutti i quadratini in cui abbiamo messo un 1 identificano i

prodotti di letterali che rendono vera la funzione, ovvero i suoi mintermini. Ciò vuol dire che

abbiamo praticamente ottenuto una rappresentazione tabulare della prima forma canonica della

funzione. Ma che ci facciamo, con questa rappresentazione?

Chiediamoci: se due celle vicine identificano una coppia di letterali a distanza di Hamming

unitaria, quattro celle vicine cosa identificano? Vediamolo per la nostra funzione: la prima riga

ci fornisce nell'ordine i mintermini , , e , e possiamo notare che

riducendo insieme i primi due e gli ultimi due otteniamo due letterali aventi distanza di Hamming

reciproca unitaria. Questo vuol dire una cosa molto importante: i quattro mintermini possono

essere ridotti ad un solo termine, costituito dall'unico letterale comune a tutti:

Un risultato eccellente!

A questo punto, però, è importante chiederci: quando possiamo unire più di due termini e

semplificarli tutti insieme? La risposta è: possiamo realizzare "gruppi" contenenti un numero di

termini pari sempre a una potenza di 2, perché ad ogni "riduzione" dobbiamo poter disporre i

termini che abbiamo in coppie con distanza di Hamming unitaria. Questo vuol dire che possiamo

avere gruppi di 1, 2, 4, 8, 16 letterali.

Altra precisazione: gli estremi di una stessa riga della mappa di Karnaugh hanno distanza di

Hamming unitaria (pensiamo al cubo da cui siamo partiti: quegli estremi erano connessi da uno

spigolo!), quindi possiamo considerarli una coppia di mintermini semplificabili. Questo ci sarebbe

stato utile, per esempio, se in corrispondenza di e avessimo avuto degli 0, perché

avremmo potuto comunque semplificare .

Torniamo alla nostra funzione: determinato come identificare i termini semplificabili, possiamo

definire tutti i gruppi, ovvero effettuare la copertura della mappa. Dato che vogliamo il minimo

numero di letterali possibile, siamo interessati ad avere gruppi grandi e in numero limitato;

possiamo quindi effettuare la copertura così:

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 13

Page 14: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

Notiamo un attimo una cosa: non è sbagliato che un mintermine appartenga a più gruppi, perché

replicare uno stesso mintermine all'interno di una funzione booleana non cambia la funzione

stessa: per esempio, la funzione è assolutamente equivalente alla funzione

.

Detto questo, torniamo alla nostra mappa: effettuando la copertura, abbiamo ottenuto che i

termini essenziali per la funzione sono (gruppo rosa), y (gruppo verde) e x (gruppo azzurro),

ovvero la nostra funzione di partenza è equivalente a .

A questo punto, delle mappe di Karnaugh abbiamo detto tutto: vediamo solo, per concludere, che

forma assumono in base al numero di variabili:

E forniamo un algoritmo generale per usarle:

1. Scrivere la funzione booleana in forma sum of products, ovvero come somma di

congiunzioni e variabili singole; non è strettamente necessario, ma aiuta nelle fasi

successive.

2. Realizzare la mappa di Karnaugh della funzione.

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 14

Page 15: F CUM LAUDE DI COMMUTAZIONE - electroyou.it · forma cum laude: algebra di commutazione 1 This document was created with Prince, a great way of getting web content onto paper. articolo:sirimanda,perapprofondimenti(consigliati,comunque,soloachisiagiàfortedisolide

3. Effettuare la copertura della mappa.

4. Per ciascun gruppo ottenuto, prendere i letterali che non cambiano valore all'interno del

gruppo e congiungerli.

5. Effettuare la disgiunzione dei termini ottenuti al passo precedente: essa è la funzione

semplificata.

BIBLIOGRAFIA

Consigli per la lettura

Tutto ciò che abbiamo trattato nel corso di quest'articolo è riportato in [BBSS04], i primi cinque

capitoli del quale costituiscono una lettura integrativa assolutamente raccomandata se non

addirittura obbligatoria: essi non solo trattano e approfondiscono ciò di cui abbiamo discusso in

quest'articolo, ma presentano anche un certo numero di esempi di circuiti digitali notevoli che

dovrebbero far parte della "libreria" di chiunque abbia a che fare con l'hardware e che tra l'altro

useremo per alcuni esempi nei prossimi articoli.

Per lo studio dei circuiti logici anche da un punto di vista più "elettronico", il testo di riferimento è

senz'altro [MKM15], di cui al momento i primi tre capitoli sono più che sufficienti, ma il lettore più

interessato potrebbe gradire anche il quinto.

Per quanto riguarda il progetto dei circuiti combinatori, un'integrazione decente al contenuto dei

testi già citati è costituita dai primi due capitoli di [Vahid05]: non aggiungono granché in termini

di contenuti (anche se un paio di spunti da non sottovalutare ci sono), ma propongono un certo

numero di esempi interessanti.

Riferimenti bibliografici

[BBSS04] C. Bolchini, C. Brandolese, F. Salice, D. Sciuto, Reti logiche, Apogeo, 2004

[Bourbaki89] N. Bourbaki, Algebra I, Springer, 1989 [CanutoTabacco14] C. Canuto, A. Tabacco,

Analisi matematica 1, Springer, 2014

[DeMicheli94] G. De Micheli, Synthesis and optimization of digital circuits, McGraw-Hill, 1994

[Hodges97] W. Hodges, A shorter model theory, Cambridge University Press, 1997

[MKM15] M.M. Mano, C.R. Kime, T. Martin, Logic and computer design fundamentals, Pearson,

2015

[Vahid05] F. Vahid, Digital design, Wiley, 2005

Estratto da "https://www.electroyou.it/mediawiki/index.php?title=UsersPages:Wruggeri:forma-

cum-laude-logica-proposizionale"

ELECTROYOU.IT WALTER RUGGERI (WRUGGERI)

FORMA CUM LAUDE: ALGEBRA DI COMMUTAZIONE 15