Skip to content

Tabelle della verità ed espansione di Shannon

I valori delle funzioni booleane possono essere rappresentati usando le tabelle della verità.

Ad ogni combinazione dei valori delle variabili corrisponde una riga della tabella.

Tabella della verità dell'operatore AND

Con nn variabili, sono possibili 2n2^n diverse combinazioni di input. Funzioni di decine di variabili sono comuni, quindi occorre trovare una rappresentazione più compatta.

Una funzione può essere rappresentata come un’espressione facente uso degli operatori già definiti (esempio: f(a,b,c)=ab+bcf(a, b, c) = a b + b' c).

Convenzionalmente si dà precedenza all’operazione AND\text{AND} rispetto alla OR\text{OR} (come la moltiplicazione ha precedenza sull’addizione).

Un’espressione può essere realizzata fisicamente collegando i circuiti delle porte logiche di base.

Diverse espressioni possono rappresentare la stessa funzione. Per esempio ab+bc=abc+abc+abc+abcab + b'c = a'b'c + ab'c + abc' + abc. Ovviamente si usa sempre la più corta, dato che ogni porta logica impiega un breve periodo di tempo per eseguire la propria operazione.

Due espressioni sono equivalenti se rappresentano la stessa funzione. Usiamo alcune proprietà per derivare una nuova espressione equivalente a quella data.

  • identità:

    • x+0=xx + 0 = x
    • x1=xx \cdot 1 = x
  • proprietà commutativa:

    • x+y=y+xx + y = y + x
    • xy=yxx y = y x
  • proprietà distributiva:

    • x(y+z)=(xy)+(xz)x (y + z) = (x y) + (x z)
    • x+(yz)=(x+y)(x+z)x + (y z) = (x + y) (x + z)
  • complementazione:

    • x+x=1x + x' = 1
    • xx=0x x' = 0
  • proprietà associativa:

    • x+(y+z)=(x+y)+zx + (y + z) = (x + y) + z
    • x(yz)=(xy)zx (y z) = (x y) z

    Permette di definire in modo univoco le operazioni AND\text{AND} ed OR\text{OR} con più di 2 variabili.

  • legge dell’elemento nullo:

    • x+1=1x + 1 = 1
    • x0=0x \cdot 0 = 0
  • involuzione: (x)=x(x')' = x

  • idempotenza:

    • x+x=xx + x = x
    • xx=xx x = x
  • assorbimento:

    • x+xy=xx + xy = x
    • x(x+y)=xx (x + y) = x
  • semplificazione:

    • x+xy=x+yx + x'y = x + y
    • x(x+y)=xyx (x' + y) = xy
  • adiacenza:

    • xy+xy=xxy + xy' = x
    • (x+y)(x+y)=x(x + y) (x + y') = x
  • legge di De Morgan:

    • (x+y)=xy(x + y)' = x' y'
    • (xy)=x+y(x y)' = x' + y'
    • (x+y)=xy(x' + y')' = x y
    • (xy)=x+y(x' y')' = x + y

Data una funzione booleana ff di nn variabili, l’espansione di Shannon è l’identità:

f=x1fx1+x1fx1f = x_1 f_{x_1} + x_1' f_{x_1'}

dove x1x_1 è una delle variabili che viene fissata a 11 e fx1f_{x_1} e fx1f_{x_1'} sono restrizioni di ff di n1n - 1 variabili, dove x1x_1 diventa costante.

Possiamo continuare l’espansione per le ‘sottofunzioni’ ottenute. Una volta completato questo processo ricorsivo otterremo un’espressione che viene detta forma canonica.

L’espansione completa di una funzione è un’espressione univoca, quindi per verificare che due funzioni rappresentino la stessa logica si può controllare l’uguaglianza della forma canonica.

Corollario: qualunque funzione booleana può essere espressa mediante gli operatori logici di base AND\text{AND} e OR\text{OR}.

Forma canonica di un’espressione booleana

Section titled “Forma canonica di un’espressione booleana”

I due tipi di forme canoniche che si possono ottenere dall’espansione hanno una nomenclatura specifica:

  • Sum of products (SOP): somma in cui ogni termine è il prodotto di variabili affermate se valgono 1 o negate se valgono 0.
  • Product of sums (POS): prodotto in cui ogni termine è una somma di variabili affermate se valgono 0 o negate se valgono 1; si ottiene modificando leggermente il teorema di Shannon.