Cours 9 : Rappels, récapitulatif
2-SAT
\[𝜑 = (a∨b) ∧ (¬a∨c)\] \[a∨b ≡ ¬a ⟹ b\] digraph {
rankdir=TB;
¬a -> b;
¬b -> a;
a -> c;
¬c -> ¬a;
}
Lemme : $𝜑$ est non satisfiable $⟺$ $∃p_i;$ $p_i$ et $¬p_i$ sont connectés.
Si $v: Prop ⟶ Bool$ une valuation qui satisfait $𝜑$ :
\[v(l) = true ∧ l⟶^\ast ⟹ v(r) = true\]En fait : on a même mieux que polynomial :
-
on devine une variable $p$
- avec $GAP∈NL$, on vérifie que $p$ et $¬p$ sont dans la même cfc ou non
- ils le sont ssi $𝜑$ est non satisfiable
Donc le problème est dans $coNL = NL$.
NB :
Prop : 2-SAT est NL-complet.
Preuve :
On réduit
\[coGAP≼2-SAT\]Étant donné $G= (V,E)$, est-il vrai, pour $u, v∈V$, que :
\[u \not⟶^\ast v\]Le graphe donne une formule $𝜑$ sur contruite sur le modèle précédent, puis :
on considère $𝜓 ≝ u ∧ 𝜑 ∧ ¬v$
Si une valuation satisfait $𝜓$ et valide $u$, elle valide tous les sommets accessibles depuis $u$, donc $¬v$ ssi $v$ est accessible depuis $u$.
Problème utile aux chercheurs : intersection de langages réguliers
En combinant des langages réguliers, on peut dire des choses compliquées
Il y a deux variantes du problème : avec des automates déterministes (resp. non déterministes) : $N∩V$ (resp. $D∩V$)
- Input : $A_i, ⋯, A_m$ des automates finis
-
Question : Est-ce qu’il existe un mot dans l’intersection des langages ?
\[L(A_1) ∩ ⋯ ∩ L(A_m)\overset{?}{≠}∅\]
⟶ Problème décidable :
-
on peut considérer l’automate produit, qui reconnaît l’intersection des langages.
-
le problème est dans $EXPTIME$ : on se ramène à un problème d’accessibilité dans un graphe.
MAIS : accessibilité dans un graphe $∈NL$, donc en s’arrangeant un peu, on pourrait le faire tomber dans $NPSPACE = PSPACE$
NB : les états de l’automate produit sont des $m$-uplets d’états des $A_i$ :
\[ne(A) = ne(A_1)×⋯×ne(A_m) ≤ \vert A_1 \vert × ⋯ × \vert A_m \vert \\ ≤ 2^{\vert A_1 \vert + ⋯ + \vert A_m \vert} ≤ 2^n\]NB : comme $m$ n’est pas fixé (c’est une variable) : la majoration est exponentielle. Si on avait eu $m=2$, ça aurait été quadratique.
On devine un mot de longueur $l≤2^n$.
On ne peut pas mémoriser le mot en entier : il est trop long.
On teste la reconnaissabilité du mot “à la volée” :
- on part de tous les états initiaux, on initialise un compteur à $l$
- on devine une lettre $a_1$, et on obtient l’état produit ($m$-uplet d’états), puis on décrémente $l$.
- on continue jusqu’à ce que le compteur atteigne $0$ : puis on vérifie on est dans un état produit acceptant ou non.
Ce problème est dans $PSPACE$.
Il est même $PSPACE-difficile$.
⟶ On peut penser réduire le problème de l’universalité d’un automate non déterministe (est-ce qu’il reconnaît tous les mots ?), qui est $PSPACE-complet$.
NB :
- mais difficulté : ce problème n’est pas universel, donc pas forcément le bon problème à réduire.
$M$ une MT déterministe en espace $p(n)$.
\[r_M : x \mapsto A_1, ⋯, A_n\]tq
$M$ accepte $x$ ssi $L(A_1)∩⋯∩L(A_1) ≠ ∅$
Alphabet des $A_i$ : paires de règle (de la table de transition) et de position (de la tête de lecture sur le ruban).
Connaissant un mot de telles paires $(r, i)$, on peut dresser un tableau d’exécution de $M$ sur $x$.
Réciproquement : on construit des automates dont le produit ne reconnaît que les exécutions acceptantes de la machine sur $x$.
digraph {
splines=line;
subgraph cluster_0 {
label="A_0 : états de M";
q_0; q_1; q_2; q_f;
}
subgraph cluster_1 {
label="A_1 : lettre en position 1";
a; b; c; B;
}
subgraph cluster_2 {
label="A_lect : positions de la tête de lecture";
0; 1; 2; pn;
}
q_0 -> q_1[label="r_1, *"];
q_0 -> q_2[label="r_2, *"];
q_1 -> q_f;
q_2 -> q_f;
a -> a[label="r_i≠1, a"];
b -> b[label="r_i≠1, b"];
c -> c[label="r_i≠1, c"];
B -> B[label="r_i≠1, B"];
a -> b[label="r_1, a"];
c -> b[label="r_1, c"];
0 -> 1[label="r, 0"];
1 -> 2[label="r'', 1"];
1 -> 0[label="r', 1"];
}
Quels automates sont non déterministes si la machine l’est ?
Une MT ND peut avoir plusieurs états de départ dans $A_0$ (pas forcément $q_0$) : seule chose qui diffère.
Choses utiles à savoir
- Expressions régulières :
- \[e := a∈𝛴 \vert e.e \vert e^\ast \vert e+e' \vert ∅\]
Est-ce que le langage dénoté par $e$ est vide ou non ?
⟶ c’est LOGSPACE : formule booléenne.
- Expressions régulières étendues :
-
stables par intersection, en plus
On ne peut plus tester la vacuité en LOGSPACE car le problème est maintenant PSPACE-complet !
- C’est PSPACE-dur car plus général que le problème précédent
- plus difficile que c’est dans PSPACE puisqu’on ne peut plus mémoriser d’état
- Le shuffle de deux langages réguliers $L$ et $L’$ :
-
c’est le langage formé de tous les mots dont les lettres appartiennent à un mot de $L$ ou à un autre mot de $L’$
ex :
shuffle de $a^\ast$ et $b^\ast$ : c’est $(a+b)^\ast$
- Expressions régulière stables par puissance :
-
c’est PSPACE, encore une fois
- Expressions régulière stables par négation :
-
l’universalité avec la négation est non élémentaire :
- “tower-complete” :
-
espace/temps pas borné par un polynôme NI une exponentielle à une puissance fixée !
Leave a comment