La mappa di Karnaugh

A cosa serve la mappa di Karnaugh

Le mappe di Karnaugh sono un metodo per semplificare un'espressione booleana o, è la stessa cosa, per ridurre il numero delle porte logiche in un circuito combinatorio.

Come trovare la mappa di Karnaugh

Il metodo funziona soltanto se l'espressione è in forma normale disgiuntiva ( DNF ).

$$ xyz + xy \overline{z} + \overline{x}y $$

Nota. Per ogni funzione logica esiste sempre un'espressione booleana in forma normale disgiuntiva ed è unica.

Inoltre, le clausole devono essere composte dagli stessi letterali.

Esempio

Questa espressione booleana è composta da tre clausole.

$$ xyz + xy \overline{z} + \overline{x}y $$

La terza clausola non ha il letterale z.

Per risolvere il problema, la trasformo in una somma di clausole con la z attiva e negata.

$$ xyz + xy \overline{z} + ( \overline{x}yz + \overline{x}y\overline{z} ) $$

$$ xyz + xy \overline{z} + \overline{x}yz + \overline{x}y\overline{z} $$

Nota. Questa espressione booleana equivale a un circuito logico con quattro porte AND, una porta OR e quattro porte NOT. Complessivamente, il circuito è composto da 9 porte.
il circuito combinatorio

La tavola di verità dell'espressione è

la mappa di Karnaugh

1] Costruire la mappa

Scelgo due gruppi di letterali dell'espressione. Ad esempio xy e z.

Poi costruisco una tabella mettendo le xy sulle colonne e la z sulle righe.

la mappa di Karnaugh ( esempio )

Nelle righe e nelle colonne indico le combinazioni di valori (0,1) che i letterali x e xy possono assumere.

2] Individuare le celle della mappa a cui corrispondono le clausole dell'espressione

A questo punto, verifico quali celle si collocano le clausole dell'espressione booleana.

Prima clausola

La prima clausola dell'espressione è

$$ xyz $$

Equivale a xy=11 * z=1.

Questa clausola corrisponde alla cella in cui si incrociano l'ultima colonna (xy=11) e la seconda riga (z=1) della mappa.

il primo passo della costruzione della mappa di Karnaugh

Seconda clausola

La seconda clausola dell'espressione è

$$ xy \overline{z} $$

Equivale a xy = 11 e z=0.

Questa clausola corrisponde alla cella in cui si incrociano l'ultima colonna (xy=11) e la prima riga (z=0) della mappa.

il secondo passo della costruzione della mappa di Karnaugh

Terza clausola

La terza clausola dell'espressione è

$$ \overline{x}yz $$

Equivale a xy = 01 e z=1.

Questa clausola corrisponde alla cella in cui si incrociano la seconda colonna (xy=01) e la seconda riga (z=0) della mappa.

il terzo passo della costruzione della mappa di Karnaugh

Quarta clausola

La quarta clausola dell'espressione è

$$ \overline{x}y\overline{z} $$

Equivale a xy = 01 e z=0.

Questa clausola corrisponde alla cella in cui si incrociano la seconda colonna (xy=01) e la prima riga (z=0) della mappa.

il quarto passo della costruzione della mappa di Karnaugh

3] Raggruppare le celle confinanti in gruppi di 2, 4 o 8 elementi

Una volta costruita la mappa di Karnaugh, posso raggruppare i simboli per potenze di 2.

Ogni gruppo deve essere composto da 2,4,8 simboli vicini tra loro.

I gruppi possono anche sovrapporsi parzialmente.

Nota. Le pareti della mappa di Karnaugh confinano con la parete opposta.

In questo caso, nella mappa ci sono due gruppi da 2.

raggruppi le celle confinanti a gruppi di 2 elementi

3] Trasformare i gruppi in congiuzioni di letterali

Prendo ciascun gruppo e lo trasformo in una congiunzione, eliminando i letterali che assumono contemporaneamente i valori 0 e 1.

Primo gruppo

Nel primo gruppo xy assume il valore 01.

Elimino, invece, il letterale z perché ha sia il valore 0 che 1.

la semplificazione

Il risultato finale è

 

$$ \overline{x}y $$

Secondo gruppo

Nel primo gruppo xy assume il valore 11.

Elimino, invece, il letterale z perché ha sia il valore 0 che 1.

il risultato del secondo gruppo

Il risultato finale è

$$ xy $$

4] Sommare le congiunzioni di letterali

Sommo tra loro le congiunzioni appena trovate e ottengo l'espressione booleana in forma ridotta della funzione booleana.

$$ \overline{x}y + xy $$

Il nuovo circuito logico è composto soltanto da due porte AND, una porta OR e una porta NOT.

Complessivamente, il circuito ha 4 porte.

il circuito logico ridotto

La tavola di verità dell'espressione è sempre la stessa.

Anche se non c'è più la lettera z, il valore 1 è abbinato alle stesse combinazioni x, y della precedente.

la tavola di verità del circuito logico

Nota. L'espressione è sicuramente migliore rispetto all'espressione iniziale. Tuttavia, non è ancora ottimale. Come si può vedere, nelle due clausole il letterale x appare sia in forma diretta che negata. $$ \overline{x}y + xy $$ Una semplice regola di semplificazione mi consente di eliminare la x in entrambe le clausole. L'espressione si riduce a $$ y+y $$ Un'altra legge dell'algebra booleana mi permette di ridurre ulteriormente l'espressione in $$ y $$ Perché la mappa di Karnaugh non l'ha trovata? Perché il risultato dipende anche dalla scelta dei gruppi di letterali e dall'ordine delle colonne nella mappa.

Come migliorare la mappa di Karnaugh

La riduzione di un'espressione booleana tramite la mappa di Karnaugh dipende dalla scelta dei gruppi e dall'ordine delle colonne.

Ad esempio, riprendo la precedente mappa scambiando la posizione della quarta e della terza colonna.

scambio la posizione delle due colonne

In questo modo creo un gruppo di quattro celle.

Il nuovo raggruppamento mi permette di semplificare ulteriormente il risultato finale.

Sia la z che la x appaiono con il valore zero e con il valore uno. Quindi, posso eliminarle.

la semplificazione tramite la mappa di Karnaugh

L'espressione finale è.

$$ y $$

Ovviamente l'espressione non può essere ulteriormente ridotta.

E così via

 

 

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Algebra di Boole