Esercizio - Test del DNA con 4, 5 e 7 provette
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 6
Testo (scheda "Channel coding"). Un colpevole ha lasciato il DNA sulla scena del crimine. La polizia individua sospettati e uno è sicuramente il colpevole. Un agente deve prelevare un tampone di DNA da ogni sospettato: il tampone si mette in una provetta, che si inserisce nell'analizzatore; se nella provetta c'è il DNA del colpevole, una spia si accende. L'agente ha solo provette, utilizzabili nell'analizzatore una volta sola. a. C'è un modo per individuare il colpevole? b. I test sono inaffidabili: ogni provetta ha probabilità di errore (la spia non si accende o non si spegne quando dovrebbe). Qual è la probabilità che un sospettato sia accusato ingiustamente? c. L'agente trova provette in più da usare insieme alle prime . Due modi: (i) evitare che un innocente sia accusato ingiustamente scartando i test dubbi come inconcludenti; (ii) trovare comunque il colpevole, ma con probabilità di successo maggiore. A cosa corrispondono? Quando falliscono? d. Cosa succede se in (i)? e. Se in (i)? f. Se in (ii)?
Teoria usata: Codici a blocco - distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza in modo mirato: $k$ bit di informazione diventano una parola di codice di $n>k$ bit scelta tra $2^k$ parole ammesse. Se la parola ricevuta non è una parola di codice l'errore è rivelato (e si può chiedere la ritrasmissione, ARQ) oppure corretto (FEC). La qualità dipende dalla distanza minima di Hamming $d_{min}$: si rivelano fino a $d_{min}-1$ errori e se ne correggono $t<d_{min}/2$, ma non contemporaneamente. Per un BSC con $P_{bit}<1/2$ la decisione ottima ML coincide con quella a distanza minima. Limite di Hamming: $k/n\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$.Codici a blocco - distanza minima, rivelazione e correzione →, Codici di Hamming e CRCIl codice di Hamming $(2^h-1,,2^h-h-1)$ ha come matrice di controllo $H$ che ha per colonne tutte le sequenze non nulle di $h$ bit: colonne distinte e non nulle danno $d_{min}=3$, la sindrome di un errore singolo è la colonna corrispondente, quindi corregge 1 errore (o rivela 2) ed è un codice perfetto ($2^{n-k}=1+n$). Per $(7,4)$ e BSC: errore non rivelato $\simeq7P^3(1-P)^4$, parola sbagliata dopo correzione $\simeq\binom72P^2(1-P)^5$. Il CRC è un codice lineare ciclico usato per sola rivelazione: la parola è $m(x)x^r$ più il resto della divisione per il polinomio generatore $g(x)$ di grado $r$ (modulo 2); rivela ogni errore a burst di lunghezza $\le r$.Codici di Hamming e CRC →, Prove ripetute e modello binomialen prove indipendenti, ciascuna con probabilità di successo p: una sequenza con k successi ha probabilità p^k (1−p)^(n−k), e la probabilità di esattamente k successi è (n su k) p^k (1−p)^(n−k) (modello binomiale); il primo successo alla prova k ha probabilità (1−p)^(k−1) p.Prove ripetute e modello binomiale →.
a. Una parola di codice per ogni sospettato
L'idea chiave: si può mettere il DNA di più sospettati nella stessa provetta, e la spia si accende se c'è quello del colpevole. Si assegna a ogni sospettato una stringa binaria di bit : sospettato : , sospettato : , , sospettato : ( stringhe). Il DNA del sospettato va nella provetta se (non va se ). Se il colpevole è il sospettato con stringa , la spia si accende proprio se : le luci lette (accesa ) sono la stringa del colpevole. Per esempio le luci indicano il sospettato (, e si parte da sospettato ).
Sì: con provette, senza errori, si trova il colpevole. È un codice : nessuna ridondanza, .
b. Con le provette inaffidabili
Ogni provetta è un BSC senza memoria con (la spia sbaglia con probabilità in un verso o nell'altro). Si trova il colpevole solo se nessuna delle letture sbaglia: . Se anche una sola lettura sbaglia si legge un'altra stringa di bit, che è comunque una stringa valida (, ogni stringa è una parola): si accusa un altro sospettato.
c. Provette aggiuntive: rivelazione o correzione
Le provette in più sono bit di ridondanza: con provette si usa un codice a blocco . I due modi del testo corrispondono ai due usi di un codice:
- (i) rivelazione d'errore: se la configurazione delle luci non è una parola di codice il test è inconcludente (si scarta). Fallisce solo se l'errore non è rivelato, cioè se i bit sbagliati trasformano la parola trasmessa in un'altra parola di codice ().
- (ii) correzione d'errore: si decodifica a distanza minima, sempre una risposta. Fallisce quando i bit sbagliati portano fuori dalla regione di decisione della parola trasmessa.
d. in (i): codice a parità
Con provette si usa un bit di parità: la quinta provetta contiene il DNA dei sospettati la cui stringa ha parità (sospettato : , sospettato : , , sospettato : ). Il codice ha : rivela errore ma non lo corregge.
Un innocente viene ancora accusato solo se l'errore non è rivelato: un codice di parità non rivela nessun numero pari di errori; con due errori fallisce sempre. Il caso dominante è quello con errori: È una valutazione molto precisa (non una stima): con errori la parità rivela sempre, con errori sfugge ma con probabilità . Valore esatto (tutti gli errori pari): . Un altro modo di scriverlo, che include però anche i casi rivelati (3 e 5 errori) e dà una sovrastima, è . Con la ridondanza il rischio di accusare un innocente scende da a circa ; in compenso il test è inconcludente quando c'è un numero dispari di errori, con probabilità (le provette si possono usare una volta sola, quindi in quei casi non si accusa nessuno).
e. in (i): Hamming in sola rivelazione
Con provette si usa il codice di Hamming (, Codici di Hamming e CRCIl codice di Hamming $(2^h-1,,2^h-h-1)$ ha come matrice di controllo $H$ che ha per colonne tutte le sequenze non nulle di $h$ bit: colonne distinte e non nulle danno $d_{min}=3$, la sindrome di un errore singolo è la colonna corrispondente, quindi corregge 1 errore (o rivela 2) ed è un codice perfetto ($2^{n-k}=1+n$). Per $(7,4)$ e BSC: errore non rivelato $\simeq7P^3(1-P)^4$, parola sbagliata dopo correzione $\simeq\binom72P^2(1-P)^5$. Il CRC è un codice lineare ciclico usato per sola rivelazione: la parola è $m(x)x^r$ più il resto della divisione per il polinomio generatore $g(x)$ di grado $r$ (modulo 2); rivela ogni errore a burst di lunghezza $\le r$.Codici di Hamming e CRC →), che rivela fino a errori. Un errore non rivelato richiede un pattern di errore uguale a una parola di codice non nulla, che ha almeno bit a . Prima stima (rozza): si prendono tutti i pattern a errori, : che è una sovrastima, perché le parole di codice sono solo su e non ogni pattern a errori è una parola. Nel ogni parola ha vicine a distanza , a distanza e a distanza : il numero di pattern a peso che sono parole è , non : (Aggiungendo i pesi e : .) Il rischio di accusare un innocente è ora circa : volte minore del caso senza ridondanza.
f. in (ii): Hamming in correzione
Si usa lo stesso codice ma si corregge errore. Non conta più : si sbaglia quando si esce dalla regione di decisione, cioè con o più errori (con errori il decodificatore sbaglia sempre, con in generale pure): ignorando i casi con errori, (Valore esatto .) Il colpevole si individua nel dei casi (contro del caso senza ridondanza), e con la correzione c'è sempre una risposta, a differenza del caso (i), dove con probabilità (almeno un errore, rivelato) il test è inconcludente e non si accusa nessuno.
Confronto finale. Con la stessa ridondanza ( provette in più): la rivelazione dà il di accuse ingiuste ma a volte nessuna risposta; la correzione dà una risposta sempre, ma sbagliata nel dei casi. Rivelare è molto più sicuro che correggere: la correzione "spende" il potere del codice per scegliere, la rivelazione per non sbagliare.