En informatique théorique, le problème 2-SAT est un problème de décision. C'est une restriction du problème SAT qui peut être résolu en temps polynomial, alors que le problème général est NP complet. Le problème 2-SAT consiste à décider si une formule booléenne en forme normale conjonctive, dont toutes les clauses sont de taille 2, est satisfaisable. De telles formules sont appelées 2-CNF ou formules de Krom,.

Définitions et exemples

Restriction syntaxique

On considère des formules en forme normale conjonctive, c'est-à-dire que ce sont des ET de OU de littéraux (un littéral est une variable ou la négation d'une variable). Par exemple :

( x 1 ¬ x 2 ¬ x 3 ) ( ¬ x 1 x 3 x 4 x 6 ) {\displaystyle (x_{1}\lor \neg x_{2}\lor \neg x_{3})\land (\neg x_{1}\lor x_{3}\lor x_{4}\lor x_{6})}

Pour le problème 2SAT, on se restreint le nombre de littéraux par clause est égal 2. Un exemple d'une telle formule est alors :

( x 1 ¬ x 2 ) ( ¬ x 1 x 3 ) {\displaystyle (x_{1}\lor \neg x_{2})\land (\neg x_{1}\lor x_{3})}

Une formule en forme normale conjonctive avec 2 littéraux par clause s'appelle aussi une 2-CNF ou formule de Krom.

Problème algorithmique

Le problème de décision 2SAT est le suivant :

Entrée : Une formule en forme normale conjonctive avec 2 littéraux par clause ;

Question : Existe-t-il une assignation des variables, qui rende la formule vraie ? Autrement dit, la formule peut-elle être satisfaite ?

Dans les applications il est souvent nécessaire de pouvoir donner une solution explicite, et non pas seulement de décider si elle existe.

Graphe d'implication

On peut représenter une formule en forme normale conjonctive avec au plus 2 littéraux par clause par un graphe orienté appelé graphe d'implication (en). La figure ci-contre montre un graphe d'implication pour la formule ( x 0 x 2 ) ( x 0 ¬ x 3 ) ( x 1 ¬ x 3 ) ( x 1 ¬ x 4 ) ( x 2 ¬ x 4 ) ( x 0 ¬ x 5 ) ( x 1 ¬ x 5 ) ( x 2 ¬ x 5 ) ( x 3 x 6 ) ( x 4 x 6 ) ( x 5 x 6 ) . {\displaystyle (x_{0}\lor x_{2})\land (x_{0}\lor \lnot x_{3})\land (x_{1}\lor \lnot x_{3})\land (x_{1}\lor \lnot x_{4})\land (x_{2}\lor \lnot x_{4})\land {} \atop \quad (x_{0}\lor \lnot x_{5})\land (x_{1}\lor \lnot x_{5})\land (x_{2}\lor \lnot x_{5})\land (x_{3}\lor x_{6})\land (x_{4}\lor x_{6})\land (x_{5}\lor x_{6}).}

L'idée est de remarquer qu'une clause de taille 2 peut toujours s'écrire comme une implication logique. Par exemple la clause ( x 0 x 2 ) {\displaystyle (x_{0}\lor x_{2})} dans la formule ci-dessus peut s'écrire ( ¬ x 0 x 2 ) {\displaystyle (\neg x_{0}\rightarrow x_{2})} , ou encore ( ¬ x 2 x 0 ) {\displaystyle (\neg x_{2}\rightarrow x_{0})} . On peut alors construire un graphe dont les sommets sont les littéraux, et dont les arêtes représentent les implications. C'est pourquoi il y a un arc du sommet ¬ x 0 {\displaystyle \neg x_{0}} au sommet x 2 {\displaystyle x_{2}} et un arc du sommet ¬ x 2 {\displaystyle \neg x_{2}} au sommet x 0 {\displaystyle x_{0}} .

