Un million de clauses, ou soixante et une
Convertir une formule courte en forme normale conjonctive par distribution donne 1 048 576 clauses et 20 971 520 littéraux ; nommer les sous-formules en donne 61 et 160, soit un facteur 131 072 sur les littéraux, et ne perd rien du tout : les deux ont le même nombre de modèles, vérifié par énumération. C’est le codage, et non le solveur, qui décide du sort d’un problème de satisfiabilité.
Prérequis : La logique et la représentation des connaissances
La résolution n’a qu’une règle d’inférence et exige son entrée en forme normale conjonctive : une conjonction de disjonctions de littéraux. Toute formule propositionnelle admet un équivalent en FNC, ce que l’on énonce d’ordinaire comme si l’affaire était réglée.
Voici une formule qui sépare « il en existe un » de « vous pouvez vous le permettre ».
Vingt conjonctions, quarante variables, une ligne.
A. Par distribution
La conversion classique distribue sur . Chacun des vingt disjoints fournit soit son , soit son à chaque clause, indépendamment : le résultat compte donc une clause par choix,
chacune longue de vingt littéraux, soit 20 971 520 littéraux au total. Pour trente disjoints, cela fait 1 073 741 824 clauses. La conversion est correcte, elle termine, et elle est inutilisable.
B. En nommant les sous-formules
L’alternative consiste à donner un nom à chaque conjonction. Introduisez et affirmez , ce qui fait trois clauses :
puis dites qu’au moins l’une d’elles est vraie : .
Cela fait clauses et 160 littéraux, contre 20 971 520. Un facteur 131 072 sur les littéraux, obtenu par une règle de réécriture et non par un meilleur solveur. C’est la transformation de Tseitin, et c’est ce que fait l’entrée de tout solveur SAT.
C. Ce que cela coûte
Le résumé habituel est que le résultat est équisatisfiable plutôt qu’équivalent, ce qui sonne comme une concession. Il vaut la peine de préciser à quel point elle est mince.
La nouvelle formule a vingt variables de plus : elle porte donc sur un autre vocabulaire et ne peut être équivalente à au sens strict. Mais chaque est contraint : les trois clauses le fixent à la valeur de vérité de , sans aucune liberté restante. Tout modèle de se prolonge donc en exactement un modèle du codage, et le comptage le confirme :
| modèles de | modèles du codage | |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 7 | 7 |
| 3 | 37 | 37 |
| 4 | 175 | 175 |
Vérifié en énumérant toutes les affectations, pour et pour le codage. La satisfiabilité est préservée, les solutions le sont, et le nombre de modèles aussi. Ce qui ne l’est pas, c’est la liste des variables, et le prix à payer est une projection à la fin.
Interactif : un million de clauses, ou soixante et une
Axe logarithmique. Les deux encodages sont tracés ; le bouton choisit celui décrit.
- Clauses de cet encodage
- 1,048,576
- Littéraux de cet encodage
- 20,971,520
- Modèles, l’un ou l’autre
- 1,096,024,843,375
- Distribué sur Tseitin, littéraux
- 131,072x
- Distribué sur Tseitin, clauses
- 17,190x
Distribuer choisit x ou y dans chacun des 20 disjoints, indépendamment : on écrit donc 1,048,576 clauses de 20 littéraux chacune. Le rapport en littéraux vaut 2 puissance n - 3 : chaque disjoint de plus double l’écart. Les deux ont 1,096,024,843,375 modèles, 4 puissance n moins 3 puissance n, car chaque nouvelle variable est forcée à la valeur de la conjonction qu’elle nomme.
D. La règle elle-même
La résolution prend deux clauses contenant une paire complémentaire et produit leur résolvante :
Elle n’est pas complète pour dériver des conséquences quelconques - de elle ne dérivera jamais , qui est pourtant impliqué - mais elle est complète pour la réfutation : si un ensemble de clauses est insatisfiable, la résolution répétée dérive la clause vide. Cela suffit, car exactement lorsque est insatisfiable.
Sur les clauses , il existe une réfutation en quatre étapes :
- avec donne
- avec donne
- avec donne
- avec donne la clause vide.
Saturer aveuglément - résoudre toutes les paires jusqu’à ce que rien de nouveau n’apparaisse - dérive 8 clauses nouvelles et atteint une clôture de 12 avant d’y parvenir. Sur quatre clauses, la différence est nulle. C’est la même différence qui sépare un solveur moderne piloté par les conflits de l’algorithme tel qu’il est écrit dans un manuel, et à grande échelle elle est tout.
La figure applique la même règle à une autre base de connaissances, la règle de la brise du monde du Wumpus, avec : quatre clauses plus la requête niée, et chaque réponse est vérifiée sur les huit mondes possibles.
Interactif : une réfutation, clause par clause
Répondu deux fois : par résolution, et en énumérant les huit mondes.
Base de connaissances en FNC, la requête niée en dernier
- !B11 v P12 v P21
- !P12 v B11
- !P21 v B11
- !B11
- P12
- Clauses de départ
- 5
- Clauses nouvelles
- 5
- Clause vide
- oui
- La vérification par modèles confirme
- oui
Résolvantes, dans l’ordre où le démonstrateur les a trouvées
- !P12 v B11 + !B11 -> !P12
- !P21 v B11 + !B11 -> !P21
- !P12 v B11 + P12 -> B11
- !B11 v P12 v P21 + !P12 -> !B11 v P21
- P12 + !P12 -> []
La clause vide est apparue après 5 clauses nouvelles, et une disjonction vide est fausse dans tout modèle. La base jointe à la requête niée est donc insatisfiable, ce qui est exactement ce que signifie « la base implique la requête ». La vérification par modèles, qui énumère les huit mondes sans partager une ligne de code, confirme.
E. Ce qu’il faut en retenir
- La traduction fait partie de l’algorithme. Un problème impossible après distribution et routinier après Tseitin n’a jamais été un problème difficile ; il était mal codé.
- Comptez les littéraux, pas les clauses. La forme distribuée ci-dessus est mauvaise dans les deux, mais des codages comparables en nombre de clauses diffèrent souvent d’un ordre de grandeur en littéraux, or c’est cela que la propagation parcourt.
- « Il existe un équivalent en FNC » est un énoncé d’existence. « Tout problème de NP se réduit à SAT » aussi. Les deux sont vrais, et aucun ne dit quoi que ce soit sur la taille de ce que l’on obtient.
Références et lectures complémentaires
- Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Pearson (3rd edition), 2010· Bibliothèque de référence Kudos AI
Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.