Problème de séparation par automate
Référence : Le langage des machines.
Robert Floyd et Richard Biegel 2011-2012
Prérequis :SAT est NP-complet.
Alice et Bob jouent à un jeu :
– Alice pense à un langageL, et doit le faire deviner à Bob.
– Alice donne à Bob un ensemble de mots deL,S, et un ensemble de mot qui ne sont pas dansL,T. – Bob doit trouver, à partir des exemples deS et des contre-exemples deT le langageL.
Le problème de séparation par automate consiste à chercher l’existence, pour des langagesS et T finis et un entierkdonnés, un automate fini déterministe àkétats qui accepte tous les mots deS, et refuse tous les mots deT.
Théorème 1
Le problème de séparation par automate (PSA) est NP-complet.
Démonstration. Tout d’abord, PSA est de classe NP. En effet, on peut en temps polynomial construire de façon non déterministe un automate, et le tester sur les mots deS etT.
Montrons donc que PSA est NP-dur. Nous allons pour cela réduire SAT à PSA : on suppose pouvoir résoudre PSA en temps polynomial, et on en déduit un algorothme de résolution de SAT en temps polynomial.
Soit donc F une formule du calcul propositionel sous forme normale conjonctive. On note C0, . . . , Cm−1 les clauses deF, etx0, . . . , xv−1 les variables deF.
Dans la suite on noteraℓ0, . . . , ℓ2v−1les littérauxx0, . . . , xv−1, x0, . . . , xv−1. On pose aussik= 2v+m.
On va construire deux ensemblesSetT tels que siP est un automate fini déterministe qui sépareSetT, alors on peut déduire polynomialement deP une valuation qui valideF.
Notre automate va en fait choisir, pour chaque clause deF, un littéral qui doit être mis àvrai, tout en s’assurant qu’un littéral et sa négation ne soit pas mis àvraien même temps.
(1) On pose – S1={ε, ak}
– T1={ai |0< i < k}.
CommeP akétats, on les appelera dans l’ordreC0, . . . , Cm−1, ℓ0, . . . , ℓ2v−1.C0est l’unique état initial, et l’unique état final.
(2) On veut que les arêtes issues d’un étatCi et étiquetée parb aillent vers un littéral deCi. On pose alors : T2={aibaj |06i < m, 06j < k}\{aiba2v−j |ℓj est un littéral deCi}.
1
Lemme 2
SiP rejette aussi les mots deT2, alors les arêtes issues d’un état Ci étiquetées parb vont vers un littéral deCi.
Démonstration. Supposons qu’une arête étiquetée parbaille deCi à Cj.
Soit alorsu=aibak−j. Alorsuest accepté parP et appartient àT2, ce qui est impossible.
Donc les arêtes partant deCiétiquetée par bvont nécessairement vers unℓj.
La lecture deaibva de C0 à ℓj, et la lecture ensuite dea2v−j revient enC0, et doncaiba2v−j est accepté
parP, et doncℓj est un littéral deCi. ♦
(3) On veut que toutes les arêtes issues de ℓj étiquetées par b aillent soit vers C0 (on dit alors que ℓj est véridique), soit versx0.
On pose alors
T3={am+jbah |06j <2v, 0< h < k, h6=v}.
Lemme 3
Un automate qui rejette aussiT3 respecte la condition ci-dessus.
Démonstration. SoitP qui rejette aussiT3. Supposons qu’il existe une arête étiquetée parbqui va deℓj à un étatqautre queC0 oux0.
Siq=Cw, w6= 0, alors le motu=am+jbarrive enCw, et donc le motam+jbam−w+2v est accepté→non. Siq=ℓw, w6=v, alors le motu=am+jb arrive enℓw, et doncam+jba2v−w est accepté→non. ♦
(4) On veut interdire que les littérauxxj et xj soit véridiques en même temps. On pose donc T4={am+jbam+v+jb| 06j < v}.
Lemme 4
SiP refuse aussiT4, alorsP satisfait l’hypothèse ci-dessus.
Démonstration. SoitP qui refuse aussiT4. Supposons quexj
−b
→C0 etxj
−b
→C0.
Alorsam+jbarrive en C0, etam+v+jb aussi, et donc la concaténation des deux est acceptée→non. ♦ (5) Enfin, on veut que l’arête étiquetée par b issue de Ci (voir point (2)) aille vers un littéral véridique. On
pose :
S5={aibb| 06i < m}.
On prend alorsS=S1∪S5et T =T1∪T2∪T3∪T4.
SiP à kétats accepteS et rejetteT, alors on construit la valuation :
ρ(xi) = (
vrai si (xj
−b
→C0) arête deP faux sinon
Alors la valuationρsatisfaitF.
2