C'est un graphe antisymétrique (en) et on peut montrer qu'une formule est satisfaisable si et seulement si dans son graphe d'adjacence aucun sommet x i {\displaystyle x_{i}} n'est dans la même composante fortement connexe que son nœud complémentaire ¬ x i {\displaystyle \neg x_{i}} . On peut déduire de cette propriété un algorithme de complexité linéaire pour le problème.

Théorie de la complexité

2-SAT est complet pour la classe de complexité NL, tout comme le problème de l'accessibilité dans un graphe. On donne ici des démonstrations pour l'appartenance à NL et la NL-dureté.

Appartenance à NL

D'après le théorème d'Immerman-Szelepcsényi, co-NL = NL, donc pour montrer que 2-SAT {\displaystyle {\text{2-SAT}}} est dans NL, il suffit de montrer que le problème dual 2-SAT ¯ {\displaystyle {\overline {\text{2-SAT}}}} , le problème qui consiste à savoir si une formule en forme normale conjonctive avec 2 n'est pas satisfiable, est dans NL. L'algorithme non-déterministe suivant décide 2-SAT ¯ {\displaystyle {\overline {\text{2-SAT}}}} en espace logarithmique :

  choisir une variable 
  
    
      
        x
      
    
    {\displaystyle x}
  
 parmi les variables de 
  
    
      
        ϕ
      
    
    {\displaystyle \phi }
  

  
  
    
      
        y
        =
        x
      
    
    {\displaystyle y=x}
  

  tant que 
  
    
      
        y
        
        ¬
        x
      
    
    {\displaystyle y\neq \neg x}
  
:
     si aucune clause de 
  
    
      
        ϕ
      
    
    {\displaystyle \phi }
  
 ne contient le littéral 
  
    
      
        ¬
        y
      
    
    {\displaystyle \neg y}
  

        rejeter
     choisir une clause de la forme 
  
    
      
        ¬
        y
        
        z
      
    
    {\displaystyle \neg y\vee z}
  
 ou 
  
    
      
        z
        
        ¬
        y
      
    
    {\displaystyle z\vee \neg y}
  

     
  
    
      
        y
        =
        z
      
    
    {\displaystyle y=z}
  

  
  
    
      
        y
        =
        ¬
        x
      
    
    {\displaystyle y=\neg x}
  

  tant que 
  
    
      
        y
        
        x
      
    
    {\displaystyle y\neq x}
  
:
     si aucune clause de 
  
    
      
        ϕ
      
    
    {\displaystyle \phi }
  
 ne contient le littéral 
  
    
      
        ¬
        y
      
    
    {\displaystyle \neg y}
  

        rejeter
     choisir une clause de la forme 
  
    
      
        ¬
        y
        
        z
      
    
    {\displaystyle \neg y\vee z}
  
 ou 
  
    
      
        z
        
        ¬
        y
      
    
    {\displaystyle z\vee \neg y}
  

     
  
    
      
        y
        =
        z
      
    
    {\displaystyle y=z}
  

  accepter

2-SAT {\displaystyle {\text{2-SAT}}} est donc dans NL.

NL-dureté

Comme ST-CON ¯ {\displaystyle {\overline {\text{ST-CON}}}} est (co)NL-complet, il suffit de construire une réduction en espace logarithmique de ST-CON ¯ {\displaystyle {\overline {\text{ST-CON}}}} vers 2-SAT pour montrer que 2-SAT est NL-dur.

Soient G = ( V , E ) {\displaystyle G=(V,E)} un graphe orienté et s , t {\displaystyle s,t} deux sommets de G {\displaystyle G} .

En associant à chaque sommet de G une variable propositionnelle, chaque arête entre deux sommets p et q correspond à la clause ¬ p q {\displaystyle \neg p\vee q} (ou p q {\displaystyle p\to q} ).

Soient ϕ = ( p , q ) E ( ¬ p q ) {\displaystyle \phi =\bigwedge _{(p,q)\in E}(\neg p\vee q)} et ψ = s ¬ t ϕ {\displaystyle \psi =s\wedge \neg t\wedge \phi } .

