Teorema di Shannon (elettronica)

Da testwiki.
Versione del 22 feb 2025 alle 09:40 di imported>Mat4free (sistemo)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

In elettronica digitale il teorema di Shannon è un importante teorema riguardante le funzioni booleane principalmente usato per scomporre una funzione complessa in funzioni più semplici o per ottenere un'espressione canonica da una tabella della verità o da un'espressione non canonica.

Nonostante sia attribuito a Claude Shannon, il teorema è stato enunciato per primo da George Boole.[1]

Il teorema

Data una funzione booleana f di n variabili booleane x1,x2,,xn, vale l'uguaglianza:

f(x1,x2,,xn)=x1f(1,x2,,xn)+x1f(0,x2,,xn).

Le due funzioni sommate al secondo membro sono dette residui della funzione al primo membro rispetto alla variabile x1.

Dimostrazione

Si consideri una funzione f(x1,x2,,xn) da espandere rispetto alla variabile x1. Questa variabile può assumere valore 0 oppure 1.

Caso x1=0, cioè f(0,x2,,xn):

0f(1,x2,,xn)+0f(0,x2,,xn)=0f(1,x2,,xn)+1f(0,x2,,xn)=f(0,x2,,xn).

Caso x1=1, cioè f(1,x2,,xn):

1f(1,x2,,xn)+1f(0,x2,,xn)=1f(1,x2,,xn)+0f(0,x2,,xn)=f(1,x2,,xn).

Proprietà

Per espandere rispetto a più variabili si reitera la precedente. Si consideri un'espansione rispetto a x1 e x2:

f(x1,x2,,xn)=x2[x1f(1,1,,xn)+x1f(0,1,,xn)]+x2[x1f(1,0,,xn)+x1f(0,0,,xn)].

Le operazioni di somma logica, prodotto logico o complementazione non annullano le proprietà di Shannon delle funzioni booleane. Infatti, se sommiamo logicamente k alla funzione di una variabile g(x1)=x1, si ottiene f(x1)=x1+k che:

  • se k=0, allora f(x1)=x1,
  • se k=1, allora f(x1)=1.

Infatti

f(x1)=f(1)x1+f(0)x1=1x1+kx1=x1+kx1,

che fornisce proprio f(x1)=x1 oppure f(x1)=1 a seconda che k=0,1 rispettivamente.

Nel caso di f(x1)=x1k si ha che:

  • se k=0, allora f(x1)=0,
  • se k=1, allora f(x1)=x1.

Quindi

f(x1)=f(1)x1+f(0)x1=kx1+0x1=kx1,

che fornisce proprio f(x1)=0 oppure f(x1)=x1 a seconda che k=0,1 rispettivamente.

Applicazione alle porte logiche

Applicando il teorema una seconda volta su ognuno dei residui rispetto alla variabile x1 si ottiene:

f(x1,x2,,xn)=x1x2f(1,1,,xn)+x1x2f(0,1,,xn)+x1x2f(1,0,,xn)+x1x2f(0,0,,xn),

iterando il procedimento a tutte le n variabili si ottiene l'espressione di f in forma canonica AND-OR.

Per il principio di dualità si ottiene inoltre:

f(x1,x2,,xn)=[x1+f(0,x2,,xn)][x1+f(1,x2,,xn)],

che è detto teorema duale. Anche sfruttando tale teorema si ottiene l'espressione algebrica della funzione in forma canonica AND-OR.

Il risultato finale è l'implementazione della funzione in una struttura di porte logiche semplici AND, OR e NOT, detta multiplexer.

Note

Voci correlate

Template:Portale