Le espressioni booleane
Le espressioni booleane sono formule utilizzate per descrivere operazioni logiche, combinando variabili booleane e operatori logici.
Le variabili booleane possono assumere solo due valori: vero (1) o falso (0), e sono manipolate attraverso operatori logici.
Questi operatori logici sono AND, OR, NOT, NAND, NOR, XOR e XNOR.
Possono essere combinati per costruire espressioni booleane complesse, che vengono poi utilizzate per implementare funzioni logiche in circuiti o algoritmi.
Queste espressioni sono fondamentali in diversi campi, come l'informatica, l'elettronica digitale e la progettazione di circuiti. Possono essere semplificate usando leggi come le leggi di De Morgan e le identità booleane per ottimizzare le soluzioni hardware e software.
Esempio
Vediamo un esempio pratico di come si può costruire e semplificare un'espressione booleana.
Supponiamo di avere un'espressione iniziale che include variabili booleane A, B e C, e vogliamo determinare un'uscita basata su certe condizioni logiche.
$$ Y = (A \wedge B) \vee (A \wedge C) $$
Questa espressione booleana descrive un circuito in cui l'uscita Y è vera se almeno una di queste condizioni è soddisfatta:
- Sia A che B sono vere (1)
- Sia A che C sono vere (1)
Spesso l'espressione iniziale può essere semplificata ulteriormente utilizzando le leggi booleane.
In questo caso specifico, l'espressione è già piuttosto ottimizzata per mostrare chiaramente due condizioni distinte per Y essere vera.
Tuttavia, possiamo riscrivere l'espressione usando la legge distributiva $ A \land (B \lor C) = (A \land B) \lor (A \land C) $
$$ Y = A \wedge (B \vee C) $$
In questo modo l'espressione booleana diventa molto più compatta.
Quindi, Y è vero quando almeno una tra le variabili B e C è vera (1) ed è vera (1) anche la variabile A.
Verifica dell'espressione
Per verificare la correttezza dell'espressione originale e quella semplificata, possiamo creare una tabella di verità che mostri tutti i possibili valori di A, B e C e i risultati corrispondenti di Y per l'espressione originale e quella semplificata.
| A | B | C | A∧B | A∧C | Y=(A∧B)∨(A∧C) | Y=A∧(B∨C) |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Come si può vedere dalla tabella di verità, la semplificazione non ha alterato il comportamento previsto.