Résolution de 2-SAT et Tomographie

Transcription

Résolution de 2-SAT et Tomographie
Résolution de 2-SAT et Tomographie
Sujet proposé par Frédéric Magniez
mailto:[email protected]
Difficulté : moyen (**).
1
Préambule : le contexte
Le problème de satisfaction consiste à savoir si il existe une affectation des variables booléennes rendant
vraie une formule logique donnée. Ce problème général est difficile (NP-complet), néanmoins il existe des
sous-classes de formules pour lesquelles ce problème peut être résolu rapidement (formules de Horn, 2-SAT).
Durant ce projet, on s’intéressera dans un premier temps au problème de satisfaction des formules 2-SAT,
i.e. conjonction de disjonctions à 2 litéraux. Exemple : (x1 ∨ ¬x2 ) ∧ (x2 ∨ x3 ) ∧ . . .. Il s’agira de programmer
l’algorithme de complexité linéaire trouvé par Aspvall, Plass et Tarjan [APT79] et utilisant les graphes.
Dans un deuxième temps, une application à la tomographie sera étudiée. La tomographie est le domaine
de la reconstruction d’objet selon ses projections (l’IRM est une application typique). Les objets considérés
ici seront des ensembles de cases, ou cellules, d’une grille en 2D m × n. A chaque colonne et chaque ligne
correspond une projection qui compte le nombre de cellules présentent dans la colonne ou la ligne donnée
(cf Figure 1). Le cas qui nous intéresse est celui des polyominos convexes, i.e. les cellules sont connectées
entre elles, et dans chaque ligne et chaque colonne les cellules sont consécutives les unes des autres. Pour la
reconstruction de ces objets, l’algorithme de Dürr et Chrobak [DC99] sera utilisé. Cet algorithme utilise en
sous-routine celui de Aspvall, Plass et Tarjan.
Fig. 1 – Exemple de reconstruction tomographique
1
2
Détail du sujet
Le rendu final du projet doit ressembler à celui proposé sur la page de Christoph Dürr : http://www.
lix.polytechnique.fr/~durr/Xray/Polyomino/polyomino.php
2.1
Interface
Concernant l’algorithme de 2-SAT l’interface doit simplement consister à saisir au clavier une formule
de type 2-SAT dont les connecteurs logiques seront représentés à l’aide des symboles &, | et !. Ecrire la
grammaire régulière correspondant à une formule 2-SAT pourra être utile.
Pour la partie tomographie, une interface correspondant approximativement à celle figurant en Figure 1
est demandée.
2.2
Algorithmes
2.3
Structure de données
La représentation des données est fondamentale dans ce projet, en particulier pour bien obtenir une
complexité linéaire dans le codage de l’Algorithme de Aspvall, Plass et Tarjan. Le choix, laissé libre, devra
être motivé et sera pris en compte dans l’évaluation du projet. L’analyse de la complexité devra à chaque
fois être très précise.
Note : Si obtenir une complexité linéaire pour l’algorithme de Aspvall, Plass et Tarjan semble trop
difficile, on pourra dans un premier temps se contenter d’un algorithme quadratique.
Pour l’algorithme de reconstruction tomographique, un polyomino sera représenté par une matrice
booléenne m × n (m pour la hauteur et n pour la largeur), et ses projections par des vecteurs ou tableaux
d’entiers, un pour la verticale de taille m et un pour l’horizontale de taille n.
2.3.1
2-SAT
Une 2-clause est la disjonction de 2 littéraux, par exemple C = ¬x1 ∨ x2 . Logiquement une 2-clause
peut s’interpréter comme deux implications, dans l’exemple précédent x1 =⇒ x2 , ou encore sa contraposée
¬x2 =⇒ x1 .
L’algorithme de Aspvall, Plass et Tarjan [APT79] consiste à construire à partir d’une formule ϕ 2-SAT
donnée, un graphe G dont les sommets sont les littéraux des clauses apparaissant dans ϕ, et dont les arcs
(orientés) sont les implications correspondantes.
Aspvall, Plass et Tarjan ont démontré que la formule pouvait être satisfaite si et seulement si aucune
variable xi n’est reliée à ¬xi par un chemin de G.
La preuve s’effectue par propagation d’affectation des variables selon G suivant l’exemple de la Figure 2.
Fig. 2 – Algorithme d’affectation de Aspvall, Plass et Tarjan sur l’exemple ϕ = (x1 ∨ x2 ) ∧ (x3 ∨ ¬x4 ) ∧
(x1 ∨ x4 ) ∧ (x1 ∨ x3 ) ∧ (¬x2 ∨ x4 )
2
2.3.2
Tomographie
Notons T le polyomino recherché et r, c ses projections respectivements horizontales et verticales.
Tout d’abord on se ramène au cas où aucune des projections n’est nulle (pourquoi et comment ?), et aussi
que m ≤ n.
L’idée de Dürr et Chrobak est de travailler sur le complément du polyomino T convexe supposé exister.
Il est alors la réunion de 4 régions distinctes A, B, C et D contenant chacune un des coins de la grille.
En particulier T = A ∪ B ∪ C ∪ D. Les variables booléennes Ai,j , Bi,j , Ci,j , Di,j codent l’appartenance de la
cellule (i, j) à la région correspondante.
La formule Fk,l (r, c) suivante, paramétrée par un une paire d’entiers (k, l), exprime l’existence d’une
solution ancrée en (k, l), i.e. contenant les cellules (k, 1) et (l, n). Cette formule est sous forme 2-SAT et
s’écrit Fk,l (r, c) = Cor ∧ Dis ∧ Con ∧ Anc ∧ LBC ∧ UBR où :
^ A
⇒ Ai−1,j Bi,j ⇒ Bi−1,j Ci,j ⇒ Ci+1,j Di,j ⇒ Di+1,j
i,j
Cor =
A
⇒A
B
⇒B
C
⇒C
D
⇒D
i,j
Dis =
^
i,j
i,j−1
{Xi,j ⇒ ¬Yi,j
i,j
i,j+1
i,j
i,j−1
i,j
i,j+1
: pour les symboles X, Y ∈ {A, B, C, D}, X 6= Y }
i,j
Con =
^
{Ai,j ⇒ ¬Di+1,j+1 Bi,j ⇒ ¬Ci+1,j−1 }
i,j
Anc = ¬Ak,1 ∧ ¬Bk,1 ∧ ¬Ck,1 ∧ ¬Dk,1 ∧ ¬Al,n ∧ ¬Bl,n ∧ ¬Cl,n ∧ ¬Dl,n
^ A
^
⇒ ¬Ci+cj ,j
Ai,j ⇒ ¬Di+cj ,j
i,j
LBC =
∧
¬C
¬D
c
,j
c
,j
j
j
Bi,j ⇒ ¬Ci+cj ,j
Bi,j ⇒ ¬Di+cj ,j
i,j
j
V
V
^
¬Ai,j ⇒ Bi,j+ri V
¬Ci,j ⇒ Bi,j+ri
i≤min{k,l}
k≤i≤l
V
UBR =
¬A ⇒ D
¬C ⇒ D
j
3
l≤i≤k
i,j
i,j+ri
max{k,l}≤i
i,j
i,j+ri
Pour aller plus loin
Lorsque les polyominos convexes sont de plus centrés, il est possible de les reconstruire en temps
linéaire [DC99]. Un polyominos est centré si au moins une ligne est complètement remplie. Cette extension pourra être envisagée dans le projet si le temps le permet.
L’adresse http://www.enseignement.polytechnique.fr/profs/informatique/Frederic.Magniez/
07/INF_431/projet.html contient la dernière version de ce projet, les articles référencés, et si nécessaire,
des indications complémentaires qui seront ajoutées au fur et à mesure.
Références
[APT79] B. Aspvall, M. Plass, and R. Tarjan. A linear-time algorithm for testing the truth of certain
quantified boolean formulas. Information Processing Letters, 8(3) :121–123, 1979. Available
from : http://www.enseignement.polytechnique.fr/local/profs/informatique/Frederic.
Magniez/papers/apt79.pdf.
[DC99]
C. Dürr and M. Chrobak. Reconstructing hv-convex polyominoes from orthogonal projections.
Information Processing Letters, 69 :283–289, 1999. Available from : http://fr.arxiv.org/abs/
cs/9906021.
3