Supposons ψ {\displaystyle \psi } satisfiable. Soit σ {\displaystyle \sigma } une interprétation qui satisfait ψ {\displaystyle \psi } .

Supposons qu'il existe un chemin s = u 0 u 1 u n = t {\displaystyle s=u_{0}\to u_{1}\to \ldots \to u_{n}=t} de s à t dans G. Pour tout i, on a σ ( u i ) = 1 {\displaystyle \sigma (u_{i})=1} (par induction sur i):

  • ψ = s {\displaystyle \psi =s\wedge \ldots } , donc σ ( s ) = 1 {\displaystyle \sigma (s)=1} .
  • Soit i < n. Supposons avoir montré σ ( u i ) = 1 {\displaystyle \sigma (u_{i})=1} .

( u i , u i 1 ) {\displaystyle (u_{i},u_{i 1})} est une arête de G, donc ψ = ( ¬ u i u i 1 ) {\displaystyle \psi =\ldots \wedge (\neg u_{i}\vee u_{i 1})\wedge \ldots } et σ ¬ u i u i 1 {\displaystyle \sigma \models \neg u_{i}\vee u_{i 1}} . Comme σ ( u i ) = 1 {\displaystyle \sigma (u_{i})=1} , on a nécessairement σ ( u i 1 ) = 1 {\displaystyle \sigma (u_{i 1})=1} .

Donc σ ( t ) = σ ( u n ) = 1 {\displaystyle \sigma (t)=\sigma (u_{n})=1} . Or ψ = ¬ t {\displaystyle \psi =\neg t\wedge \ldots } , donc σ ( t ) = 0 {\displaystyle \sigma (t)=0} , d'où une contradiction. G ,   s ,   t {\displaystyle \langle G,~s,~t\rangle } est donc une instance positive de ST-CON ¯ {\displaystyle {\overline {\text{ST-CON}}}} .

Supposons que G ,   s ,   t {\displaystyle \langle G,~s,~t\rangle } est une instance positive de ST-CON ¯ {\displaystyle {\overline {\text{ST-CON}}}} . Soit σ {\displaystyle \sigma } l'interprétation telle que pour tout sommet u, σ ( u ) = 1 {\displaystyle \sigma (u)=1} si u est accessible depuis s et σ ( u ) = 0 {\displaystyle \sigma (u)=0} sinon. Supposons que σ {\displaystyle \sigma } ne satisfait pas ψ {\displaystyle \psi } . On a σ ( s ) = 1 {\displaystyle \sigma (s)=1} et σ ( t ) = 0 {\displaystyle \sigma (t)=0} ; il existe donc i tel que σ ¬ u i u i 1 {\displaystyle \sigma \not \models \neg u_{i}\vee u_{i 1}} , ce qui correspond à une arête ( u i , u i 1 ) {\displaystyle (u_{i},u_{i 1})} telle que σ ( u i ) = 1 {\displaystyle \sigma (u_{i})=1} et σ ( u i 1 ) = 0 {\displaystyle \sigma (u_{i 1})=0} . u i {\displaystyle u_{i}} est donc accessible depuis s {\displaystyle s} , mais pas u i 1 {\displaystyle u_{i 1}} , ce qui contredit ( u i , u i 1 ) E {\displaystyle (u_{i},u_{i 1})\in E} .

ψ {\displaystyle \psi } est donc satisfiable.

ψ {\displaystyle \psi } peut être construite en espace logarithmique (en la taille de G) pour toute instance de ST-CON ¯ {\displaystyle {\overline {\text{ST-CON}}}} .

2-SAT {\displaystyle {\text{2-SAT}}} est donc NL-complet.

Notes et références

  • Portail de l'informatique théorique

Sat.1 Tonproblem bei ZweitligaAuftakt schnell behoben

Solved (20 pts.) 2SAT. In the 2 SAT problem, you are given a

Example solution for (2,2)SAT and... Download Scientific Diagram

The SAT Problem That Everybody Got Wrong

2Satisfiability (2SAT) Problem