Algoritmo randomizzato per 3SAT


8

Esiste un algoritmo randomizzato molto semplice che, dato un 3SAT, produce un incarico che soddisfa almeno 7/8 delle clausole (in previsione): scegliere un incarico casuale. Un'assegnazione casuale soddisfa ogni clausola con probabilità 7/8, e quindi la linearità delle aspettative mostra che la frazione prevista di clausole soddisfatte da un'assegnazione casuale è 7/8.

Questo può essere fatto in modo deterministico? In tal caso, perché siamo interessati all'algoritmo randomizzato?

Risposte:


6

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 è .Ck12k

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:123=7/8(7/8)mx1,,xnx1,,xi1S=S(C1)++S(Cm)S0,S10,1xiS0(C)+S1(C)=2S(C)CS0+S1=2S

  • Se è soddisfatto (dato solo ) o non contiene allora .Cx1,,xi1xiS0(C)+S1(C)=2S(C)
  • Supponiamo che contenga letterali non assegnati, incluso . Quindi , e . Pertanto CkxiS(C)=12kS0(C)=12(k1)S1(C)=1
    S0(C)+S1(C)=[122k]+1=2(12k)=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=2SS0SS1SSS

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)mC120=0(7/8)m

Dato che esiste un algoritmo deterministico, perché siamo interessati a quello randomizzato? Ci sono diverse ragioni:

  1. L'algoritmo randomizzato è molto più semplice.
  2. L'algoritmo randomizzato è potenzialmente più veloce.
  3. 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.