Quelle est l'efficacité des solveurs SAT basés sur DPLL sur des instances PHP satisfaisantes?


15

Nous savons que les solveurs SAT basés sur DPLL ne répondent pas correctement aux cas insatisfaisants de (principe du pigeon), par exemple sur "il y a une cartographie injective de n + 1 à n ":PHPn+1n

PHPnn+1:=(i[n+1] j[n] pi,j)(ii[n+1] j[n] (¬pi,j¬pi,j))

Je cherche des résultats sur la façon dont ils fonctionnent sur des instances satisfaisantes de , par exemple sur "il y a une cartographie injective de n à n ".PHPnn

Trouvent-ils rapidement une affectation satisfaisante dans de tels cas?


1
Par «ne pas répondre correctement», voulez-vous dire «manquer de ressources sur des valeurs suffisamment grandes de n»?
Vijay D

@Kaveh Autorisez-vous la répétition de clauses et / ou la répétition de variables dans la même clause? Merci
Tayfun Payez le

@VijayD, je veux dire que l'algorithme ne renvoie pas une réponse correcte en temps polynomial pour un assez grand . J'espère que l'on peut prouver de manière prouvable qu'un algorithme basé sur DPLL fonctionnerait en temps polynomial sur cette famille. n
Kaveh

@Geekster, je ne sais pas ce que tu veux dire J'ai une famille particulière de formules. Demandez-vous s'il y a répétition dans cette formule?
Kaveh

Réponses:


14

Sur des instances satisfaisantes de , les solveurs SAT basés sur DPLL fourniront une affectation satisfaisante en temps linéaire.PHP

Pour voir pourquoi, observez comment l'encodage CNF d'une instance insatisfaisante de avec n trous et n + 1 pigeons est sintactiquement identique à une instance de k = n Graph Colouring, où le graphique d'entrée est une clique de n + 1 sommets .PHPnn+1k=nn+1

De même, le codage CNF d'une instance satisfaisante de avec n trous et n pigeons est sintactiquement identique à une instance de k = n Graph Colouring, où le graphique d'entrée est une clique de n sommets.PHPnnk=nn

Maintenant, colorier une clique de sommets avec n couleurs est simple: balayez les sommets, et attribuez à chacun d'eux une des couleurs restantes (les couleurs déjà attribuées sont automatiquement exclues par la clicité du graphique, en utilisant la propagation unitaire) . Quelle que soit la couleur que vous choisissez, elle sera bonne et vous conduira à une mission satisfaisante.nn

Du point de vue du solveur DPLL: chaque fois qu'il essaiera de deviner la valeur booléenne d'une variable , cette valeur sera correcte (quelle qu'elle soit), car il y aura certainement une affectation satisfaisante dans laquelle la variable v i a le valeur devinée. La propagation d'unité fera le reste du travail, en guidant le solveur le long du chemin satisfaisant (en d'autres termes: en l'empêchant de deviner des valeurs erronées).vjevje

La recherche procède ensuite une variable après l'autre, linéairement, chaque fois en faisant la bonne supposition.


Merci, c'est ce que j'attendais. Soit dit en passant, connaissez-vous une référence qui indique cela (par exemple, "l'algorithme DPLL résout les instances satisfaisables de PHP / GC en temps linéaire")?
Kaveh

1
Je vous en prie. Je ne connais aucune référence qui le déclare, je viens de le déduire par moi-même à travers un raisonnement brut. Il ne devrait pas être difficile de le prouver formellement, en s'appuyant sur le fait que chaque solveur SAT utilise une heuristique raisonnable à la fois pour choisir la variable suivante et pour deviner sa valeur booléenne. Il faut noter, en effet, qu'il existe au moins une heuristique déraisonnable qui nous empêche d'arriver à une solution en temps linéaire (une telle heuristique déraisonnable serait de mettre à faux chaque variable, jusqu'à ce que possible). Avec une heuristique raisonnable, un temps linéaire est garanti.
Giorgio Camerani

Je suis d'accord. J'espère que quelqu'un pourrait avoir déclaré cela quelque part afin que je puisse citer quand j'en ai besoin. Je voudrais attendre quelques jours de plus et si personne ne donne de référence, j'accepterai cette réponse. Merci encore. :)
Kaveh

Mon plaisir ;-) Bravo!
Giorgio Camerani
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.