L'algoritmo di assegnazione casuale può essere derandomizzato (reso deterministico) utilizzando il metodo delle aspettative condizionali.
Consenti all'istanza 3SAT di essere composta da clausole . Durante l'algoritmo assegneremo i valori alle variabili. Il punteggio di una clausola è definito come segue:C1,…,CmC
- Se è soddisfatto, il suo punteggio è 1.C
- Se non è soddisfatto e ha letterali non assegnati, il suo punteggio è .Ck1−2−k
Inizialmente il punteggio di ciascuna clausola è , quindi il punteggio totale è . Ora assegniamo i valori alle variabili in ordine. Supponiamo di aver assegnato valori alle variabili e che il punteggio totale attuale sia . Sia il punteggio totale se assegniamo i valori (rispettivamente) a . Dichiaro che per qualsiasi clausola , e quindi . Infatti:1−2−3=7/8(7/8)mx1,…,xnx1,…,xi−1S=S(C1)+⋯+S(Cm)S0,S10,1xiS0(C)+S1(C)=2S(C)CS0+S1=2S
- Se è soddisfatto (dato solo ) o non contiene allora .Cx1,…,xi−1xiS0(C)+S1(C)=2S(C)
- Supponiamo che contenga letterali non assegnati, incluso . Quindi , e . Pertanto
CkxiS(C)=1−2−kS0(C)=1−2−(k−1)S1(C)=1
S0(C)+S1(C)=[1−2⋅2−k]+1=2(1−2−k)=2S(C).
- Un argomento simile funziona quando contiene . Cx¯i
Poiché , o (possibilmente entrambi). Quindi v'è una certa assegnazione di tale che dopo l'assegnazione, il nuovo punteggio è di almeno .S0+S1=2SS0≥SS1≥SSS
Il punteggio iniziale è e l'algoritmo garantisce che il punteggio non diminuisca mai. Alla fine, il punteggio di una clausola è 1 se è soddisfatto e altrimenti. Quindi l'assegnazione finale soddisfa almeno clausole.(7/8)mC1−2−0=0(7/8)m
Dato che esiste un algoritmo deterministico, perché siamo interessati a quello randomizzato? Ci sono diverse ragioni:
- L'algoritmo randomizzato è molto più semplice.
- L'algoritmo randomizzato è potenzialmente più veloce.
- L'algoritmo randomizzato può essere convertito in deterministico usando il metodo delle aspettative condizionali; possiamo pensarlo come una ricetta per costruire un algoritmo deterministico.
Più in generale, si ipotizza che ogni algoritmo randomizzato polytime per un problema di decisione possa essere derandomizzato (questa è la ). Gli algoritmi randomizzati saranno comunque interessanti per tutti i motivi sopra elencati.P=BPP