Algorithme randomisé pour 3SAT

8

Il existe un algorithme aléatoire très simple qui, étant donné un 3SAT, produit une assignation satisfaisant au moins 7/8 des clauses (en attente): choisissez une assignation aléatoire. Une assignation aléatoire satisfait chaque clause avec la probabilité 7/8, et donc la linéarité de l'attente montre que la fraction attendue des clauses satisfaites par une assignation aléatoire est 7/8.

Cela peut-il être fait de manière déterministe? Si oui, pourquoi nous intéressons-nous à l'algorithme randomisé?

Yuval Filmus
la source

Réponses:

6

L'algorithme d'assignation aléatoire peut être dérandomisé (rendu déterministe) en utilisant la méthode des attentes conditionnelles.

Soit l'instance 3SAT constituée des clauses . Pendant l'algorithme, nous assignerons des valeurs aux variables. Le score d'une clause est défini comme suit:C1,,CmC

  • Si est satisfait, son score est de 1.C
  • Si n'est pas satisfait et a littéraux non attribués, alors son score est .Ck12k

Initialement, le score de chaque clause est de , et donc le score total est de . Nous attribuons maintenant des valeurs aux variables dans l'ordre. Supposons que nous avons assigné des valeurs aux variables , et que le score total actuel est . Soit le score total si nous attribuons les valeurs (respectivement) à . Je prétends que pour toute clause , et donc . En effet:123=7/8(7/8)mX1,,XnX1,,Xje-1S=S(C1)++S(Cm)S0,S10,1XjeS0(C)+S1(C)=2S(C)CS0+S1=2S

  • Si est satisfait (uniquement ) ou ne contient pas alors .CX1,,Xje-1XjeS0(C)+S1(C)=2S(C)
  • Supposons que contienne littéraux non attribués, y compris . Alors , , et . Par conséquent, CkXjeS(C)=1-2-kS0(C)=1-2-(k-1)S1(C)=1
    S0(C)+S1(C)=[1-22-k]+1=2(1-2-k)=2S(C).
  • Un argument similaire fonctionne lorsque contient . CX¯je

Puisque , ou (éventuellement les deux). Par conséquent , il y a une certaine affectation à de telle sorte qu'après la cession, le score est au moins .S0+S1=2SS0SS1SSS

Le score initial est de et l'algorithme garantit que le score ne diminue jamais. A la fin, le score d'une clause est 1 si elle est satisfaite et sinon. Ainsi, l'affectation finale satisfait au moins clauses.(7/8)mC1-2-0=0(7/8)m

Étant donné qu'il existe un algorithme déterministe, pourquoi nous intéressons-nous à l'algorithme aléatoire? Il existe plusieurs raisons:

  1. L'algorithme randomisé est beaucoup plus simple.
  2. L'algorithme randomisé est potentiellement plus rapide.
  3. L'algorithme randomisé peut être converti en algorithme déterministe en utilisant la méthode des attentes conditionnelles; on peut y penser comme une recette pour construire un algorithme déterministe.

Plus généralement, on suppose que chaque algorithme de polytime aléatoire pour un problème de décision peut être dérandomisé (il s'agit de la conjecture ). Les algorithmes randomisés seront toujours intéressants pour toutes les raisons énumérées ci-dessus.P=BPP

Yuval Filmus
la source