Le mappe di Karnaugh
Prerequisiti: Algebra di Boole e semplificazione
Semplificare con l’algebra di Boole funziona, ma richiede occhio: bisogna vedere quale raccoglimento conviene. La mappa di Karnaugh rende la semplificazione un procedimento grafico e meccanico: si segnano gli 1, si cerchiano i gruppi, si legge il risultato.
La mappa
È la tabella di verità ripiegata in una griglia. Per tre variabili , , : le colonne portano le combinazioni di , le righe i valori di .
| =00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| =0 | ||||
| =1 |
Le colonne non sono in ordine binario: la sequenza è — non . È codice Gray: fra colonne adiacenti cambia una sola variabile.
Non è pignoleria, è l’intero motivo per cui la mappa funziona: due caselle vicine differiscono per una variabile sola, quindi raggrupparle equivale al raccoglimento fatto a occhio. Con l’ordine binario la proprietà si rompe e la mappa non semplifica più niente.
Le regole dei raggruppamenti
Segnati gli 1 della funzione, si cerchiano a gruppi. Le regole:
- i gruppi contengono solo 1, e sono rettangoli di 1, 2, 4 o 8 caselle — solo potenze di due;
- i gruppi più grandi sono meglio: più caselle = meno variabili nel termine;
- i gruppi possono sovrapporsi: uno stesso 1 può stare in più gruppi;
- la mappa si richiude ai bordi: la prima e l’ultima colonna sono adiacenti (sempre per il codice Gray), quindi un gruppo può “uscire” da destra e rientrare da sinistra;
- ogni 1 deve finire in almeno un gruppo.
Leggere un gruppo
Da ogni gruppo si legge un termine: si tengono solo le variabili che non cambiano dentro il gruppo, col loro valore (diretta se vale 1, negata se vale 0). Le variabili che cambiano spariscono.
Esempio — la funzione con questi 1:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| =0 | 1 | 1 | 1 | 1 |
| =1 | 1 | 1 |
Gruppo 1: tutta la prima riga (4 caselle). Dentro, e assumono tutti i valori — spariscono. Resta solo , quindi il termine è .
Gruppo 2: il quadrato 2×2 delle colonne 11 e 10 (4 caselle). Dentro, e cambiano — spariscono. Resta : termine .
Sei termini di partenza, due lettere all’arrivo — e il gruppo 2 riusa due caselle già prese dal gruppo 1: la sovrapposizione è permessa e conviene, perché rende entrambi i gruppi più grandi.
Più grande il gruppo, più corto il termine: 1 casella → tre variabili, 2 caselle → due, 4 caselle → una, 8 caselle → la funzione vale 1.
L’errore da principiante è fare tanti gruppi piccoli “per sicurezza”: il risultato è corretto ma non semplificato. Prima cerca i gruppi da 4, poi da 2, e i singoli solo per gli 1 rimasti orfani.
Esercizio. Semplifica con la mappa la funzione a tre variabili che vale 1 nelle combinazioni (,,): (0,0,1), (0,1,1), (1,1,0), (1,1,1).
Mostra la soluzione
Costruisco la mappa segnando gli 1:
| =00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| =0 | 1 | |||
| =1 | 1 | 1 | 1 |
Gruppo 1 (orizzontale, riga =1, colonne 00 e 01): dentro, cambia e sparisce; restano e : termine .
Gruppo 2 (verticale, colonna 11): cambia e sparisce; restano e : termine .
Verifica. Controllo una combinazione per gruppo più una a zero. Con : ✓. Con : ✓. Con , che nella mappa è vuota: e , quindi ✓. La semplificata riproduce la tabella.