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 .Ck1 -2- k
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:1 -2- 3= 7 / huit( 7 / huit ) mX1, … ,XnX1, … ,Xi - 1S= S(C1) + ⋯ + S(Cm)S0,S10 , 1XjeS0( C) +S1( C) = 2 S( C)CS0+S1= 2 S
- Si est satisfait (uniquement ) ou ne contient pas alors .CX1, … ,Xi - 1XjeS0( C) +S1( C) = 2 S( 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 - 2 ⋅2- k] + 1 = 2 ( 1 -2- k) = 2 S( 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= 2 SS0≥ SS1≥ SSS
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 / huit ) mC1 -2- 0= 0( 7 / huit ) m
Étant donné qu'il existe un algorithme déterministe, pourquoi nous intéressons-nous à l'algorithme aléatoire? Il existe plusieurs raisons:
- L'algorithme randomisé est beaucoup plus simple.
- L'algorithme randomisé est potentiellement plus rapide.
- 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 = B P P